OSDN Git Service

* dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
2
3         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
4         Declare VECs of this type.
5         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
6         (remove_children): Delete.
7         (add_dwarf_attr): Use VEC routines.
8         (add_AT_flag): Update for changes to add_dwarf_attr.
9         (add_AT_int): Likewise.
10         (add_AT_unsigned): Likewise.
11         (add_AT_long_long): Likewise.
12         (add_AT_vec): Likewise.
13         (add_AT_string): Likewise.
14         (add_AT_die_ref): Likewise.
15         (add_AT_fde_ref): Likewise.
16         (add_AT_loc): Likewise.
17         (add_AT_loc_list): Likewise.
18         (add_AT_addr): Likewise.
19         (add_AT_lbl_id): Likewise.
20         (add_AT_lineptr): Likewise.
21         (add_AT_macptr): Likewise.
22         (add_AT_offset): Likewise.
23         (add_AT_range_list): Likewise.
24         (get_AT): Use VEC_iterate.
25         (remove_AT): Use VEC_ordered_remove.
26         (free_die): Fold remove_children into here; have it use VEC_iterate.
27         (print_die): Use VEC_iterate on attrs.
28         (reverse_die_lists): Don't reverse attr lists.
29         (die_checksum): Use VEC_iterate on attrs.
30         (same_die_p): Likewise.
31         (output_location_lists): Likewise.
32         (build_abbrev_table): Likewise.
33         (size_of_die): Likewise.
34         (unmark_all_dies): Likewise.
35         (output_abbrev_section): Likewise.
36         (output_die): Likewise.
37         (prune_unused_types_walk_attribs): Likewise.
38
39 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
40
41         * doc/install.texi (*-*-solaris2*): Point to the configure page.
42
43 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
44
45         PR debug/27057
46         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
47
48 2006-04-09  Roger Sayle  <roger@eyesopen.com>
49
50         * expr.c (store_constructor): Don't bother clearing target if
51         we're about to assign a vector to it using vec_init_optab.
52
53 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
54         
55         * tree-ssa-alias.c (lhs_may_store_to): New function.
56         (recalculate_used_alone): Handle LHS of calls.
57
58 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
59
60         PR target/27034
61         PR target/26508
62         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
63         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
64         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
65         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
66         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
67         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
68         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
69         stubs.  Add ".align 8" directives before all ".dword" directives.
70         (GTHREAD_USE_WEAK): Revise comment.
71         (TARGET_ATTRIBUTE_WEAK): Define.
72         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
73         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
74         * stublib.c: New file.
75
76         PR target/26743
77         PR target/11254
78         PR target/10274
79         * pa.md (cbranch patterns): Revise arguments used in calls to
80         output_cbranch, output_bb and output_bvd.  Add long branch length
81         attributes.
82         (fbranch patterns): Handle long branches.
83         (jump): Revise length check.  Revise arguments for output_lbranch call.
84         Add long branch length attributes.
85         (decrement_and_branch_until_zero): Add long branch length attributes.
86         (output_movb, output_parallel_addb and output_parallel_movb patterns):
87         Likewise.  Revise arguments for output_parallel_addb and
88         output_parallel_movb calls.
89         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
90         output_parallel_movb and output_parallel_addb): Update prototypes.
91         * pa.c (output_cbranch): Revise arguments.  Correct handling of
92         nullification in long branches.
93         (output_lbranch): Add new argument to control extraction of delay
94         instruction.
95         (output_bb): Handle long branches.
96         (output_bvb, output_dbra, output_movb, output_parallel_movb,
97         output_parallel_addb): Likewise.
98
99 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
100
101         PR rtl-optimization/27073
102         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
103         not REG_EQUIVs.
104
105 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
106
107         * tree.h (tree_memory_tag): Add old_used_alone.
108         (SMT_OLD_USED_ALONE): New macro.
109         * tree-ssa-alias.c (recalculate_used_alone): Stop
110         marking things for renaming unnecessarily.
111
112 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
113
114         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
115         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
116         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
117         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
118         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
119         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
120         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
121         spelling convensions.
122         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
123         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
124         typos.  Follow spelling conventions.
125
126 2006-04-07  DJ Delorie  <dj@redhat.com>
127
128         * config/m32c/m32c.c (m32c_function_arg): Structures are always
129         passed on the stack.
130         (m32c_init_cumulative_args): When a function returns a structure,
131         always pass the pointer to that return area on the stack.
132         (m32c_function_arg_advance): Don't increment the parameter number
133         if we're processing the returned structure pointer.
134         (pushm_info): Reverse order of registers.
135
136 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
137
138         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
139         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
140         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
141         estimate_numbers_of_iterations_loop): Use build_int_cst instead of 
142         build_int_cst_type.
143         * tree-chrec.c (chrec_fold_multiply_poly_poly,
144         chrec_fold_multiply): Same.
145         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
146         force_expr_to_var_cost): Same.
147         * tree-mudflap.c (mf_xform_derefs_1): Same.
148         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
149
150 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
151
152         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
153         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
154         insn.
155
156 2006-04-07  Jan Hubicka  <jh@suse.cz>
157
158         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
159
160 2006-04-07  Richard Guenther  <rguenther@suse.de>
161
162         PR tree-optimization/26135
163         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
164         loads for store copy-prop.
165         (copy_prop_visit_stmt): Likewise.
166
167 2006-04-05  Robert Millan  <robertmh@gnu.org>
168
169         * gcc/config/i386/linux.h:  Add a comment to mark macros that are
170         being overriden in config/k*bsd-gnu.h.
171         * gcc/config/kfreebsd-gnu.h:  Redefine GLIBC_DYNAMIC_LINKER instead of
172         DYNAMIC_LINKER.
173         * gcc/config/knetbsd-gnu.h:  Ditto.
174
175 2006-04-06  Jan Hubicka  <jh@suse.cz>
176
177         PR profile/20815
178         PR profile/26399
179         * coverage.c (coverage_checksum_string): Reorganize loop to not read
180         after buffer.
181
182 2006-04-06  Mike Stump  <mrs@apple.com>
183
184         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
185         for HAVE_nonlocal_goto to be consistent.
186         (expand_builtin_nonlocal_goto): Likewise.
187         (expand_builtin_strcmp): Use #ifdef instead of #if
188         for HAVE_cmpstrnsi to be consistent.
189
190 2006-04-05  DJ Delorie  <dj@redhat.com>
191
192         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
193         vs m32c.
194
195 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
196
197         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
198         got-relative addressing for anything but SImode.
199
200         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
201         even if the calling function doesn't modify them.
202
203 2006-04-05  Richard Guenther  <rguenther@suse.de>
204
205         PR tree-optimization/26919
206         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
207         to cgraph_estimate_size_after_inlining.
208
209 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
210
211         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
212
213 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
214
215         PR tree-optimization/26996
216         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
217         VECTOR_TYPE variables.
218
219 2006-04-05  Richard Guenther  <rguenther@suse.de>
220
221         PR tree-optimization/26763
222         * fold-const.c (fold_comparison): Move folding of
223         PTR + CST CMP PTR + CST ...
224         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
225
226 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
227
228         * doc/install.texi (Prerequisites): Refine some wording on
229         bootstrapping and ksh.
230         Move the version numbers of DejaGnu here from the testing section
231         and fix casing of names.
232         Fix markup and clarify wording for autogen requirements.
233         Refer to GCJ instead of just java.
234         Refer to SVN instead of CVS.
235         Describe diffutils as useful instead of necessary.
236         (Downloading the source): Refer to SVN instead of CVS.
237         Adjust a link to our web site accordingly.
238         (Configuration): Fix casing of Bison.
239         (Building): Refer to SVN instead of CVS.  
240         Fix a sentence on the use of Bison and remove duplicate (and
241         incorrect) version number of Bison requirement.
242         Remove one redundant list of packages needed for building.
243         (Specific): Avoid reference to CVS.
244
245 2006-04-04  Eric Christopher  <echristo@apple.com>
246
247         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
248         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
249         (rs6000_handle_struct_attribute): New.
250         (rs6000_ms_bitfield_layout_p): Ditto.
251
252 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
253
254         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
255         NULL for dso parameter to atexit_common.
256
257 2006-04-04  Eric Christopher  <echristo@apple.com>
258
259         * config/i386/i386.c (machopic_output_stub): Output \t
260         between instructions and operands.
261
262 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
263
264         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
265         satisfies_constraint_[IL] to explicit tests on value.
266
267 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
268
269         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
270         set_nb_iterations_in_loop): Use build_int_cst instead of
271         build_int_cst_type.
272         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
273         build_int_cst instead of convert.
274
275 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
276
277         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
278         new value 2 for incoming.
279         * function.c (expand_function_start): Call struct_value_rtx
280         with incoming as 2.
281         * config/sparc/sparc.md: Comment updated_return.
282         * config/sparc/sparc.opt: Add -mstd-struct-return option.
283         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
284         struct return if sparc_std_struct_return and incoming is 2.
285         (print_operand): Do not adjust return if
286         sparc_std_struct_return.
287
288 2006-04-04  Roger Sayle  <roger@eyesopen.com>
289
290         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
291         convert in the middle-end.
292         * expr.c (store_expr, store_constructor, get_inner_reference,
293         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
294         Likewise.
295         * tree.c (build_range_type): Likewise.
296
297 2006-04-04  Tom Tromey  <tromey@redhat.com>
298
299         * doc/install.texi (Prerequisites): Mention jar.
300
301 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
302
303         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
304         subsection.
305
306 2006-04-04  Matthias Klose  <doko@debian.org>
307
308         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
309
310 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
311
312         * doc/extend.texi (Function Attributes): Rewrite visibility
313         attribute documentation.
314         * doc/invoke.texi (C++ Dialect Options): Rewrite
315         -fvisibility-inlines-hidden documentation to describe something
316         entirely different, although in practise compatible.
317         (Code Gen Options): Warn about system headers in -fvisibiltity=
318         documentation.
319
320         * doc/extend.texi (Other Builtins): Document that
321         __builtin_nan is a compile-time constant only when its argument
322         is valid.
323
324 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
325
326         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
327         trying to remove TRUNCATE check if all bits outside the new mode
328         are identical to the sign bit.
329
330 2006-04-03  Jeff Law  <law@redhat.com>
331
332         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
333         and operand scanning in some common cases.
334
335 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
336             Dale Johannesen  <dalej@apple.com>
337
338         PR target/19653
339         * regclass.c (struct reg_pref): Update documentation.
340         (regclass): Set prefclass to NO_REGS if memory is the best option.
341         (record_reg_classes): Cope with a prefclass set to NO_REGS.
342         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
343         into account.  For non-registers, equate an empty preferred
344         reload class to a `!' in the constraint; move the if clause to
345         do so after those that reject the insn.
346         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
347         return NO_REGS.
348         (find_dummy_reload): Likewise.
349         * doc/tm.texi (Register Classes): Document what it means
350         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
351         * config/i386/i386.c (ix86_preferred_reload_class): Force
352         using SSE registers (and return NO_REGS for floating-point
353         constants) if math is done with SSE.
354         (ix86_preferred_output_reload_class): New.
355         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
356         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
357         * config/i386/i386.md: Remove # register preferences.
358
359 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
360
361         PR bootstrap/26992
362         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
363         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
364         the type of nb_iter.
365         (instantiate_parameters_1): Convert the operands before calling
366         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
367         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
368
369 2006-04-02  Roger Sayle  <roger@eyesopen.com>
370
371         * builtins.c (dummy_object): Use build_int_cst instead of convert.
372         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
373         instead of convert.
374         * dojump.c (do_jump): Likewise.
375         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
376         * gimplify.c (gimple_boolify, gimplify_init_constructor,
377         gimplify_boolean_expr): Likewise.
378         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
379         * varasm.c (array_size_for_constructor): Likewise.
380         * tree-object-size.c (compute_object_offset): Likewise.
381
382 2006-04-02  Roger Sayle  <roger@eyesopen.com>
383
384         PR middle-end/26977
385         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
386         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
387
388 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
389
390         PR tree-optimization/26939
391         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
392
393 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
394
395         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
396         at_stmt.  Convert the type of operands before calling
397         build_polynomial_chrec.
398         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
399         add_to_evolution_1.
400         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
401         (instantiate_parameters_1): Convert the type of operands before calling
402         build_polynomial_chrec.
403         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
404         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
405         reset_evolution_in_loop): Insert asserts to check the types of the
406         operands.
407         (chrec_type): Moved...
408         (eq_evolutions_p): Use operand_equal_p.
409         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
410         the types of the operands.
411         (chrec_type): ...here.
412         * tree-data-ref.c (create_data_ref): Convert the operands before
413         calling chrec_replace_initial_condition.
414         (same_access_functions, analyze_subscript_affine_affine,
415         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
416         (compute_subscript_distance, analyze_ziv_subscript,
417         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
418         analyze_miv_subscript): Convert the operands before calling
419         chrec_fold_minus or chrec_fold_plus.
420
421 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
422
423         * tree-data-ref.c (compute_all_dependences): Use a pointer to
424         the dependence_relations vector.
425         (compute_data_dependences_for_loop): Adjust call to
426         compute_all_dependences.
427
428 2006-04-01  Roger Sayle  <roger@eyesopen.com>
429             Richard Henderson  <rth@redhat.com>
430
431         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
432         gimple_boolify on the condition before calling gimplify_expr.
433
434 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
435
436         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
437         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
438         the frame size.  Update to use the new macros.
439         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
440         * config/xtensa/ieee754-df.S: Likewise.
441
442 2006-03-31  Richard Henderson  <rth@redhat.com>
443
444         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
445         (make_edges): ... here.  Control fallthru creation with a local
446         variable.  Do not play with fake edges.
447         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
448         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
449         a boolean.
450
451 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
452
453         * dwarf2.h (DW64_CIE_ID): Define.
454         * dwarf2out.c (DWARF_CIE_ID): Define.
455         (output_call_frame_info): Output 0xffffffff before standard 8-byte
456         length header.  Use DWARF_CIE_ID.
457         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
458         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
459
460 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
461
462         * config/sh/linux-atomic.asm: New file.
463         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
464
465 2006-03-31  DJ Delorie  <dj@redhat.com>
466
467         * config/m32c/cond.md: Set condition flags properly throughout.
468         * config/m32c/minmax.md: Likewise.
469         * config/m32c/prologue.md: Likewise.
470         * config/m32c/bitops.md: Likewise.
471         * config/m32c/muldiv.md: Likewise.
472         * config/m32c/mov.md: Likewise.
473         * config/m32c/addsub.md: Likewise.
474         * config/m32c/m32c.md: Likewise.
475         * config/m32c/jump.md: Likewise.
476         * config/m32c/shift.md: Likewise.
477
478         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
479         conditionally output the pattern for this.
480         * config/m32c/m32c.c (flags_needed_for_conditional): New.
481         (m32c_compare_redundant): New.
482         (m32c_output_compare): New.
483         * config/m32c/m32c-protos.h (m32c_output_compare): New.
484
485         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
486         dest, not src.  Allow other 4-byte modes.
487
488 2006-03-30  Denis Chertykov  <denisc@overta.ru>
489
490         * doc/md.texi: Refer to avr/constraints.md instead of
491         avr/avr.h.
492
493 2006-03-30  Roger Sayle  <roger@eyesopen.com>
494
495         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
496         signed vs. unsigned comparison failures on some hosts.
497
498 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
499
500         PR target/26459
501         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
502         change to FLOAT_REGS.
503
504         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
505         (rs6000_override_options): Use it.
506         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
507         only for -mabi=spe/no-spe and -mabi=altivec.
508
509 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
510
511         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
512         !Zdynamiclib.
513
514 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
515
516         * Makefile.in: Rename docdir to gcc_docdir.
517
518 2006-03-30  Roger Sayle  <roger@eyesopen.com>
519
520         PR target/17959
521         * expr.c (emit_group_store):  Optimize group stores into a pseudo
522         register by using a paradoxical subreg to initialize the destination
523         if the first or last member of the group specifies a "low part".
524
525 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
526
527         PR target/26734
528         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
529         * target.h (struct gcc_target.speculate_insn): Change type of the
530         second parameter to 'int'.
531         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
532         the second operand of the DEPS_LIST.
533         (copy_DEPS_LIST_list): Update reference to the second operand of the
534         DEPS_LIST.
535         * rtl.h (alloc_DEPS_LIST): Update signature.
536         * sched-int.h (ds_t): Change typedef to 'int'.
537         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
538
539 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
540
541         * haifa-sched.c (try_ready): Change condition to restore
542         non-speculative pattern of the instruction.
543         (process_insn_depend_be_in_spec): Code to keep probability of the
544         speculative dependence non-decreasing.
545
546 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
547
548         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
549         (single_move_for_movmem): ... this. Also change all uses.
550         (bfin_expand_strmov): Renamed to...
551         (bfin_expand_movmem): ... this. Also change all uses.
552         * config/bfin/bfin.md (movstrsi): Renamed to...
553         (movstrsi): ...this.
554
555 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
556
557         PR tree-optimization/26830
558
559         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
560         (copy_prop_visit_stmt): Remove write-only variable ann.
561         (init_copy_prop): Check variable loop depth here.  Do not simulate
562         memory-tag and virtual operand PHIs except for store copy prop.
563
564 2006-03-30  Richard Guenther  <rguenther@suse.de>
565
566         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
567         variants with double arguments.
568
569 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
570
571         * genpreds.c (write_tm_constrs_h): Delete variable p.
572         * genconditions.c (write_header): Add tm-constrs.h to included
573         headers.
574         * genpeep.c (main): Add toplev.h to included headers.
575         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
576         (build/genpeep.o): Add toplev.h dependency.
577         * config/rs6000/constraints.md: Add "W" constraint.
578
579 2006-03-29  Roger Sayle  <roger@eyesopen.com>
580
581         * stor-layout.c (mode_for_size_tree): Remove restiction on type
582         sizes by correctly testing whether the size fits a host integer.
583         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
584         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
585         SImode range for the default sizetype and bitsizetype.
586
587 2006-03-29  Roger Sayle  <roger@eyesopen.com>
588
589         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
590         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
591         quickly if the argument is already of the correct type.
592         Call fold_build1 instead of build1.  Tidy up blank lines.
593
594 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
595
596         * genemit.c (main): Add tm-constrs.h to included headers.
597         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
598         * genpeep.c (main): Add tm-constrs.h to included headers.
599         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
600         (write_tm_constrs_h): this and write complete file.
601         (write_tm_preds_h): Do not emit satisfies_constraint fns.
602         (write_insn_preds_c): Add tm-constrs.h to included headers.
603         (gen_constrs): New variable.
604         (parse_option): Parse "-c".
605         (main): Invoke write_tm_constrs_h.
606         * genrecog.c (write_header): Add tm-constrs.h to included headers.
607         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
608         (object_out_file): Add tm-constrs.h dependency.
609         (insn-emit.o): Same.
610         (insn-output.o): Same.
611         (insn-peep.o): Same.
612         (insn-preds.o): Same.
613         (insn-recog.o): Same.
614         (tm-constsr.h): New target.
615         (s-constrs-h): New target.
616
617         * config/rs6000/constraints.md: New file.
618         * config/rs6000/rs6000.c: Include tm-constrs.h.
619         (num_insn_constant_wide): Convert to satisfies_constraint.
620         (rs6000_rtx_costs): Convert to satisfies_constraint.
621         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
622         (CONST_OK_FOR_LETTER_P): Delete.
623         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
624         (EXTRA_CONSTRAINT): Delete.
625         (EXTRA_MEMORY_CONSTRAINT): Delete.
626         (EXTRA_ADDRESS_CONSTRAINT): Delete.
627         * config/rs6000/predicates.md: Convert to satisfies_constraint.
628         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
629         satisfies_constraint.
630
631         * config/i386/i386.c: Include tm-constrs.h.
632
633 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
634
635         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
636         * tree-data-ref.c (find_data_references_in_loop,
637         compute_data_dependences_for_loop): Use pointers to VEC.
638         (analyze_all_data_dependences): Adjust calls.
639         * tree-data-ref.h (find_data_references_in_loop,
640         compute_data_dependences_for_loop): Adjust declarations.
641         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
642         compute_data_dependences_for_loop.
643
644 2006-03-29  Paul Brook  <paul@codesourcery.com>
645
646         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
647         (movdf_vfp): Ditto.
648
649 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
650
651         PR tree-optimization/26859
652         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
653         division by zero.
654         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
655         for the step after fold_convert.
656
657 2006-03-29  Paul Brook  <paul@codesourcery.com>
658
659         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
660         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
661
662 2006-03-29  Paul Brook  <paul@codesourcery.com>
663
664         PR middle-end/23623
665         * targhooks.c (default_narrow_bitfield): New fuction.
666         * targhooks.h (default_narrow_bitfield): add prototype.
667         * target.h (gcc_target): Add narrow_volatile_bitfield.
668         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
669         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
670         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
671         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
672
673 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
674
675         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
676         tmake_file.
677         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
678         (NR_C_MODES): Add TDmode, DDmode and SDmode.
679         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
680         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
681         (s390_function_arg_float): Allow SDmode and DDmode values to be
682         passed in floating point registers.
683         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
684         check with SCALAR_FLOAT_MODE_P.
685         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
686
687 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
688
689         PR tree-optimization/25985
690         * tree-ssa-loop-niter.c (number_of_iterations_le,
691         number_of_iterations_ne): Make comments more precise.
692         (number_of_iterations_cond): Add only_exit argument.  Use the
693         fact that signed variables do not overflow only when only_exit
694         is true.
695         (loop_only_exit_p): New.
696         (number_of_iterations_exit): Pass result of loop_only_exit_p to
697         number_of_iterations_cond.
698
699 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
700
701         PR tree-optimization/26643
702         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
703         bit_field_refs.
704
705 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
706
707         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
708         (divsi3_i4_int): Likewise.
709
710 2006-03-28  Roger Sayle   <roger@eyesopen.com>
711
712         * expr.c (emit_group_store): Only create a new pseudo reg if the
713         quantity it needs to hold isn't already a suitable pseudo.
714
715 2006-03-28  Jeff Law  <law@redhat.com>
716
717         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
718         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
719
720 2006-03-28  Roger Sayle  <roger@eyesopen.com>
721
722         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
723         the equivalent ~X & Y, and the symmetry related transformations.
724         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
725         ~X & Y, and symmetry related transforms.
726
727 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
728
729         Revert my 2006-03-27 patches.
730
731 2006-03-28  Roger Sayle  <roger@eyesopen.com>
732
733         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
734         ~(T1)X, when T1 and T2 are integer types of the same precision
735         and (T2)X isn't an extension.
736
737 2006-03-28  Jeff Law  <law@redhat.com>
738
739         PR tree-optimization/26796
740         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
741         need EH edge cleanups rather than purging them immediately.
742         (eliminate_degenerate_phis): Handle queued EH cleanups.
743
744 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
745
746         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
747         from parent_var.
748
749 2006-03-27  Roger Sayle  <roger@eyesopen.com>
750
751         PR middle-end/22524
752         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
753         cast BIT_NOT_EXPR operand to the correct type.
754
755 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
756
757         * tree-loop-linear.c: Don't include varray.h.
758         (gather_interchange_stats, try_interchange_loops,
759         linear_transform_loops): Use VEC instead of VARRAY.
760         * lambda-mat.c: Don't include varray.h.
761         * tree-chrec.c: Same.
762         * lambda-trans.c: Same.
763         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
764         VEC instead of VARRAY.
765         * tree-vectorizer.h: Idem.
766         * tree-data-ref.c (dump_data_references,
767         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
768         initialize_data_dependence_relation, finalize_ddr_dependent,
769         compute_all_dependences, find_data_references_in_loop,
770         compute_data_dependences_for_loop, analyze_all_data_dependences,
771         free_dependence_relation, free_dependence_relations,
772         free_data_refs): Idem.
773         * tree-data-ref.h (data_reference_p, subscript_p): New.
774         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
775         VEC instead of VARRAY.
776         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
777         (find_data_references_in_loop, compute_data_dependences_for_loop,
778         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
779         dump_data_dependence_relations, free_dependence_relations,
780         free_data_refs): Adjust declaration.
781         (lambda_transform_legal_p): Move declaration here...
782         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
783         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
784         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
785         vect_analyze_data_refs): Use VEC instead of VARRAY.
786         * lambda.h (lambda_transform_legal_p): ...from here.
787         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
788         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
789         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
790         tree-chrec.o): Don't depend on VARRAY_H.
791
792 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
793
794         * rtl.def (Copyright): Update date.
795         (DEPS_LIST): Change type of the second operand to 'int'.
796         * target.h (Copyright): Update date.
797         (struct gcc_target.speculate_insn): Change type of the second parameter
798         to 'int'.
799         * lists.c (Copyright): Update date.
800         (alloc_DEPS_LIST): Change signature.  Update reference to the second
801         operand of the DEPS_LIST.
802         (copy_DEPS_LIST_list): Update reference to the second operand of the
803         DEPS_LIST.
804         * rtl.h (Copyright): Update date.
805         (alloc_DEPS_LIST): Update signature.
806         * sched-int.h (Copyright): Update date.
807         (ds_t): Change typedef to 'int'.
808         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
809
810 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
811
812         * haifa-sched.c (Copyright): Update date.
813         (try_ready): Change condition to restore non-speculative pattern
814         of the instruction.
815         (process_insn_depend_be_in_spec): Code to keep probability of the
816         speculative dependence non-decreasing.
817
818 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
819
820         * regrename.c (replace_oldest_value_addr): Initialize a variable to
821         shut up the compiler.
822
823 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
824
825         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
826         to use lib prefix for target.
827         ($(T)libic_invalidate_array_4-200.a): Likewise.
828         ($(T)libic_invalidate_array_4a.a): Likewise.
829
830 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
831             J"orn Rennecke <joern.rennecke@st.com>
832
833         * superh.opt: New file.
834         * sh.c (boardtype, osruntime): Remove.
835         * superh.h (SUBTARGET_OPTIONS): Remove.
836         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
837
838         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
839         arguments with ^ and/or [].
840
841         * config.gcc (sh-*-*): Add quoting to account for quirk of
842         Solaris /bin/sh.
843         Replace == with = in enable_incomplete_targets test.
844
845         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
846         with MASK_LITTLE_ENDIAN.
847
848         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
849         * config/sh/sh.opt: Added to some comments.
850         * config/sh/superh.h: Removed some chaff.
851
852         * config/sh/sh.opt: Add m4-[1234]00* options.
853         * config/sh/sh.c (sh_handle_option): Likewise.
854         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
855         (ic_invalidate_array_4-100.o): New rule.
856         ($(T)libic_invalidate_array_4-100.a): Likewise.
857         (ic_invalidate_array_4-200.o): Likewise.
858         ($(T)libic_invalidate_array_4-200.a): Likewise.
859         (ic_invalidate_array_4a.o): Likewise.
860         ($(T)libic_invalidate_array_4a.a): Likewise.
861         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
862         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
863         m4-200*, and m4a*.
864         * config/sh/crt1.asm: Merged in profiling code.
865         * config/sh/superh.h (STARTFILE_SPEC): Override.
866         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
867         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
868         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
869
870         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
871         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
872         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
873
874         * sh.opt (mpretend-cmove): New option.
875         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
876         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
877         (movsicc): Add TARGET_PRETEND_CMOVE code.
878
879 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
880
881         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
882         s390_class_max_nregs): New function prototypes.
883         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
884         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
885         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
886         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
887
888 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
889
890         * dwarf2out.c (add_location_or_const_value_attribute): Call
891         tree_add_const_value_attribute if nothing else works.
892         (reference_to_unused): New.
893         (rtl_for_decl_init): Use reference_to_unused to decide whether
894         to output an initializer.
895
896 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
897
898         PR target/26459
899         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
900         peephole removing spe frob_di_df_2.
901
902 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
903
904         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
905         (subscript_dependence_tester_1): Declared.
906         (print_dir_vectors, print_dist_vectors): New.
907         (debug_data_dependence_relation): New.
908         (dump_data_dependence_relation): Print more details.
909         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
910         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
911         (save_dist_v, save_dir_v, add_outer_distances,
912         build_classic_dist_vector_1): New.
913         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
914         Don't test for lambda_vector_lexico_pos.
915         (same_access_functions, add_multivariate_self_dist,
916         add_other_self_distances, dir_from_dist): New.
917         (build_classic_dir_vector): Replace implementation almost identical to
918         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
919         dir_from_dist.
920         (subscript_dependence_tester_1): New.
921         (subscript_dependence_tester): Handle the lexicographically negative
922         distance vectors by recomputing the dependence relation.
923         (compute_affine_dependence): Remove parameter loop_nest_depth.
924         (compute_self_dependence): Don't call compute_subscript_distance.
925         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
926         Add a parameter for the loop_nest.
927         (find_loop_nest_1, find_loop_nest): New.
928         (compute_data_dependences_for_loop): Compute the loop nest, and give
929         up if the nest is not well formed.
930         * tree-data-ref.h (loop_p): New.
931         (struct data_dependence_relation): Replace size_vect field with
932         loop_nest, a vec of loops.
933         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
934         (DDR_LOOP_NEST): New.
935         (print_dir_vectors, print_dist_vectors,
936         debug_data_dependence_relation): Declared.
937         (index_in_loop_nest): New.
938         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
939         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
940         distance.
941
942 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
943
944         * simplify-rtx.c (simplify_relational_operation): Call
945         simplify_relational_operation_1 even if mode is VOIDmode.
946
947 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
948
949         PR tree-optimization/26804
950         * tree.h (DECL_CALL_CLOBBERED): New macro.
951         (tree_decl_common): Add call_clobbered_flag.
952         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
953         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
954         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
955         (mark_non_addressable): Ditto.
956         * tree-ssa.c (verify_call_clobbered): New function.
957         (verify_alias_info): Use it.
958         * tree-pass.h (pass_reset_cc_flags): New prototype.
959         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
960         (reset_cc_flags): New function.
961         * passes.c (init_optimization_passes): Call reset_cc_flags after
962         initializing referenced_vars.
963
964 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
965             Roger Sayle  <roger@eyesopen.com>
966
967         PR middle-end/26717
968         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
969         to 1.0 for non-real operands. Implement A / A optimization for
970         complex operands.
971
972 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
973
974         * config/i386/i386.c (size_cost): Correct the comment for
975         cost of storing fp registers.
976         (i386_cost): Likewise.
977         (i486_cost): Likewise.
978         (pentium_cost): Likewise.
979         (pentiumpro_cost): Likewise.
980         (k6_cost): Likewise.
981         (athlon_cost): Likewise.
982         (k8_cost): Likewise.
983         (pentium4_cost): Likewise.
984         (nocona_cost): Likewise.
985         (generic64_cost): Likewise.
986         (generic32_cost): Likewise.
987
988 2006-03-24  Denis Chertykov  <denisc@overta.ru>
989
990         * config/avr/avr-protos.h (extra_constraint): Delete.
991         (extra_constraint_Q): New declaration.
992         * config/avr/constraints.md: New file.
993         * config/avr/avr.md: Include it.
994         (REG_X, REG_Y, REG_Z, REG_W): New constants.
995         (TMP_REGNO, ZERO_REGNO): Likewise.
996         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
997         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
998         (extra_constraint): Delete.
999         (extra_constraint_Q): Test for memory constraint 'Q'.
1000         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
1001         (REG_CLASS_FROM_LETTER): Delete.
1002         (CONST_OK_FOR_LETTER_P): Delete.
1003         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1004         (EXTRA_CONSTRAINT): Delete.
1005         (TMP_REGNO): Delete.
1006         (ZERO_REGNO): Delete.
1007
1008 2006-03-24  Jeff Law  <law@redhat.com>
1009
1010         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
1011         directly.  Call mark_new_vars_to_rename slightly earlier.
1012
1013 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
1014
1015         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
1016         (is_cxx): Likewise.
1017         (gen_compile_unit_die): Use new language types for Objective-C and
1018         Objective-C++.
1019         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
1020         DW_LANG_C_plus_plus.
1021
1022         PR 26793
1023         * config/t-darwin (crt3.o): Work around bug 26840.
1024         * config/darwin-crt3.c: Rewrite.
1025         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
1026
1027 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
1028
1029         * doc/invoke.texi: Document -femit-class-debug-always
1030         * common.opt: Add -femit-class-debug-always.
1031
1032 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1033
1034         * config/s390/s390.c (s390_decompose_address): Allow SImode for
1035         index and base register.
1036         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
1037         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
1038         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
1039         REGNO_OK_FOR_INDEX_P.
1040         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
1041         ADDR_REGNO_P.
1042         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
1043         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
1044         REG_OK_FOR_BASE_P): Definitions removed.
1045
1046 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
1047
1048         PR middle-end/26611
1049         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
1050         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
1051         set yet or weren't marked as local yet.
1052
1053 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1054
1055         * regrename.c (scan_rtx_address): Initialize a variable to shut up
1056         the compiler.
1057
1058 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1059
1060         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
1061         (rs6000_legitimate_small_data_p): Delete.
1062         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
1063         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
1064         and make static.  Add forward declaration.  Update uses.
1065         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
1066         of offsettable_memref_p.
1067         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
1068         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
1069
1070 2006-03-24  Jeff Law  <law@redhat.com>
1071
1072         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
1073         around bug in immediate-use iterator.
1074
1075 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
1076
1077         PR target/26607
1078         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
1079         or __LITTLE_ENDIAN__.
1080
1081 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
1082
1083         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
1084         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
1085         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
1086         * config/sh/sh.opt (mdiv=): Amend description.
1087         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
1088         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
1089         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
1090         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
1091         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
1092         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
1093         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
1094         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
1095         TARGET_DIVIDE_CALL_FP.
1096
1097 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1098
1099         * haifa-sched.c (choose_ready): Fix type of the local variable.
1100         Move local variables.  Add comment.
1101         (check_reg_live): Change signature.  Make callable from debugger.
1102         * sched-int.h (check_reg_live): Update signature.
1103         * sched-ebb.c (check_reg_live): Update parameters.
1104         * sched-rgn.c (check_reg_live): Ditto.
1105         (region_head_or_leaf_p): Check pointer before dereferencing.
1106         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
1107         before reload on optimization levels below 1.
1108
1109 2006-03-23  Richard Henderson  <rth@redhat.com>
1110
1111         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
1112         tls symbols.
1113
1114         PR target/26347
1115         * config/alpha/predicates.md (local_symbolic_operand): Reject
1116         weak symbols.
1117
1118 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
1119
1120         PR tree-opt/26795
1121         * tree-ssa-pre.c (create_value_expr_from): Don't reject
1122         expressions which have overflowed constants.
1123
1124 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
1125
1126         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
1127
1128 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
1129
1130         * cfgloopmanip.c (create_loop_notes): Removed.
1131         * final.c (final_scan_insn): Do not handle loop notes.
1132         * jump.c (squeeze_notes): Ditto.
1133         * cfglayout.c (skip_insns_after_block,
1134         duplicate_insn_chain): Ditto.
1135         * cfgcleanup.c (rest_of_handle_jump2): Do not call
1136         create_loop_notes.
1137         * cfgloop.h (create_loop_notes): Declaration removed.
1138
1139 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
1140
1141         * varasm.c (output_constant_pool): Restore fnname and fndecl
1142         arguments.
1143         (assemble_start_function): Adjust call accordingly.
1144         (assemble_end_function): Likewise.
1145
1146 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1147
1148         PR mudflap/26790
1149         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
1150
1151         PR mudflap/26789
1152         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
1153
1154 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1155
1156         PR driver/22600
1157         * system.h (ICE_EXIT_CODE): New macro.
1158         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
1159         (diagnostic_action_after_output): Likewise.
1160         * gcc.c (fatal_ice): New function.
1161         (execute): Use it instead of fatal.
1162         (fancy_abort): Likewise.
1163         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
1164
1165 2006-03-22  Jeff Law  <law@redhat.com>
1166
1167         * loop-unroll.c (analyze_iv_to_split_insn): Handle
1168         iv_analyze_result returning false.
1169
1170 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
1171
1172         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
1173
1174 2006-03-22  Richard Henderson  <rth@redhat.com>
1175
1176         PR middle-end/26084
1177         * except.c (duplicate_eh_regions_0): New.
1178         (duplicate_eh_region_1): Duplicate the children of the node as
1179         well as the node itself.  Link them up properly.
1180         (duplicate_eh_region_2): Merge into ...
1181         (duplicate_eh_regions): ... here.  Take copy_region argument, and
1182         copy only a sub-tree if asked.  Simplify copying and fixup.
1183         (eh_region_outer_p): New.
1184         * except.h (duplicate_eh_regions): Update decl.
1185         (eh_region_outer_p): Declare.
1186         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
1187         (lower_omp_master): Likewise.
1188         (lower_omp_ordered): Likewise.
1189         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
1190         (move_stmt_r): Use it to remap labels.  Handle recursion vs
1191         remap_decls_p properly.
1192         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
1193         (find_outermost_region_in_block): New.
1194         (new_label_mapper): New.
1195         (move_sese_region_to_fn): Copy eh information to the new function
1196         properly.
1197         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
1198         argument.
1199         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
1200         number.
1201
1202 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
1203
1204         * doc/md.texi (-mshared): Mention that -mshared code can be linked
1205         into shared libraries.
1206
1207 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
1208
1209         * doc/md.texi: Refer to i386/constraints.md instead of
1210         i386/predicates.md.
1211         * config/i386/constraints.md: New file, extracted from...
1212         * config/i386/predicates.md: ...here.
1213         * config/i386/i386.md: Include constraints.md.
1214
1215 2006-03-21  Jason Merrill  <jason@redhat.com>
1216
1217         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
1218
1219         PR middle-end/20297
1220         * expr.c (init_block_move_fn): Force default visibility.
1221         (init_block_clear_fn): Likewise.
1222         * builtins.c (expand_builtin_fork_or_exec): Likewise.
1223         * targhooks.c (default_external_stack_protect_fail): Likewise.
1224
1225 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
1226
1227         * config/mips/predicates.md (const_call_insn_operand): Allow direct
1228         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
1229         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
1230         Use TARGET_OLDABI instead of !TARGET_NEWABI.
1231         (loadgp): Use mips_current_loadgp_style.
1232         (loadgp_noshared): New pattern.
1233         (sibcall_internal): Use MIPS_CALL.
1234         (sibcall_value_internal): Likewise.
1235         (sibcall_value_multiple_internal): Likewise.
1236         (call_internal): Likewise.
1237         (call_value_internal): Likewise.
1238         (call_value_multiple_internal): Likewise.
1239         (call_split): Use MIPS_CALL and add an 'S' constraint.
1240         (call_value_split): Likewise.
1241         (call_value_multiple_split): Likewise.
1242         * config/mips/mips.opt (-mabicalls): Tweak docstring.
1243         (-mshared): New option.
1244         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
1245         (mips_current_loadgp_style): Declare.
1246         * config/mips/mips.c (mips_classify_symbol): Avoid using
1247         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
1248         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
1249         TARGET_ABSOLUTE_ABICALLS.
1250         (override_options): Adjust comments.  Improve the warning that is
1251         issued when -mabicalls and -G are used together.
1252         (mips_file_start): Remove comment.
1253         (mips_current_loadgp_style): New function.
1254         (mips_gnu_local_gp): New variable.
1255         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
1256         LOADGP_ABSOLUTE.
1257         (mips_output_function_prologue): Use mips_current_laodgp_style.
1258         (mips_expand_prologue): Call mips_emit_loadgp before emitting
1259         the cprestore instruction.
1260         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
1261         live for TARGET_ABSOLUTE_ABICALLS.
1262         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
1263         (ASM_SPEC): Pass down -mshared and -mno-shared.
1264         (MIPS_CALL): New macro.
1265         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
1266         definition.
1267         * doc/invoke.texi (-mabicalls): Update documentation.
1268         (-mshared): Document.
1269
1270 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
1271
1272         * config/ia64/unwind-hpux.c: New file.
1273         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
1274
1275 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
1276
1277         PR libgomp/26384
1278         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
1279
1280 2006-03-21  Jeff Law  <law@redhat.com>
1281
1282         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
1283         type conversions of a VR_VARYING source to a wider type.
1284
1285 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1286
1287         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
1288         tm_file on Solaris 10 and later.
1289         (sparc64-*-solaris2*): Likewise.
1290         (sparc-*-solaris2*): Likewise.
1291         * config/sol26.h: Rename to config/sol2-6.h.
1292         * config/sol2-10.h: New file.
1293
1294 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
1295
1296         PR tree-opt/26781
1297         * tree-ssa-pre.c (create_component_ref_by_pieces):
1298         Handle STRING_CST.
1299
1300 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
1301
1302         PR c++/26690
1303         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
1304         return it immediately.
1305
1306 2006-03-21  Michael Matz  <matz@suse.de>
1307
1308         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
1309         New members.
1310         (remove_arc, add_arc): Update num_out_arcs member.
1311         (set_out_arc_insns_equiv_num): Returns nothing instead of number
1312         of out arcs.
1313         (cache_presence): New function.
1314         (compare_states_for_equiv): New function.
1315         (state_is_differed): Don't take number of outargs, adjust callers.
1316         Use new invariant for speeding up.
1317         (init_equiv_class): Create initial classes based on sorted
1318         input.
1319         (partition_equiv_class): Don't track out_arcs_num.
1320         (evaluate_equiv_classes): Call cache_presence on all states and
1321         sort them.
1322
1323 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
1324
1325         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
1326         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
1327         (bfin_valid_reg_p): Test for pseudos explicitly and use only
1328         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
1329         callers changed.
1330         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
1331         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
1332         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
1333         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1334         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
1335         macros.
1336         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
1337         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
1338         (REGNO_REG_CLASS): ARGP is in PREGS.
1339         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
1340         IREGS.
1341         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
1342         to deal with those addresses.
1343         * addresses.h: New file.
1344         * caller-save.c: Include "addresses.h".
1345         (init_caller_save): Use new base_reg_class function.
1346         * rtl-factoring.c: Include "addresses.h".
1347         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
1348         * recog.c: Include "addresses.h".
1349         (preprocess_constraints): Use new base_reg_class function.
1350         * regrename.c: Include "addresses.h".
1351         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
1352         functions.  Keep track of a new var INDEX_CODE to compute valid
1353         classes.
1354         (replace_oldest_value_addr): Likewise.
1355         (replace_oldest_value_mem): Use base_reg_class.
1356         * reload.c: Include "addresses.h".
1357         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
1358         (find_reloads): Use new base_reg_class function.
1359         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
1360         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
1361         all callers and prototype changed.
1362         * reload1.c: Include "addresses.h".
1363         (maybe_fix_stack_asms): Use base_reg_class.
1364         * regclass.c: Include "addresses.h".
1365         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
1366         (init_reg_autoinc): Use new base_reg_class function.
1367         (record_reg_classes): Likewise.
1368         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
1369         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
1370         Use new args to compute necessary class.
1371
1372         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
1373         regrename.o, rtl-factoring.o): Update dependencies.
1374         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
1375         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
1376         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
1377         REG_OK_FOR_INDEX_P): Delete documentation.
1378
1379 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1380
1381         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
1382         from V7 to V9 for Solaris 7 and above.
1383
1384 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
1385
1386         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
1387         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
1388         argument pointers may not alias any other storage.
1389         * common.opt: Define option -fargument-noalias-anything.
1390         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
1391         alias semantics is specified by flag_argument_noalias > 2.
1392
1393 2006-03-20  Jeff Law  <law@redhat.com>
1394
1395         * tree-pass.h (pass_phi_only_copy_prop): Delete.
1396         (pass_phi_only_cprop): Declare.
1397         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
1398         with phi_only_cprop
1399         * tree-ssa-dom.c (degenerate_phi_result): New function.
1400         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
1401         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
1402         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
1403         (eliminate_degenerate_phis): Likewise.
1404         (pass_phi_only_cprop): New pass descriptor.
1405         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
1406         support code.  Callers updated.
1407         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
1408         (store_copy_prop): Likewise.
1409         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
1410
1411 2006-03-20  Jason Merrill  <jason@redhat.com>
1412
1413         PR c++/21764
1414         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
1415         (push_visibility, pop_visibility): Likewise.
1416         * c-pragma.h: Declare them.
1417
1418 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1419
1420         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
1421
1422         * config/sh/sh.c (find_regmode_weight): Change the type of the first
1423         parameter and use get_ebb_head_tail.
1424         (sh_md_init_global): Adjust uses of find_regmode_weight.
1425
1426 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
1427
1428         * function.h (struct function) <x_tail_recursion_reentry>:
1429         Rename to x_stack_check_probe_note.
1430         (tail_recursion_reentry): Rename to stack_check_probe_note.
1431         * function.c: Replace tail_recursion_reentry with
1432         stack_check_probe_note everywhere.
1433         (expand_function_start): Only emit a note for
1434         stack_check_probe_note with -fstack-protect.
1435         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
1436
1437         * emit-rtl.c (remove_unnecessary_notes): Remove.
1438         (pass_remove_unnecessary_notes): Remove.
1439         * rtl.h (remove_unnecessary_notes): Remove prototype.
1440         * final.c (final_start_function): Don't call remove_unnecessary_notes.
1441         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
1442         * passes.c (pass_remove_unnecessary_notes): Don't run it.
1443
1444 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
1445
1446         PR tree-opt/26629
1447         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
1448         (valid_in_set): Handle ARRAY_REF.
1449         Change "if min_variant or VH" to asserts.
1450         (create_component_ref_by_pieces): Handle ARRAY_REF.
1451         (create_expression_by_pieces): Likewise.
1452         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
1453
1454 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
1455
1456         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
1457         is operand of switch, not str[0].
1458
1459 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
1460
1461         * config/rs6000/rs6000.c (rs6000_handle_option): Use
1462         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
1463
1464 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
1465
1466         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
1467         end of insn_extra_address_constraint declaration.
1468
1469 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
1470
1471         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
1472         (no-sum-in-toc): Same.
1473         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
1474         variables.
1475         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
1476         NO_FP_IN_TOC for -fPIC instead of mask.
1477
1478         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
1479         (BOOT_LDFLAGS): Delete.
1480         (LDFLAGS): Delete.
1481         * config/rs6000/t-aix52: Same.
1482
1483         * config/rs6000/rs6000.md (store_multiple_power): Delete.
1484         (stmsi[345678]_power): New.
1485
1486 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
1487
1488         * config/ia64/ia64.opt: Add empty line to end of file.
1489
1490 2006-03-17  Richard Guenther  <rguenther@suse.de>
1491
1492         PR middle-end/26721
1493         * builtins.c (get_pointer_alignment): For component style references
1494         adjust alignment to the component type alignment.  Make sure
1495         to adjust alignment for component access of constants.
1496
1497 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
1498
1499         * config/rs6000/rs6000.md (strlensi): Emit barrier after
1500         unconditional jump.
1501
1502 2006-03-17  Paul Brook  <paul@codesourcery.com>
1503
1504         * doc/install.texi: Docuemnt --with-mode.
1505         * config.gcc: Add --with-mode for arm*-*-*.
1506         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
1507
1508 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
1509
1510         * sh.c (max_labelno_before_reorg): New variable.
1511         (sh_reorg): Initialize it.
1512         (find_barrier): Check max_labelno_before_reorg before using
1513         label_to_alignment.  Take length of explicit alignment insns
1514         into account.  When seeing a UNSPECV_CONST_END, return it.
1515
1516         * sh.c (fixup_mova): Set mode of affected label to QImode.
1517         (untangle_mova): New function.
1518         (find_barrier): Use it.  Check mode of label before decrementing
1519         num_mova.
1520         (sh_reorg): Likewise.
1521         Set mode of all insns back to VOIDmode.
1522
1523         * sh.c (MOVA_LABELREF): New macro.
1524         (mova_p, fixup_mova, sh_reorg): Use it.
1525         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
1526         ADDR_DIFF_VEC matches mova.
1527
1528 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
1529
1530         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
1531         with ATTRIBUTE_UNUSED.
1532
1533 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
1534
1535         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1536         pointer, instead of assuming it is possible to derive the
1537         correct args size from a call insn.
1538
1539 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1540
1541         * rtl.h (CONST_INT_P): Define.
1542         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
1543         instead of GET_CODE(x) == CONST_INT.
1544         (vax_rtx_costs): Likewise.
1545         (vax_output_int_move): Likewise.
1546         (vax_output_int_add): Likewise.
1547         (legitimate_constant_address_p): Likewise.
1548         (index_term_p): Likewise.
1549         * config/vax/vax.h (PRINT_OPERAND): Likewise.
1550         * config/vax/vax.md (and<mode>3): Likewise.
1551         (ashrsi3): Likewise.
1552         (extv): Likewise.
1553         (movstricthi): Likewise.
1554         (movstrictqi): Likewise.
1555         (rotrsi3): Likewise.
1556         (five unnamed insns): Likewise.
1557
1558 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
1559
1560         * doc/tm.texi (SDB and DWARF): Add extra parameter to
1561         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
1562         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
1563         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
1564         Pass to ASM_OUTPUT_DWARF_OFFSET.
1565         * dwarf2out.c (debug_frame_section): New.
1566         (output_call_frame_info): Use debug_frame_section.  Pass it to
1567         dw2_asm_output_offset.
1568         (output_die): Pass appropriate section to dw2_asm_output_offset.
1569         (output_compilation_unit_header): Likewise.
1570         (output_pubnames): Likewise.
1571         (output_aranges): Likewise.
1572         (enum dw_val_class): Break dw_val_class_lbl_offset into
1573         dw_val_class_lineptr and dw_val_class_macptr.
1574         (add_AT_lbl_offset): Delete.
1575         (add_AT_lineptr): New.
1576         (add_AT_macptr): New.
1577         (AT_lbl): Expect a lineptr or macptr.
1578         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
1579         (attr_checksum): Likewise.
1580         (same_dw_val_p): Likewise.
1581         (size_of_die): Likewise.
1582         (value_format): Likewise.
1583         (output_die): Likewise.
1584         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
1585         add_AT_lbl_offset.
1586         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
1587         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
1588         * config/darwin-protos.h (darwin_file_start): New.
1589         (darwin_asm_output_dwarf_offset): New.
1590         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
1591         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
1592         darwin_file_start.
1593         * config/darwin.c (darwin_emit_unwind_label): Don't output label
1594         if not EH section; simplify.
1595         (darwin_file_start): New.
1596         (darwin_asm_output_dwarf_offset): New.
1597         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
1598         mark as 'debug'.
1599         (DEBUG_INFO_SECTION): Likewise.
1600         (DEBUG_ABBREV_SECTION): Likewise.
1601         (DEBUG_ARANGES_SECTION): Likewise.
1602         (DEBUG_MACINFO_SECTION): Likewise.
1603         (DEBUG_LINE_SECTION): Likewise.
1604         (DEBUG_LOC_SECTION): Likewise.
1605         (DEBUG_PUBNAMES_SECTION): Likewise.
1606         (DEBUG_STR_SECTION): Likewise.
1607         (DEBUG_RANGES_SECTION): Likewise.
1608         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
1609         (ASM_OUTPUT_DWARF_OFFSET): New.
1610
1611 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
1612
1613         * config.gcc (tm_defines): Always add to previous value rather
1614         than replacing it.
1615
1616 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
1617
1618         * config/mips/predicates.md (splittable_const_int_operand): New,
1619         split from move_operand.
1620         (splittable_symbolic_operand): New.
1621         (move_operand): Add commentary.  Use splittable_const_int_operand.
1622         Inline mips_atomic_symbolic_constant_p.
1623         * config/mips/mips.md: Add combine splitters for handling moves
1624         of splittable_const_int_operands and splittable_symbolic_operands.
1625         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
1626         (mips_split_symbol): Declare.
1627         (mips_move_integer): Declare.
1628         * config/mips/mips.c (mips_split_p): Make global.
1629         (TARGET_MIN_ANCHOR_OFFSET): Override default.
1630         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
1631         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
1632         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
1633         (mips_offset_within_object_p): Handle block symbols.
1634         (mips_atomic_symbolic_constant_p): Delete.
1635         (mips_cannot_force_const_mem): Return false for constants that
1636         mips_legitimize_move can handle.
1637         (mips_use_blocks_for_constant_p): New function.
1638         (mips_split_symbol): Make global.
1639         (mips_move_integer): Likewise.  Add a temporary register argument.
1640         (mips_legitimize_const_move): Use splittable_const_int_operand and
1641         splittable_symbolic_operand.
1642         (mips_use_anchors_for_symbol_p): New function.
1643         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
1644         (mips_split_p): Declare.
1645
1646 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
1647
1648         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
1649         (mips*-*-linux*): Likewise.
1650
1651 2006-03-16  Roger Sayle  <roger@eyesopen.com>
1652             Daniel Speyer  <dspeyer@wam.umd.edu>
1653
1654         PR middle-end/18259
1655         * tree-dump.c (dump_real): New function.
1656         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
1657         * Makefile.in (REAL_H): New macro for dependencies on real.h.
1658         (tree-dump.o): Add $(REAL_H) to the dependencies.
1659
1660 2006-03-16  Roger Sayle  <roger@eyesopen.com>
1661
1662         PR middle-end/21781
1663         * real.c (real_from_string): If the mantissa is zero, don't bother
1664         parsing the exponent as the result should always be zero.
1665
1666 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
1667
1668         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
1669
1670 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1671
1672         * config/ia64/ia64.c (stops_p): Added explicit initialization.
1673         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
1674         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
1675         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
1676         ia64_sched_finish_global): New static functions to implement
1677         hooks from gcc_target.sched.
1678         (spec_check_no, max_uid, pending_data_specs): New static variables.
1679         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
1680         ia64_spec_check_src_p): New static functions.
1681         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
1682         (TARGET_SCHED_ADJUST_COST): Removed.
1683         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
1684         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
1685         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
1686         TARGET_SCHED_GEN_CHECK,
1687         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1688         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
1689         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
1690         Fixed to handle speculation checks.
1691         (rtx_needs_barrier): Fixed to handle speculative loads and
1692         their checks.
1693         (ia64_variable_issue): Added code to count speculative loads and their
1694         checks.
1695         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
1696         speculative loads.
1697         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
1698         New enumerations.
1699         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
1700         New constants.
1701         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
1702         (ia64_reorg): Reset stops_p to NULL after it is freed.
1703         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
1704         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
1705         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
1706         chk_a.
1707         (data_speculative, control_speculative, check_load): New attributes.
1708         (mov<mode>_advanced, mov<mode>_speculative,
1709         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
1710         zero_extend<mode>di2_speculative,
1711         zero_extend<mode>di2_speculative_advanced): New patterns for
1712         data and control speculative loads.
1713         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
1714         check loads.
1715         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
1716         New pattern for data and control speculation checks.
1717         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
1718         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
1719         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
1720         Auxiliary definitions for the patterns.
1721         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
1722         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
1723         constraints.
1724         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
1725         for speculation.
1726         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
1727         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
1728         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
1729         New resource constraints.
1730         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
1731         for speculation.
1732         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
1733         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
1734         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
1735         msched-in-control-spec, msched-ldc, msched-control-ldc,
1736         msched-spec-verbose, msched-prefer-non-data-spec-insns,
1737         msched-prefer-non-control-spec-insns,
1738         msched-count-spec-in-critical-path): New flags to tune speculative
1739         scheduling.
1740         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
1741         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
1742         msched-in-control-spec, msched-ldc, msched-control-ldc,
1743         msched-spec-verbose, msched-prefer-non-data-spec-insns,
1744         msched-prefer-non-control-spec-insns,
1745         msched-count-spec-in-critical-path): Document new flags.
1746
1747 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1748
1749         * target.h (struct spec_info_def): New opaque declaration.
1750         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
1751         speculate_insn, needs_block_p, gen_check,
1752         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
1753         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
1754         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
1755         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
1756         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1757         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
1758         gcc_target.sched.
1759         (TARGET_SCHED): Use new macros.
1760         * rtl.h (copy_DEPS_LIST_list): New prototype.
1761         * sched-int.h (struct sched_info): Change signature of new_ready field,
1762         adjust all initializations. New fields: add_remove_insn,
1763         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
1764         region_head_or_leaf_p.
1765         (struct spec_info_def): New structure declaration.
1766         (spec_info_t): New typedef.
1767         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
1768         recovery_block, orig_pat.
1769         (glat_start, glat_end): New variables declaraions.
1770         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
1771         New access macros.
1772         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
1773         DETACH_LIFE_INFO, USE_GLAT.
1774         (enum SPEC_SCHED_FLAGS): New enumeration.
1775         (NOTE_NOTE_BB_P): New macro.
1776         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
1777         attach_life_info, debug_spec_status, check_reg_live): New functions.
1778         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
1779         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
1780         sched-ebb.c
1781         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
1782         * ddg.c (get_block_head_tail): Adjust all uses.
1783         * modulo-sched.c (get_block_head_tail): Adjust all uses.
1784         (sms_sched_info): Initialize new fields.
1785         (contributes_to_priority): Removed.
1786         * haifa-sched.c (params.h): New include.
1787         (get_block_head_tail): Adjust all uses.
1788         (ISSUE_POINTS): New macro.
1789         (glat_start, glat_end): New global variables.
1790         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
1791         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
1792         old_last_basic_block, before_recovery, current_sched_info_var,
1793         rgn_n_insns, luid): New static variables.
1794         (insn_cost1): New function.  Move logic from insn_cost to here.
1795         (find_insn_reg_weight1): New function.  Move logic from
1796         find_insn_reg_weight to here.
1797         (reemit_notes, move_insn, max_issue): Change signature.
1798         (move_insn1): Removed.
1799         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
1800         extend_bb): New static functions to support extension of scheduler's
1801         data structures.
1802         (generate_recovery_code, process_insn_depend_be_in_spec,
1803         begin_speculative_block, add_to_speculative_block,
1804         init_before_recovery, create_recovery_block, create_check_block_twin,
1805         fix_recovery_deps): New static functions to support
1806         generation of recovery code.
1807         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
1808         restore_bb_notes, move_block_after_check, move_succs): New static
1809         functions to support ebb scheduling.
1810         (init_glat, init_glat1, attach_life_info1, free_glat): New static
1811         functions to support handling of register live information.
1812         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
1813         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
1814         add_jump_dependencies): New static functions.
1815         (check_cfg, has_edge_p, check_sched_flags): New static functions for
1816         consistancy checking.
1817         (debug_spec_status): New function to call from debugger.
1818         (priority): Added code to handle speculation checks.
1819         (rank_for_schedule): Added code to distinguish speculative instructions.
1820         (schedule_insn): Added code to handle speculation checks.
1821         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
1822         Fixed to handle ebbs.
1823         (move_insn): Added code to handle ebb scheduling.
1824         (max_issue): Added code to use ISSUE_POINTS of instructions.
1825         (choose_ready): Added code to choose between speculative and
1826         non-speculative instructions.
1827         (schedule_block): Added code to handle ebb scheduling and scheduling of
1828         speculative instructions.
1829         (sched_init): Initialize new variables.
1830         (sched_finish): Free new variables.  Print statistics.
1831         (try_ready): Added code to handle speculative instructions.
1832         * lists.c (copy_DEPS_LIST_list): New function.
1833         * sched-deps.c (extend_dependency_caches): New function.  Move logic
1834         from create_dependency_caches to here.
1835         (get_dep_weak, ds_merge): Make global.
1836         * genattr.c (main): Code to output prototype for
1837         dfa_clear_single_insn_cache.
1838         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
1839         (output_dfa_clean_insn_cache_func): Code to output
1840         dfa_clear_single_insn_cache function.
1841         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
1842         n_insns.
1843         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
1844         Removed.
1845         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
1846         New static variables.
1847         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
1848         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
1849         struct sched_info.
1850         (ebb_sched_info): Initialize new fields.
1851         (get_block_head_tail): Adjust all uses.
1852         (compute_jump_reg_dependencies): Fixed to use glat_start.
1853         (schedule_ebb): Code to remove unreachable last block.
1854         (schedule_ebbs): Added code to update register live information.
1855         * sched-rgn.c (region_sched_info): Initialize new fields.
1856         (get_block_head_tail): Adjust all uses.
1857         (last_was_jump): Removed.  Adjust users.
1858         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
1859         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
1860         Implement new hooks.
1861         (check_dead_notes1): New static function.
1862         (struct region): New fields: dont_calc_deps, has_real_ebb.
1863         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
1864         (BB_TO_BLOCK): Fixed to handle EBBs.
1865         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
1866         (ebb_head): New static variable.
1867         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
1868         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
1869         new fields.
1870         (compute_dom_prob_ps): New assertion.
1871         (check_live_1, update_live_1): Fixed to work with glat_start instead of
1872         global_live_at_start.
1873         (init_ready_list): New assertions.
1874         (can_schedule_ready_p): Split update code to begin_schedule_ready.
1875         (new_ready): Add support for BEGIN_CONTROL speculation.
1876         (schedule_insns): Fixed code that updates register live information
1877         to handle EBBs.
1878         (schedule_region): Fixed to handle EBBs.
1879         (init_regions): Use extend_regions and check_dead_notes1.
1880         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
1881         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
1882         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
1883         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
1884         TARGET_SCHED_GEN_CHECK,
1885         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1886         TARGET_SCHED_SET_SCHED_FLAGS): Document.
1887         * doc/invoke.texi (max-sched-insn-conflict-delay,
1888         sched-spec-prob-cutoff): Document.
1889
1890 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1891
1892         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
1893         inter_tick, queue_index.
1894         (struct sched_info): Change signature of init_ready_list field.
1895         Adjust all initializations.
1896         (RESOLVED_DEPS): New access macro.
1897         (ready_add): Remove prototype.
1898         (try_ready): Add prototype.
1899         * sched-rgn.c (init_ready_list): Use try_ready.
1900         (schedule_region): Initialize
1901         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
1902         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
1903         (init_ready_list): Use try_ready.
1904         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
1905         * lists.c (remove_list_elem): Remove `static'.
1906         (remove_free_INSN_LIST_elem): New function.
1907         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
1908         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
1909         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
1910         New constants.
1911         (readyp): New variable.
1912         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
1913         change_queue_index, resolve_dep): New static functions.
1914         (try_ready): New function.  Adjust callers in sched-rgn.c and
1915         sched-ebb.c to use it instead of ready_add.
1916         (clock_var): Move at the begining of file.
1917         (rank_for_schedule): Fix typo.
1918         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
1919         (ready_lastpos): Enforce assertion.
1920         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
1921         update all callers.
1922         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
1923         (schedule_insn): Rewrite to use try_ready and resolve_dep.
1924         (queue_to_ready): Use free_INSN_LIST_list.
1925         (early_queue_to_ready): Fix typo.
1926         (schedule_block): Init readyp.  Move init_ready_list call after the
1927         initialization of clock_var.  Fix error in rejecting insn by
1928         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
1929         that previously corrected INSN_TICKs.  Add code for handling
1930         QUEUE_INDEX.
1931         (set_priorities): Fix typo.
1932         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
1933         Clarify comment and code that keeps current_sched_info->next_tail
1934         non-null.
1935
1936 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1937
1938         * sched-rgn.c (extend_rgns): New static function.
1939         (find_rgns): Use it.
1940         (gather_region_statistics, print_region_statistics): New static
1941         functions.
1942         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
1943         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
1944
1945 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1946             Andrey Belevantsev <abel@ispras.ru>
1947
1948         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
1949         * lists.c (unused_deps_list): New variable.
1950         (free_list): Add assertions to verify the proper distinguishing
1951         between INSN_LISTs and DEPS_LISTs.
1952         (find_list_elem, remove_list_elem, remove_list_node): New static
1953         functions.
1954         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
1955         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
1956         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
1957         (alloc_INSN_LIST): Assert that the list we're working on is indeed
1958         an INSN_LIST.
1959         (free_INSN_LIST_node): Likewise.
1960         * modulo-sched.c (current_sched_info): Initialize flags field.
1961         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
1962         * rtl.def (DEPS_LIST): Define.
1963         * rtl.h: Declare new functions from lists.c.
1964         * sched-deps.c (spec_dependency_cache): New static variable.
1965         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
1966         (add_dependence): Change return type to void.  Move the logic to ...
1967         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
1968         (delete_all_dependences): Add comment about forward_dependency_cache.
1969         Handle spec_dependency_cache.  Handle DEPS_LISTs.
1970         (fixup_sched_groups): Clarify the change of priority of output
1971         and anti dependencies.
1972         (sched_analyze_2): Adjust add_dependence calls to create data
1973         speculative dependence.
1974         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
1975         Adjust all callers.  Handle DEPS_LISTS.
1976         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
1977         presence of speculation.
1978         (init_dependency_caches, free_dependency_caches):
1979         Handle spec_dependency_cache.
1980         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
1981         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
1982         New static functions.
1983         (add_or_update_back_dep, add_or_update_back_forw_dep,
1984         add_back_forw_dep, delete_back_forw_dep): New functions.
1985         * sched-int.h (ds_t, dw_t): New typedefs.
1986         (struct sched_info): Add new field flags.
1987         (struct haifa_insn_data): Add new bitfield has_internal_dep.
1988         Prototype new sched-deps.c functions.
1989         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
1990         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
1991         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
1992         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
1993         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
1994         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
1995         New constants.
1996         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
1997         New enums.
1998         * sched-rgn.c (current_sched_info): Initialize flags field.
1999         (schedule_insns): Initialize current_sched_info before the sched_init
2000         call.
2001         * sched-ebb.c (current_sched_info): Initialize flags field.
2002         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
2003         Call add_or_update_back_dep instead of add_dependence.
2004         Create control speculative dependencies.
2005         (schedule_insns): Initialize current_sched_info before the sched_init
2006         call.
2007
2008 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2009
2010         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
2011         fs->signal_frame.
2012         (sh_fallback_frame_state): Likewise.
2013
2014 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
2015
2016         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
2017         Do switch on default_use_cxa_atexit.
2018         (powerpc*-*-darwin*): Build crt2.o on powerpc.
2019         * config/darwin-crt3.o: New.
2020         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
2021         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
2022         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
2023         OS version.
2024         * config/rs6000/t-darwin: Move crt2.o building to here.
2025         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
2026         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
2027         of __cxa_atexit.
2028
2029 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2030
2031         * config/vax/vax.c (nonindexed_address_p): Change logical negation
2032         from '! xxx' to '!xxx' for coding-style conformance.
2033         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
2034         (EXTRA_CONSTRAINT): Likewise.
2035         * config/vax/vax.md (four unnamed insns): Likewise.
2036
2037 2006-03-15  Paul Brook  <paul@codesourcery.com>
2038
2039         * config/arm/arm.c (minipool_pad): New.
2040         (add_minipool_forward_ref): Include pool alignment padding in address
2041         calculation.
2042         (push_minipool_fix): Set minipool_pad.
2043         (minipool_pad): Ditto.
2044
2045 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2046
2047         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
2048         instead of GET_CODE() == MEM and REG_P() instead of
2049         GET_CODE() == REG.
2050         (print_operand_address): Likewise.
2051         (vax_address_cost): Likewise.
2052         (vax_rtx_costs): Likewise.
2053         (vax_notice_update_cc): Likewise.
2054         (vax_output_int_add): Likewise.
2055         (INDEX_REGISTER_P): Likewise.
2056         (BASE_REGISTER_P): Likewise.
2057         (nonindexed_address_p): Likewise.
2058         (vax_mode_dependent_address_p): Likewise.
2059         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
2060         (PRINT_OPERAND): Likewise.
2061         * config/vax/vax.md (ashlsi3): Likewise.
2062         (ashlsi3): Likewise.
2063         (some more unnamed insns): Likewise.
2064
2065 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
2066
2067         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
2068         iterator-style macro.
2069         (mark_control_dependent_edges_necessary): Update the use of
2070         EXECUTE_IF_CONTROL_DEPENDENT.
2071
2072 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
2073
2074         * config/sh/predicates.md (cache_address_operand): Special.
2075         (ua_address_operand): Likewise.
2076
2077 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
2078
2079         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
2080         loop notes.
2081         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
2082
2083 2006-03-15  Andreas Schwab  <schwab@suse.de>
2084
2085         * gensupport.c (identify_predicable_attribute): Don't free p_false
2086         when it is still in use.
2087
2088 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
2089
2090         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
2091         the default setting here.
2092
2093 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
2094
2095         * tree-pass.h (pass_cfg): Remove.
2096         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
2097         * passes.c (pass_cfg): Don't run it.
2098
2099 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
2100
2101         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
2102         * reg-stack.c (stack_regs_mentioned_data): Change the type to
2103         VEC(char,heap) *.
2104         (stack_regs_mentioned): Update the uses of
2105         stack_regs_mentioned_data.  Don't access the array beyond its
2106         end.
2107         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
2108         Don't include gt-reg-stack.h.
2109
2110         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
2111         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
2112
2113         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
2114
2115         PR middle-end/26684
2116         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
2117         STACK_REGS.
2118
2119 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2120
2121         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
2122
2123 2006-03-14  Richard Guenther  <rguenther@suse.de>
2124
2125         PR tree-optimization/26672
2126         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
2127         SSA form.
2128
2129 2006-03-14  Richard Guenther  <rguenther@suse.de>
2130
2131         PR tree-optimization/26667
2132         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
2133         node for the callees.  Always allow inlining if it will shrink
2134         the function size.
2135
2136 2006-03-14  Richard Guenther  <rguenther@suse.de>
2137
2138         PR middle-end/26659
2139         * builtins.c (get_pointer_alignment): Prefer alignment
2140         information from decls over that from types.
2141
2142 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
2143
2144         PR target/26657
2145         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
2146
2147 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
2148
2149         * config/rs6000/rs6000.opt (mdlmzb): New option.
2150         (msched-prolog, msched-epilog): Use Var not Mask.
2151         * doc/invoke.texi (-mdlmzb): Document.
2152         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2153         MASK_SCHED_PROLOG.
2154         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
2155         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
2156
2157 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
2158
2159         PR rtl-optimization/25739
2160         * bt-load.c (augment_live_range): Free tos pointer.
2161
2162         * gensupport.c (identify_predicable_attribute): Free
2163         p_false pointer.
2164         * gcov.c (create_file_names): Free name pointer.
2165
2166 2006-03-13  Roger Sayle  <roger@eyesopen.com>
2167
2168         PR middle-end/26557
2169         * stmt.c (emit_case_nodes): Handle the case where the index is a
2170         CONST_INT, where the comparison mode is specified by the index type.
2171
2172 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2173
2174         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
2175         is defined.
2176
2177 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
2178
2179         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
2180         (*branch_fp_inverted): Likewise.
2181
2182 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
2183
2184         PR middle-end/25989
2185         * omp-low.c (expand_omp_for_generic): Mark istart0
2186         and iend0 as addressable.
2187
2188 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
2189
2190         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
2191
2192 2006-03-13  Jeff Law  <law@redhat.com>
2193
2194         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
2195         virtual operands are interesting.
2196         (vrp_visit_stmt): Corresponding changes.
2197
2198 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2199
2200         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
2201         of RETS.
2202         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
2203         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
2204         * config/bfin/crti.S: Use it instead of __PIC__.
2205         * config/bfin/crtn.S: Likewise.
2206
2207         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
2208         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
2209         not if flag_pic.
2210         Lose 'G' modifier for call operand.
2211         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
2212         recognize 'G' modifier.
2213
2214 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
2215
2216         PR middle-end/18859
2217         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
2218         * stmt.c (expand_case): Likewise.
2219
2220 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2221
2222         PR rtl-optimization/26254
2223         * loop-invariant.c (seq_insns_valid_p): New function.
2224         (move_invariant_reg): Only emit new code if it is valid.
2225
2226 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2227
2228         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
2229         Removed.
2230         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
2231         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
2232         (commit_one_edge_insertion): Do not look for loop notes.
2233
2234 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2235
2236         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
2237         flag_test_coverage out of loop.
2238
2239 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2240
2241         * final.c (shorten_branches): Remove outdated comment, and turn
2242         the if branch that guards it to continue.
2243
2244 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2245
2246         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
2247         * cfgloop.h (struct loop): Remove unused fields.
2248
2249 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
2250
2251         * doc/invoke.texi (-fdump-rtl-loop): Remove.
2252         (-dL, -fdump-rtl-loop2): Update the dump file names
2253
2254         * doc/invoke.texi: Update dump file names.
2255
2256 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
2257
2258         * predict.c (estimate_probability): Remove.
2259         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
2260         * basic-block.h (estimate_probability): Remove prototype.
2261         * passes.c (finish_optimization_passes): Dump branch prediction or
2262         profiling heuristics to the .profile tree dump.
2263         (init_optimization_passes): Unqueue pass_branch_prob.
2264
2265         * doc/invoke.texi (-fdump-rtl-bp): Remove.
2266
2267 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
2268
2269         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
2270         * rtl.h (LABEL_NEXTREF): Remove field accessor.
2271
2272 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
2273
2274         * function.h (frame_offset_overflow): Declare.
2275         * function.c (frame_offset_overflow): New function.
2276         (assign_stack_local_1): Call it to detect that the offset overflows.
2277         * cfgexpand.c (alloc_stack_frame_space): Likewise.
2278
2279 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
2280
2281         * config/sh/sh.c: Include alloc-pool.h.
2282         (label_ref_list_pool): New alloc pool.
2283         (label_ref_list_t): New type for lists of labels.
2284         (struct pool_node): Make wend a label_ref_list_t.
2285         (add_constant): Use the new type, eradicate LABEL_NEXTREF
2286         references.
2287         (dump_table): Likewise.
2288         (sh_reorg): Set up the alloc pool before using add_constant and
2289         dump_table, and destroy it when finishing.
2290
2291 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
2292
2293         * config/mips/mips.c: Remove redundant comment.
2294
2295 2006-03-10  Jason Merrill  <jason@redhat.com>
2296
2297         PR c/26004
2298         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
2299         the target was declared 'register'.
2300
2301 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
2302
2303         * genpreds.c (write_insn_constraint_len): Change definition of
2304         insn_constraint_len to return size_t to match the declaration.
2305
2306 2006-03-10  DJ Delorie  <dj@redhat.com>
2307
2308         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
2309         start at zero.
2310         (m32c_expand_insv): Fix test for an AND mask.
2311
2312 2006-03-10  Richard Guenther  <rguenther@suse.de>
2313
2314         PR middle-end/26565
2315         * builtins.c (get_pointer_alignment): Handle component
2316         references for field alignment.
2317
2318 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
2319
2320         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
2321         when building with libgloss.
2322         (sh*elf): Implement --without-fp option.
2323         (sh64-superh-linux*): Don't multilib.
2324
2325 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
2326
2327         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
2328
2329 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
2330
2331         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
2332         Set it when one of the replacement functions returned true.
2333         Return TODO_cleanup_cfg if cfgchanged is true.
2334         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
2335
2336 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
2337
2338         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
2339         instead of gen_lowpart.
2340
2341 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
2342
2343         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
2344         interface.
2345         (mips_output_order_conditional_branch): Declare.
2346         * config/mips/mips.h (MIPS_BRANCH): New macro.
2347         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
2348         for the comparison.  Use gen_condjump.
2349         (mips_output_conditional_branch): Rework interface to take the
2350         asm templates for a direct branch and the inverse of a direct branch.
2351         (mips_output_order_conditional_branch): New function.
2352         (mips_builtin_branch_and_move): New function.
2353         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
2354         branch condition.  Use gen_single_cc as the condition for
2355         __builtin_mips_upper_* or __builtin_mips_lower_*.
2356         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
2357         Use VOIDmode for the branch condition.
2358         * config/mips/predicates.md (order_operator): New predicate.
2359         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
2360         (branch_fp): Rename to...
2361         (*branch_fp): ...this.  Remove mode from comparison operator.
2362         Use new mips_output_conditional_branch interface.
2363         (branch_fp_inverted): Rename to...
2364         (*branch_fp_inverted): ...this and update as for *branch_fp.
2365         (*branch_zero<mode>): Rename to...
2366         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
2367         Use mips_output_order_conditional_branch.  Only accept ordered
2368         comparisons.
2369         (*branch_zero<mode>_inverted): Rename to...
2370         (*branch_order<mode>_inverted): ...this and update as for
2371         *branch_order<mode>.
2372         (*branch_equality<mode>): Accept zero as the second operand to
2373         the equality operator.  Use the new mips_output_conditional_branch
2374         interface.
2375         (*branch_equality<mode>_inverted): Likewise.
2376         (condjump): New expander.
2377         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
2378         operator.
2379         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
2380         (bc1any2t, bc1any2f): Likewise.
2381         (single_cc): New expander.
2382         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
2383
2384 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
2385
2386         * doc/md.texi: Update documentation of MIPS constraints.
2387         * config/mips/constraints.md: New file.
2388         * config/mips/mips.md: Include it.
2389         * config/mips/mips.c (mips_char_to_class): Delete.
2390         (override_options): Don't initialize mips_char_to_class.
2391         * config/mips/mips.h (mips_char_to_class): Delete.
2392         (REG_CLASS_FROM_LETTER): Delete.
2393         (CONST_OK_FOR_LETTER_P): Delete.
2394         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2395         (EXTRA_CONSTRAINT_Y): Delete.
2396         (EXTRA_CONSTRAINT_STR): Delete.
2397         (CONSTRAINT_LEN): Delete.
2398         (EXTRA_MEMORY_CONSTRAINT): Delete.
2399
2400 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
2401
2402         * tree-cfg.c (move_block_to_fn): Remove the statements from the
2403         original fn's eh regions.
2404
2405 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
2406
2407         * fold-const.c (build_range_check): Make sure to use a valid type to
2408         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
2409         transformation.
2410
2411         (range_predecessor): New static function.
2412         (range_successor): Likewise.
2413         (merge_ranges): Use them to compute predecessors and successors of
2414         range bounds.
2415
2416 2006-03-09  Roger Sayle  <roger@eyesopen.com>
2417
2418         PR middle-end/26561
2419         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
2420         X op C3, consider whether C3 overflows towards +Inf or -Inf.
2421
2422 2006-03-08  DJ Delorie  <dj@redhat.com>
2423
2424         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
2425         (addpsi3): Expand to include memory operands.  Remove
2426         reload-specific splits.
2427         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
2428         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
2429         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
2430         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
2431         (shift1_qi, shift1_hi, insv): New.
2432         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
2433         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
2434         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
2435         cond_to_int): New.
2436         * config/m32c/m32c-protos.h: Update as needed.
2437         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
2438         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
2439         Fail for unrecognized R* constraints.
2440         (m32c_cannot_change_mode_class): Be more picky about pseudos.
2441         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
2442         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
2443         Add Sp constraint.
2444         (m32c_init_libfuncs): New.
2445         (m32c_legitimate_address_p): Add debug wrapper.
2446         (m32c_rtx_costs): New.
2447         (m32c_address_cost): New.
2448         (conversions): Add 'B' prefix.
2449         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
2450         operands, or word regnames for QI operands.  'B' prints bit
2451         position.
2452         (m32c_expand_setmemhi): New.
2453         (m32c_expand_movmemhi): New.
2454         (m32c_expand_movstr): New.
2455         (m32c_expand_cmpstr): New.
2456         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
2457         (m32c_expand_neg_mulpsi3): Handle non-ints.
2458         (m32c_cmp_flg_0): New.
2459         (m32c_expand_movcc): New.
2460         (m32c_expand_insv): New.
2461         (m32c_scc_pattern): New.
2462         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
2463         a0/a1 out of SIregs.
2464         (STORE_FLAG_VALUE): New.
2465         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
2466         code macros.
2467         (no_insn): New.
2468         * config/m32c/mov.md: Make constraints more liberal.
2469         (zero_extendqihi2): Optimize r0/r1 case.
2470         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
2471         * config/m32c/predicates.md (m32c_any_operand): New.
2472         (m32c_nonimmediate_operand): New.
2473         (m32c_hl_operand): New.
2474         (m32c_r3_operand): New.
2475         (ap_operand): New.
2476         (ma_operand): New.
2477         (memsym_operand): New.
2478         (memimmed_operand): New.
2479         (a_qi_operand): New.
2480         (m32c_eqne_operator): New.
2481         (m32c_1bit8_operand): New.
2482         (m32c_1bit16_operand): New.
2483         (m32c_1mask8_operand): New.
2484         (m32c_1mask16_operand): New.
2485         * config/m32c/blkmov.md: New file.
2486         * config/m32c/t-m32c (MD_FILES): Add blkmov.
2487
2488 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
2489
2490         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
2491         unsigned to fix signed/unsigned comparison issue in
2492         DWARF2_FRAME_REG_OUT.
2493         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
2494         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
2495
2496         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
2497         of ptr into the ENABLE_CHECKING section.
2498
2499 2006-03-08  Jeff Law  <law@redhat.com>
2500
2501         * tree-vrp.c (infer_value_range): Only count pointer uses
2502         and dereferences if -fdelete-null-pointer-checks is enabled.
2503
2504         * tree-vrp.c (find_assert_locations): Infer value ranges for
2505         single use pointers, but do not create ASSERT_EXPRs for them.
2506         When a non-null range is inferred for a pointer, backwards
2507         propagate that range to other equivalent pointers through the
2508         use-def chain.
2509
2510 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
2511
2512         PR bootstrap/26500
2513         * Makefile.in (dvi, html, install-info): Invoke the corresponding
2514         language hook targets.
2515         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
2516         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
2517         if language hook targets were missing.
2518
2519 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
2520
2521         * tree-ssa-opfinalize.h: Removed.
2522         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
2523         dependency.
2524         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
2525         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
2526         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
2527         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
2528         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2529         finalize_ssa_v_must_def_ops): New.
2530
2531 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
2532
2533         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
2534         block as parameter.
2535
2536 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
2537
2538         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
2539
2540         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
2541         addresses with offsets; reorganize.
2542
2543         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
2544         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
2545         (expand_builtin_init_dwarf_reg_sizes): Likewise.
2546
2547 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
2548
2549         PR target/26588
2550         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
2551
2552 2006-03-08  Ben Elliston  <bje@au.ibm.com>
2553
2554         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
2555
2556 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
2557
2558         PR gomp/26238
2559         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
2560         expansion.
2561
2562 2006-03-07  Richard Guenther  <rguenther@suse.de>
2563
2564         PR tree-optimization/26587
2565         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
2566
2567 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
2568
2569         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
2570
2571 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
2572
2573         * hooks.c (hook_bool_mode_rtx_true): New function.
2574         * hooks.h (hook_bool_mode_rtx_true): Declare.
2575         * toplev.c (compile_file): Call output_shared_constant_pool.
2576         * varasm.c (shared_constant_pool): New variable.
2577         (assemble_start_function, assemble_end_function): Remove arguments
2578         from call to output_constant_pool.
2579         (create_constant_pool): New function, split out from...
2580         (init_varasm_status): ...here.
2581         (force_const_mem): Choose between the shared and per-function constant
2582         pools.  Set current_function_uses_const_pool when reusing old entries
2583         as well as when creating new ones.
2584         (mark_constant): Ignore data argument.
2585         (mark_constants): Remove pool argument.
2586         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
2587         to decide whether the function uses a constant pool.
2588         (output_constant_pool_contents): New function, split out from...
2589         (output_constant_pool): ...here.
2590         (output_shared_constant_pool): New function.
2591         (init_varasm_once): Initialize shared_constant_pool.
2592         * output.h (output_constant_pool): Delete.
2593         (output_shared_constant_pool): Declare.
2594         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
2595         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
2596
2597 2006-03-06  Nick Clifton  <nickc@redhat.com>
2598
2599         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
2600         flag_strength_reduce.
2601
2602 2006-03-06  Ben Elliston  <bje@au.ibm.com>
2603
2604         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
2605         x86_64-*-linux* configurations.
2606
2607         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
2608         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
2609
2610 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
2611
2612         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
2613         Remove.
2614         * basic-block.h: Remove the extern for
2615         rediscover_loops_after_threading.
2616
2617         * cfgloop.c (cancel_loop): Make it static.
2618         * cfgloop.h: Remove the prototype for cancel_loop.
2619
2620         * flow.c (recompute_reg_usage): Make it static.
2621         * rtl.h: Remove the prototype for recompute_reg_usage.
2622
2623         * function.c (use_return_register): Make it static.
2624         * function.h: Remove the prototype.
2625
2626 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
2627
2628         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
2629         Remove.
2630         * recog.h: Remove the prototype for
2631         validate_change_maybe_volatile.
2632
2633 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
2634
2635         * rtlanal.c (replace_reg): Remove.
2636         * rtl.h: Remove the prototype for replace_reg.
2637
2638 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
2639
2640         * regclass.c (reg_scan_update): Remove.
2641         (reg_scan_mark_refs): Remove the last argument.
2642         * rtl.h: Remove the prototype for reg_scan_update.
2643
2644 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2645
2646         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
2647         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
2648         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
2649         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
2650         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
2651         loop-invariant.c, omp-low.c, opts.c, passes.c,
2652         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
2653         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
2654         tree-ssa-structalias.c, tree-ssa-threadedge.c,
2655         tree-ssa-threadupdate.c, tree-vect-patterns.c,
2656         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
2657         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
2658
2659 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2660
2661         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
2662         * dwarf2out.h: Remove the prototype for
2663         dwarf2out_add_library_unit_info.
2664
2665 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2666
2667         * tree.c (add_var_to_bind_expr): Remove.
2668         * tree.h: Remove the prototype for add_var_to_bind_expr.
2669
2670 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2671
2672         * regclass.c (n_non_fixed_regs): Remove.
2673         (init_reg_sets_1, globalize_reg): Remove all uses of
2674         n_non_fixed_regs.
2675         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
2676
2677 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2678
2679         * rtlanal.c (insns_safe_to_move_p): Remove.
2680         * rtl.h: Remove the prototype for insns_safe_to_move_p.
2681
2682 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2683
2684         * expmed.c (expand_mult_add): Remove.
2685         * expr.h: Remove the prototype for expand_mult_add.
2686
2687 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
2688
2689         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
2690         and REG_SAVED_VAL_EXP constants.
2691         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
2692         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
2693         Handle regs stored by value.
2694         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
2695         (execute_cfa_program): Handle DW_CFA_val_offset,
2696         DW_CFA_val_offset_sf and DW_CFA_val_expression.
2697         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
2698         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
2699         (uw_install_context_1): Handle target regs stored by value.
2700
2701 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
2702
2703         * tree-sra.c (tree_sra): Return todoflags;
2704         (generate_one_element): Set TODO_update_smt_usage if needed.
2705         (pass_sra): Remove TODO_update_smt_usage.
2706         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
2707         parameter.
2708         (tree_ssa_forward_propagate_single_use_vars): Return
2709         TODO_update_smt_usage if we need to update SMT usage.
2710         (pass_forwprop): Remove TODO_update_smt_usage.
2711
2712 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
2713
2714         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
2715         (correct_use_link): Remove reference to get_stmt_operands.
2716         (update_stmt_operands): Likewise.
2717         (get_modify_expr_operands): New function factored out of
2718         parse_ssa_operands and get_expr_operands.
2719         Try to create V_MUST_DEFs for LHS by default.
2720         (get_expr_operands) <case MODIFY_EXPR>: Call
2721         get_modify_expr_operands.
2722         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
2723         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
2724         (parse_ssa_operands) <case MODIFY_EXPR>: Call
2725         get_modify_expr_operands.
2726
2727 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
2728
2729         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
2730         * tree-flow.h: Remove the prototype for
2731         referenced_var_lookup_if_exists.
2732
2733 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
2734
2735         PR rtl-optimization/26345
2736         PR target/19061
2737         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
2738
2739 2006-03-03  Roger Sayle  <roger@eyesopen.com>
2740
2741         PR tree-optimization/26524
2742         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
2743         fold_convert to create a constant of the appropriate type.
2744
2745 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
2746
2747         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2748         SYMBOL_REF_IN_BLOCK_P.
2749         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
2750         of SYMBOL_FLAG_IN_BLOCK.
2751         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
2752         instead of SYMBOL_REF_IN_BLOCK_P.
2753         * explow.c (use_anchored_address): Likewise.
2754         * rtl.c (rtx_size): Likewise.
2755         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
2756         instead of SYMBOL_FLAG_IN_BLOCK.
2757         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2758         SYMBOL_REF_IN_BLOCK_P.
2759         (assemble_variable): Likewise.
2760         (output_constant_def_contents): Likewise.
2761         (output_constant_pool): Likewise.
2762         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
2763         instead of SYMBOL_FLAG_IN_BLOCK.
2764         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2765         SYMBOL_REF_IN_BLOCK_P.
2766         (SYMBOL_REF_BLOCK): Likewise.
2767         (SYMBOL_REF_OFFSET): Likewise.
2768         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2769         SYMBOL_REF_IN_BLOCK_P.
2770         (SYMBOL_FLAG_IN_BLOCK): Replace with...
2771         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
2772         (SYMBOL_REF_IN_BLOCK_P): Replace with...
2773         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
2774
2775 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
2776
2777         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
2778
2779 2006-03-02  Roger Sayle  <roger@eyesopen.com>
2780
2781         * simplify-rtx.c (simplify_unary_operation): When simplifying
2782         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
2783         that we perform the right shift in the appropriate mode, and
2784         then extend or truncate the result to requested mode.
2785
2786 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
2787
2788         * gengtype.c (main): Handle double_int type.
2789         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
2790         * double-int.c: New file.
2791         * double-int.h: New file.
2792         * system.h: Include doubleint.h.
2793         * Makefile.in (SYSTEM_H): Include double-int.h.
2794         (double-int.o): Add.
2795
2796 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
2797
2798         PR bootstrap/26478
2799         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
2800         copying over it.
2801
2802 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
2803
2804         * tree-vrp.c (remove_range_assertions): Do not update statements
2805         unnecessarily.
2806
2807 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
2808
2809         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
2810         cleanup.
2811         * gcse.c (rest_of_handle_gcse): Ditto.
2812         * except.c (gate_handle_eh): Ditto.
2813         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
2814         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
2815
2816 2006-03-02  Eric Christopher  <echristo@apple.com>
2817
2818         * config/i386/i386.c (machopic_output_stub): Add indirection to
2819         jump.
2820
2821 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
2822
2823         * loop.c: Removed.
2824
2825 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
2826
2827         Sun Niagara specific optimizations.
2828         * config.gcc: Recognize niagara as target.
2829         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
2830         (TARGET_CPU_niagara): Define.
2831         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
2832         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
2833         (CPP_CPU_SPEC): Handle -mcpu=niagara.
2834         (ASM_CPU_SPEC): Likewise.
2835         (PROCESSOR_NIAGARA): New enum entry.
2836         (REGISTER_MOVE_COST): Handle Niagara.
2837         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
2838         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
2839         (sparc_override_options): Recognize "niagara", set appropriate
2840         default MASK_* values for it, and align functions to 32-bytes
2841         by default just like ULTRASPARC/ULTRASPARC3.
2842         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
2843         (sparc64_initialize_trampoline): Likewise.
2844         (sparc_use_sched_lookahead): Use zero for niagara.
2845         (sparc_issue_rate): Use one for niagara.
2846         * config/sparc/niagara.md: New file.
2847         * config/sparc/sparc.md: Include it.
2848         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
2849         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
2850         when default cpu is niagara.
2851         (CPP_CPU_SPEC): Handle -mcpu=niagara.
2852         (ASM_CPU_SPEC): Likewise.
2853         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
2854         when default cpu is niagara.
2855         (ASM_CPU_SPEC): Handle -mcpu=niagara.
2856         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
2857         just like v9/ultrasparc/ultrasparc3.
2858         * doc/invoke.texi: Add documentation for "niagara" and improve
2859         existing documentation for ultrasparc variants.
2860
2861 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
2862
2863         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
2864
2865 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
2866
2867         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
2868         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
2869         and say that only one is needed.
2870         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
2871         * target.h (have_switchable_bss_sections): New hook.
2872         * explow.c (use_anchored_address): Check that the symbol is in a block.
2873         * varasm.c (tls_comm_section, comm_section, lcomm_section)
2874         (bss_noswitch_section): New variables.
2875         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
2876         (get_noswitch_section): New function.
2877         (get_block_for_section): Allow SECT to be null.
2878         (unlikely_text_section_p): Use SECTION_STYLE.
2879         (bss_initializer_p): New function.
2880         (get_variable_section): Move earlier in file.  Take a new argument,
2881         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
2882         Return one of the new *_sections in such cases.
2883         (get_block_for_decl): New function, extracting some logic from
2884         use_blocks_for_decl_p.
2885         (change_symbol_section): Remove in favor of...
2886         (change_symbol_block): ...this new function.
2887         (use_blocks_for_decl_p): Remove checks now performed by
2888         get_block_for_decl.
2889         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
2890         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
2891         (emit_local, emit_bss, emit_common): ...these new functions.
2892         Return true if the alignment was honored.
2893         (emit_tls_common): New function.
2894         (asm_emit_uninitialised): Delete.
2895         (assemble_variable_noswitch): New function, split out from...
2896         (assemble_variable): ...here.  Don't make decisions about common
2897         variables here.  Globalize all public decls that go into non-common
2898         sections.  Check whether SYMBOL_REF_BLOCK is null.
2899         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
2900         (output_constant_pool): Likewise.
2901         (init_varasm_once): Initialize the new section variables.
2902         (have_global_bss_p): New function.
2903         (categorize_decl_for_section): Use bss_initializer_p.
2904         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
2905         (place_block_symbol): Assert that the symbol must be in a block.
2906         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
2907         (TARGET_INITIALIZER): Include it.
2908         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
2909         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
2910         (SECTION_MACH_DEP): Bump by two.
2911         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
2912         (unnamed_section): Mention SECTION_UNNAMED in comment.
2913         (named_section): Likewise SECTION_NAMED.
2914         (noswitch_section_callback): New type.
2915         (noswitch_section): New structure.
2916         (section): Add a noswitch_section alternative.
2917         (SECTION_STYLE): New macro.
2918         (tls_comm_section, comm_section, lcomm_section): Declare.
2919         (bss_noswitch_section, have_global_bss_p): Declare.
2920         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
2921         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
2922         Override.
2923         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
2924         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
2925         Override.
2926
2927 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
2928
2929         * gcc/tree-vrp.c (execute_vrp): Return value.
2930         * gcc/regrename.c (rest_of_handle_regrename): Ditto.
2931         * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
2932         * gcc/tree-complex.c (tree_lower_complex): Ditto.
2933         (tree_lower_complex_O0): Ditto.
2934         * gcc/tracer.c (rest_of_handle_tracer): Ditto.
2935         * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
2936         * gcc/postreload.c (rest_of_handle_postreload): Ditto.
2937         * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
2938         (execute_tail_calls): Ditto.
2939         * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2940         * gcc/tree.h (init_function_for_compilation): Ditto.
2941         * gcc/ipa-cp.c (ipcp_driver): Ditto.
2942         * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
2943         * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
2944         * gcc/final.c (compute_alignments): Ditto.
2945         (rest_of_handle_final): Ditto.
2946         (rest_of_handle_shorten_branches): Ditto.
2947         (rest_of_clean_state): Ditto.
2948         * gcc/omp-low.c (execute_expand_omp): Ditto.
2949         (execute_lower_omp): Ditto.
2950         * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
2951         * gcc/ipa-reference.c (static_execute): Ditto.
2952         * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
2953         * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
2954         (rest_of_handle_machine_reorg): Ditto.
2955         * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
2956         * gcc/flow.c (recompute_reg_usage): Ditto.
2957         (rest_of_handle_remove_death_notes): Ditto.
2958         (rest_of_handle_life): Ditto.
2959         (rest_of_handle_flow2): Ditto.
2960         * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
2961         * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
2962         (do_ssa_store_ccp): Ditto.
2963         (execute_fold_all_builtins): Ditto.
2964         * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
2965         * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
2966         * gcc/ipa-pure-const.c (static_execute): Ditto.
2967         * gcc/cse.c (rest_of_handle_cse): Ditto.
2968         (rest_of_handle_cse2): Ditto.
2969         * gcc/web.c (rest_of_handle_web): Ditto.
2970         * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
2971         * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
2972         * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
2973         * gcc/tree-nrv.c (tree_nrv): Ditto.
2974         (execute_return_slot_opt): Ditto.
2975         * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
2976         (create_structure_vars): Ditto.
2977         * gcc/loop-init.c (rtl_loop_init): Ditto.
2978         (rtl_loop_done): Ditto.
2979         (rtl_move_loop_invariants): Ditto.
2980         (rtl_unswitch): Ditto.
2981         (rtl_unroll_and_peel_loops): Ditto.
2982         (rtl_doloop): Ditto.
2983         * gcc/gimple-low.c (lower_function_body): Ditto.
2984         (mark_used_blocks): Ditto.
2985         * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
2986         * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
2987         (cgraph_early_inlining): Ditto.
2988         * gcc/global.c (rest_of_handle_global_alloc): Ditto.
2989         * gcc/jump.c (cleanup_barriers): Ditto.
2990         (purge_line_number_notes): Ditto.
2991         * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
2992         (rest_of_handle_if_after_reload): Ditto.
2993         * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
2994         (tree_ssa_loop_im): Ditto.
2995         (tree_ssa_loop_unswitch): Ditto.
2996         (tree_vectorize): Ditto.
2997         (tree_linear_transform): Ditto.
2998         (tree_ssa_loop_ivcanon): Ditto.
2999         (tree_ssa_empty_loop): Ditto.
3000         (tree_ssa_loop_bounds): Ditto.
3001         (tree_complete_unroll): Ditto.
3002         (tree_ssa_loop_prefetch): Ditto.
3003         (tree_ssa_loop_ivopts): Ditto.
3004         (tree_ssa_loop_done): Ditto.
3005         * gcc/predict.c (tree_estimate_probability): Ditto.
3006         * gcc/recog.c (split_all_insns_noflow): Ditto.
3007         (rest_of_handle_peephole2): Ditto.
3008         (rest_of_handle_split_all_insns): Ditto.
3009         * gcc/tree-eh.c (lower_eh_constructs): Ditto.
3010         * gcc/regmove.c (rest_of_handle_regmove): Ditto.
3011         (rest_of_handle_stack_adjustments): Ditto.
3012         * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
3013         * gcc/function.c (instantiate_virtual_regs): Ditto.
3014         (init_function_for_compilation): Ditto.
3015         (rest_of_handle_check_leaf_regs): Ditto.
3016         * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
3017         (rest_of_handle_gcse): Ditto.
3018         * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
3019         * gcc/alias.c (rest_of_handle_cfg): Ditto.
3020         * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
3021         * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
3022         * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
3023         * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
3024         * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
3025         * gcc/tree-dfa.c (find_referenced_vars): Ditto.
3026         * gcc/except.c (set_nothrow_function_flags): Ditto.
3027         (convert_to_eh_region_ranges): Ditto.
3028         (rest_of_handle_eh): Ditto.
3029         * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
3030         (remove_unnecessary_notes): Ditto.
3031         * gcc/except.h (set_nothrow_function_flags): Ditto.
3032         (convert_to_eh_region_ranges): Ditto.
3033         * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
3034         * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
3035         * gcc/tree-ssa-pre.c (do_pre): Ditto.
3036         (execute_fre): Ditto.
3037         * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
3038         (rest_of_handle_jump2): Ditto.
3039         * gcc/tree-sra.c (tree_sra): Ditto.
3040         * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
3041         (execute_mudflap_function_decls): Ditto.
3042         * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
3043         (do_store_copy_prop): Ditto.
3044         * gcc/ipa-prop.h (ipcp_driver): Ditto.
3045         * gcc/cfglayout.c (insn_locators_initialize): Ditto.
3046         * gcc/tree-ssa-forwprop.c
3047         (tree_ssa_forward_propagate_single_use_vars): Ditto.
3048         * gcc/cfglayout.h (insn_locators_initialize): Ditto.
3049         * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
3050         * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
3051         (execute_late_warn_uninitialized): Ditto.
3052         * gcc/rtl.h (cleanup_barriers): Ditto.
3053         (split_all_insns_noflow): Ditto.
3054         (purge_line_number_notes): Ditto.
3055         (unshare_all_rtl): Ditto.
3056         (remove_unnecessary_notes): Ditto.
3057         (recompute_reg_usage): Ditto.
3058         (variable_tracking_main): Ditto.
3059         * gcc/integrate.c (emit_initial_value_sets): Ditto.
3060         * gcc/integrate.h (emit_initial_value_sets): Ditto.
3061         * gcc/tree-optimize.c (execute_free_datastructures): Ditto
3062         (execute_free_cfg_annotations): Ditto.
3063         (execute_fixup_cfg): Ditto.
3064         (execute_cleanup_cfg_pre_ipa): Ditto.
3065         (execute_cleanup_cfg_post_optimizing): Ditto.
3066         (execute_init_datastructures): Ditto.
3067         * gcc/tree-object-size.c (compute_object_sizes): Ditto.
3068         * gcc/combine.c (rest_of_handle_combine): Ditto.
3069         * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
3070         * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
3071         (rest_of_handle_reorder_blocks): Ditto.
3072         (rest_of_handle_partition_blocks): Ditto.
3073         * gcc/var-tracking.c (variable_tracking_main): Ditto.
3074         * gcc/tree-profile.c (tree_profiling): Ditto.
3075         * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
3076         * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
3077         * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
3078         (rest_of_handle_sched2): Ditto.
3079         * gcc/basic-block.h (free_bb_insn): Ditto.
3080         * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
3081         * gcc/tree-cfg.c (execute_build_cfg): Ditto.
3082         (remove_useless_stmts): Ditto.
3083         (split_critical_edges): Ditto.
3084         (execute_warn_function_return): Ditto.
3085         (execute_warn_function_noreturn): Ditto.
3086         * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
3087         * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
3088         * gcc/passes.c (execute_one_pass): Run additional
3089         todos returned by execute function.
3090         * gcc/tree-pass.h (struct tree_opt_pass): Make execute
3091         return a value.
3092
3093 2006-03-02  Richard Guenther  <rguenther@suse.de>
3094
3095         * tree-ssa-alias.c (find_used_portions): Consider taking
3096         the address as making the variable not write-only.
3097
3098 2006-03-02  Nick Clifton  <nickc@redhat.com>
3099
3100         * config.gcc (default_use_cxa_atexit): Extend the description of
3101         this configure variable.  Set its default value to "yes" for
3102         Linux, NetBSD and ELF targets on the assumption that they will
3103         use C libraries with the __cxa_atexit function.
3104
3105 2006-03-02  Ben Elliston  <bje@au.ibm.com>
3106
3107         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
3108         parameter as unused to suppress a build warning.
3109
3110 2006-03-02  Ben Elliston  <bje@au.ibm.com>
3111
3112         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
3113         config/dfp-bit.c.
3114
3115 2006-03-01  Roger Sayle  <roger@eyesopen.com>
3116
3117         PR other/26489
3118         * gthr-posix.h (__gthrw2): Define to take three parameters, the
3119         declared name, the weak reference name, and the typeof name.
3120         (__gthrw): Avoid expanding the declared name suffix.
3121         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
3122
3123 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
3124
3125         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
3126         from DWARF 3.
3127         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
3128         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
3129         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
3130         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
3131         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
3132         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
3133         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
3134         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
3135         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
3136         DW_DS_leading_separate, DW_DS_trailing_separate): New.
3137         (DW_END_default, DW_END_big, DW_END_little): New.
3138         (DW_END_lo_user, DW_END_hi_user): Define.
3139         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
3140         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
3141         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
3142         DW_LANG_D): New.
3143
3144 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
3145
3146         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
3147         Update all users.
3148         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
3149         Update all users.
3150         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
3151         Update all users.
3152         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
3153         Update all users.
3154         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
3155         to 'symbol_mem_tag'.
3156         Update all users.
3157         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
3158         rename.
3159
3160 2006-03-01  Roger Sayle  <roger@eyesopen.com>
3161
3162         * builtins.c (fold_builtin_copysign): Delete unreachable code.
3163
3164 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
3165
3166         PR target/25761
3167         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
3168         MACHO_DYNAMIC_NO_PIC_P.
3169         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
3170
3171 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
3172
3173         PR target/26389
3174         * config/darwin-protos.h (darwin_asm_output_anchor):
3175         Declare.
3176         * config/darwin-sections.def (cstring_section):
3177         Add SECTION_MERGE to the flags.
3178         (literal4_section): Likewise.
3179         (literal8_section): Likewise.
3180         (objc_selector_refs_section): Likewise.
3181         (objc_cls_refs_section): Likewise.
3182         * config/darwin.c (darwin_asm_output_anchor): New
3183         function.
3184         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
3185
3186 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
3187
3188         Fix PR tree-optimization/26443
3189         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
3190         to todo and PROP_tmt_usage to properties_destroyed.
3191         * tree-ssa-ccp.c (pass_ccp): Ditto.
3192         (pass_store_ccp): Ditto.
3193         * tree-ssa-dom.c (pass_dominator): Ditto.
3194
3195 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
3196
3197         * tree-ssa-operands.c: Cleanup whitespace.
3198         (get_asm_expr_operands): Move before first invocation.
3199         (get_indirect_ref_operands): Likewise.
3200         (get_tmr_operands): Likewise.
3201         (get_call_expr_operands): Likewise.
3202         (append_def): Likewise.
3203         (append_use): Likewise.
3204         (append_v_may_def): Likewise.
3205         (append_v_must_def): Likewise.
3206         (add_call_clobber_ops): Likewise.
3207         (add_call_read_ops): Likewise.
3208         (add_stmt_operand): Likewise.
3209         (add_virtual_operand): Likewise.
3210         (build_ssa_operands): Likewise.
3211
3212 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
3213
3214         PR middle-end/26022
3215         Revert:
3216         PR middle-end/24437
3217         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
3218         with a call expr to ...
3219         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
3220
3221 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
3222
3223         * tree-vrp.c (extract_range_from_assert): Remove special
3224         handling for types with super-types.
3225
3226 2006-03-01  Ben Elliston  <bje@au.ibm.com>
3227
3228         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
3229         and powerpc64-*-linux* configurations.
3230         * config/t-dfprules: New file.
3231
3232         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
3233         Compile dfp-bit.c from the source directory using -DWIDTH and
3234         $DFP_CFLAGS to control the compilation of that file, rather than
3235         generating width-specific versions in the build directory.
3236         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
3237         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
3238
3239 2006-02-28  Zack Weinberg  <zackw@panix.com>
3240
3241         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
3242         continues to work.
3243
3244 2006-02-28  Eric Christopher  <echristo@apple.com>
3245
3246         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
3247         Set up IN_LIBGCC definition of TARGET_64BIT.
3248         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
3249
3250 2006-02-28  Roger Sayle  <roger@eyesopen.com>
3251
3252         PR middle-end/14752
3253         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
3254         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
3255         cases via the construction of "expr != 0".
3256
3257 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
3258
3259         * alias.c (alias_invariant, alias_invariant_size): Remove.
3260         (record_base_value): Remove.
3261         (memrefs_conflict_p): Don't look at alias_invariant.
3262         (end_alias_analysis): Don't free it.
3263         * alias.h (record_base_value): Remove prototype.
3264
3265 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
3266             Adam Nemet  <anemet@caviumnetworks.com>
3267
3268         * rtl.h (truncated_to_mode): Declare it.
3269         (struct rtl_hooks): Add reg_truncated_to_mode hook.
3270         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
3271         (RTL_HOOKS_INITIALIZER): Include it.
3272         * rtlhooks.c (reg_truncated_to_mode_general): New function.
3273         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
3274         reg_truncated_to_mode.
3275         * rtlanal.c (truncated_to_mode): Define it.
3276         * simplify-rtx.c (simplify_unary_operation_1): Use it.
3277
3278 2006-02-28  Jeff Law  <law@redhat.com>
3279
3280         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
3281         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
3282         the range allowed by TYPE_PRECISION.
3283
3284         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
3285
3286 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
3287
3288         PR tree-optimization/26419
3289         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
3290         values of n.
3291
3292 2006-02-27  Zack Weinberg  <zackw@panix.com>
3293
3294         * doc/md.texi: Fix typo in previous change.
3295
3296 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
3297
3298         * df.c: Remove.
3299
3300 2006-02-27  Zack Weinberg  <zackw@panix.com>
3301
3302         * rtl.def (define_constraint, define_register_constraint)
3303         (define_memory_constraint, define_address_constraint): New MD forms.
3304         * gensupport.c (process_rtx): Put define_constraint etc on the
3305         predicate queue.
3306         * genpreds.c (process_define_predicate): Adjust comment.  Validate
3307         the name, and call validate_exp to validate the expression.
3308         (mark_mode_tests, write_extract_subexp): Can assume correct input.
3309         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
3310         all callers changed.
3311         (validate_exp, needs_variable, struct constraint_data)
3312         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
3313         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
3314         (const_dbl_constraints, constraint_max_namelen)
3315         (have_register_constraints, have_memory_constraints)
3316         (have_address_constraints, have_address_constraints)
3317         (have_extra_constraints, have_const_int_constraints)
3318         (have_const_dbl_constraints, mangle, add_constraint)
3319         (process_define_constraint, process_define_register_constraint)
3320         (write_enum_constraint_num, write_lookup_constraint)
3321         (write_insn_constraint_len, write_regclass_for_constraint)
3322         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
3323         (write_insn_extra_memory_constraint)
3324         (write_insn_extra_address_constraint)
3325         (write_satisfies_constraint_fns): New.
3326         (write_tm_preds_h): If we have new-style constraint definitions,
3327         prototype the functions generated from them, and define the
3328         old constraint interface (still used by generic code) in terms of
3329         those functions.
3330         (write_insn_preds_c): If we have new-style constraint definitions,
3331         generate all relevant functions from those definitions.
3332         (main): Handle define_constraint etc.
3333         * genoutput.c (struct constraint_data, indep_constraints)
3334         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
3335         (mdep_constraint_len): New data structures and functions, defined
3336         #ifdef USE_MD_CONSTRAINTS.
3337         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
3338         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
3339         use new logic to validate operand constraints against constraint
3340         definitions.
3341         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
3342         defined.
3343         * defaults.h: If none of the old-style constraint macros are
3344         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
3345         old-style macros; and poison REG_CLASS_FROM_LETTER,
3346         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
3347         EXTRA_CONSTRAINT.
3348         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
3349         * doc/md.texi: Document new constraint-definition mechanism and the
3350         C interface it provides.  Remove references to old mechanism
3351         elsewhere in the document.
3352         (Machine Constraints): Use pathnames relative to gcc directory,
3353         i.e. config/ARCH/FILE.  Change i386 section to refer to
3354         config/i386/predicates.md; update that section to match docstrings.
3355         * doc/tm.texi: Move all documentation of the old constraint-
3356         definition macros to their own section, clearly mark as obsolete.
3357
3358         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
3359         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
3360         definitions.
3361         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
3362         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
3363         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
3364         constraint strings.
3365         (splits and peepholes): Use satisfies_constraint_*.
3366         * config/i386/i386.c (memory_address_length)
3367         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
3368
3369 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
3370
3371         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
3372         scalar operation to be put back into the loop.
3373
3374 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
3375
3376         PR other/26208
3377         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
3378         (extract_cie_info): Handle S flag in augmentation string.
3379         (execute_cfa_program): If context->signal_frame, execute also
3380         fs->pc == context->ra instructions.
3381         (uw_frame_state_for): If context->signal_frame, don't subtract one
3382         from context->ra to find FDE.
3383         (uw_update_context_1): Set context->signal_frame to
3384         fs->signal_frame.
3385         (_Unwind_GetIPInfo): New function.
3386         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
3387         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
3388         of _Unwind_GetIP.
3389         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
3390         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
3391         * unwind-compat.c (_Unwind_GetIPInfo): New function.
3392         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
3393         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
3394         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
3395         * config/i386/linux-unwind.h (x86_fallback_frame_state,
3396         x86_64_fallback_frame_state): Set fs->signal_frame.
3397         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
3398         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
3399         (frob_update_context): Likewise.  Workaround missing S flag in
3400         Linux 2.6.12 - 2.6.16 kernel vDSOs.
3401         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
3402         Remove the psw_addr + 1 hack.
3403
3404 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
3405
3406         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
3407         with aggregates here.
3408         (find_func_aliases): Remove code for &<aggregate> from here.
3409
3410 2006-02-26  Roger Sayle  <roger@eyesopen.com>
3411
3412         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (~X & C) eq/ne 0 as
3413         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
3414         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
3415         as (X & C) ne/eq 0.
3416
3417 2006-02-26  Roger Sayle  <roger@eyesopen.com>
3418
3419         PR middle-end/19983
3420         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
3421
3422 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
3423
3424         * opts.c (decode_options): Do not handle flag_strength_reduce.
3425         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
3426         and OPT_fstrength_reduce.
3427         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
3428         flag_prefetch_loop_arrays for being nonzero.
3429         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
3430         no-ops.
3431         (fprefetch-loop-arrays-rtl): Removed.
3432         (flag_prefetch_loop_arrays): Do not specify the value.
3433
3434         * doc/passes.texi: Update documentation of loop optimizer
3435         passes.
3436         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
3437         -frerun-loop-opt): Remove.
3438
3439 2006-02-26  Richard Guenther  <rguenther@suse.de>
3440
3441         PR tree-optimization/26421
3442         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
3443         in function calls that are ADDR_EXPRs as using the whole structure.
3444
3445 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
3446
3447         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
3448         * tree-pass.h (pass_loop_optimize): Remove.
3449         * passes.c (pass_loop_optimize): Never run it.
3450         * toplev.c (backend_init): Don't call init_loop.
3451         * opts.c (flag_loop_optimize_set): Remove.
3452         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
3453         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
3454         the old RTL loop optimizer when profiling enabled.
3455         * predict.c (tree_estimate_probability): Always strip builtin_expect.
3456         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
3457         pre-headers for the sake of the old RTL loop optimizer.
3458         * Makefile.in: Remove all references to loop.o.
3459
3460         * doc/invoke.texi: Remove all references to -floop-optimize
3461         and -frerun-loop-opt.
3462
3463 2006-02-26  Zack Weinberg  <zackw@panix.com>
3464
3465         * doc/md.texi (Machine Constraints): Refer to all files with paths
3466         relative to gcc directory (i.e. config/CPU/file).  Add missing
3467         @table @code ... @end table to M32C subsection.
3468
3469 2006-02-26  Roger Sayle  <roger@eyesopen.com>
3470
3471         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
3472         (X & 1) == 0.
3473         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
3474
3475 2006-02-26  Roger Sayle  <roger@eyesopen.com>
3476             James A. Morrison  <phython@gcc.gnu.org>
3477
3478         PR middle-end/21137
3479         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold ((X>>C1)&C2) eq/ne 0,
3480         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
3481         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
3482         signedness of the shift operation.
3483
3484 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
3485
3486         PR tree-optimization/26359
3487         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
3488
3489 2006-02-25  Roger Sayle  <roger@eyesopen.com>
3490
3491         * simplify-rtx.c (simplify_relational_operation_1):  Simplify
3492         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
3493         as X == 0, and some symmetry related transformations.
3494         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
3495
3496 2006-02-25  Roger Sayle  <roger@eyesopen.com>
3497
3498         PR middle-end/23673
3499         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (X^Y) == 0 as X == Y
3500         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
3501         symmetry related transformations.  Fold (X^C1) == C2 as
3502         X == (C1^C2).
3503
3504 2006-02-25  Juergen Weigert  <jw@suse.de>
3505         Richard Guenther  <rguenther@suse.de>
3506
3507         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
3508
3509 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
3510
3511         * combine.c (gen_lowpart_or_truncate): Call
3512         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
3513
3514 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
3515
3516         * doc/invoke.texi: Move -fopenmp description to "Options for
3517         Code Generation".
3518         Remove reference to -lgomp.
3519
3520 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
3521
3522         * doc/install.texi: Require GNU tar version 1.14.
3523
3524 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
3525
3526         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
3527         * doc/invoke.texi (C++ Dialect Options): Document
3528         -fno-use-cxa-get-exception-ptr.
3529         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
3530         * configure: Regenerate.
3531         * c.opt (fuse-cxa-get-exception-ptr): New.
3532         * c-opts.c (c_common_handle_option): Handle
3533         OPT_fuse_cxa_get_exception_ptr.
3534         * c-common.c (flag_use_cxa_atexit): Update documentation.
3535         (flag_use_cxa_get_exception_ptr): New.
3536         * c-common.h (flag_use_cxa_get_exception_ptr): New.
3537         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
3538         documentation.
3539         (C_COMMON_OVERRIDE_OPTIONS): New.
3540
3541 2006-02-24  Roger Sayle  <roger@eyesopen.com>
3542
3543         PR middle-end/24952
3544         * combine.c (try_combine): Explicitly check whether GET_CODE is
3545         a SET or a CLOBBER, instead on checking that it isn't a USE.
3546
3547 2006-02-24  Roger Sayle  <roger@eyesopen.com>
3548
3549         * fold-const.c (fold_comparison): New subroutine of fold_binary
3550         containing transformations common to both the equality and
3551         ordering relational operators, factored out of fold_binary.
3552         (fold_binary): Separate out the equality operators (EQ_EXPR
3553         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
3554         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
3555         transformations common to both.
3556         (fold_div_compare): Fix latent bugs in the previously unreachable
3557         LT_EXPR and GE_EXPR cases.
3558
3559 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
3560
3561         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
3562         decl libname for clog to __clog on AIX.
3563
3564         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
3565
3566 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
3567
3568         PR target/26453
3569         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
3570         output traceback table for thunks.  Localise rs6000_stack_info call.
3571
3572 2006-02-23  Roger Sayle  <roger@eyesopen.com>
3573             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3574
3575         * gthr-posix.h (__gthrw): Fix typo in comment.
3576
3577 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
3578
3579         * doc/cpp.texi (Character sets): Document that we do support
3580         input files to be in any character set.
3581
3582 2006-02-23  Jeff Law  <law@redhat.com>
3583
3584         * tree.h (PHI_ARG_NONZERO): Remove.
3585         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
3586         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
3587         node to the new node.
3588
3589         PR tree-optimization/26425
3590         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
3591         min/max, then assume its varying.
3592
3593 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
3594
3595         PR rtl-optimization/26316
3596         * rtlanal.c (enum may_trap_p_flags): New.
3597         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
3598         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
3599         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
3600         (may_trap_after_code_motion_p): New function.
3601         * loop-invariant.c (find_identical_invariants): Fix dump formating.
3602         (find_invariant_insn): Use may_trap_after_code_motion_p.
3603         * rtl.h (may_trap_after_code_motion_p): Declare.
3604
3605 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
3606
3607         * emit-rtl.c (immed_double_const): Cleanup.
3608
3609 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
3610
3611         Fix PR tree-optimization/26376
3612         * tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
3613         remove assert.
3614
3615 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
3616
3617         PR middle-end/26412
3618         * gimplify.c (omp_add_variable): Guard variable size decl test with
3619         DECL_SIZE (decl) check.
3620
3621 2006-02-23  Richard Guenther  <rguenther@suse.de>
3622
3623         PR middle-end/26439
3624         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
3625         like aggregate types.
3626
3627 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
3628
3629         * configure.ac: Add --with{,out}-long-double-128 configure option.
3630         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
3631         * configure: Rebuilt.
3632         * config.in: Rebuilt.
3633         * doc/install.texi (Options specification): Document
3634         --with-long-double-128.
3635
3636         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
3637         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
3638         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
3639         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
3640
3641 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
3642
3643         * config/s390/s390.c (override_options): Handle
3644         TARGET_DEFAULT_LONG_DOUBLE_128.
3645
3646         * config/alpha/alpha.c (override_options): Handle
3647         TARGET_DEFAULT_LONG_DOUBLE_128.
3648
3649         * config/sparc/sparc.c (sparc_override_options): Handle
3650         TARGET_DEFAULT_LONG_DOUBLE_128.
3651
3652 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
3653
3654         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
3655         (real-install-headers-tar, real-install-headers-cpio)
3656         (real-install-headers-cp): New targets.
3657
3658 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
3659
3660         * tree.h (variable_section): Delete.
3661         * varasm.c (variable_section): Delete.
3662
3663 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
3664
3665         * install.texi: Add notes on install.texi2html.
3666         (Building in parallel): Do not use footnotes.
3667
3668 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
3669
3670         PR libgomp/26234
3671         * doc/install.texi (Configuration): Document --disable-libgomp.
3672
3673 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
3674
3675         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
3676
3677 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
3678
3679         * config/i386/sse.md (vec_extractv2df_1_sse): New.
3680         (vec_extractv2df_0_sse): New.
3681
3682 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
3683
3684         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
3685         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
3686         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
3687         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
3688         to the result of the expression.
3689         (def_cfa_1): Adjust.
3690         (frame_pointer_cfa_offset): Rename to...
3691         (frame_pointer_fb_offset): ... this.  Adjust all uses.
3692         (convert_cfa_to_loc_list): Rename to...
3693         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
3694         Pass it on to build_cfa_loc.
3695         (compute_frame_pointer_to_cfa_displacement): Rename to...
3696         (compute_frame_pointer_to_fb_displacement): ... this.  New
3697         offset parameter.  Use it in computation.
3698         (gen_subprogram_die): Compute cfa_fb_offset with the new
3699         macro, and use it to compute the fb loc list and the
3700         displacement.
3701
3702 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
3703
3704         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
3705         replaced with register_operand.
3706         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
3707         non-DREG is expensive.
3708         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
3709         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
3710         involving memory.
3711
3712 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
3713
3714         * doc/install.texi2html: Use set -e.
3715
3716 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
3717
3718         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
3719         (ASM_OUTPUT_SHARED_LOCAL): Delete.
3720         * doc/invoke.texi (-fshared-data): Delete.
3721         * common.opt (fshared-data): Delete.
3722         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
3723         (assemble_static_space): Remove #if 0 code.
3724         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
3725         (ASM_OUTPUT_SHARED_LOCAL): Poison.
3726         * config/cris/cris.h: Remove FIXME.
3727
3728 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
3729
3730         * doc/sourcebuild.texi (Front End Directory): No more double-colon
3731         hooks.
3732
3733 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
3734
3735         PR middle-end/26379
3736         * combine.c (simplify_shift_const_1): Disable nested shifts
3737         optimization for vector shifts.
3738
3739 2006-02-20  Roger Sayle  <roger@eyesopen.com>
3740
3741         PR tree-optimization/26361
3742         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
3743         of unsigned integer types.
3744
3745 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
3746
3747         * tree-chrec.c (eq_evolutions_p): New.
3748         * tree-chrec.h (eq_evolutions_p): Declared.
3749         * tree-data-ref.c: Fix formatting.
3750         (datadep_stats, dependence_stats): New.
3751         (gcd): Moved...
3752         (print_direction_vector): New.
3753         (dump_data_dependence_relation): Use print_direction_vector.
3754         (object_analysis, create_data_ref): Handle COMPONENT_REF.
3755         (compute_subscript_distance): Static.
3756         (initialize_data_dependence_relation): Static.  Get the number
3757         of loops surrounding the references from the callers, and initialize
3758         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
3759         base_object_differ_p analyzers.
3760         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
3761         compute_overlap_steps_for_affine_1_2,
3762         analyze_subscript_affine_affine): Count the classified dependences.
3763         Print a message when a test failed.
3764         (can_use_analyze_subscript_affine_affine): New.
3765         (analyze_siv_subscript): Compute the data dependences on symbolic
3766         scevs that verify can_use_analyze_subscript_affine_affine.
3767         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
3768         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
3769         Handle symbolic scevs.
3770         (analyze_overlapping_iterations): Let symbolic affine scevs to be
3771         analyzed.
3772         (subscript_dependence_tester): Moved...
3773         (build_classic_dist_vector, build_classic_dir_vector): Don't use
3774         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
3775         DDR_SIZE_VECT instead of getting it in parameter.
3776         (subscript_dependence_tester): ... here.  Take as a parameter
3777         loop_nest_depth.  Call build_classic_dist_vector and
3778         build_classic_dir_vector.
3779         (compute_affine_dependence): Update subscript_dependence_tester
3780         parameters.  Update datadep_stats counters.  Call
3781         compute_subscript_distance.
3782         (compute_self_dependence): Save the dist and dir vectors.  Call
3783         compute_subscript_distance.
3784         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
3785         (compute_all_dependences): Reorder parameters as they were before
3786         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
3787         compute_subscript_distance.  Update the use of
3788         compute_affine_dependence and initialize_data_dependence_relation.
3789         (find_data_references_in_loop): Handle COMPONENT_REF.
3790         (compute_data_dependences_for_loop): Initialize dependence_stats.
3791         Don't call build_classic_dist_vector and build_classic_dir_vector.
3792         Update the parameters of initialize_data_dependence_relation and
3793         compute_all_dependences.  Print the statistics from datadep_stats.
3794         (analyze_all_data_dependences): Static.  Not used until the pass for
3795         checking the data dependences is contributed.
3796         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
3797         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
3798         (initialize_data_dependence_relation, compute_affine_dependence,
3799         analyze_all_data_dependences, compute_subscript_distance): Removed.
3800         (print_direction_vector): New.
3801         * lambda.h (gcd): ... here.
3802         (lambda_vector_gcd): Moved here from gcd_vector.
3803         * lambda-code.c (gcd, gcd_vector): Removed.
3804         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
3805         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
3806
3807 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
3808
3809         * ipa-type-escape.c: Tidy some comments and white space.
3810         * tree-ssa-operands.c: Likewise.
3811
3812 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
3813
3814         PR tree-opt/25879
3815         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
3816         (dump_decl_name): Do not walk the decl tree chains.
3817         * tree-pass.h (TDF_CHAIN): Remove.
3818
3819 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
3820
3821         * Makefile.in (C): Remove
3822         (PROTO): Remove
3823         (.PHONY): Remove C and PROTO
3824
3825 2006-02-20  Roger Sayle  <roger@eyesopen.com>
3826
3827         PR middle-end/26236
3828         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
3829         deprecated CHAR_TYPE tree code.
3830
3831 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
3832
3833         * configure.ac (target_list): Add install-info, dvi, html.
3834         * configure: Regenerate.
3835
3836         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
3837         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
3838         treelang/Make-lang.in: Do not use double-colon rules.
3839
3840 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
3841
3842         * tree.h (struct tree_memory_tag): Add is_used_alone member.
3843         (TMT_USED_ALONE): New macro.
3844         * tree-pass.h (PROP_tmt_usage): New property.
3845         (TODO_update_tmt_usage): New todo.
3846         * tree-ssa-alias.c (updating_used_alone): New variable.
3847         (recalculate_used_alone): New function.
3848         (compute_may_aliases): Set updating_used_alone, call
3849         recalculate_used_alone.
3850         * tree-sra.c (pass_sra): Note that this pass destroys
3851         PROP_tmt_usage, and add TODO_update_tmt_usage.
3852         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
3853         * tree-flow.h (updating_used_alone): Prototype.
3854         (recalculate_used_alone): Ditto.
3855         * passes.c (execute_todo): Add code to set updating_used_alone,
3856         and call recalculate.
3857         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
3858         for clobber if used alone, and add assert to verify used_alone
3859         status.
3860
3861 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
3862
3863         * config/s390/s390.c (legitimize_pic_address): Assertions checking
3864         for non tls symbols added.
3865         (legitimize_address): Do nothing for PLUS expressions if one of the
3866         addends is a tls symbol reference.
3867
3868 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
3869
3870         PR bootstrap/25476
3871
3872         * Makefile.in (LDFLAGS): Define from autoconf substitution.
3873
3874         * Makefile.in (BOOTSTRAPPING): New.
3875         (quickstrap): New definition if BOOTSTRAPPING=yes.
3876
3877         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
3878         * configure.ac: Substitute all_selected_languages with the languages
3879         that were configured.  For all the other variables except
3880         lang_specs_files, include all the languages in the tree.
3881         * configure: Regenerate.
3882
3883         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
3884         if there is one.  Run the commands to run fixincludes in the same
3885         subshell.
3886
3887         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
3888         * doc/install.texi: Document exact conventions for searching target tools.
3889         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
3890         something more about building an Ada cross-compiler.  Don't list GNU Make
3891         requirements which affect all platforms.
3892
3893 2006-02-19  Roger Sayle  <roger@eyesopen.com>
3894
3895         PR middle-end/19543
3896         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
3897         only equivalent if the have both the same mode and precision.
3898
3899 2006-02-20  Ben Elliston  <bje@au.ibm.com>
3900
3901         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
3902
3903 2006-02-19  Roger Sayle  <roger@eyesopen.com>
3904             Steven Bosscher  <stevenb.gcc@gmail.com>
3905
3906         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
3907         constant pool references to identify stack mode constants.
3908         * rtlanal.c (constant_pool_constant_p): New predicate to check
3909         whether operand is a floating point constant in the pool.
3910         * rtl.h (constant_pool_constant_p): Prototype here.
3911         * loop.c (scan_loop): Avoid hoisting constants from the constant
3912         pool on STACK_REGS targets.
3913         (load_mems): Likewise.
3914         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
3915         loads into x87 registers expensive in terms of register pressure.
3916
3917 2006-02-19  Roger Sayle  <roger@eyesopen.com>
3918
3919         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
3920         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
3921
3922 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
3923
3924         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
3925         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
3926
3927 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
3928
3929         * doc/invoke.texi: Document -fipa-pta.
3930         * common.opt: Add ipa-pta option.
3931         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
3932         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
3933         (do_ds_constraint): Ditto.
3934         (get_constraint_for): Only add to referenced_vars if
3935         referenced_vars exists.
3936         (insert_into_field_list): Rewrite to do this unsorted.
3937         (insert_into_field_list_sorted): Rename old insert_into_field_list
3938         to this.
3939         (create_function_info_for): Use insert_into_field_list_sorted.
3940         (create_variable_info_for): Rewrite so it uses unsorted version,
3941         since the field list is sorted.
3942         (intra_create_variable_infos): Only add to referenced_vars if
3943         referenced_vars exists.
3944         (ipa_pta_execute): Init heapvars, and delete when done.
3945         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
3946
3947 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3948
3949         * doc/install.texi: Add missing `@samp'.
3950
3951 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
3952
3953         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
3954         Use the arguments.
3955
3956 2006-02-18  Mark Wielaard  <mark@klomp.org>
3957
3958         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
3959         who added new 4.1 features, bug fixes and integration support.
3960
3961 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
3962
3963         PR target/26350
3964         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
3965         MEM for ABI_V4 pic.
3966
3967 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
3968
3969         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
3970         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
3971         (copy_insn_1): Likewise.  Don't copy each field individually.
3972         Reindent.
3973         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
3974         of RTX_SIZE.
3975         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
3976         * rtl.c (rtx_size): Rename variable to...
3977         (rtx_code_size): ...this.
3978         (rtx_size): New function.
3979         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
3980         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
3981         Reindent.
3982         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
3983         * rtl.h (rtx_code_size): New variable.
3984         (rtx_size): Change from a variable to a function.
3985         (RTX_SIZE): Rename to...
3986         (RTX_CODE_SIZE): ...this.
3987
3988         PR target/9703
3989         PR tree-optimization/17106
3990         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
3991         (Anchored Addresses): New section.
3992         * doc/invoke.texi (-fsection-anchors): Document.
3993         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
3994         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
3995         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
3996         * hooks.c (hook_bool_mode_rtx_false): New function.
3997         * hooks.h (hook_bool_mode_rtx_false): Declare.
3998         * gengtype.c (create_optional_field): New function.
3999         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
4000         SYMBOL_REF_IN_BLOCK_P is true.
4001         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
4002         (min_anchor_offset, max_anchor_offset): Likewise.
4003         (use_anchors_for_symbol_p): New hook.
4004         * toplev.c (compile_file): Call output_object_blocks.
4005         (target_supports_section_anchors_p): New function.
4006         (process_options): Check that -fsection-anchors is only used on
4007         targets that support it and when -funit-at-a-time is in effect.
4008         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
4009         if the decl doesn't have one.
4010         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
4011         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
4012         of force_const_mem through use_anchored_address.
4013         (expand_expr_constant): New function.
4014         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
4015         calling expand_expr for INDIRECT_REF.
4016         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
4017         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
4018         * expr.h (use_anchored_address): Declare.
4019         * loop-unroll.c: Don't declare rtx vectors here.
4020         * explow.c: Include output.h.
4021         (validize_mem): Call use_anchored_address.
4022         (use_anchored_address): New function.
4023         * common.opt (-fsection-anchors): New switch.
4024         * varasm.c (object_block_htab, anchor_labelno): New variables.
4025         (hash_section, object_block_entry_eq, object_block_entry_hash)
4026         (use_object_blocks_p, get_block_for_section, create_block_symbol)
4027         (use_blocks_for_decl_p, change_symbol_section): New functions.
4028         (get_variable_section): New function, split out from assemble_variable.
4029         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
4030         use_blocks_for_decl_p say so.  Use change_symbol_section if the
4031         symbol has already been created.
4032         (assemble_variable_contents): New function, split out from...
4033         (assemble_variable): ...here.  Don't output any code for
4034         block symbols; just pass them to place_block_symbol.
4035         Use get_variable_section and assemble_variable_contents.
4036         (get_constant_alignment, get_constant_section, get_constant_size): New
4037         functions, split from output_constant_def_contents.
4038         (build_constant_desc): Create a block symbol if use_object_blocks_p
4039         says so.  Or into SYMBOL_REF_FLAGS.
4040         (assemble_constant_contents): New function, split from...
4041         (output_constant_def_contents): ...here.  Don't output any code
4042         for block symbols; just pass them to place_section_symbol.
4043         Use get_constant_section and get_constant_alignment.
4044         (force_const_mem): Create a block symbol if use_object_blocks_p and
4045         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
4046         (output_constant_pool_1): Add an explicit alignment argument.
4047         Don't switch sections here.
4048         (output_constant_pool): Adjust call to output_constant_pool_1.
4049         Switch sections here instead.  Don't output anything for block symbols;
4050         just pass them to place_block_symbol.
4051         (init_varasm_once): Initialize object_block_htab.
4052         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
4053         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
4054         (place_block_symbol, get_section_anchor, output_object_block)
4055         (output_object_block_htab, output_object_blocks): New functions.
4056         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
4057         (TARGET_ASM_OUT): Include it.
4058         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
4059         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
4060         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
4061         (TARGET_INITIALIZER): Include them.
4062         * rtl.c (rtl_check_failed_block_symbol): New function.
4063         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
4064         (block_symbol, object_block): New structures.
4065         (rtx_def): Add a block_symbol field to the union.
4066         (BLOCK_SYMBOL_CHECK): New macro.
4067         (rtl_check_failed_block_symbol): Declare.
4068         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
4069         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
4070         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
4071         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
4072         * output.h (output_section_symbols): Declare.
4073         (object_block): Name structure.
4074         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
4075         (default_use_anchors_for_symbol_p): Declare.
4076         * Makefile.in (RTL_BASE_H): Add vec.h.
4077         (explow.o): Depend on output.h.
4078         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
4079         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
4080         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
4081         (rs6000_use_blocks_for_constant_p): New function.
4082
4083 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4084
4085         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
4086
4087 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
4088
4089         PR tree-opt/25680
4090         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
4091         IMAGPART_EXPR.
4092
4093 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
4094
4095         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
4096         is_aliased.
4097         Update all users.
4098
4099 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
4100
4101         PR middle-end/26334
4102         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
4103         instead of DECL_REGISTER.
4104
4105 2006-02-18  Olivier Hainque  <hainque@adacore.com>
4106
4107         PR ada/13408
4108         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
4109
4110 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
4111
4112         PR target/24837
4113         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
4114         * opth-gen.awk: Handle Var and InverseMask together.
4115         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
4116         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
4117         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
4118         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
4119         used together.
4120         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
4121         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
4122         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
4123         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
4124         LINUX_DYNAMIC_LINKER): Define.
4125         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
4126         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
4127         TARGET_GLIBC.
4128         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4129         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
4130         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4131         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4132         (TARGET_C99_FUNCTIONS): Don't define.
4133         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
4134         GLIBC_DYNAMIC_LINKER.
4135         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
4136         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
4137         GLIBC_DYNAMIC_LINKER64): Define.
4138         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
4139         LINUX_DYNAMIC_LINKER64.
4140         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4141         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4142         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
4143         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4144         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4145         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4146         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
4147         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
4148         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
4149         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
4150         and LINUX_DYNAMIC_LINKER32.
4151         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4152         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4153         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
4154         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4155         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
4156         TARGET_GLIBC.
4157         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
4158         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
4159         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
4160         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
4161         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
4162         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
4163         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
4164         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
4165         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
4166         LINUX_DYNAMIC_LINKER): Define.
4167         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
4168         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
4169         GLIBC_DYNAMIC_LINKER64): Define.
4170         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
4171         LINUX_DYNAMIC_LINKER64.
4172         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4173         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4174         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
4175         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
4176         LINUX_DYNAMIC_LINKER): Define.
4177         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4178         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
4179         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
4180         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
4181         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
4182         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
4183         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
4184         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
4185         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
4186         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4187         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4188         * doc/invoke.texi (-muclibc): Remove caveat about supported
4189         targets.
4190
4191 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
4192
4193         * doc/cpp.texi (__TIMESTAMP__): Document.
4194
4195 2006-02-17  Roger Sayle  <roger@eyesopen.com>
4196
4197         PR middle-end/25600
4198         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
4199         C is one less than the width of X (and related transformations).
4200         * simplify-rtx.c (simplify_unary_operation_1): Transform
4201         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
4202         depending on STORE_FLAG_VALUE, were C is one less then the
4203         width of X.
4204
4205 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
4206
4207         Fix PR tree-optimization/26341
4208         * tree-ssa-operands.c (add_virtual_operand): Remove assert
4209         about NAME_MEMORY_TAG's.
4210
4211 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4212
4213         PR target/26255
4214         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
4215         with hardware float support, and software float support.  Add fcpy
4216         alternative to hardware patterns.  Add alternatives to copy between
4217         general and floating-point registers to the 32-bit pattern.
4218         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
4219         secondary reload to load a QI or HI mode constant into a floating
4220         point register.
4221         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
4222         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
4223
4224 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
4225
4226         PR target/26272
4227         * config/rs6000/darwin.md (load_macho_picbase_si): Add
4228         pc to the pattern.
4229         (load_macho_picbase_di): Likewise.
4230
4231 2006-02-16  Jeff Law  <law@redhat.com>
4232
4233         * tree-vrp.c (set_value_range_to_nonnegative): New function.
4234         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
4235         (ssa_name_nonzero_p): Likewise.
4236         (get_value_range): Return NULL if VRP is not running.
4237         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
4238         VRP routines do not discover a range.
4239         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
4240         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
4241         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
4242         (tree_expr_nonnegative_p): Similarly.
4243         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
4244         (restore_nonzero_vars_to_original_value): Remove.
4245         (unsafe_associative_fp_binop): Remove.
4246         (tree_ssa_dominator_optimize): Remove initialization and
4247         finalization of nonzero_vars and nonzero_vars_stack.
4248         (dom_opt_initialize_block): No longer push marker on
4249         nonzero_vars_stack.
4250         (dom_opt_finalize_block): No longer call
4251         restore_nonzero_vars_to_original_value.
4252         (record_equivalences_from_phis): No longer look for
4253         nonzero PHI arguments.
4254         (cprop_into_successor_phis): No longer propagate nonzero
4255         property into PHI arguments.  Lose unused argument.  Caller
4256         updated.
4257         (record_equivalences_from_stmt): No longer record nonzero
4258         values for SSA_NAMEs.
4259         (lookup_avail_expr): No longer use nonzero_vars.
4260
4261         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
4262         for sizetype when sizetype is unsigned.
4263
4264 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
4265
4266         PR rtl-optimization/25603
4267         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
4268         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
4269         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
4270         with new meaning of SETS.
4271
4272 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
4273
4274         PR target/20353
4275         PR target/24578
4276         PR target/24837
4277         * config/linux.opt: New file.
4278         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
4279         LINUX_DYNAMIC_LINKER): Define.
4280         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
4281         * config.gcc (*-*-linux*): Define extra_options.
4282         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
4283         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
4284         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
4285         GLIBC_DYNAMIC_LINKER.
4286         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
4287         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4288         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4289         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4290         * doc/invoke.texi (GNU/Linux Options): New section.
4291
4292 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
4293
4294         * config/sparc/sparc.md (setjmp): Rewrite.
4295         (setjmp_32): Delete.
4296         (setjmp_64): Likewise.
4297
4298 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
4299
4300         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
4301          previous change.
4302
4303 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
4304
4305         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
4306         read-write uses.
4307
4308 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
4309
4310         PR rtl-optimization/26296
4311         * Makefile.in (loop-invariant.c): Add except.h dependency.
4312         * loop-invariant.c: Include except.h.
4313         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
4314
4315 2005-02-16  Paul Brook  <paul@codesourcery.com>
4316
4317         * reload1.c (emit_reload_insns): Invalidate dead input registers used
4318         for reloads.
4319
4320 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
4321
4322         PR rtl-optimization/25636
4323         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
4324         when deciding whether an insn is an initializing insn.
4325
4326 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
4327
4328         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
4329         (tree_code_size): Ditto.
4330         * tree.h (struct tree_memory_tag): Remove parent_var.
4331         (struct tree_struct_field_tag): New.
4332         (SFT_OFFSET): New.
4333         (SFT_SIZE): New.
4334         (union tree_node): Add sft member.
4335         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
4336         specially here.
4337         (create_sft): Add size and offset argument, set SFT_OFFSET and
4338         SFT_SIZE.
4339         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
4340         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
4341         * tree-flow-inline.h (get_subvar_at): Update for
4342         SFT_OFFSET/SFT_SIZE.
4343         (var_can_have_subvars): Ditto.
4344         (overlap_subvar): Ditto.
4345         * print-tree.c (print_node): Print out interesting things for
4346         SFT's.
4347         * tree-flow.h (struct subvar): Remove offset and size members.
4348         * tree-ssa-operands.c (get_expr_operands): Update for
4349         get_indirect_ref_operands changes.
4350         (get_indirect_ref_operands): Call add_virtual_operand instead of
4351         add_stmt_operand.  Only recurse on base var if requested.
4352         (access_can_touch_variable): New function.
4353         (add_stmt_operand): Split virtual operand handling into ...
4354         (add_virtual_operand): Here.  Add offset, size, and for_clobber
4355         arguments.  Prune alias sets.
4356         (add_call_clobber_ops): Call add_virtual_operand.
4357
4358 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
4359
4360         PR middle-end/26300
4361         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
4362
4363         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
4364         than TREE_CODE as index into omp_clause_num_ops array.
4365
4366 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
4367
4368         PR rtl-optimization/26184
4369         * modulo-sched.c (generate_reg_moves): Free bitmap vector
4370         uses_of_defs.
4371         * modulo-sched.c (sms_schedule): Free g_arr pointer.
4372         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
4373         must_precede, must_follow and tobe_scheduled.
4374
4375         PR other/26147
4376         * opts.c (common_handle_option): Free new_option pointer.
4377         * df-core.c (df_analyze): Free postorder pointer.
4378
4379 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
4380
4381         * Makefile.in: Fix the examples about the use of stamps
4382
4383 2006-02-15  Michael Matz  <matz@suse.de>
4384
4385         PR middle-end/22275
4386
4387         * stor-layout.c (layout_decl): Zero-width bitfields aren't
4388         influenced by maximum_field_alignment or DECL_PACKED.
4389         (update_alignment_for_field): Ditto.
4390         (place_field): Ditto.
4391         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
4392         this behaviour.
4393
4394 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
4395
4396         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
4397         (debug_flow_info): Pass it.
4398         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
4399         * bb-reorder.c (reorder_basic_blocks): Likewise.
4400         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
4401         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
4402         * flow.c (life_analysis, recompute_reg_usage): Likewise.
4403         * gcse.c (gcse_main, bypass_jumps): Likewise.
4404         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
4405         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
4406         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
4407         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
4408         * rtl.h (dump_flow_info): Adjust prototype.
4409         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
4410         * var-tracking.c (variable_tracking_main): Likewise.
4411         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
4412         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
4413         options.
4414
4415 2006-02-15  Marcin Dalecki <martin@dalecki.de>
4416
4417         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
4418         construction.
4419
4420 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
4421
4422         PR tree-optimization/26209
4423         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
4424         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
4425         eh edges.
4426         * tree-cfg.c (replace_uses_by): Do not alter cfg.
4427
4428 2006-02-14  Roger Sayle  <roger@eyesopen.com>
4429
4430         PR middle-end/23670
4431         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
4432         (X,Y) and the corresponding symmetry related transformations.
4433         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
4434         (X,Y) and its symmetry related transformations.
4435
4436 2006-02-14  Roger Sayle  <roger@eyesopen.com>
4437
4438         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
4439         and GEU.
4440
4441 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
4442
4443         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
4444
4445 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4446
4447         PR bootstrap/26053
4448         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
4449         support COMDAT group.
4450         * configure: Regenerate.
4451
4452 2006-02-14  Roger Sayle  <roger@eyesopen.com>
4453
4454         PR middle-end/26279
4455         PR middle-end/26280
4456         PR middle-end/26283
4457         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
4458
4459 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
4460
4461         Fix PR tree-optimization/26260
4462
4463         * doc/invoke.texi (max-fields-for-field-sensitive): Document
4464         param.
4465         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
4466         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
4467         * tree-ssa-structalias.c (create_variable_info_for): Use
4468         MAX_FIELDS_FOR_FIELD_SENSITIVE.
4469
4470 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
4471
4472         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
4473         Document.
4474         * tree-ssa-loop-niter.c (number_of_iterations_ne,
4475         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
4476         of the ending condition.
4477         * tree-ssa-loop-manip.c: Include params.h.
4478         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
4479         tree_unroll_loop): New functions.
4480         * tree-pass.h (pass_loop_prefetch): Declare.
4481         * loop.c (rest_of_handle_loop_optimize): Test for
4482         -fprefetch-loop-arrays-rtl.
4483         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
4484         * timevar.def (TV_TREE_PREFETCH): New timevar.
4485         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
4486         pass_loop_prefetch): New.
4487         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
4488         (cleanup_tree_cfg_loop): Call scev_reset.
4489         * common.opt (fprefetch-loop-arrays-rtl): Add.
4490         * tree-ssa-loop-prefetch.c: New file.
4491         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
4492         (new_temp_expr_table): Initialize expr_vars.
4493         (free_temp_expr_table): Cleanup expr_vars.
4494         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
4495         expressions from being merged into one.
4496         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
4497         (struct tree_niter_desc): Add control, bound and cmp fields.
4498         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
4499         Declare.
4500         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
4501         (tree-cfgcleanup.o): Add SCEV_H dependency.
4502         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
4503         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
4504
4505 2006-02-14  Richard Guenther  <rguenther@suse.de>
4506
4507         PR tree-optimization/26258
4508         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
4509         in PHI argument processing.
4510
4511 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
4512
4513         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
4514         new expression in the requested machine mode.
4515
4516 2006-02-13  Roger Sayle  <roger@eyesopen.com>
4517
4518         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
4519         directly, instead let do_compare_rtx_and_jump handle this for us.
4520         * expr.c (expand_expr_real_1): Likewise.
4521         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
4522         before do_jump_by_parts_greater.
4523         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
4524         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
4525
4526 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4527
4528         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
4529
4530 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
4531
4532         PR rtl-optimization/26235
4533         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
4534         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
4535         format.
4536
4537 2006-02-13  Jeff Law  <law@redhat.com>
4538
4539         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
4540         TRUTH_XOR_EPR.
4541
4542 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
4543
4544         PR middle-end/26092
4545         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
4546         twice if decl is a builtin.  When trying again, call get_callee_fndecl
4547         first to verify it is still a builtin.
4548
4549 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
4550
4551         * dwarf2out.c (base_type_die): Don't add AT_name here.
4552         (subrange_type_die): Don't add AT_name here.
4553         (modified_type_die): Rearrange code flow.  Do add AT_name here.
4554
4555 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
4556
4557         PR rtl-optimization/26247
4558         PR rtl-optimization/26248
4559         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
4560
4561 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
4562
4563         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
4564         * config/fixtfdi.c: Likewise.
4565         * config/fixunstfdi.c: Likewise.
4566         * config/floatditf.c: Likewise.
4567
4568 2006-02-13  Roger Sayle  <roger@eyesopen.com>
4569
4570         PR middle-end/24427
4571         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
4572         into (X,C2) if C1 is a subset of the bits of C2.  Transform
4573         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
4574         (X&(C1&~C2))|C2.
4575         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
4576
4577 2006-02-13  Josh Conner  <jconner@apple.com>
4578
4579         PR target/25376
4580         * varasm.c (function_section): Check for section name before
4581         calling select_section on targets that define
4582         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
4583         unlikely_text_section instead of hot_function_section if
4584         first_function_block_is_cold.
4585
4586 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
4587
4588         PR middle-end/25335
4589         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
4590
4591 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
4592
4593         PR rtl-optimization/26222
4594         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
4595         after tree->rtl expansion.
4596         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
4597         before passing it to emit_move_insn.
4598
4599 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4600
4601         * doc/invoke.texi (-Write-strings): Document that it is enabled by
4602         default.
4603         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
4604         Clarify documentation.
4605         * c-common.h (warn_write_strings): Remove.
4606         * c-common.c (warn_write_strings): Likewise.
4607         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
4608         default for C++.
4609
4610 2006-02-12  Roger Sayle  <roger@eyesopen.com>
4611
4612         PR middle-end/25724
4613         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
4614         (do_jump_parts_zero_rtx): New function renamed from
4615         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
4616         (do_jump_parts_equality_rtx): New function split out from
4617         do_jump_parts_equality.  Old implementation renamed as above.
4618         Call do_jump_parts_zero_rtx if either operand is zero.
4619         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
4620         do all of the heavy lifting.
4621         (do_compare_rtx_and_jump): Handle multi-word comparisons by
4622         calling either do_jump_by_parts_greater_rtx or
4623         do_jump_by_parts_equality_rtx.
4624         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
4625         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
4626         moved to do_compare_rtx_and_jump, call it directly.
4627         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
4628         mode argument.  Call do_compare_rtx_and_jump.
4629         (emit_case_nodes): Update calls to do_jump_if_equal.
4630
4631 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
4632
4633         PR rtl-optimization/26225
4634         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
4635
4636 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
4637
4638         PR rtl-optimization/26232
4639         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
4640
4641 2006-02-11  Jason Merrill  <jason@redhat.com>
4642
4643         PR tree-opt/24365
4644         * tree-inline.c (declare_return_variable): Just don't use the
4645         modify target if it's a gimple complex reg and the return slot
4646         isn't.
4647
4648 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4649
4650         * doc/contrib.texi: Update my entry.
4651
4652 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
4653
4654         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
4655
4656 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
4657
4658         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
4659         expensive.
4660
4661 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
4662
4663         * doc/invoke.texi (-floop-optimize2): Removed.
4664         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
4665         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
4666         Test flag_branch_on_count_reg only if HAVE_doloop_end.
4667         * common.opt (floop-optimize2): Removed.
4668         (fmove-loop-invariants): Enabled by default.
4669
4670 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
4671
4672         * tree-if-conv.c (combine_blocks): Free the result of
4673         get_loop_exit_edges.
4674
4675 2006-02-10  Jeff Law  <law@redhat.com>
4676
4677         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
4678
4679         PR tree-optimization/26213
4680         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
4681         loop trying to follow SSA_NAME_VALUE chains.
4682
4683 2006-02-10  Richard Guenther  <rguenther@suse.de>
4684
4685         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
4686         deal with structures that end in implicitly variable sized arrays.
4687
4688 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
4689
4690         PR rtl-optimization/24762
4691         * df-scan.c (df_bb_refs_record): Record correct registers defined on
4692         eh edges.
4693
4694 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
4695
4696         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
4697         (struct ivopts_data): Add regs_used field.
4698         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
4699         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
4700         instead of loop_data->regs_used;
4701         (free_loop_data): Do not free aux fields for loops.
4702         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
4703         and tree_ssa_iv_optimize_finalize.
4704
4705 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
4706
4707         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
4708
4709 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
4710
4711         PR target/26141
4712         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
4713         computing the effective result type.
4714
4715 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
4716
4717         PR inline-asm/16194
4718         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
4719         (tree_overlaps_hard_reg_set): Declare.
4720         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
4721         type and signature to match function type expected by walk_tree.
4722         (tree_overlaps_hard_reg_set): New function.
4723         (decl_conflicts_with_clobbers_p): Rename to:
4724         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
4725         Use tree_overlaps_hard_reg_set.  Changed caller.
4726         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
4727         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
4728         * cris.c (cris_md_asm_clobbers): Likewise.
4729
4730 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
4731
4732         * reload1.c (emit_input_reload_insns): Delete code that tries to
4733         inherit using find_equiv_reg.
4734
4735 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4736
4737         * c-common.h (flag_const_strings): Don't declare.
4738         * c-common.c (flag_const_strings): Remove.
4739         * c.opt (fconst_strings): Remove.
4740         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
4741         <OPT_Wwrite_strings>: Don't set flag_const_strings.
4742         (c_common_init_options): Don't set flag_const_strings.
4743         * doc/invoke.texi (-fno-const-strings): Remove documentation.
4744
4745 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
4746
4747         * arm.md (tlobits_cbranch): New pattern.
4748         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
4749         testing a single bit.
4750
4751 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
4752
4753         PR tree-opt/26179
4754         * tree-ssa-pre.c (create_component_ref_by_pieces):
4755         Handle RETURN_DECL like VAR_DECL.
4756
4757 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
4758
4759         PR middle-end/26134
4760         * fold-const.c (fold_indirect_ref_1): Fold
4761         "*(foo *)&complexfoo" to "__real__ complexfoo"
4762         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
4763
4764 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
4765
4766         * tree-flow-inline.h (var_can_have_subvars):
4767         Volatile variables should not have subvariables.
4768
4769 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
4770
4771         PR 26180
4772         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
4773         multiplying unsigned values.
4774         Tidy comments.
4775
4776 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4777
4778         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
4779
4780 2006-02-08  Jason Merrill  <jason@redhat.com>
4781
4782         PR c++/25979
4783         * tree.def: Elaborate on difference from MODIFY_EXPR.
4784         * doc/c-tree.texi (INIT_EXPR): Likewise.
4785         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
4786         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
4787         (gimplify_target_expr): Likewise.
4788         (gimplify_cond_expr): Remove target handling.
4789         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
4790         (gimplify_expr): Clobber it here.
4791         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
4792         Do return slot optimization if we have an INIT_EXPR.
4793
4794         PR tree-opt/24365
4795         * tree-inline.c (declare_return_variable): Also clear
4796         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
4797
4798         PR c++/16405
4799         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
4800
4801         PR middle-end/22439
4802         * gimplify.c (gimplify_one_sizepos): Fix typo.
4803
4804 2006-02-08  Jeff Law  <law@redhat.com>
4805
4806         PR tree-optimization/21417
4807         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
4808         across a backedge if the control statement at the end of the
4809         block is data dependent on other statements in the same block.
4810         (record_temporary_equivalences_from_stmts): Remove over-conservative
4811         test for threading across backedges.
4812
4813         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
4814         control statement, handle all three special cases in the same
4815         manner as they all have the same desired solution.  No longer
4816         special case edge flag updating when the post dominator is
4817         the exit block.
4818
4819 2006-02-08  Roger Sayle  <roger@eyesopen.com>
4820
4821         * tree.def (CHAR_TYPE): Remove.
4822         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
4823         * dwarf2out.c (base_type_die, is_base_type): Likewise.
4824         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
4825         (gen_string_type_die): Delete unreachable function.
4826
4827         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
4828         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
4829         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
4830         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
4831         * builtins.c (type_to_class): Likewise.
4832         * fold-const.c (fold_convert, build_range_check,
4833         merge_ranges): Likewise.
4834         * expr.c (count_type_elements): Likewise.
4835         * c-pretty-print.c (pp_c_type_specifier): Likewise.
4836         * stor-layout.c (layout_type): Likewise.
4837         * ipa-type-escape.c (type_to_consider): Likewise.
4838         * gimplify.c (omp_firstprivatize_type_sizes,
4839         gimplify_type_sizes): Likewise.
4840         * explow.c (promote_mode): Likewise.
4841         * tree-sra.c (is_sra_scalar_type): Likewise.
4842         * varasm.c (output_constant): Likewise.
4843         * tree-inline.c (remap_type_1): Likewise.
4844         * convert.c (convert_to_pointer, convert_to_real,
4845         convert_to_integer, convert_to_complex): Likewise.
4846
4847 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
4848
4849         * df-scan.c (df_def_record_1): A set destination may
4850         be a parallel regardless of mode.
4851
4852 2006-02-08  Roger Sayle  <roger@eyesopen.com>
4853
4854         PR target/22209
4855         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
4856         * config/mips/_tilib.c: Remove.
4857         * config/fixtfdi.c: New libgcc source file.
4858         * config/fixunstfdi.c: New source file.
4859         * config/floatditf.c: New source file.
4860         * config/floatunditf.c: New souce file.
4861         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
4862         files above instead of config/mips/_tilib.c.
4863         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
4864
4865 2006-02-08  Jeff Law  <law@redhat.com>
4866
4867         PR tree-optimization/26169
4868         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
4869         threading jumps.
4870
4871 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
4872
4873         * df.h (DF_REG_SIZE): Return the length of the initialized
4874         part of the array.
4875
4876 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
4877
4878         * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
4879         __muldf3): Return a correctly signed zero.
4880
4881 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
4882
4883         * passes.c (register_one_dump_file): Accept the current properties
4884         instead of pass number.  Adjust call to dump_register.  Remove
4885         duplicated code.
4886         (register_dump_files): Now a wrapper around...
4887         (register_dump_files_1): ... this one.  Do not modify the pass
4888         structure.
4889         (next_pass_1): Cosmetic fix.
4890         (execute_todo): Keep second parameter only.  Use curr_properties
4891         instead of fetching it from the pass structure.  Check and set
4892         last_verified.
4893         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
4894         instead of fetching it from the pass structure.  Fix calls to
4895         execute_todo.  Update curr_properties and initialize .vcg RTL dump
4896         after running the pass.  Reset last_verified.
4897         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
4898         at the beginning.
4899         (FIRST_AUTO_NUMBERED_DUMP): New.
4900         (dump_register): Remove "num" parameter, assign it within the
4901         function.
4902         (get_dump_file_name): Modify template for dumps.
4903         * tree-dump.h (dump_register): Adjust prototype.
4904         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
4905         (PROP_trees): Add PROP_gimple_lomp.
4906         (TODO_set_props): New.
4907         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
4908         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
4909         * cfgexpand.c (pass_expand): Destroy PROP_trees.
4910
4911 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
4912
4913         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
4914         (sparc64-*-linux*): Likewise.
4915         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
4916         * config/sparc/t-linux: New file.
4917         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
4918         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
4919         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
4920         -m32 -mlong-double-128.
4921
4922         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
4923         * config/alpha/t-linux: New file.
4924         * config/alpha/libgcc-alpha-ldbl.ver: New file.
4925
4926         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
4927         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
4928         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
4929         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
4930         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
4931         (CPP_ARCH32_SPEC): Remove.
4932
4933 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
4934
4935         PR tree-optimization/26145
4936         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
4937         bbs pointer.
4938
4939 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4940
4941         PR target/26109
4942         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
4943         >= 240000 when generating code for SOM runtime.
4944         (output_indirect_call): Don't use "b,l" instruction for indirect calls
4945         to $$dyncall when generating code for SOM runtime..
4946
4947 2006-02-07  Dirk Mueller  <dmueller@suse.com>
4948
4949         PR c++/18150
4950         * doc/invoke.texi (-Wsequence-point): Update documentation
4951         that -Wsequence-point is implemented for C++ as well.
4952
4953 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4954
4955         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
4956         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
4957         (LIB_SPEC): Likewise.
4958         * doc/invoke.texi (SPARC options): Document -pthread.
4959
4960 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
4961
4962         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
4963         PIC addresses.
4964
4965 2006-02-07  Roger Sayle  <roger@eyesopen.com>
4966
4967         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
4968         Correct comment describing BOOLEAN_TYPE.
4969
4970 2006-02-07  Dirk Mueller  <dmueller@suse.com>
4971
4972         * c.opt: C++ frontend supports -Wdiv-by-zero.
4973         * c-opts.c (c_common_handle_option): Remove dead case.
4974
4975 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4976
4977         * configure.ac (TLS assembler check): Do not enable TLS by
4978         default on SPARC/Solaris before version 10.
4979         * configure: Regenerate.
4980
4981 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
4982
4983         * doc/invoke.texi (xl-compat): Document conversion and support
4984         routine names.
4985
4986 2006-02-07  Jeff Law  <law@redhat.com>
4987
4988         * tree-vrp.c (find_conditional_asserts): Update comments.
4989         (simplify_stmt_for_jump_threading): New.
4990         (identify_jump_threads, finalize_jump_threads): New.
4991         (vrp_finalize): Call identify_jump_threads.
4992         (execute_vrp): Call finalize_jump_threads.
4993         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
4994         (vrp_element, vrp_data, vrp_element_p): Remove.
4995         (vrp_hash_elt, vrp_variables_stack): Remove.
4996         (vrp_hash, vrp_eq, record_range): Remove.
4997         (simplify_cond_and_lookup_avail_expr): Remove.
4998         (extract_range_from_cond): Remove.
4999         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
5000         (simplify_stmt_for_jump_threading): New.
5001         (dom_thread_across_edge): New wrapper.
5002         (tree_ssa_dominator_optimize): No longer initialize or
5003         finalize any of the VRP datastructures.  Remove iteration
5004         step and simplify as a result of removal of iteration step.
5005         (pass_dominator): Perform a cfg cleanup after DOM.
5006         (dom_opt_finalize_block): Use the new common routines
5007         for threading jumps.  Simplify stack management slightly.
5008         No longer need to unwind VRP state.
5009         (record_equivalences_from_incoming_edge): No longer record
5010         VRP information.
5011         (eliminate_redundant_computations): No longer call
5012         simplify_cond_and_lookup_avail_expr.
5013         * tree-flow.h (potentially_threadable_block): Prototype.
5014         (thread_across_edge): Likewise.
5015         * Makefile.in (OBJS-common):  Add tree-ssa-threadedge.o
5016         (tree-ssa-threadedge.o): Add dependencies.
5017         * tree-ssa-threadedge.c: New file.
5018         * passes.c (init_optimization_passes): Merge PHIs before
5019         calling VRP.  Run VRP again late in the SSA optimization pipeline.
5020
5021 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5022
5023         * df-core.c (df_set_blocks): Do not dereference function pointers.
5024         (df_finish1): Likewise.
5025         (df_hybrid_search_forward): Likewise.
5026         (df_hybrid_search_backward): Likewise.
5027         (df_iterative_dataflow): Likewise.
5028         (df_analyze_problem): Likewise.
5029         (df_compact_blocks): Likewise.
5030         (df_dump): Likewise.
5031         * df-scan.c (df_rescan_blocks): Likewise.
5032         (df_record_entry_block_defs): Likewise.
5033
5034         * genconditions.c (write_conditions): Guard the definition of
5035         'insn_conditions' with the check on GCC version.
5036         (write_writer): Guard the traversal 'insn_conditions' with
5037         the check on GCC version.
5038
5039 2006-02-07  Richard Guenther  <rguenther@suse.de>
5040
5041         PR c++/26140
5042         Revert
5043         2006-01-30  Richard Guenther  <rguenther@suse.de>
5044         PR c++/23372
5045         * gimplify.c (gimplify_target_expr): Handle easy cases
5046         without creating a temporary.
5047
5048 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
5049
5050         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
5051         use of float in probability computations.  Use edge probabilities
5052         in place of statically computed probabilities.
5053         (min_spec_prob): New static variable.
5054         (schedule_insns): Initialize it.
5055         (GET_SRC_PROB): Removed.
5056         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
5057
5058 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
5059
5060         PR debug/24444
5061         * config/ia64/unwind-ia64.c: Revert last change.
5062         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
5063         (INCOMING_FRAME_SP_OFFSET): Define.
5064
5065 2006-02-06  Roger Sayle  <roger@eyesopen.com>
5066
5067         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
5068
5069 2006-02-07  Ben Elliston  <bje@au.ibm.com>
5070
5071         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
5072         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
5073         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
5074         (ix86_return_in_memory): Handle TDmode.
5075         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
5076         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
5077
5078 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
5079
5080         * reorg.c (dbr_schedule): Use dump_file instead of file.
5081
5082 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
5083
5084         PR target/25917
5085         * config/ia64/predicates.md (extr_len_operand): New predicate.
5086         * config/ia64/ia64.md (extv): Tighten constraints.
5087         (extzv): Ditto.
5088         (*tbit_and_2): Ditto.
5089         (*tbit_and_3): Ditto.
5090         (*tbit_or_2): Ditto.
5091         (*tbit_or_3): Ditto.
5092         (*bit_zero): Ditto.
5093         (*bit_one): Ditto.
5094
5095 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
5096
5097         PR target/23359
5098         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
5099
5100 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
5101
5102         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
5103         loop_optimizer_init and loop_optimizer_finalize
5104         * tree-ssa-sink.c (execute_sink_code): Ditto.
5105         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
5106         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
5107         tree_ssa_loop_done): Ditto.
5108         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
5109         * sched-ebb.c: Include output.h.
5110         (schedule_ebbs): Do not use dump argument.
5111         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
5112         * loop.c (loop_dump_stream): Removed.
5113         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
5114         argument.
5115         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
5116         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
5117         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
5118         loop_iterations, strength_reduce, record_biv, record_giv,
5119         final_giv_value, check_final_value, check_ext_dependent_givs,
5120         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
5121         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
5122         dump_file instead of loop_dump_stream.
5123         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
5124         argument dump_file.
5125         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
5126         dump argument.
5127         * flow.c (life_analysis, rest_of_handle_life): Ditto.
5128         * haifa-sched.c: Include output.h
5129         (schedule_insns, sched_init): Do not use dump argument.
5130         * mode-switching.c (optimize_mode_switching): Ditto.
5131         * modulo-sched.c (stats_file): Removed.
5132         (print_node_sched_params): Do not call argument dump_file.
5133         (sms_schedule_by_order, loop_canon_p, sms_schedule,
5134         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
5135         of stats_file.
5136         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
5137         use dump argument.
5138         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
5139         rtl_loop_init, rtl_loop_done): Ditto.
5140         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
5141         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
5142         Ditto.
5143         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
5144         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
5145         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
5146         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
5147         * emit-rtl.c (renumber_insns): Ditto.
5148         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
5149         expand_gimple_basic_block, tree_expand_cfg): Ditto.
5150         * regclass.c (regclass): Ditto.
5151         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
5152         remove_ssa_form, rewrite_out_of_ssa): Ditto.
5153         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
5154         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
5155         Ditto.
5156         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
5157         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
5158         to regclass.
5159         * gcse.c (gcse_file, debug_stderr): Removed.
5160         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
5161         rest_of_handle_gcse): Do not use dump argument.
5162         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
5163         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
5164         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
5165         compute_code_hoist_vbeinout, compute_code_hoist_data,
5166         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
5167         compute_store_table, build_store_vectors, insert_insn_start_bb,
5168         insert_store, remove_reachable_equiv_notes, replace_store_insn,
5169         store_motion): Use dump_file instead of gcse_file.
5170         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
5171         * profile.c (profile_dump_file): Removed.
5172         (branch_prob): Use dump_file instead of profile_dump_file.
5173         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
5174         dump_file.
5175         * tree-ssa-copy.c (dump_copy_of): Ditto.
5176         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
5177         dump file to life_analysis.
5178         * bt-load.c (branch_target_load_optimize): Ditto.
5179         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
5180         renumber_insns.
5181         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
5182         regclass, dbr_schedule): Declaration changed.
5183         * sched-int.h (sched_init): Declaration changed.
5184         * tree-profile.c (tree_profile_dump_file): Removed.
5185         (tree_profile_hooks): Removed profile_dump_file hook.
5186         * rtl-profile (rtl_profile_dump_file): Removed.
5187         (rtl_profile_hooks): emoved profile_dump_file hook.
5188         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
5189         changed.
5190         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
5191         * tree-cfg.c (build_tree_cfg): Ditto.
5192         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
5193         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
5194         Declaration changed.
5195         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
5196         life_analysis and schedule_insns.
5197         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
5198         life_analysis.
5199         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
5200         dbr_schedule.
5201         * config/mips/mips.c (mips_reorg): Ditto.
5202         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
5203         schedule_ebbs.
5204
5205 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
5206
5207         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
5208         (s390_mangle_fundamental_type): New.
5209         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
5210         Define.
5211
5212         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
5213         (alpha_mangle_fundamental_type): New.
5214         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
5215         Define.
5216
5217         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
5218         Define.
5219         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
5220         Define.
5221         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
5222         (sparc_mangle_fundamental_type): New.
5223
5224 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
5225
5226         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
5227         (s390x-*-linux*): Likewise.
5228         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
5229         * config/s390/t-linux: New file.
5230
5231 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
5232
5233         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
5234         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
5235
5236 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
5237
5238         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
5239         (ANTIC_SAFE_LOADS): New macro.
5240         (find_or_generate_expression): Add prototype.
5241         (set_contains_value): Allow null set for sake of not always having
5242         to allocate ANTIC_SAFE_LOADS.
5243         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
5244         Allow COMPONENT_REF too.
5245         (valid_in_set): Allow COMPONENT_REF.
5246         Check ANTIC_SAFE_LOADS too.
5247         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
5248         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
5249         rename.
5250         (can_PRE_operation): Add COMPONENT_REF.
5251         (create_component_ref_by_pieces): New function.
5252         (create_expression_by_pieces): Use create_component_ref_by_pieces.
5253         (insert_aux): Move AGGREGATE_TYPE_P check here.
5254         (compute_avail): Set bb local stmt uids.
5255         (pass_pre): Use TODO_update_ssa_only_virtuals.
5256
5257 2006-02-06  Ben Elliston  <bje@au.ibm.com>
5258
5259         * configure.ac: Unconditionally disable decimal float by default.
5260         * configure: Regenerate.
5261
5262 2006-02-06  Ben Elliston  <bje@au.ibm.com>
5263
5264         * read-rtl.c (read_name): Terminate reading on EOF.
5265
5266 2006-02-06  Ben Elliston  <bje@au.ibm.com>
5267
5268         * dfp.c (decimal_real_arithmetic): Change second argument type
5269         from int to enum tree_code. Do not always return true, but now
5270         return result of any call to decimal_do helper functions.
5271         * dfp.h (decimal_real_arithmetic): Update prototype.
5272
5273 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5274
5275         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
5276
5277 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
5278
5279         PR tree-opt/25251
5280         * tree-cfg.c (cleanup_dead_labels): Also don't remove
5281         forced labels.
5282
5283 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
5284
5285         * tree-vrp.c (cfg_loops): Removed.
5286         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
5287         Use current_loops instead of cfg_loops.  Pass flags to
5288         loop_optimizer_init.
5289         * cfgloopmanip.c (fix_loop_structure): Update only available
5290         information.
5291         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
5292         loop_optimizer_init.
5293         * modulo-sched.c (build_loops_structure): Removed.
5294         (sms_schedule): Use loop_optimizer_init.
5295         * loop-init.c (loop_optimizer_init): Use flags to determine
5296         which properties of loops to prepare.
5297         (rtl_loop_init): Pass flags to loop_optimizer_init.
5298         * tree-ssa-sink.c (execute_sink_code): Ditto.
5299         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
5300         * tree-ssa-pre.c (init_pre): Ditto.
5301         * cfgloop.h (LOOPS_NORMAL): New.
5302         (loop_optimizer_init): Declaration changed.
5303
5304 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5305
5306         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
5307         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
5308         pa/t-pa.
5309         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
5310         pa/t-pa.
5311         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
5312         pa/x-ada.
5313         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
5314         * pa/t-pa64: Delete quadlib.c rule.
5315         * pa/x-ada: Revert last change.
5316         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
5317
5318 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
5319
5320         PR rtl-optimization/26087
5321         * rtlanal.c (canonicalize_condition): Do not cross basic block
5322         boundaries.
5323
5324 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
5325
5326         PR debug/24444
5327         * config/ia64/ia64.c: Include debug.h.
5328         (MAX_ARTIFICIAL_LABEL_BYTES): New.
5329         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
5330         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
5331         (process_epilogue, process_set, process_for_unwind_directive):
5332         Output unwind info only if requested.  Add CFA info if requested.
5333         Add new arguments as needed.  Adjust callers.
5334         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
5335         incorrect default.
5336         (DWARF2_FRAME_INFO): Define to zero.
5337         * config/ia64/unwind-ia64.c: Remove code that compensated for
5338         the CFA offset error fixed above.
5339         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
5340         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
5341         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
5342         -funwind-tables and -fexceptions to enable frame info.
5343         (dwarf2out_frame_init): Define initial CFA even if
5344         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
5345         DWARF2_UNWIND_INFO is nonzero, not just defined.
5346         (dwarf2out_frame_finish): Output non-EH call frame info only
5347         if DWARF2_FRAME_INFO is nonzero.
5348         (convert_cfa_to_loc_list,
5349         compute_frame_pointer_to_cfa_displacement): Define even if
5350         unwind info is not supported.
5351         (gen_subprogram_die): Use the above unconditionally.  Remove
5352         legacy alternate code.
5353         * toplev.c (compile_file): Compile in call to
5354         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
5355         (lang_dependent_init): Ditto for dwarf2out_frame_init.
5356
5357 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
5358             Jakub Jelinek  <jakub@redhat.com>
5359
5360         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
5361         IBM extended float format long double as "g" on powerpc*-linux.
5362
5363 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5364
5365         PR target/25926
5366         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
5367         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
5368
5369 2006-02-03  Jason Merrill  <jason@redhat.com>
5370
5371         PR c++/25979
5372         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
5373
5374         PR middle-end/25977
5375         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
5376         on the return slot if it's an NRV.
5377
5378 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
5379
5380         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
5381         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
5382         rewrite_use): Do not handle USE_OUTER.
5383         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
5384         add_iv_outer_candidates, may_replace_final_value,
5385         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
5386         (find_interesting_uses_op): Functionality of
5387         find_interesting_uses_outer_or_nonlin moved here.
5388         (find_interesting_uses_outside): Use find_interesting_uses_op.
5389
5390 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
5391
5392         PR target/25960
5393         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
5394
5395 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
5396             Ulrich Weigand  <uweigand@de.ibm.com>
5397
5398         PR target/25864
5399         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
5400         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
5401         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
5402         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
5403         and dxr fields.
5404         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
5405         (s390_rtx_costs): Use the new fields to calculate rtx costs.
5406         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
5407         Define secondary reloads for TFmode moves.
5408         (constant_modes): Add TFmode.
5409         (NR_C_MODES): Set to 8.
5410         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
5411         builtin define.
5412         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
5413         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
5414         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
5415         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
5416         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
5417         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
5418         (FPR mode macro): Add TFmode.
5419         (DSF mode macro): New.
5420         (<de>, <dee> mode attributes): Removed.
5421         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
5422         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
5423         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
5424         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
5425         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
5426         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
5427         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
5428         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
5429         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
5430         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
5431         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
5432         "*negabs<mode>2", "sqrt<mode>2"):
5433         Changed <de> to <xde>. R constraint replaced by <Rf>.
5434         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
5435         <Rf>.
5436         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
5437         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
5438         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
5439         splitters.
5440         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
5441         "extenddftf2", "extendsftf2"): New expanders.
5442         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
5443         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
5444         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
5445         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
5446         New options.
5447         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
5448         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
5449         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
5450         __floatditf): Add a GCC_4.1.0 symbol version tag.
5451         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
5452         the new options.
5453
5454 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
5455
5456         PR target/25377
5457         * config/i386/i386.c (ix86_function_ok_for_sibcall):
5458         Use targetm.binds_local_p instead of TREE_PUBLIC.
5459
5460 2006-02-02  Roger Sayle  <roger@eyesopen.com>
5461
5462         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
5463         on INTEGER_TYPEs to indicate that it denotes a character type.
5464         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
5465         signed_char_type_node, unsigned_char_type_node and char_type_node.
5466         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
5467         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
5468         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
5469
5470 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
5471             Daniel Berlin  <dberlin@dberlin.org>
5472
5473         * tree-tailcall.c (arg_needs_copy_p): New function.
5474         (eliminate_tail_call): Use arg_needs_copy_p.
5475         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
5476         (add_virtual_phis): New function.
5477
5478 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
5479
5480         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
5481         #ignore instead of #scratch for %g7 .register directive.
5482
5483 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
5484
5485         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
5486         object files.
5487
5488 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
5489
5490         * flow.c (calculate_global_regs_live): Assert that there aren't any
5491         EDGE_FAKE edges.
5492
5493 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
5494
5495         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
5496         what its name says.
5497         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
5498         bsi_after_labels iterator.
5499         * tree-if-conv.c (find_phi_replacement_condition,
5500         replace_phi_with_cond_modify_expr): Likewise.
5501         * tree-scalar-evolution.c (scev_const_prop): Likewise.
5502         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
5503
5504 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
5505
5506         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
5507
5508 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
5509
5510         PR 25990
5511         * tree-cfg.c (move_block_to_fn): Clear out the basic block
5512         array after growing it.
5513
5514 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
5515
5516         PR middle-end/24901
5517         * fold-const.c (fold_checksum_tree): Change type of buf.
5518
5519 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
5520
5521         * reload.c (push_secondary_reload): Initialize t_icode.
5522
5523 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
5524
5525         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
5526         -msoft-float -mlong-double-128 only issue a warning, but don't
5527         swich to DFmode long double.
5528
5529 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
5530
5531         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
5532         has a constant equivalent, iterate over equivalents for arg0,
5533         calling simplify_relational_operation and if there's a result
5534         cheaper than X, apply fold_rtx and return the result.
5535
5536 2006-02-01  Jan Hubicka  <jh@suse.cz>
5537
5538         * opts.c (no_unit_at_a_time_default): New global variable.
5539         (decode_options): Use it.
5540         * opts.h (no_unit_at_a_time_default): Declare.
5541
5542 2006-02-01  Paul Brook  <paul@codesourcery.com>
5543
5544         * function.c (assign_parm_setup_reg): Use function argument promotion
5545         rules.
5546         * expr.c (expand_expr_real_1): Use function argument promotion rules
5547         for PARM_DECLs.
5548
5549 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
5550
5551         * gcc.c (process_command): Change j to 'unsigned int'.
5552
5553 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
5554
5555         PR middle-end/26001
5556         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
5557         Use the corrected index for the character
5558         out of the string constant.
5559
5560 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
5561
5562         * mode-switching.c (optimize_mode_switching): Fix size
5563         allocated for bb_info[n_entities].
5564
5565 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
5566
5567         * gcc.c (main): Correct type that is allocated for
5568         explicit_link_files.
5569
5570 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
5571
5572         * config/s390/s390.c (init_alignment_context): Set
5573         ALIAS_SET_MEMORY_BARRIER on the MEM.
5574         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
5575
5576 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
5577
5578         PR middle-end/25933
5579         * loop-unroll.c (unroll_loop_runtime_iterations): Free
5580         dom_bbs pointer.
5581         * tree-ssa-live.c (type_var_init): Allocate bitmap after
5582         call to tpa_init.
5583
5584 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
5585
5586         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
5587         * regrename.c: Ditto.
5588         * tree-ssa-loop-im.c: Ditto.
5589         * tree-dump.c: Ditto.
5590         * tree-complex.c: Ditto.
5591         * genrecog.c: Ditto.
5592         * tree-ssa-threadupdate.c: Ditto.
5593         * tracer.c: Ditto.
5594         * java/class.c: Ditto.
5595         * java/jcf-parse.c: Ditto.
5596         * java/resource.c: Ditto.
5597         * java/except.c: Ditto.
5598         * java/jvspec.c: Ditto.
5599         * java/jcf-write.c: Ditto.
5600         * java/jcf-path.c: Ditto.
5601         * java/gjavah.c: Ditto.
5602         * java/zextract.c: Ditto.
5603         * java/jcf-io.c: Ditto.
5604         * java/jcf.h: Ditto.
5605         * java/buffer.c: Ditto.
5606         * java/lang.c: Ditto.
5607         * java/parse-scan.y: Ditto.
5608         * java/lex.c: Ditto.
5609         * java/lex.h: Ditto.
5610         * cfgloopmanip.c: Ditto.
5611         * postreload-gcse.c: Ditto.
5612         * tree-ssa-loop-manip.c: Ditto.
5613         * postreload.c: Ditto.
5614         * tree-ssa-loop-ch.c: Ditto.
5615         * loop.c: Ditto.
5616         * ipa-cp.c: Ditto.
5617         * cppspec.c: Ditto.
5618         * diagnostic.c: Ditto.
5619         * final.c: Ditto.
5620         * genoutput.c: Ditto.
5621         * gcc.c: Ditto.
5622         * cfghooks.c: Ditto.
5623         * cfgloopanal.c: Ditto.
5624         * objc/objc-act.c: Ditto.
5625         * gcov.c: Ditto.
5626         * genextract.c: Ditto.
5627         * genautomata.c: Ditto.
5628         * pretty-print.c: Ditto.
5629         * genemit.c: Ditto.
5630         * cgraphunit.c: Ditto.
5631         * flow.c: Ditto.
5632         * df-scan.c: Ditto.
5633         * haifa-sched.c: Ditto.
5634         * dominance.c: Ditto.
5635         * dbxout.c: Ditto.
5636         * tree-ssa-loop-ivopts.c: Ditto.
5637         * df-core.c: Ditto.
5638         * mode-switching.c: Ditto.
5639         * modulo-sched.c: Ditto.
5640         * graph.c: Ditto.
5641         * ipa-pure-const.c: Ditto.
5642         * cse.c: Ditto.
5643         * fix-header.c: Ditto.
5644         * web.c: Ditto.
5645         * tree-stdarg.c: Ditto.
5646         * ipa-utils.c: Ditto.
5647         * loop-init.c: Ditto.
5648         * ipa-inline.c: Ditto.
5649         * cfganal.c: Ditto.
5650         * global.c: Ditto.
5651         * alloc-pool.c: Ditto.
5652         * dwarf2out.c: Ditto.
5653         * opts.c: Ditto.
5654         * genattrtab.c: Ditto.
5655         * tree-ssa-loop-ivcanon.c: Ditto.
5656         * predict.c: Ditto.
5657         * timevar.c: Ditto.
5658         * lcm.c: Ditto.
5659         * fortran/gfortranspec.c: Ditto.
5660         * regmove.c: Ditto.
5661         * local-alloc.c: Ditto.
5662         * langhooks.c: Ditto.
5663         * function.c: Ditto.
5664         * tree-vectorizer.c: Ditto.
5665         * gcse.c: Ditto.
5666         * ipa-type-escape.c: Ditto.
5667         * alias.c: Ditto.
5668         * tree-if-conv.c: Ditto.
5669         * profile.c: Ditto.
5670         * ipa.c: Ditto.
5671         * tree-data-ref.c: Ditto.
5672         * loop-unroll.c: Ditto.
5673         * treelang/treetree.c: Ditto.
5674         * calls.c: Ditto.
5675         * bt-load.c: Ditto.
5676         * ggc-common.c: Ditto.
5677         * except.c: Ditto.
5678         * coverage.c: Ditto.
5679         * cselib.c: Ditto.
5680         * tree-cfgcleanup.c: Ditto.
5681         * tree-ssa-pre.c: Ditto.
5682         * cfgcleanup.c: Ditto.
5683         * loop-invariant.c: Ditto.
5684         * loop-iv.c: Ditto.
5685         * ipa-prop.c: Ditto.
5686         * print-tree.c: Ditto.
5687         * conflict.c: Ditto.
5688         * ggc-page.c: Ditto.
5689         * sched-deps.c: Ditto.
5690         * regclass.c: Ditto.
5691         * tree-object-size.c: Ditto.
5692         * combine.c: Ditto.
5693         * bb-reorder.c: Ditto.
5694         * resource.c: Ditto.
5695         * var-tracking.c: Ditto.
5696         * cfgloop.c: Ditto.
5697         * df-problems.c: Ditto.
5698         * reg-stack.c: Ditto.
5699         * tlink.c: Ditto.
5700         * gccspec.c: Ditto.
5701         * sched-rgn.c: Ditto.
5702         * tree-ssa-structalias.c: Ditto.
5703         * tree-ssa-reassoc.c: Ditto.
5704         * config/darwin-c.c: Ditto.
5705         * config/darwin.c: Ditto.
5706         * config/arm/arm.c: Ditto.
5707         * cfgrtl.c: Ditto.
5708         * collect2.c: Ditto.
5709         * reload1.c: Ditto.
5710
5711 2006-01-31  Nicolas Pitre  <nico@cam.org>
5712
5713         * arm.md (smaxsi3): Make aware of smax_m1.
5714         (smax_m1): New.
5715
5716 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
5717
5718         * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
5719
5720 2006-01-31  Richard Guenther  <rguenther@suse.de>
5721
5722         * doc/invoke.texi (-msselibm): Document.
5723         * target.h (expand_library_builtin): New target hook.
5724         * builtins.c (expand_builtin): Use expand_library_builtin.
5725         (default_expand_library_builtin): New function.
5726         * gcc.c (LINK_GCC_MATH_SPEC): Define.
5727         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
5728         (link_gcc_math_spec): Declare.
5729         (static_specs): Add link_gcc_math_spec.
5730         * expr.h (default_expand_library_builtin): Declare.
5731         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
5732         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
5733         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
5734         * config/i386/i386.opt (msselibm): New target option.
5735         * config/i386/i386.c (ix86_builtin_function_variants): New array.
5736         (ix86_init_sse_abi_builtins): New function.
5737         (ix86_expand_library_builtin): Likewise.
5738         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
5739         (override_options): Handle error conditions wrt -msselibm.
5740         (ix86_builtins): Add function codes for SSE2 ABI builtins.
5741         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
5742         * doc/extend.texi (__builtin_sse2_*): Document new target specific
5743         builtins.
5744
5745 2006-01-31  Richard Guenther  <rguenther@suse.de>
5746         Paolo Bonzini  <bonzini@gnu.org>
5747
5748         * doc/install.texi (--disable-libgcc-math): Document.
5749
5750 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
5751
5752         * expr.h (expand_normal): new inline function.
5753         * builtins.c: use it, use EXPAND_NORMAL explicitely.
5754         * dojump.c: use it.
5755         * dwarf2out.c: use it.
5756         * expr.c: use it.
5757         * calls.c: use it.
5758         * expmed.c: use it.
5759         * except.c: use it.
5760         * config/sparc/sparc.c: use it.
5761         * config/i386/i386.c: use it.
5762         * config/rs6000/rs6000.c: use it.
5763         * config/arm/arm.c: use it.
5764         * config/mips/mips.c: use it.
5765         * stmt.c: use it, use EXPAND_NORMAL explicitely.
5766
5767 2006-01-30  Roger Sayle  <roger@eyesopen.com>
5768
5769         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
5770         argv to the appropriate type.
5771
5772 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
5773
5774         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
5775         unreachable code.
5776
5777 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
5778
5779         PR target/26018
5780         * config/s390/s390.c (struct machine_function): New flag
5781         decomposed_literal_pool_addresses_ok_p.
5782         (s390_reorg): Set it before final stage of literal pool transforms.
5783         (s390_decompose_address): Only accept displacements of the form
5784         (minus (label_ref ...) (label_ref ...)) if that flag is set.
5785
5786 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
5787
5788         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
5789         the comparison routine return.
5790
5791 2006-01-30  Michael Matz  <matz@suse.de>
5792
5793         * global.c (find_reg): Only evict for global regs.
5794         Take n_refs into account and dump more info.
5795
5796 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
5797
5798         PR target/14798:
5799         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
5800         (pragma_trap, pragma_nosave_low_regs): Likewise.
5801         (current_function_anonymous_args): Likewise.
5802         (sh_deferred_function_attributes): New variable.
5803         (sh_deferred_function_attributes_tail): Likewise.
5804         (print_operand): For '@', look up trap_exit attribute.
5805         (calc_live_regs): Look up trapa_handler attribute.  For trapa
5806         handlers, save/restore fpscr, but don't do any other
5807         interrupt-specific saves.
5808         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
5809         Fix check for partially saved registers to check for SHmedia.
5810         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
5811         (sh_output_function_epilogue): Don't clear any of the removed
5812         variables.
5813         (sh_insert_attributes): Don't check pragma_interrupt.
5814         Insert deferred attributes.  Check that interrupt attribute is
5815         present for other attributes that require its presence.
5816         (sh_attribute_table): Add new attributes trapa_handler and
5817         nosave_low_regs.
5818         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5819         Don't check for pragma_interrupt.  Don't store argument.
5820         * sh.h (pragma_interrupt, sp_switch): Don't declare.
5821         (sh_deferred_function_attributes): Declare.
5822         (sh_deferred_function_attributes_tail): Likewise.
5823         * sh.md (sp_switch_1): Add operand.  Change generator caller.
5824         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
5825         (*return_i): Don't use when trap_exit attribute is in effect.
5826         (*return_trapa): New insn pattern.
5827         * sh-c.c: New file.
5828         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
5829         setting c_target_objs and cxx_target_objs.
5830         * t-sh: Add rule for sh-c.o.
5831
5832 2006-01-30  Richard Guenther  <rguenther@suse.de>
5833
5834         PR c++/23372
5835         * gimplify.c (gimplify_target_expr): Handle easy cases
5836         without creating a temporary.
5837
5838 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
5839
5840         * vec.h (safe_grow): Remove duplicated line.
5841
5842 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
5843
5844         PR 25874
5845         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
5846         (expand_omp): ... here.
5847         (expand_omp_parallel): Only remove barriers for combined
5848         parallel+workshare constructs.
5849
5850 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
5851
5852         Revert
5853
5854         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
5855         * tree.c (build_qualified_type): Chain the new type to the original
5856         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
5857         a POINTER_TYPE or a REFERENCE_TYPE respectively.
5858         (build_pointer_type_for_mode): Only return unqualified types.
5859         (build_reference_type_for_mode): Likewise.
5860
5861 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
5862
5863         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
5864         * Makefile.in (CXX_COMPAT_WARN): Define.
5865         * configure: Regenerate.
5866
5867 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
5868
5869         PR tree-opt/25911
5870         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
5871         to an if check.
5872
5873 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5874
5875         * toplev.c: Fix thinko.
5876
5877 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5878             Marcin Dalecki  <martin@dalecki.de>
5879
5880         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
5881         (push_srcloc): Use XNEW.
5882         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
5883
5884 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
5885
5886         * df-core.c (df_set_blocks): Deleted all variable.
5887
5888 2006-01-28  Ian Lance Taylor  <ian@airs.com>
5889
5890         * cgraphunit.c (cgraph_assemble_pending_functions): Call
5891         cgraph_output_pending_asms.
5892
5893 2006-01-28  Zack Weinberg  <zackw@panix.com>
5894
5895         * c.opt: Add -W(no-)overlength-strings.
5896         * doc/invoke.texi: Document it.
5897         * c-opts.c (c_common_handle_option): -pedantic implies
5898         -Woverlength-strings, if not explicitly disabled already.
5899         (c_common_post_options): -Woverlength-strings defaults to off, and
5900         is always off for C++.
5901         * c-common.c (fix_string_type): Issue warning about strings longer
5902         than is portable only if warn_overlength_strings.  Rearrange code
5903         a little for clarity.
5904         * configure.in: Check for -Wno-overlength-strings as well before
5905         enabling -pedantic in stage 1.
5906         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
5907         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
5908
5909         * genconditions.c (write_header, write_one_condition)
5910         (write_conditions, write_writer): Consolidate very long strings
5911         that were broken up to fit in C89 portable limit.  Don't use
5912         printf when fputs will do.
5913
5914 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
5915
5916         * combine.c (simplify_comparison <AND>): Check
5917         TRULY_NOOP_TRUNCATION before start using a subreg.
5918
5919         * config/mips/mips.md (*branch_zero<mode>,
5920         *branch_zero<mode>_inverted, *branch_equality<mode>,
5921         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
5922         Remove mode check from comparisons.
5923
5924 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
5925
5926         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
5927
5928 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
5929
5930         * expmed.c (const_mult_add_overflow_p): Remove.
5931         * expr.h: Remove the prototype for const_mult_add_overflow_p.
5932
5933         * recog.c (validate_replace_rtx_subexp): Remove.
5934         * recog.h: Remove the prototype for
5935         validate_replace_rtx_subexp.
5936
5937         * integrate.h: Remove the prototype for
5938         copy_decl_for_inlining.
5939         * rtl.h: Remove the prototype for mark_constant_function.
5940         * tree-vectorizer.h: Remove the prototype for
5941         vect_strip_conversion.
5942
5943         * modulo-sched.c (create_partial_schedule,
5944         free_partial_schedule, reset_partial_schedule): Make them
5945         static.
5946
5947         * hooks.c (hook_bool_rtx_int_false): Remove.
5948         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
5949
5950 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
5951
5952         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
5953         and -mlong-double-128 are incompatible.
5954         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
5955         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
5956         (TARGET_LIBGCC2_CFLAGS): Define.
5957         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
5958         (TARGET_LIBGCC2_CFLAGS): Same.
5959         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
5960
5961 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
5962
5963         PR c/19606.
5964         * c-typeck.c (build_binary_op): Perform implicit casts of
5965         operands before shortening them.
5966
5967         * cfgloopmanip.c (split_loop_bb): Remove.
5968         * cfgloop.h: Remove the prototype for split_loop_bb.
5969
5970         * cfgloop.c (flow_loop_outside_edge_p): Remove.
5971         * cfgloop.h: Remove the prototype for
5972         flow_loop_outside_edge_p.
5973
5974         * emit-rtl.c (init_virtual_regs): Make it static.
5975         * function.h: Remove the prototype for init_virtual_regs.
5976
5977         * recog.c (peephole2_optimize): Make it static.
5978         * recog.h: Remove the prototype for peephole2_optimize.
5979
5980 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
5981
5982         * df-scan.c (df_record_entry_block_defs): Check if
5983         INCOMING_RETURN_ADDR_RTX is defined.
5984
5985 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
5986             Kenneth Zadeck <zadeck@naturalbridge.com>
5987
5988         PR rtl-optimization/24762
5989         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
5990         * targhooks.c (hook_void_bitmap): New hook prototype.
5991         * targhoohs.h (hook_void_bitmap): Ditto.
5992         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
5993         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
5994         * target.h (live_on_entry): New function pointer.
5995         * df-scan.c (df_all_hard_regs): Removed.
5996         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
5997         (df_scan_free_internal): Added df->entry_block_defs.
5998         (df_scan_alloc): Ditto.
5999         (df_scan_dump): Ditto.
6000         (df_uses_record): Plumbed flag field properly thru calls.
6001         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
6002         This part fixes PR24762.
6003         (df_bb_refs_record): Added code to make the frame and arg
6004         pointers live in EH blocks.
6005         (df_refs_record): Added call to df_record_entry_block_defs.
6006         (df_record_entry_block_defs): New function.
6007         * df-core.c: Added comments to describe new artifical defs.
6008         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
6009         (entry_block_defs): New field in struct df.
6010         (df_all_hard_regs): Deleted.
6011         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
6012         * df-problems.c (df_ru_bb_local_compute_process_def):
6013         Added code to handle artifical defs in the entry to a function.
6014         (df_ru_bb_local_compute): Ditto.
6015         (df_rd_bb_local_compute_process_def):  Ditto.
6016         (df_rd_bb_local_compute): Ditto.
6017         (df_lr_bb_local_compute): Ditto.
6018         (df_ur_bb_local_compute): Ditto.
6019         (df_urec_bb_local_compute):  Ditto.
6020         (df_chain_create_bb):  Ditto.
6021         (df_ur_local_finalize): Removed entry.
6022         (df_urec_init): Ditto.
6023         (df_urec_local_finalize): Ditto.
6024         (df_ri_bb_compute): Added detection of last use of pseudos.
6025         * Makefile.in (df-scan.o): Updated dependencies.
6026         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
6027         * config/mips/mips.c (mips_set_live_on_entry): Added.
6028         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
6029         for target hook.
6030         * dce.c (marked_insn_p): Added code to handle artifical defs.
6031
6032 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
6033
6034         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
6035         intrinsic.
6036         (_mm_cvtsi128_si64): Likewise.
6037         (_mm_cvtsd_si64): Likewise.
6038         (_mm_cvttsd_si64): Likewise.
6039         (_mm_cvtsi64_sd): Likewise.
6040         (_mm_cvtsi64_si128): Likewise.
6041         * config/i386/mmintrin.h (_m_from_int64): Likewise.
6042         (_mm_cvtsi64_m64): Likewise.
6043         (_m_to_int64): Likewise.
6044         (_mm_cvtm64_si64): Likewise.
6045         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
6046         (_mm_cvttss_si64): Likewise.
6047         (_mm_cvtsi64_ss): Likewise.
6048         (_mm_cvtss_f32): Likewise.
6049
6050 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
6051
6052         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
6053         for pragma redefine_extname.
6054
6055 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
6056
6057         PR target/25864
6058         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
6059         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
6060         -mno-minimal-toc to previous content.
6061         (bispecs): Remove goal.
6062         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
6063         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
6064         compatibility aliases on powerpc-*-*gnu*.
6065         * config/rs6000/libgcc-ppc-glibc.ver: New file.
6066         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
6067         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
6068         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
6069         (ldblspecs): New goal.
6070         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
6071         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
6072         _df_to_tf.
6073         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
6074         L_sf_to_tf or L_df_to_tf is defined.
6075
6076 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
6077             Alan Modra  <amodra@bigpond.net.au>
6078
6079         PR target/25864
6080         * config/rs6000/linux.h (POWERPC_LINUX): Define.
6081         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
6082         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
6083         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
6084         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
6085         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
6086         (rs6000_override_options): Initialize rs6000_ieeequad.
6087         Initialize TFmode format to ibm_extended_format if not
6088         TARGET_IEEEQUAD.
6089         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
6090         ieeelongdouble.
6091         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
6092         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
6093         (function_arg_advance): IBM long double passed in two FPRs, not
6094         split.
6095         (function_arg): IBM long double passed in FPRs.
6096         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
6097         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
6098         Only multireg GPR aligned.
6099         (rs6000_init_libfuncs): Enable IBM long double functions if not
6100         IEEEQUAD.
6101         (rs6000_generate_compare): Use IBM long double compare if not
6102         TARGET_IEEEQUAD.
6103         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
6104         (TARGET_IEEEQUAD): Define.
6105         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
6106         not TARGET_IEEEQUAD.
6107         * config/rs6000/rs6000.md: Enable TFmode patterns if
6108         !TARGET_IEEEQUAD.
6109         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
6110         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
6111         and -mlong-double-128 are incompatible.
6112         * doc/invoke.texi (-mabi): Collect options together.  Add
6113         ibmlongdouble and ieeelongdouble.
6114
6115 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
6116
6117         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
6118         opaque type.
6119         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
6120         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
6121         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
6122         * rtl.h (rtunion_def): Remove rt_ptr.
6123         (X0PTR): Delete.
6124         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
6125         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
6126         * config/i386/winnt.c (i386_pe_mark_dllexport)
6127         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
6128
6129 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
6130
6131         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
6132
6133 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
6134
6135         PR other/24829
6136         PR target/24831
6137         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
6138         pthread_key_delete.  From John David Anglin.  gthrw-ify
6139         pthread_getunique_np only if it it's not a macro.  Delete
6140         UNUSED macro.
6141         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
6142         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
6143         __gthread_objc_condition_signal, __gthread_key_delete): Add
6144         "__attribute__ ((__unused__))" to unused arguments.
6145         (__gthread_recursive_mutex_init_function): Add missing return.
6146         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
6147         gthr-posix95.h: Use macro-based approach for name redirection
6148         on targets missing weakref.
6149
6150 2006-01-26  Zack Weinberg  <zackw@panix.com>
6151
6152         * genconditions.c (write_header): In generated code, #ifdef out
6153         all includes and fake declarations, except includes of bconfig.h
6154         and system.h, unless GCC_VERSION >= 3001.  Do not include
6155         gensupport.h in any case.
6156         (write_conditions): Generate a definition of struct c_test.  Add
6157         a comment to the generated #endif.
6158         (write_one_condition): Escape backslashes in string too.
6159         (write_writer): Generated code must escape backslashes and quote
6160         marks (but not newlines) in the strings it writes.
6161         * Makefile.in (build/gencondmd.o): Update dependencies.
6162
6163 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
6164
6165         PR target/25961
6166         * Makefile.in (insn-automata.o): Add header file dependencies.
6167         * genautomata.c: Add includes.
6168
6169 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
6170
6171         PR target/25961
6172         * Makefile.in (insn-automata.o): Add -Wno-error flag.
6173
6174 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
6175
6176         * configure.ac: Expect target tools paths to be passed from the toplevel
6177         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
6178         AS_SET_VAR_IF.
6179         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
6180
6181 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
6182
6183         PR c/25892
6184         * c.opt (Wpointer-sign): Init to -1.
6185         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
6186         OPT_pedantic, to 0 otherwise.
6187         * doc/invoke.texi: Update.
6188
6189 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
6190
6191         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
6192         constants provided by 80387 instructions in the destination mode.
6193
6194 2006-01-26  Richard Guenther  <rguenther@suse.de>
6195             Andrew Pinski  <pinskia@physics.uc.edu>
6196
6197         PR tree-opt/21470
6198         partial PR tree-opt/17064
6199         * tree-ssa-structalias.c (intra_create_variable_infos):
6200         Create heap variables for incoming parameters if
6201         flag_argument_noalias > 1.
6202         (find_what_p_points_to): Look through default defs of
6203         parameter decls.
6204
6205 2006-01-26  Jeff Law  <law@redhat.com>
6206
6207         PR ada/25900
6208         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
6209         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
6210         within the VR_RANGE, use the VR_RANGE as the result, not the
6211         VR_ANTI_RANGE.
6212         (adjust_range_with_scev): Reject ranges from SCEV which are out of
6213         bounds for the type.
6214
6215 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
6216
6217         * tree-ssa-alias.c (maybe_create_global_var): Change
6218         subvar walking to an assertion that we don't have subvar'd variables.
6219
6220 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
6221
6222         PR C/25861
6223         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
6224         Use a new variable, inner.  PARM_DECLs are always non-weak.
6225
6226 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
6227
6228         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
6229         --disable-checking.
6230
6231 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
6232
6233         * config/mips/mips.md (*clear_upper32): New combiner pattern.
6234
6235 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
6236
6237         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
6238         (smax_insn, smin_insn, smax_0, smin_0): New.
6239
6240 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
6241
6242         PR target/25947
6243         * config/cris/cris.c (cris_order_for_addsi3): New function.
6244         * config/cris/cris-protos.h: Prototype it.
6245         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
6246         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
6247         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
6248         (split for "op.S1 [rx=rx+i],ry (swapped)")
6249         (split for "op(s|u).S1 [rx=rx+i],ry")
6250         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
6251         Apply cris_order_for_addsi3 when generating addsi3 insns.
6252
6253 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
6254
6255         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
6256         (TREE_BLOCK): Add call to EXPR_CHECK.
6257
6258 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
6259
6260         PR 25886
6261         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
6262         * tree-pretty-print.c (dump_omp_clause): Extract from ...
6263         (dump_omp_clauses): ... here.
6264         (dump_generic_node): Handle OMP_CLAUSE.
6265         * tree.c (omp_clause_num_ops): New.
6266         (omp_clause_code_name): New.
6267         (tree_code_size): Handle OMP_CLAUSE.
6268         (tree_size): Likewise.
6269         (make_node): Document handling of OMP_CLAUSE.
6270         (tree_node_structure): Handle OMP_CLAUSE.
6271         (omp_clause_check_failed): New.
6272         (omp_clause_range_check_failed): New.
6273         (omp_clause_operand_check_failed): New.
6274         (build_omp_clause): New.
6275         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
6276         * tree.h (enum omp_clause_code): Declare.
6277         (OMP_CLAUSE_SUBCODE_CHECK): Define.
6278         (OMP_CLAUSE_RANGE_CHECK): Define.
6279         (OMP_CLAUSE_ELT_CHECK): Define.
6280         (omp_clause_check_failed): Declare.
6281         (omp_clause_operand_check_failed): Declare.
6282         (omp_clause_range_check_failed): Declare.
6283         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
6284         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
6285         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
6286         (OMP_CLAUSE_LASTPRIVATE): Likewise.
6287         (OMP_CLAUSE_IF_EXPR): Likewise.
6288         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
6289         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
6290         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
6291         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
6292         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
6293         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
6294         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
6295         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
6296         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
6297         (OMP_CLAUSE_CODE): Define.
6298         (OMP_CLAUSE_SET_CODE): Define.
6299         (OMP_CLAUSE_CODE): Define.
6300         (OMP_CLAUSE_OPERAND): Define.
6301         (struct tree_omp_clause): Declare.
6302         (union tree_node): Add field 'omp_clause'.
6303         * treestruct.def (TS_OMP_CLAUSE): Define.
6304         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
6305         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
6306         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
6307         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
6308         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
6309         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
6310         (OMP_CLAUSE): Define.
6311         * print-tree.c (print_node): Handle OMP_CLAUSE.
6312         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
6313         * c-typeck.c: Likewise.
6314         * gimplify.c: Likewise.
6315         * c-omp.c: Likewise.
6316         * tree-nested.c: Likewise.
6317         * tree-inline.c: Likewise.
6318         * c-parser.c: Likewise.
6319         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
6320         clauses.
6321
6322 2006-01-25  Roger Sayle  <roger@eyesopen.com>
6323
6324         PR rtl-optimization/25703
6325         * combine.c (try_combine): Handle zero_extract and strict_low_part
6326         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
6327
6328 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
6329
6330         * global.c: Fix comment typos.
6331
6332 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
6333
6334         PR target/25758
6335         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
6336         Use output_addr_const instead of assemble_name.
6337
6338 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
6339
6340         * Makefile.in (sched-vis.o): Update dependencies.
6341         * haifa-sched.c (sched_finish): Clear current_sched_info.
6342         * cfg.c (dump_bb_info): New, split from dump_flow_info.
6343         (dump_flow_info): Call it.
6344         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
6345         a slim RTL dump.
6346         * basic-block.h (dump_bb_info): Declare.
6347         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
6348         option, and apply options only for dump files whose TDF_RTL,
6349         TDF_TREE, or TDF_IPA bits match.
6350         * rtl.h: Declare new functions exported from sched-vis.c.
6351         * sched-vis.c: Enable also if scheduling is not used.
6352         (print_value): Print the mode of registers if not inside scheduling.
6353         (print_insn): Make it work outside the scheduler.  Beautify the output
6354         a bit.
6355         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
6356
6357 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
6358
6359         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
6360         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
6361         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
6362         depending on the value of CONSTANT_POOL_ADDRESS_P.
6363         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
6364         SYMBOL_REF_DECL.
6365         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
6366         rather than SYMBOL_REF_DECL.
6367         (rtx_constant_pool): Remove const_rtx_sym_htab.
6368         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
6369         (init_varasm_status): Don't initialize const_rtx_sym_htab.
6370         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
6371         Remove handling of const_rtx_sym_htab.
6372         (find_pool_constant): Delete.
6373         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
6374         rather than find_pool_constant.
6375         (get_pool_constant_for_function): Delete.
6376         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
6377         find_pool_constant.
6378         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
6379         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
6380         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
6381         (SYMBOL_REF_CONSTANT): New macro.
6382         (get_pool_constant_for_function): Delete.
6383         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
6384         rather than SYMBOL_REF_DECL.
6385         (i386_pe_mark_dllimport): Likewise.
6386         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
6387         rather than SYMBOL_REF_DECL.
6388         * config/darwin.c (machopic_indirect_data_reference): Likewise.
6389         (machopic_indirect_call_target): Likewise.
6390
6391 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
6392
6393         * flow.c (delete_noop_moves): Add missing EOL to dump message.
6394
6395 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
6396
6397         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
6398
6399 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
6400
6401         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
6402
6403 2006-01-24  David Daney  <ddaney@avtrex.com>
6404
6405         PR java/25816
6406         * configure.ac (enable_tls): New enable option.
6407         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
6408         * configure: Regenerate.
6409         * doc/install.texi (--enable-tls): Document new option.
6410         (--disable-tls): Ditto.
6411
6412 2006-01-24  Richard Henderson  <rth@redehat.com>
6413
6414         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
6415         * alias.c (true_dependence): Respect it.
6416         (canon_true_dependence, write_dependence_p): Likewise.
6417         * builtins.c (get_builtin_sync_mem): Set it.
6418
6419 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
6420
6421         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
6422         efficient way.
6423
6424 2006-01-24  DJ Delorie  <dj@redhat.com>
6425
6426         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
6427         for storing constants in single-bit bitfields.
6428
6429 2006-01-25  Ben Elliston  <bje@au.ibm.com>
6430
6431         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
6432
6433 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
6434
6435         PR tree-opt/25860
6436         * tree-ssa-pre.c (phi_translate): Return NULL
6437         for AGGREGATE_TYPE's.
6438
6439 2006-01-24  Zack Weinberg  <zackw@panix.com>
6440
6441         * genautomata.c (process_state_for_insn_equiv_partition):
6442         Use xcalloc for insn_arcs_array.
6443         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
6444         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
6445
6446 2006-01-24  Richard Henderson  <rth@redhat.com>
6447
6448         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
6449         update all callers.
6450
6451 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
6452
6453         PR rtl-optimization/25890
6454         PR rtl-optimization/25905
6455         * combine.c (expand_compound_operation, expand_field_assignment):
6456         Fail if the bitfield's final position is out of bounds.
6457
6458 2006-01-24  Ian Lance Taylor  <ian@airs.com>
6459
6460         PR middle-end/25930
6461         * cgraphunit.c (cgraph_output_in_order): Don't clear
6462         cgraph_asm_nodes until after asm strings have been output.
6463
6464 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
6465
6466         * fix-header.c (read_scan_file): Add new parameter imultilib when
6467         calling register_include_chains.
6468
6469 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
6470
6471         * omp-low.c: Update documentation.
6472
6473 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
6474             Daniel Berlin  <dberlin@dberlin.org>
6475
6476         PR tree-opt/25315
6477         PR tree-opt/25857
6478         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
6479         return from the function.
6480
6481 2006-01-22  Zack Weinberg  <zackw@panix.com>
6482
6483         * rtl.def (match_code): Add second argument.
6484         * genpreds.c (write_extract_subexp): New function.
6485         (write_match_code): Add path argument.  Use write_extract_subexp.
6486         (write_predicate_expr): Pass path to write_match_code.
6487         (mark_mode_tests): MATCH_CODE applied to a subexpression does
6488         not perform a mode test.
6489         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
6490         a subexpression does not constrain the top-level code set.
6491         * read-rtl.c (read_rtx_variadic): New function.
6492         (read_rtx_1): Use it; allow AND and IOR to be variadic.
6493         * doc/md.texi: Document new notation.
6494         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
6495         (cmpsi_operand): ... here, using new notation.
6496
6497 2006-01-22  Zack Weinberg  <zackw@panix.com>
6498
6499         * varray.c: Remove GENERATOR_FILE #ifdefs.
6500
6501 2006-01-22  Zack Weinberg  <zackw@panix.com>
6502
6503         * genautomata.c (output_reserved_units_table): Emit nothing if
6504         description->query_units_num is zero.  Remove extra blank line.
6505         (output_cpu_unit_reservation_p): Short circuit
6506         if description->query_units_num is zero.
6507
6508 2006-01-22  Zack Weinberg  <zackw@panix.com>
6509
6510         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
6511         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
6512         nor any of the random handful of variables that used to be necessary
6513         when this program was linked with rtlanal.o.  Prune set of forward
6514         function declarations.
6515         (struct attr_desc): Remove static_p field.
6516         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
6517         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
6518         (attr_string): Do not read the character one past the length of
6519         the string.
6520         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
6521         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
6522         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
6523         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
6524         (make_automaton_attrs): New.
6525         (main): Do not call into genautomata.  Call local gen_bypass
6526         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
6527         Remove special case for insn_alts.
6528         * genautomata.c: Include gensupport.h; not genattrtab.h nor
6529         varray.h (leftover from previous change).  Prune set of forward
6530         function declarations.  Remove state_alts fields from all
6531         structures.  Remove state_alts_table from struct automaton.
6532         Make everything except main static.  Do not maintain num_dfa_decls.
6533         Do not maintain state_alts fields of various structures.
6534         (process_decls): Don't validate condexp for dm_insn_reserv decls.
6535         (add_arc): Remove state_alts argument.  All callers updated.
6536         (output_reserved_units_table): Emit #ifdef here...
6537         (output_tables): ...not here.  Don't generate state_alts tables.
6538         (expand_automata): Don't generate attributes.
6539         (write_automata): Don't generate state_alts functions.
6540         (main): New function.
6541         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
6542         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
6543         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
6544         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
6545         (BYPASS_P_FUNC_NAME, output_state_alts_table)
6546         (output_automata_list_state_alts_code, output_internal_state_alts_func)
6547         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
6548         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
6549         Delete.
6550         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
6551         * genattrtab.h: Delete file.
6552         * Makefile.in (OBJS-common): Add insn-automata.o.
6553         (insn-automata.o): New rule.
6554         (simple_generated_c): Add insn-automata.c.
6555         (build/genattrtab.o, build/genautomata.o): Update dependencies.
6556         (genprogmd): Add automata.
6557         (build/genattrtab): Needs no extra objects nor libraries.
6558         (build/genautomata): Needs build/vec.o and -lm.
6559
6560 2006-01-22  Zack Weinberg  <zackw@panix.com>
6561
6562         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
6563         (output_dfa_max_issue_rate, locked_states_num): Delete.
6564         (struct automaton): Add locked_states field.
6565         (output_dead_lock_vect): Save number of locked states in
6566         automaton->locked_states.  If it is zero, don't print anything.
6567         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
6568         (output_internal_dead_lock_func): Only test the dead_lock_vect
6569         for automata that have locked states.
6570         (output_statistics): Always print the number of locked states for
6571         each automaton.  Calculate total number of locked states here.
6572         (write_automata): Don't call output_dfa_max_issue_rate.
6573         * genattrtab.c: Define length_unit_log as a const variable.
6574         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
6575         max_insn_queue_index const.
6576         * final.c (length_unit_log): Declare const.
6577         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
6578
6579 2006-01-22  Zack Weinberg  <zackw@panix.com>
6580
6581         * genautomata.c:  Include vec.h, not varray.h.
6582         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
6583         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
6584         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
6585         VEC_* macros operating on appropriately typed vectors, or to
6586         malloced arrays when the size is known in advance.  Const-ify
6587         many char* variables and function arguments.  No functional changes.
6588         * Makefile.in (build/varray.o): Delete rule.
6589         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
6590         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
6591
6592 2006-01-22  Zack Weinberg  <zackw@panix.com>
6593
6594         * gensupport.c: Define get_insn_name and record_insn_name here.
6595         (read_md_rtx): Call record_insn_name as appropriate.
6596         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
6597         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
6598         * genpreds.c, genrecog.c: Don't define get_insn_name nor
6599         record_insn_name.
6600         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
6601         (BUILD_VARRAY): Delete.
6602         (genprognormal): Rename genprogmd.  Fold in all programs from
6603         genprognoprint; also attrtab.
6604         (build/genattrtab): Just mention genautomata.o and varray.o.
6605         Reorganize a bit, add comments to make the categories clearer.
6606
6607 2006-01-22  Zack Weinberg  <zackw@panix.com>
6608
6609         * genconditions.c (condition_table, add_condition): Delete.
6610         (write_conditions): Don't emit n_insn_conditions nor
6611         insn_elision_unavailable.  Issue the gcc version #ifdef here,
6612         inside the table, with no #else clause ...
6613         (write_header): ...not here.
6614         (write_writer): New function.
6615         (main): Don't initialize condition_table.  Use add_c_test.
6616         Call write_writer.
6617         * gensupport.c (init_md_reader_args_cb): Handle multiple input
6618         files on the command line.
6619         (maybe_eval_c_test): Don't check insn_elision_unavailable.
6620         Return -1 if there is no entry in the table, don't abort.
6621         (add_c_test, traverse_c_tests): New functions.
6622         * gensupport.h (insn_elision_unavailable, insn_conditions)
6623         (n_insn_conditions): Delete declarations.
6624         (add_c_test, traverse_c_tests): Declare.
6625         * read-rtl.c: Include gensupport.h.
6626         (read_conditions): New function.
6627         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
6628         (read_rtx_1): If we get EOF when we were looking for an initial
6629         open paren, return 0.  Call read_conditions when appropriate.
6630         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
6631         dummy-conditions.o.  Eliminate references to insn-conditions.o,
6632         or change them to build/gencondmd.o, as appropriate.  Remove
6633         insn-constants.h from $(simple_generated_h) and insn-conditions.c
6634         from $(simple_generated_c).  For all files remaining in those
6635         two lists, add insn-conditions.md to the generator command line.
6636         Give insn-constants.h/s-constants their own rules.  Add rules
6637         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
6638         (build/read-rtl.o): Depend on gensupport.h.
6639         (genprognormal): Include preds.
6640         (genprogearly): Rename genprognoprint; only difference is now that
6641         they don't link with $(BUILD_PRINT).
6642         * dummy-conditions.c: Delete.
6643
6644 2006-01-22  Zack Weinberg  <zackw@panix.com>
6645
6646         * genextract.c: Don't include insn-config.h.  Do include vec.h.
6647         Declare vectors of int, char, and locstr.
6648         (locstr): New typedef.
6649         (struct extraction): Make all array fields into bare pointers.
6650         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
6651         (insn_code_number): Delete.
6652         (accum_extract): New struct.
6653         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
6654         (gen_insn): Take insn_code_number as an argument.  Use an
6655         accum_extract structure instead of loading data directly into
6656         a struct extraction, and having to know how big it might get.
6657         (walk_rtx): Operate entirely on an accum_extract structure.
6658         (print_path): Avoid unnecessary use of printf.
6659         (print_header): New function, split out of main.  Distinguish
6660         more carefully between an unrecognizable insn and an insn that
6661         has the code number of a define_expand.
6662         (main): Pass insn_code_number to gen_insn.  Call print_header
6663         only after parsing.  Avoid unnecessary use of printf.
6664         * Makefile.in (build/vec.o): New rule.
6665         (build/genextract): Depend on build/vec.o.
6666         (build/genextract.o): Don't depend on insn-config.h.
6667
6668 2006-01-22  Zack Weinberg  <zackw@panix.com>
6669
6670         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
6671         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
6672         practical.  Eliminate per-generator-program link rules.
6673
6674 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
6675
6676         PR middle-end/24437
6677         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
6678         with a call expr to ...
6679         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
6680
6681 2006-01-23  Richard Guenther  <rguenther@suse.de>
6682
6683         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
6684         before make_edge with conditional EDGE_TRUE_VALUE.
6685
6686 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
6687         Jan Hubicka  <jh@suse.cz>
6688         Richard Guenther  <rguenther@suse.de>
6689
6690         PR rtl-optimization/25654
6691         * cfgexpand.c (aggregate_contains_union_type): New function.
6692         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
6693         for structure variables that contain a union type.
6694
6695 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
6696
6697         * gengtype.c (new_structure): Return the structure.
6698         (create_option): Add an extra "next" argument.
6699         (create_field): New function.
6700         (adjust_field_rtx_def): Use create_option and create_field.
6701         Remove a now-unnecessary call to find_structure.
6702         (adjust_field_tree_def): Likewise.
6703         (note_yacc_type): Remove an unnecessary call to find_structure.
6704         * gengtype.h (new_structure): Return the structure.
6705         (create_option): Add an extra argument.
6706         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
6707         (option): Adjust calls to create_option.
6708
6709 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
6710
6711         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
6712
6713 2006-01-22  Paul Brook  <paul@codesourcery.com>
6714         Peter Barada  <peter@the-baradas.com>
6715
6716         * config/m68k/m68k.md: Add Coldfire FPU support.
6717         Define FP mode macro and associated attributes.
6718         Use it for float mode patterns.
6719         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
6720         (LIBCALL_VALUE): Use m68k_libcall_value.
6721         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
6722         (m68k_function_value): Ditto.
6723         (emit_move_sequence): Ditto.
6724         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
6725         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
6726         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
6727         (MULTILIB_EXCEPTIONS): Ditto.
6728         * config/m68k/m68k.opt: Add mcfv4e.
6729         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
6730         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
6731         (m68k_output_function_prologue): Save ColdFire FPU registers.
6732         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
6733         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
6734         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
6735         ColdFire FPU registers.
6736         (m68k_libcall_value, m68k_function_value): New functions.
6737         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
6738         (LIBCALL_VALUE): Use m68k_libcall_value.
6739         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
6740         (MASK_COLDFIRE): Add MASK_CFV4E.
6741         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
6742         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
6743         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
6744         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
6745         (GO_IF_LEGITIMATE_ADDRESS): Use it.
6746         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
6747         * doc/invoke.tex: Document -mcfv4e on m68k.
6748
6749 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
6750
6751         * doc/contribute.texi: Change CVS to SVN and update the corresponding
6752         URL.
6753
6754 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6755
6756         PR c++/16190
6757         * c-opts.c (c_common_handle_option): Don't include
6758         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
6759         * doc/invoke.texi (C++ Dialect Options): Document that
6760         -Wnon-virtual-dtor is no longer included in -Wall.
6761
6762 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
6763
6764         * gcov.c (print_version), gcov-dump.c (print_version),
6765         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
6766         dates.
6767
6768 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
6769
6770         * df-scan.c (problem_SCAN): Added NULL reset function.
6771         (df_scan_reset_blocks): Added code to call reset block function
6772         (df_bb_refs_delete) Fixed comment.
6773         (df_insn_refs_delete): Made tolerant of deleting non existent info
6774         for dataflow problems that need to be reset.
6775         * df-core.c (df_set_blocks): Ditto.
6776         * df.h (struct df_problem): Added reset_fun.
6777         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
6778         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
6779         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
6780         functions to clear out all references to def-use or use-def chains.
6781
6782 2006-01-21  Ben Elliston  <bje@au.ibm.com>
6783
6784         * varasm.c (assemble_real): Initialise data array.
6785
6786 2006-01-20  Paul Brook  <paul@codesourcery.com>
6787
6788         Merge from csl-arm-branch.
6789         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
6790         * config/arm/arm.md (movdi): Force operands[1] to a register
6791         if we have a non-register source.
6792         (*arm_movdi, *movdf_soft_insn): Require that one of the
6793         operands be a register.
6794         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
6795         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
6796
6797 2006-01-20  DJ Delorie  <dj@redhat.com>
6798
6799         * varasm.c (initialize_constant_valid_p): Allow pointers
6800         initialized from integer constants of lesser precision.
6801         (output_constant): Allow non-int-sized pointer modes to be
6802         initialized from integer constants.
6803
6804 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
6805
6806         PR libstdc++/25524
6807         * cppdefault.h (struct default_include): Add multilib flag.
6808         * cppdefault.c (cpp_include_defaults): Set it.
6809         * c.opt (-imultilib): New option.
6810         * c-opts.c (imultilib): New.
6811         (c_common_handle_option): Handle -imultilib.
6812         (c_common_post_options): Likewise.
6813         * c-incpath.c (add_standard_paths, register_include_chains):
6814         Likewise.
6815         * c-incpath.h (register_include_chains): Add extra parameter.
6816         * gcc.c (do_spec_1): Generate -imultilib option.
6817         (The Specs Language): Update %I description.
6818         (process_command): Update copyright notice.
6819         * doc/cppopts.texi (-imultilib): Document.
6820         * doc/invoke.texi (-imultilib): Include in option summary.
6821         (%I): Update specs documentation.
6822
6823 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
6824
6825         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
6826
6827 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
6828
6829         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
6830         label numbers.
6831
6832 2006-01-20  Richard Guenther  <rguenther@suse.de>
6833         Steven Bosscher <stevenb.gcc@gmail.com>
6834
6835         PR rtl-optimization/24626
6836         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
6837         EDGE_TRUE_VALUE if in RTL mode.
6838
6839         Revert
6840         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
6841         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
6842
6843 2006-01-20  Dirk Mueller  <dmueller@suse.com>
6844
6845         PR c++/5520
6846         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
6847         instead of a special NOP marker.
6848         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
6849         NOP marker handling.
6850         * c-common.h (empty_body_warning): Add forward declaration.
6851         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
6852         Now uses IS_EMPTY_STMT() instead of special NOP markers.
6853
6854 2006-01-20  Paul Brook  <paul@codesourcery.com>
6855
6856         * Makefile.in (lang_checks): Keep going if mkdir fails.
6857
6858 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
6859
6860         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
6861         be able to clean out basic block when not necessary.
6862         (df_scan_free): Fixed to properly delete information if df is
6863         unused before calling df_finish.
6864         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
6865         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
6866         or comment typos.
6867         (df_bb_refs_delete): New function.
6868         (df_refs_delete): Moved per block code to df_bb_refs_delete.
6869         * df-core.c (df_set_blocks): Added code to properly clean out
6870         unused blocks if they are not part of the blocks to consider.
6871         Added additional null check.
6872         (df_compact_blocks): Added basic block parameter to free_bb_fun to
6873         be able to clean out basic block when not necessary
6874         * df.h (df_free_bb_function): Ditto.
6875         (df_bb_refs_delete): New function.
6876         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
6877         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
6878         basic block parameter to be able to clean out basic block when not
6879         necessary.
6880         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
6881         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
6882         Fixed to properly delete information if df is unused before
6883         calling df_finish.
6884
6885 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
6886
6887         PR rtl-optimization/25799
6888         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
6889         Corrected confluence operator to remove bits from op2 before oring
6890         with op1 rather than removing bits from op1.
6891         (df_ru_transfer_function): Corrected test on wrong bitmap which
6892         caused infinite loop.  Both of these problems were introduced in
6893         the dataflow rewrite.
6894
6895 2006-01-19  DJ Delorie  <dj@redhat.com>
6896
6897         * reload1.c (find_reload_regs): Note the details of reload
6898         failures in the dump file.
6899         (spill_failure): Likewise.
6900
6901 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
6902
6903         * loop-iv.c: Include df.h and hashtab.h.
6904         (enum iv_grd_result): New enum.
6905         (DF_REF_IV, DF_REF_IV_SET): New macros.
6906         (struct biv_entry): New.
6907         (df, bivs): New global variables.
6908         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
6909         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
6910         Removed.
6911         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
6912         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
6913         analyzed_for_bivness_p, record_biv): New functions.
6914         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
6915         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
6916         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
6917         UD chains.
6918         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
6919         analysed.
6920         (iv_number_of_iterations): Use new interface to iv analysis.
6921         * loop-unroll.c: Do not include varray.h.
6922         (analyze_iv_to_split_insn): Use new interface to iv
6923         analysis.
6924         * loop-unswitch.c (may_unswitch_on): Ditto.
6925         * df.c (df_bitmaps_free): Only work for bbs for that structures are
6926         allocated.
6927         (df_bb_modify): Realloc tables to the new index.
6928         (df_find_use): New function.
6929         * df.h (df_find_use): Declare.
6930         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
6931         outmode.
6932         * cfgloop.h (struct rtx_iv): Remove analysed field.
6933         (iv_get_reaching_def): Removed.
6934         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
6935         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
6936         (loop-iv.o): Add df.h and hashtab.h dependency.
6937         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
6938
6939 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
6940
6941         PR target/25668
6942         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
6943         Double TFmode.
6944         (__floatundisf, __floatundidf): Likewise.
6945         * libgcc2.h (IS_IBM_EXTENDED): Define.
6946
6947 2006-01-19  DJ Delorie  <dj@redhat.com>
6948
6949         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
6950
6951 2006-01-19  Paul Brook  <paul@codesourcery.com>
6952
6953         * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
6954         as nothrow when unwinding tables are disabled.
6955
6956 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6957
6958         PR testsuite/25171
6959         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
6960         of bit-field" when in system header.
6961
6962 2006-01-19  DJ Delorie  <dj@redhat.com>
6963
6964         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
6965         the 16 bit shift limit of the m16c.
6966
6967 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
6968
6969         PR target/22099
6970         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
6971         * config/i386/i386.c (output_set_got): Output the label if we have one
6972         for the TARGET_DEEP_BRANCH_PREDICTION case.
6973
6974 2006-01-19  Jan Hubicka  <jh@suse.cz>
6975             H.J. Lu  <hongjiu.lu@intel.com>
6976             Evandro Menezes <evandro.menezes@amd.com>
6977
6978         * invoke.texi (generic): Document
6979         (i686) Update.
6980         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
6981         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
6982         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
6983         (x86_use_incdec, x86_pad_returns): New variables
6984         (TARGET_CPU_DEFAULT_generic): New constant
6985         (TARGET_CPU_DEFAULT_NAMES): Add generic.
6986         (enum processor_type): Add generic32 and generic64.
6987         * i386.md (cpu attribute): Add generic32/generic64
6988         (movhi splitter): Behave sanely when both partial_reg_dependency and
6989         partial_reg_stall are set.
6990         (K8 splitters): Enable for generic as well.
6991         * predicates.md (incdec_operand): Use TARGET_INCDEC
6992         (aligned_operand): Avoid memory mismatch stalls.
6993         * athlon.md: Enable for generic64, new patterns for 128bit moves.
6994         * ppro.md: Enable for generic32
6995         * i386.c (generic64_cost, generic32_cost): New.
6996         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
6997         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
6998         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
6999         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
7000         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
7001         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
7002         x86_partial_reg_dependency, x86_memory_mismatch_stall,
7003         x86_accumulate_outgoing_args, x86_prologue_using_move,
7004         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
7005         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
7006         Enable for generic.
7007         (x86_use_incdec, x86_pad_returns): New.
7008         (override_options): Add generic32 and generic64, translate "generic"
7009         to generic32/generic64 and "i686" to "generic32", refuse
7010         "generic32"/"generic64" as arch target.
7011         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
7012         (ix86_reorg): Honor PAD_RETURNS.
7013
7014 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
7015
7016         * tree-pretty-print.c (dump_generic_node): Handle
7017         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
7018         * cgraph.c (cgraph_expand_queue): Rename from
7019         cgraph_analyze_queue.  Update all users.
7020         * cgraphunit.c (cgraph_assemble_pending_functions): Process
7021         cgraph_expand_queue.
7022         (cgraph_expand_all_functions): Likewise.
7023         (cgraph_finalize_pending_functions): Remove.  Update callers.
7024
7025         * tree.h (OMP_DIRECTIVE_P): Define.
7026         (OMP_PARALLEL_FN): Define.
7027         (OMP_PARALLEL_DATA_ARG): Define.
7028         (OMP_SECTIONS_SECTIONS): Define.
7029         * tree-pass.h (pass_expand_omp): Declare.
7030         * omp-low.c (struct omp_region): Declare.
7031         (struct omp_context): Remove fields 'parallel_type',
7032         'parallel_start_ix' and 'parallel_start_additional_args'.
7033         Update all users.
7034         (struct omp_for_data): Rename from struct expand_omp_for_data.
7035         (omp_regions): New static variable.
7036         (root_omp_region): New static variable.
7037         (find_omp_clause): Make static.
7038         (is_in_combined_parallel_ctx): Remove.
7039         (is_combined_parallel): New.
7040         (extract_omp_for_data): Move earlier in the file.
7041         (workshare_safe_to_combine_p): New.
7042         (get_ws_args_for): New.
7043         (determine_parallel_type): Move earlier in the file.
7044         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
7045         child function.
7046         (omp_copy_decl): Likewise.
7047         (create_omp_child_function): Likewise.
7048         (lookup_omp_region): New.
7049         (dump_omp_region): New.
7050         (debug_omp_region): New.
7051         (debug_all_omp_regions): New.
7052         (new_omp_region): New.
7053         (scan_omp_parallel): If parallel_nesting_level > 1, the
7054         directive is nested within another parallel directive.
7055         Set OMP_PARALLEL_FN.
7056         (scan_omp_for): Do not try to handle combined parallel+for
7057         cases.
7058         Remove FIXME comment.
7059         (scan_omp_nested): Remove.
7060         (scan_omp_1): Do not call scan_omp_nested when
7061         parallel_nesting_level is > 1.
7062         Do not change the DECL_CONTEXT of local variables found.
7063         (lookup_decl_in_outer_ctx): New.
7064         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
7065         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
7066         (lower_reduction_clauses): Rename from expand_reduction_clauses.
7067         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
7068         If CTX is nested, lookup VAR in the outer context when
7069         building copy assignment.
7070         (lower_send_clauses): Rename from expand_send_clauses.
7071         If CTX is nested, lookup VAR in the outer context when
7072         building copy assignments.
7073         (lower_send_shared_vars): Rename from expand_send_shared_vars.
7074         If CTX is nested, lookup VAR in the outer context when
7075         building copy assignments.
7076         (expand_parallel_call): Rename from build_parallel_call.
7077         Handle combined parallel+workshare cases.
7078         Re-implement to emit code into the CFG.
7079         (list2chain): New.
7080         (expand_omp_parallel): Re-implement to emit code into the CFG.
7081         Call move_sese_region_to_fn to outline the sub-graph
7082         containing the parallel region.
7083         (expand_omp_for_1): Remove.
7084         (expand_omp_for_generic): Re-implement to emit code into the
7085         CFG.
7086         (expand_omp_for_static_nochunk): Likewise.
7087         (expand_omp_for_static_chunk): Likewise.
7088         (expand_omp_for): Likewise.
7089         (expand_omp_sections): Likewise.
7090         (remove_exit_barriers): New.
7091         (expand_omp_synch): New.
7092         (expand_omp): New.
7093         (build_omp_regions_1): New.
7094         (build_omp_regions): New.
7095         (execute_expand_omp): New.
7096         (gate_expand_omp): New.
7097         (pass_expand_omp): Define.
7098         (lower_omp_sections): Rename from expand_omp_sections.
7099         Set OMP_SECTIONS_SECTIONS.
7100         (lower_omp_single_simple): Rename from expand_omp_single_simple.
7101         (lower_omp_single_copy): Rename from expand_omp_single_copy.
7102         (lower_omp_single): Rename from expand_omp_simple.
7103         (lower_omp_master): Rename from expand_omp_master.
7104         (lower_omp_ordered): Rename from expand_omp_ordered.
7105         (lower_omp_critical): Rename from expand_omp_critical.
7106         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
7107         (lower_omp_for): Re-implement.
7108         (lower_omp_parallel): Re-implement.
7109         (lower_regimplify): Rename from expand_regimplify.
7110         (lower_omp_1): Rename from expand_omp_1.
7111         If there are syntax errors in the program, replace every
7112         OpenMP directive with NOP.
7113         Call lower_omp_* instead of expand_omp_*.
7114         (lower_omp): Rename from expand_omp.
7115
7116         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
7117         * tree-gimple.h (enum omp_parallel_type): Remove.
7118         (gimple_boolify): Declare extern.
7119         (find_omp_clause, determine_parallel_type): Remove.
7120
7121         * gimple-low.c (lower_omp_directive): New.
7122         (lower_stmt): Call it.
7123         (record_vars_into): Move from ...
7124         (record_vars): ... here.
7125         Call record_vars_into with current_function_decl.
7126
7127         * gimplify.c (struct gimplify_ctx): Remove fields
7128         combined_pre_p and combined_ctxp.  Update users.
7129         (get_formal_tmp_var): Add documentation.
7130         (gimple_boolify): Make extern.
7131         (gimplify_expr_in_ctx): Remove.  Update callers.
7132         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
7133         will always be a BIND_EXPR.
7134         (gimplify_expr): Handle OMP_RETURN_EXPR.
7135         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
7136         (OMP_PARALLEL): Add 3 operands.
7137         (OMP_SECTIONS): Add 1 operand.
7138         (OMP_RETURN_EXPR): Define.
7139
7140         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
7141         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
7142         * tree-iterator.c (alloc_stmt_list): Assert that we are not
7143         creating a circular free list.
7144         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
7145
7146         * tree-flow.h (move_sese_region_to_fn): Declare.
7147         (record_vars_into): Declare.
7148         * tree-cfg.c (make_omp_sections_edges): New.
7149         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
7150         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
7151         OMP_SECTIONS and OMP_SECTION.
7152         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
7153         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
7154         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
7155         (gather_blocks_in_sese_region): New.
7156         (struct move_stmt_d): Declare.
7157         (move_stmt_r): New.
7158         (move_block_to_fn): New.
7159         (move_sese_region_to_fn): New.
7160
7161         * passes.c (init_optimization_passes): Schedule
7162         pass_expand_omp after pass_init_datastructures.
7163
7164         * tree-ssa-operands.c (get_expr_operands): Handle
7165         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
7166         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
7167
7168 2006-01-19  Jeff Law  <law@redhat.com>
7169
7170         * tree-vrp.c (extract_range_from_assert): Refine the result range
7171         if the variable referenced by the ASSERT_EXPR has a range and
7172         either the tentative result range or the previous range is a
7173         VR_ANTI_RANGE.
7174
7175 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
7176
7177         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
7178
7179 2006-01-19  Jan Hubicka  <jh@suse.cz>
7180
7181         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
7182
7183 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
7184
7185         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
7186         (expand_compound_operation, expand_field_assignment): Fail if the
7187         bit lengths of an extract operation are out of range.
7188         (make_extraction): Compute wanted_inner_mode based on the position
7189         and length of the extraction.  Make it extraction_mode for non-constant
7190         positions, and do not modify offset in that case.  When generating a
7191         new MEM, use a mode that can hold the extraction while keeping correct
7192         alignment.  Remove code that supported MEMs wrapped by USEs.
7193         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
7194
7195 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
7196
7197         * config/s390/s390.md ("Y", "y"): New mode attribute.
7198         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
7199         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
7200         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
7201         "*addsi3_imm_cc", "*addsi3_carry1_cc",
7202         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
7203         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
7204         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
7205         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
7206         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
7207         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
7208         "addsi3", "subsi3"): Insn patterns removed.
7209         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
7210         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
7211         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
7212         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
7213         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
7214         "*sub<mode>3_cconly2"): New insn patterns.
7215         ("addsi3", "subsi3"): New expanders.
7216
7217 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
7218
7219         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
7220         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
7221         existing STMT_VINFO_VECTYPE if available.
7222         (vect_mark_relevant): Add special handling for stmts that are
7223         marked as STMT_VINFO_IN_PATTERN_P.
7224         (vect_analyze_loop): Call vect_pattern_recog.
7225         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
7226         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
7227         stmt_info.
7228         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
7229         (vect_recog_func_ptr): New function-pointer type.
7230         * tree-vect-patterns.c: New file.
7231         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
7232         (vect_recog_dot_prod_pattern, vect_pattern_recog):
7233         (vect_pattern_recog_1): New functions.
7234         (vect_pattern_recog_funcs): New array of function pointers.
7235
7236         * tree-vectorizer.h (ternary_op): New enum value.
7237         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
7238         declaration. Revised documentation. Removed redundant dump prints.
7239         Removed redundant argument. Added support for reduction patterns.
7240         (vectorizable_reduction): Added support for reduction patterns.
7241         (vect_transform_stmt): Added support for patterns.
7242
7243         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
7244         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
7245         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
7246         (expand_widen_pattern_expr): New function.
7247         (init_optabs): Initialize new optabs udot_prod_optab,
7248         sdot_prod_optab.
7249         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
7250         (sdot_prod_optab, udot_prod_optab): Define new optabs.
7251         (expand_widen_pattern_expr): New function declaration.
7252         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
7253         tree-codes.
7254         * tree-inline.c (estimate_num_insns_1): Added cases for new
7255         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
7256         * tree-pretty-print.c (dump_generic_node): Likewise.
7257         (op_prio): Likewise.
7258         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
7259         * tree-ssa-operands.c (get_expr_operands): Added case for
7260         DOT_PROD_EXPR.
7261         * tree-vect-patterns.c (widened_name_p): New function.
7262         (vect_recog_dot_prod_pattern): Added function implementation.
7263         * tree-vect-transform.c (get_initial_def_for_reduction): Added
7264         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
7265         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
7266         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
7267
7268         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
7269         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
7270         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
7271         (init_optabs): Initialize new optabs widen_ssum_optab,
7272         widen_usum_optab.
7273         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
7274         (widen_ssum_optab, widen_usum_optab): Define new optabs.
7275         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
7276         use instead of type of def.
7277         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
7278         function implementation.
7279         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
7280         widen_ssumv8hi): New.
7281
7282         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
7283         patterns.
7284
7285 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
7286
7287         PR c/25805
7288         * c-decl.c (add_flexible_array_elts_to_size): New function.
7289         (finish_decl): Use it.
7290
7291 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
7292
7293         * diagnostic.h: Include options.h.
7294         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
7295         dependancies for diagnostic.h.
7296         * Makefile.in (DIAGNOSTIC_H): Add options.h.
7297
7298 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
7299
7300         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
7301         (ssa_ro_call_cache_valid): Ditto.
7302         * tree-ssa-alias.c (sort_tags_by_id): New function.
7303         (init_transitive_clobber_worklist): Ditto.
7304         (add_to_worklist): Ditto.
7305         (mark_aliases_call_clobbered): Ditto.
7306         (compute_tag_properties): Ditto.
7307         (set_initial_properties): Ditto.
7308         (compute_call_clobbered): Ditto.
7309         (compute_may_aliases):  Call compute_call_clobbered and grouping.
7310         (compute_flow_sensitive_aliasing): Remove clobbering related code.
7311         (compute_flow_insensitive_aliasing): Grouping now happens in our
7312         caller.
7313         (setup_pointers_and_addressables): Remove clobbering related code.
7314         (add_may_alias): Ditto.
7315         (replace_may_alias): Ditto.
7316         (get_nmt_for): Ditto.
7317         (create_global_var):
7318         (is_escape_site): Return an escape_type enumeration.
7319         * tree-flow-inline.h (is_call_clobbered):  Global var does not
7320         imply call clobbered.
7321         (mark_call_clobbered): Take a reason for marking this. Remove
7322         marking of globalness, and cache invalidation.
7323         (clear_call_clobbered): Remove cache invalidation code.
7324         * tree-dfa.c (dump_variable): If details is on, dump the reason
7325         for escaping.
7326         * tree-outof-ssa.c (create_temp): Copy escape mask from original
7327         variable.
7328         * tree-flow.h (struct ptr_info_def): Add escape mask member.
7329         (struct var_ann_d): Ditto.
7330         (enum escape_type): New.
7331         (mark_call_clobbered): Adjust prototype.
7332         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
7333         are never call clobbered.
7334         Record reasons for escaping.
7335         * tree-ssa-structalias.h (is_escape_site): Update prototype.
7336         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
7337         (ssa_ro_call_cache_valid): Ditto.
7338         (clobbered_v_may_defs): Ditto.
7339         (clobbered_vuses): Ditto.
7340         (ro_call_vuses): Ditto.
7341         (clobber_stats): New.
7342         (init_ssa_operands): Zero out clobber stats.
7343         (fini_ssa_operands): Print out clobber stats.
7344         (get_call_expr_operands): Pass callee fndecl to
7345         add_call_read_ops).
7346         (add_call_clobber_ops): Remove use of cache.
7347         Add use of PURE_CONST information.
7348         (add_call_read_ops): Remove use of cache.
7349         Add use of static not_read information.
7350
7351 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
7352
7353         Introduce TLS descriptors for i386 and x86_64.
7354         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
7355         (TARGET_ANY_GNU_TLS): New macro.
7356         (enum tls_dialect): Added TLS_DIALECT_GNU2.
7357         (struct machine_function): Add tls_descriptor_call_expanded_p.
7358         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
7359         (ix86_current_function_calls_tls_descriptor): Likewise.
7360         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
7361         (override_options): Introduce gnu2 tls dialect.
7362         (ix86_frame_pointer_required): Functions containing TLSCALLs are
7363         not leaves.
7364         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
7365         Likewise.
7366         (legitimize_tls_address): Adjust logic for GNU2 TLS.
7367         (ix86_init_machine_status): Initialize new field.
7368         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
7369         (ix86_tls_module_base): New.
7370         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
7371         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
7372         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
7373         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
7374         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
7375         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
7376         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
7377         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
7378         * config/i386/predicates.md (tls_modbase_operand): New.
7379         (tp_or_register_operand): New.
7380
7381 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
7382
7383         * ipa-reference.c (check_operand):  Allow FUNCTION_DECL.
7384         (look_for_address_of): Ditto.
7385         (ipa_init): Walk the function decls.
7386         (static_execute): Don't set readonly on FUNCTION_DECL's.
7387
7388 2006-01-18  Roger Sayle  <roger@eyesopen.com>
7389
7390         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
7391         for shifts where the source and destination registers are different.
7392
7393 2006-01-18  Paul Brook  <paul@codesourcery.com>
7394
7395         Merge from csl-arm-branch.
7396         2005-03-14  Julian Brown  <julian@codesourcery.com>
7397         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
7398         (aeabi_llsl): Likewise.
7399         (ashrdi3): Likewise.
7400         (aeabi_lasr): Likewise.
7401         (lshrdi3): Likewise.
7402         (aeabi_llsr): Likewise.
7403         2005-03-10  Julian Brown  <julian@codesourcery.com>
7404         * config.gcc: Disable shared libgcc for SymbianOS.
7405         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
7406
7407 2006-01-18  DJ Delorie  <dj@redhat.com>
7408
7409         * c-pragma.c (handle_pragma_diagnostic): New.
7410         (init_pragma): Register it.
7411         * doc/extend.texi: Document it.
7412
7413         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
7414         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
7415         (diagnostic_context): Add classify_diagnostic[].
7416         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
7417         as errors if they're overridden to DK_WARNING.
7418         (diagnostic_initialize): Initialize classify_diagnostic[].
7419         (diagnostic_set_kind_override): New.
7420         (diagnostic_report_diagnostic): Check for kind changes.
7421         * opts.c (common_handle_option): Take lang_mask.  Update callers.
7422         Handle OPT_Werror_.
7423         * common.opt (Werror=): New.
7424         * doc/invoke.texi: Document -Werror=*
7425
7426 2006-01-18  Jeff Law  <law@redhat.com>
7427
7428         * tree-vrp.c (test_for_singularity): Correct test for new
7429         min limit.  Use operand_equal_p rather than pointer equality
7430         for testing if new min/max values are equal.
7431
7432         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
7433         using range information until after propagation and folding.
7434
7435 2006-01-18  Richard Henderson  <rth@redhat.com>
7436             Aldy Hernandez  <aldyh@redhat.com>
7437             Jakub Jelinek  <jakub@redhat.com>
7438             Diego Novillo  <dnovillo@redhat.com>
7439
7440         * omp-low.c: New file.
7441         * c-omp.c: New file.
7442
7443 2006-01-18  Richard Henderson  <rth@redhat.com>
7444             Jakub Jelinek  <jakub@redhat.com>
7445             Diego Novillo  <dnovillo@redhat.com>
7446
7447         * doc/invoke.texi: Document -fopenmp.
7448         * tree-dump.h (debug_function): Declare.
7449         * hooks.c (hook_bool_tree_bool_false): New function.
7450         (hook_tree_tree_null): Remove.
7451         (hook_tree_tree_tree_null): New.
7452         * hooks.h: Update to match.
7453         * tree-pretty-print.c (debug_tree_chain): New.
7454         (print_generic_expr): Handle TDF_CHAIN.
7455         (dump_generic_node): Handle BLOCK.
7456         Do not abort with incomplete SWITCH_EXPRs.
7457         Do not dump body of an OpenMP directive if TDF_SLIM is given.
7458         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
7459         print space after directive name.
7460         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
7461         Handle OMP_MASTER and OMP_ORDERED.
7462         Handle printing of OMP_BODY just in one place, goto
7463         dump_omp_body in the rest of OMP_* nodes that have
7464         OMP_BODY.
7465         Don't handle clause nodes here.  Update omp statements to
7466         use dump_omp_clauses.
7467         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
7468         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
7469         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
7470         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
7471         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
7472         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
7473         Adjust output for GOMP_PARALLEL.
7474         (dump_omp_clauses): New.
7475         (print_declaration): Dump DECL_VALUE_EXPR.
7476         (op_symbol_1): Split out of op_symbol.
7477         (dumping_stmts): Remove.  Update all users.
7478         * cgraph.c (cgraph_analyze_queue): New.
7479         (cgraph_add_new_function): New.
7480         * cgraph.h (cgraph_analyze_queue): Declare.
7481         (cgraph_add_new_function): Declare.
7482         (cgraph_lower_function): Remove.
7483         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
7484         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
7485         and TYPE_P nodes in its default clause.
7486         (empty_body_p): New.
7487         (tree_range_check_failed): New.
7488         (build5_stat): New.
7489         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
7490         OMP_CLAUSE_REDUCTION_MERGE,
7491         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
7492         OMP_CLAUSE_PRIVATE_DEBUG,
7493         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
7494         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
7495         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
7496         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
7497         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
7498         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
7499         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
7500         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
7501         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
7502         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
7503         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
7504         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
7505         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
7506         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
7507         (TREE_RANGE_CHECK): New.
7508         (empty_body_p): Declare.
7509         (enum omp_clause_default_kind): New.
7510         (build_string_literal): Declare.
7511         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
7512         (build5_stat, build5): Declare.
7513         * tree-pass.h (TDF_CHAIN): Define.
7514         * tree-pass.h (PROP_gimple_lomp): Define.
7515         (pass_lower_omp): Declare.
7516         * diagnostic.h (debug_tree_chain): Declare.
7517         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
7518         mode_for_size.
7519         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
7520         * builtins.c (build_string_literal): Make extern.
7521         * gcc.c (include_spec_function): New.
7522         (static_spec_functions): Add it.
7523         (main): Move load of libgomp.spec ...
7524         (LINK_COMMAND_SPEC): ... here.
7525         (link_gomp_spec): New.
7526         (static_specs): Include it.
7527         (LINK_COMMAND_SPEC): Add link_gomp.
7528         (GOMP_SELF_SPECS): New.
7529         (driver_self_specs): Include it.
7530         (switch_matches): Don't mark inline.
7531         (main): Load libgomp.spec.
7532         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
7533         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
7534         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
7535         * tree-gimple.h (enum omp_parallel): Declare.
7536         (determine_parallel_type): Declare.
7537         (omp_firstprivatize_variable): Declare.
7538         (omp_reduction_init): Declare.
7539         (diagnose_omp_structured_block_errors): Declare.
7540         (struct walk_stmt_info): Add want_return_expr.
7541         (struct walk_stmt_info): Add want_bind_expr, want_locations.
7542         (find_omp_clause): Declare.
7543         (insert_field_into_struct): Declare.
7544         (struct walk_stmt_info): Move from tree-nested.c
7545         (walk_stmts): Declare.
7546         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
7547         to 200505.
7548         * cgraphunit.c (cgraph_lower_function): Make static.
7549         (cgraph_finalize_pending_functions): New.
7550         (cgraph_finalize_function): Call it.
7551         (cgraph_finalize_compilation_unit): Likewise.
7552         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
7553         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
7554         (BT_FN_UINT_UINT): New.
7555         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
7556         DEF_FUNCTION_TYPE_VAR_4): Document.
7557         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
7558         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
7559         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
7560         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
7561         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
7562         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
7563         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
7564         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
7565         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
7566         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
7567         into separate files.
7568         (DEF_GOMP_BUILTIN): New.
7569         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
7570         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
7571         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
7572         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
7573         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
7574         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
7575         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
7576         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
7577         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
7578         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
7579         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
7580         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
7581         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
7582         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
7583         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
7584         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
7585         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
7586         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
7587         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
7588         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
7589         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
7590         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
7591         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
7592         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
7593         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
7594         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
7595         * sync-builtins.def: New file, moved from builtins.def.
7596         * omp-builtins.def: New file, moved from builtins.def.
7597         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
7598         * gimple-low.c (lower_function_body): Clear data.
7599         (lower_stmt): Do not handle COMPOUND_EXPR.
7600         Remove call to print_node_brief.
7601         * c-tree.h (c_finish_omp_clauses): New prototype.
7602         (C_DECL_THREADPRIVATE_P): Define.
7603         (lookup_name_no_remap, c_omp_remap_private): Remove
7604         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
7605         (check_for_loop_decls): Update decl.
7606         (lookup_name_no_remap, c_omp_remap_private): Declare.
7607         (build_indirect_ref, build_modify_expr, pushdecl,
7608         pushdecl_top_level): Move to c-common.h.
7609         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
7610         before the switch, but just in the 2 places that need it.
7611         * c-decl.c (diagnose_mismatched_decls): Do not check for
7612         mismatched thread-local attributes when OLDDECL is marked
7613         threadprivate and NEWDECL has no thread-local attributes.
7614         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
7615         (c_gimple_diagnostics_recursively): Rename from
7616         c_warn_unused_result_recursively.  Invoke
7617         diagnose_omp_structured_block_errors.
7618         (check_for_loop_decls): Return a singular decl found.
7619         * langhooks.c (lhd_omp_predetermined_sharing): Return
7620         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
7621         (lhd_omp_firstprivatize_type_sizes): New.
7622         (lhd_omp_assignment): New.
7623         (lhd_omp_predetermined_sharing): New.
7624         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
7625         (struct lang_hooks_for_types): Add
7626         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
7627         omp_predetermined_sharing, omp_disregard_value_expr,
7628         omp_private_debug_clause, omp_clause_default_ctor,
7629         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
7630         (c_finish_omp_clauses): New.
7631         (c_finish_bc_stmt): Diagnose break within omp for.
7632         (c_begin_omp_parallel, c_finish_omp_parallel): New.
7633         (build_unary_op): Return error_mark after reporting
7634         a readonly_error.
7635         (build_modify_expr): Likewise.
7636         * gimplify.c: Include optabs.h and pointer-set.h.
7637         (enum gimplify_omp_var_data): Declare.
7638         (struct gimplify_omp_ctx): Declare.
7639         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
7640         and combined_ctxp.
7641         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
7642         (push_gimplify_context, pop_gimplify_context): Allow nesting.
7643         (splay_tree_compare_decl_uid): New.
7644         (new_omp_context): New.
7645         (delete_omp_context): New.
7646         (gimple_add_tmp_var): Call omp_add_variable.
7647         (gimplify_bind_expr): Likewise.
7648         (gimplify_var_or_parm_decl): If omp_notice_variable returned
7649         true, disregard DECL_VALUE_EXPR on the decl if any.
7650         (gimplify_expr_in_ctx): New.
7651         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
7652         omp_add_variable, omp_notice_variable, omp_is_private
7653         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
7654         gimplify_adjust_omp_clauses, gimplify_omp_parallel
7655         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
7656         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
7657         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
7658         gimplify_omp_atomic): New.
7659         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
7660         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
7661         OMP_CRITICAL and OMP_ATOMIC.
7662         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
7663         * c-pragma.h (enum pragma_kind): Add
7664         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
7665         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
7666         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
7667         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
7668         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
7669         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
7670         PRAGMA_OMP_THREADPRIVATE.
7671         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
7672         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
7673         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
7674         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
7675         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
7676         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
7677         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
7678         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
7679         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
7680         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
7681         * tree-ssa-dce.c (find_control_dependence): Do not assume that
7682         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
7683         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
7684         OpenMP directives.
7685         (struct nesting_info): Add field_map,
7686         suppress_expansion, debug_var_chain.
7687         (create_nesting_tree): Initialize them.
7688         (lookup_field_for_decl): Use field_map.
7689         (get_nonlocal_debug_decl, get_local_debug_decl): New.
7690         (convert_local_omp_clauses): New.
7691         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
7692         (walk_body): Split out of walk_function.
7693         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
7694         (convert_nonlocal_reference): Handle omp statements.
7695         (convert_local_reference): Likewise.
7696         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
7697         (unnest_nesting_tree): New.
7698         (lower_nested_functions): Call it.
7699         (insert_field_into_struct): Make extern.
7700         (struct walk_stmt_info): Move to tree-gimple.h.
7701         (walk_stmts): Make extern.
7702         * omp-builtins.def: New file.
7703         * tree-iterator.c (expr_only): Clarify comment.
7704         * c-common.h (pushdecl_top_level, pushdecl,
7705         build_modify_expr, build_indirect_ref,
7706         c_finish_omp_master, c_finish_omp_critical,
7707         c_finish_omp_ordered, c_finish_omp_barrier,
7708         c_finish_omp_atomic, c_finish_omp_flush,
7709         c_finish_omp_for, c_split_parallel_clauses,
7710         omp_clause_default_kind, c_omp_sharing_predetermined,
7711         c_omp_remap_decl): Declare.
7712         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
7713         (OBJS-common): Add omp-low.o.
7714         (c-omp.o, omp-low.o): Add.
7715         (gimplify.o): Add dependency on $(OPTABS_H).
7716         (GTFILES): Add omp-low.c.
7717         (gt-stringpool.h): Add.
7718         * tree-cfg.c (set_bb_for_stmt): Do not update the
7719         block-to-labels map if we are currently expanding to RTL.
7720         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
7721         checks.
7722         Handle IDENTIFIER_NODE.
7723         (tree_verify_flow_info): Do not ICE when emitting error
7724         messages about invalid labels.
7725         (dump_function_to_file): Reset CFUN before emitting the body
7726         of the function.
7727         (debug_function): New.
7728         * passes.c (init_optimization_passes): Schedule
7729         pass_lower_omp.
7730         * langhooks-def.h (lhd_omp_predetermined_sharing,
7731         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
7732         Declare.
7733         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
7734         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
7735         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
7736         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
7737         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
7738         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
7739         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
7740         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
7741         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
7742         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
7743         (LANG_HOOK_DECLS): Use them.
7744
7745 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
7746             Richard Henderson  <rth@redhat.com>
7747             Jakub Jelinek  <jakub@redhat.com>
7748             Diego Novillo  <dnovillo@redhat.com>
7749
7750         * c-parser.c (pragma_omp_clause): Define.
7751         (c_parser_declaration_or_fndef): Document OpenMP syntax.
7752         (c_parser_compound_statement): Likewise.
7753         (c_parser_statement): Likewise.
7754         (c_parser_pragma): Handle omp pragmas.
7755         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
7756         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
7757         (c_parser_omp_clause_name, check_no_duplicate_clause,
7758         c_parser_omp_variable_list,
7759         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
7760         c_parser_omp_clause_copyprivate,
7761         c_parser_omp_clause_default,
7762         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
7763         c_parser_omp_clause_lastprivate,
7764         c_parser_omp_clause_nowait,
7765         c_parser_omp_clause_num_threads,
7766         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
7767         c_parser_omp_clause_reduction,
7768         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
7769         c_parser_omp_all_clauses, c_parser_omp_structured_block,
7770         c_parser_omp_atomic, c_parser_omp_barrier,
7771         c_parser_omp_critical, c_parser_omp_flush,
7772         c_parser_omp_for_loop, c_parser_omp_for,
7773         c_parser_omp_master, c_parser_omp_ordered,
7774         c_parser_omp_sections_scope, c_parser_omp_sections,
7775         c_parser_omp_parallel, c_parser_omp_single,
7776         c_parser_omp_construct, c_parser_omp_threadprivate): New.
7777         * c-pragma.c (init_pragma): Do omp pragma registration here.
7778         * c.opt (fopenmp): New flag.
7779
7780 2006-01-18  Eric Christopher  <echristo@apple.com>
7781
7782         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
7783         * config/darwin.h (GOMP_SELF_SPECS): Define.
7784
7785 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
7786
7787         * rtl.h: Remove the prototype for reg_alloc.
7788
7789 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7790
7791         PR target/25731
7792         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
7793         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
7794         sjlj and dwarf2 exception handling.
7795         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
7796         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
7797         * pa/pa.c (function_value): Treat complex and vector types as
7798         aggregates.
7799         (function_arg): Likewise.  Only pass scalar floats in the floating
7800         point argument registers.
7801         * pa/t-slibgcc-dwarf-ver: New file.
7802         * pa/t-slibgcc-sjlj-ver: New file.
7803         * pa/t-slibgcc-elf-ver: Delete file.
7804
7805 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
7806
7807         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
7808         unlikely_test_section_p test.
7809
7810 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
7811
7812         * mode-switching.c (optimize_mode_switching): Make it static.
7813         * basic-block.h: Remove the prototype for
7814         optimize_mode_switching.
7815
7816         * modulo-sched.c (sms_schedule): Make it static.
7817         * rtl.h: Remove the prototype for sms_schedule.
7818
7819         * postreload-gcse.c (gcse_after_reload_main): Make it static.
7820         * rtl.h: Remove the prototype for gcse_after_reload_main.
7821
7822         * reg-stack.c (reg_to_stack): Make it static.
7823         * rtl.h: Remove the prototype for reg_to_stack.
7824
7825         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
7826         Make them static.
7827         * rtl.h: Remove the prototypes for regrename_optimize and
7828         copyprop_hardreg_forward.
7829
7830 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
7831
7832         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
7833         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
7834         Test against the appropriate null constant for the mode.
7835         If 'fixup_overlap' is true, swap the operands if they overlap.
7836         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
7837         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
7838         alpha_split_tmode_pair and adjust for above change.
7839         * config/alpha/alpha.md (movtf_internal): Adjust call to
7840         alpha_split_tfmode_pair and rely on it to swap the operands.
7841         (movti_internal): New insn and post-reload splitter.
7842         (movti): New expander.
7843
7844 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
7845
7846         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
7847         operands.
7848
7849 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
7850
7851         * rtlanal.c (global_reg_mentioned_p_1,
7852         global_reg_mentioned_p): Remove.
7853         * rtl.h: Remove the prototype for global_reg_mentioned_p.
7854
7855         * flow.c (initialize_uninitialized_subregs): Make it static.
7856         * rtl.h: Remove the prototype for
7857         initialize_uninitialized_subregs.
7858
7859         * function.c (instantiate_virtual_regs): Make it static.
7860         * function.h: Remove the prototype for
7861         instantiate_virtual_regs.
7862
7863         * regmove.c (regmove_optimize, combine_stack_adjustments):
7864         Make them static.
7865         * rtl.h: Remove the prototypes for regmove_optimize and
7866         combine_stack_adjustments.
7867
7868 2006-01-17  Roger Sayle  <roger@eyesopen.com>
7869
7870         * config/i386/i386.c (COSTS_N_BYTES): New macro.
7871         (size_cost): Encode costs in bytes so that a reg-reg addition is
7872         equivalent to COSTS_N_INSNS(1).
7873         (override_options): Use the size_cost.branch_cost as the default
7874         ix86_branch_cost when optimizing for size.
7875
7876 2006-01-18  Ben Elliston  <bje@au.ibm.com>
7877
7878         * Makefile.in (D32PBIT_FUNCS): New.
7879         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
7880         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
7881         D64PBIT_FUNCS and D128PBIT_FUNCS.
7882         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
7883         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
7884         D128PBIT are set.
7885         (decnumber_dep): Define.
7886         * doc/libgcc.texi (Decimal float library routines): New node.
7887         * config/dfp-bit.h, config/dfp-bit.c: New files.
7888
7889 2006-01-18  Ben Elliston  <bje@au.ibm.com>
7890
7891         * expr.c (emit_move_change_mode): Always adjust addresses, not
7892         just during reload.  Copy replacements only during reload.
7893         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
7894         emit_move_via_integer.
7895
7896 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
7897
7898         * Makefile.in (check-%, check-consistency): Use $${srcdir}
7899         instead of $(srcdir) and ${srcdir}.
7900
7901 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
7902
7903         PR target/592
7904         PR middle-end/11135
7905         * arm.h (struct machine_function): Add pic_reg.
7906         * arm.c (arm_pic_register): Make unsigned.
7907         (arm_override_options): Only set arm_pic_register if
7908         TARGET_SINGLE_PIC_BASE.
7909         (use_return_insn): Only test for a pic register if it is fixed.
7910         (arm_compute_save_reg0_reg12_mask): Likewise.
7911         (thumb_compute_save_reg_mask): Likewise.
7912         (legitimate_pic_operand): Factor out some known invariants.
7913         (legitimize_pic_address): If we don't have a fixed pic register,
7914         then set up a pseudo in the function entry sequence.  Handle the
7915         pic base being in a pseudo.
7916         (arm_load_pic_register): Handle the pic register being in a pseudo.
7917         (arm_expand_prologue): Only set up the pic register if it is fixed.
7918         (thumb_expand_prologue): Likewise.
7919         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
7920         (pic_load_addr_based_insn): Likewise.
7921         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
7922         fixed.
7923
7924 2006-01-18  Ben Elliston  <bje@au.ibm.com>
7925
7926         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
7927         decimal float modes for all floating point registers.
7928
7929         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
7930         match_code "mem" with match_test "macho_lo_sum_memory_operand".
7931
7932 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
7933
7934         PR c/25682
7935         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
7936         even when the pointer is not NULL.
7937
7938 2006-01-16  Ian Lance Taylor  <ian@airs.com>
7939
7940         * common.opt (ftoplevel-reorder): New option.
7941         * cgraph.c (cgraph_asm_nodes): New global variable.
7942         (cgraph_asm_last_node): New static variable.
7943         (cgraph_order): New global variable.
7944         (cgraph_create_node): Set new order field.
7945         (cgraph_varpool_node): Likewise.
7946         (decide_is_variable_needed): Return true if not
7947         flag_toplevel_reorder.
7948         (cgraph_add_asm_node): New function.
7949         * cgraph.h (struct cgraph_node): Add order field.
7950         (struct cgraph_varpool_node): Add order field.
7951         (struct cgraph_asm_node): Define.
7952         (cgraph_asm_nodes, cgraph_order): Declare.
7953         (cgraph_add_asm_node): Declare.
7954         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
7955         function.
7956         (cgraph_varpool_assemble_pending_decls): Call it.
7957         (cgraph_output_pending_asms): New static function.
7958         (cgraph_finalize_compilation_unit): Call it.
7959         (struct cgraph_order_sort): Define.
7960         (cgraph_output_in_order): New static function.
7961         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
7962         !flag_toplevel_reorder case.
7963         * c-parser.c: Include "cgraph.h".
7964         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
7965         assemble_asm.
7966         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
7967         than -fno-unit-at-a-time.
7968         * doc/invoke.texi (Option Summary): Mention
7969         -fno-toplevel-reorder.
7970         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
7971         -funit-at-a-time documentation.
7972
7973 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
7974             Kazu Hirata  <kazu@codesourcery.com>
7975
7976         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
7977
7978 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
7979
7980         * Makefile.in (FUNCTION_H): New.  Use it instead of
7981         function.h throughout the file.
7982         * function.h: Include tree.h.
7983
7984 2006-01-17  Ben Elliston  <bje@au.ibm.com>
7985
7986         * recog.c: Separate some functions with whitespace.
7987
7988 2006-01-16  Richard Henderson  <rth@redhat.com>
7989
7990         Merge from gomp branch:
7991         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
7992         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
7993         and rename from struct inline_data.  Rename callee* to dst*;
7994         caller* to src*; add copy_decl hook, transform_call_graph_edges,
7995         transform_new_cfg, transform_return_to_modify, and
7996         transform_lang_insert_block flags; remove cloning_p, versioning_p,
7997         update_clones_p.
7998         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
7999         (copy_decl_for_dup): Remove.
8000         * tree-inline.c (struct inline_data): Move to header.
8001         (insert_decl_map): Export.
8002         (remap_decl): Update for member name changes.  Use copy_decl hook.
8003         Allow for replacement to be a non-decl.  Remove dead code.
8004         (remap_type_1): Check for existing mapping.
8005         (remap_type): Export.
8006         (remap_decls): Update for member name changes.
8007         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
8008         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
8009         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
8010         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
8011         (tree_function_versioning, build_duplicate_type): Likewise.
8012         (copy_body_r): Likewise.  Export.
8013         (copy_decl_for_dup): Split into ...
8014         (copy_decl_for_dup_finish, copy_decl_to_var,
8015         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
8016         (replace_ref_tree, inlining_p): Remove.
8017
8018 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
8019
8020         * ifcvt.c (if_convert): Make it static.
8021         * rtl.h: Remove the prototype for if_convert.
8022
8023         * local-alloc.c (local_alloc): Make it static.
8024         * rtl.h: Remove the prototype for local_alloc.
8025
8026         * loop.c (loop_optimize): Make it static.
8027         * cfgloop.h: Remove the prototype for loop_optimize.
8028         * rtl.h: Likewise.
8029
8030 2006-01-16  DJ Delorie  <dj@redhat.com>
8031
8032         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
8033         mems.
8034
8035 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8036
8037         * pa.md: Disparage copies between general and floating-point registers
8038         in 32-bit move patterns.
8039
8040 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
8041
8042         PR testsuite/25741
8043         * Makefile.in (check-%): Depend on site.exp instead of
8044         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
8045         directories.
8046
8047 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
8048
8049         * global.c (global_alloc): Make it static.
8050         * rtl.h: Remove the prototype for global_alloc.
8051
8052 2006-01-16  Richard Guenther  <rguenther@suse.de>
8053
8054         * tree-ssa-alias.c (struct used_part): Add write_only field.
8055         (get_or_create_used_part_for): Initialize it to true.
8056         (create_overlap_variables_for): Don't create structure variables
8057         for structures that only are written to.
8058         (find_used_portions): Handle MODIFY_EXPR to track whether a
8059         structure is only written to.
8060
8061 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
8062
8063         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
8064         static.
8065         * basic-block.h: Remove the prototype for
8066         partition_hot_cold_basic_blocks.
8067
8068 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
8069
8070         * cppspec.c (lang_specific_spec_functions): Remove.
8071         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
8072         * gcc.h (lang_specific_spec_functions): Remove.
8073         * gccspec.c (lang_specific_spec_functions): Remove.
8074
8075 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
8076
8077         * combine.c (record_value_for_reg): Invalidate registers
8078         if INSN is null.
8079         (record_dead_and_set_regs_1): Likewise, by passing them to
8080         record_value_for_reg.
8081         (record_dead_and_set_regs): Invalidate stores made by a
8082         call.  We do not combine across a call, but we still
8083         relied on equivalences.
8084
8085 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
8086
8087         * tree-vrp.c (extract_range_from_binary_expr): Cope with
8088         vrp_int_const_binop returning non-constant nodes.
8089
8090 2006-01-16  Paul Brook  <paul@codesourcery.com>
8091
8092         * config/m68k/m68k.c (output_move_const_into_data_reg):
8093         Output correct mnemonic for mvz and mvs.
8094
8095 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
8096
8097         * rtl-factoring.c: Add sequence abstraction algorithm.
8098         * cfgcleanup.c (outgoing_edges_match): Extra checks.
8099         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
8100         ABNORMAL edges.
8101         (block_has_preserve_label): New function.
8102         * common.opt: Register new pass.
8103         * Makefile.in: Ditto.
8104         * passes.c: Ditto.
8105         * timevar.def: Ditto.
8106         * tree-pass.h: Ditto.
8107         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
8108         * rtl.h (make_jump_insn_raw): Add forward decl.
8109         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
8110
8111 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
8112             Roger Sayle  <roger@eyesopen.com>
8113
8114         * fold-const.c (fold_minmax): New static function.
8115         (fold_binary) <MIN_EXPR>: Call it.
8116         <MAX_EXPR>: Likewise.
8117         * stor-layout.c (place_field): Use DECL_SIZE consistently
8118         in the computation of the new record size.
8119
8120 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
8121
8122         * cse.c (cse_condition_code_reg): Make it static.
8123         * rtl.h: Remove the prototype for cse_condition_code_reg.
8124
8125         * combine.c (combine_instructions): Make it static.
8126         * rtl.h: Remove the prototype for combine_instructions.
8127
8128 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8129
8130         PR target/25168
8131         * tree.c (get_file_function_name_long): Concatenate the first global
8132         object name with a string derived from the input filename of the object
8133         for type "F".
8134
8135 2006-01-16  Ben Elliston  <bje@au.ibm.com>
8136
8137         * config/i386/winnt-stubs.c: Update FSF address.
8138         * config/xtensa/ieee754-df.S: Ditto.
8139         * config/xtensa/ieee754-sf.S: Ditto.
8140
8141 2006-01-14  Ian Lance Taylor  <ian@airs.com>
8142
8143         * ifcvt.c (noce_init_if_info): New static function, broken out of
8144         noce_process_if_block.
8145         (noce_process_if_block): Call noce_init_if_info.
8146         (check_cond_move_block): New static function.
8147         (cond_move_process_if_block): New static function.
8148         (process_if_block): Call cond_move_process_if_block.
8149
8150 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
8151
8152         * cselib.c (hash_table): Rename to cselib_hash_table.
8153         (cselib_clear_table, discard_useless_values,
8154         remove_useless_values, cselib_lookup_mem, cselib_lookup,
8155         cselib_init, cselib_finish): Adjust uses of hash_table.
8156
8157 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
8158
8159         PR tree-optimization/25485
8160         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
8161         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
8162         is known to be false and true, respectively.
8163
8164 2006-01-14  Richard Guenther  <rguenther@suse.de>
8165
8166         PR tree-optimization/22548
8167         PR tree-optimization/22555
8168         PR tree-optimization/22501
8169         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
8170         * params.def (salias-max-array-elements): New parameter.
8171         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
8172         * doc/invoke.texi (salias-max-array-elements): Document.
8173         * tree-flow-inline.h (var_can_have_subvars): We also handle
8174         arrays now.
8175         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
8176         COMPONENT_REF.
8177         * tree-ssa-structalias.c (params.h): Include.
8178         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
8179         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
8180         (get_constraint_for): For ADDR_EXPR operating on something
8181         containing an ARRAY_REF, add all subvars to the solution.
8182         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
8183         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
8184         for creating MUST_DEFs.
8185         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
8186
8187 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
8188
8189         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
8190         functions.
8191         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
8192         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
8193         number_of_iterations_le): New functions.
8194         (number_of_iterations_special): Removed.
8195         (number_of_iterations_exit): Do not use number_of_iterations_special.
8196         * tree.c (unsigned_type_for): Always return integer type.
8197
8198 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
8199         Richard Guenther  <rguenther@suse.de>
8200
8201         PR rtl-optimization/24257
8202         * gcse.c (find_moveable_store): Only consider a store movable
8203         when the SET_SRC of the insn can be assigned to a register.
8204
8205 2006-01-14  Ian Lance Taylor  <ian@airs.com>
8206
8207         * tree.c (tree_not_class_check_failed): New function.
8208         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
8209         (tree_not_class_check_failed): Declare.
8210
8211 2006-01-13  Ian Lance Taylor  <ian@airs.com>
8212
8213         * reload1.c (do_output_reload): Add assertion rejecting a
8214         CALL_INSN.
8215
8216 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
8217
8218         * combine.c (struct reg_stat): Add new fields truncation_label and
8219         truncated_to_mode.
8220         (record_value_for_reg): Reset truncated_to_mode.
8221         (record_truncated_value): New function.
8222         (check_promoted_subreg): Call it.  Rename to check_conversions.
8223         (combine_instructions): Rename check_promoted_subreg to
8224         check_conversions.
8225         (reg_truncated_to_mode): New function.
8226         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
8227         (gen_lowpart_or_truncate): New function.
8228         (force_to_mode): Use it instead of gen_lowpart.
8229
8230 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
8231
8232         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
8233         VAR is a tag, not its type tag.
8234
8235 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
8236
8237         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
8238         alternatives to match style of other entries.
8239         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
8240
8241 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
8242
8243         PR tree-optimization/25771
8244         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
8245         SSA_NAMES.
8246
8247 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
8248
8249         PR tree-opt/24365
8250         * tree-inline.c (declare_return_variable): If the return variable
8251         was marked as a non gimple complex, set the return slot variable
8252         to be a non gimple comple variable.
8253
8254 2006-01-13  Richard Guenther  <rguenther@suse.de>
8255
8256         * builtins.c (expand_builtin_sincos): New function.
8257         (expand_builtin_mathfn_3): Remove dead code, sin and cos
8258         do not set errno.
8259         (expand_builtin): Expand sincos using expand_builtin_sincos.
8260
8261 2006-01-12  DJ Delorie  <dj@redhat.com>
8262
8263         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
8264         shift counts, separate SI shifts for m32c vs m16c, pass shift type
8265         so that constant shifts can be split.
8266         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
8267         (m32c_valid_pointer_mode): Make static.
8268         (shift_gen_func_for): New.
8269         (m32c_prepare_shift): Use it.  Split large const shifts into
8270         multiple shifts.
8271         * config/m32c/predicates.md (shiftcount_operand): Allow more
8272         general operands.
8273         (longshiftcount_operand): New.
8274         * doc/md.texi (Machine Constraints): Document In6.
8275
8276 2006-01-13  Ben Elliston  <bje@au.ibm.com>
8277
8278         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
8279         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
8280         documentation.
8281
8282 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
8283
8284         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
8285         to try to avoid clobbering pieces of structures when we know
8286         something about the whole structure.
8287         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
8288
8289 2006-01-13  Ben Elliston  <bje@au.ibm.com>
8290
8291         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
8292         return in memory, as this is no limitation is no longer present.
8293
8294 2006-01-12  DJ Delorie  <dj@redhat.com>
8295
8296         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
8297         mova with fb, and for fb+0 -> An.
8298
8299         * config/m32c/mov.md (peephole2): Fix enabling logic.
8300
8301         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
8302         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
8303         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
8304         FINI_ARRAY_SECTION_ASM_OP): Define.
8305
8306         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
8307         variable.
8308         (m32c_legitimize_reload_address): New logic to reload FB to An.
8309         (m32c_output_reg_push): Add newline.
8310         (m32c_output_reg_pop): Likewise.
8311
8312 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
8313
8314         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
8315
8316 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
8317
8318         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
8319
8320 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
8321
8322         * config/sh/predicates.md (sh_rep_vec): Add parallel to
8323         match_code.
8324
8325 2006-01-11  Ben Elliston  <bje@au.ibm.com>
8326
8327         * rtlanal.c (find_reg_note): Assert insn is not null.
8328
8329 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
8330
8331         * df-scan.c (df_hard_reg_init): Move declaration of i outside
8332         ifdef.
8333
8334 2006-01-11  Jeff Law  <law@redhat.com>
8335
8336         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
8337         hold edge pairs.
8338         (mark_threaded_blocks, register_jump_thread): New functions.
8339         (thread_through_all_blocks): Remove unwanted argument.  No
8340         longer rely on e->aux to communicate thread target info.
8341         Call mark_threaded_blocks.  Release the threaded_blocks
8342         bitmap and threaded_edges vector when complete.
8343         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
8344         (threaded_blocks): Remove.
8345         (tree_ssa_dominator_optimize): Remove initialization and
8346         finalization of threaded_blocks.  Simplify call to
8347         thread_through_all_blocks.
8348         (thread_across_edge): Call register_jump_thread rather than
8349         storing thread information into e->aux.
8350         (free_all_edge_infos): Simplify now that e->aux is no longer
8351         used to communicate with thread_through_all_blocks.
8352         * tree-flow.h (thread_through_all_blocks): Update prototype.
8353         (register_jump_thread): Prototype.
8354
8355 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
8356
8357         * df-core.c (df_compact_blocks, df_bb_replace): Use
8358         SET_BASIC_BLOCK instead of BASIC_BLOCK.
8359
8360 2006-01-11  Richard Guenther  <rguenther@suse.de>
8361
8362         PR tree-optimization/25734
8363         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
8364         stop propagation after successful propagation to the LHS.
8365
8366 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
8367
8368         * basic-block.h (control_flow_graph): Change the type of
8369         x_basic_block_info to VEC(basic_block,gc) *.
8370         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
8371         basic_block_info.
8372         (SET_BASIC_BLOCK): New.
8373         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
8374         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
8375         * cfgbuild.c (find_basic_blocks): Likewise.
8376         * cfglayout.c (fixup_reorder_chain): Likewise.
8377         * cfgrtl.c (create_basic_block_structure,
8378         rtl_create_basic_block): Likewise.
8379         * ifcvt.c (find_if_case_1): Likewise.
8380         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
8381         Likewise.
8382
8383 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
8384
8385         * Makefile.in: Removed rotted odf.c entry.
8386
8387 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
8388
8389         PR target/25706
8390         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
8391         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
8392         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
8393         output pattern modifier, not %e.
8394         * config/cris/cris.c (cris_op_str): Update comment about pattern
8395         modifier.
8396         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
8397         before falling through into...
8398         <case 'E'>: Redefined from old 'e' case.
8399
8400 2006-01-11  Jan Hubicka  <jh@suse.cz>
8401
8402         PR target/25042
8403         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
8404
8405 2006-01-11  Jan Hubicka  <jh@suse.cz>
8406
8407         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
8408         * i386.c (x86_decompose_lea): Kill.
8409         (ix86_rtx_costs): Kill.
8410
8411 2006-01-11  Jan Hubicka  <jh@suse.cz>
8412
8413         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
8414         * cgraph.h (cgraph_node): Add inline_decl.
8415         (cgraph_insert_node_to_hashtable): Declare.
8416         (save_inline_function_body): Declare.
8417         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
8418         clones.
8419         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
8420         (cgraph_function_versioning): Update call of tree_function_versioning.
8421         (save_inline_function_body): New function.
8422         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
8423         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
8424         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
8425         (cgraph_default_inline_p): Likewise.
8426         (cgraph_decide_inlining_incrementally): Likewise.
8427         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
8428         (copy_bb): Kill saving; do updating of clones.
8429         (copy_cfg_body): Kill saving.
8430         (initialize_inlined-parameters): Likewise.
8431         (expand_call_inline): Likewise.
8432         (save_body): Kill.
8433         (tree_function_versioning): New parameter "update_clones".
8434         (inlining_p): Kill saving.
8435         * tree-inline.h (tree_function_versioning): Update prototype.
8436         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
8437         saving.
8438
8439 2006-01-11  Ian Lance Taylor <ian@airs.com>
8440
8441         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
8442         Allow undoing set of machine mode.
8443         (do_SUBST): Use enums instead of is_int.
8444         (do_SUBST_MODE): New function.
8445         (SUBST_MODE): New macro.
8446         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
8447         reg and trying to replace reg_regno_rtx with a new register.
8448         (undo_all): Use new enums, handle undoing a PUT_MODE change.
8449         (simplify_set): Use SUBST_MODE.
8450         (distribute_notes): Remove code that tried to update reg notes
8451         for regno_reg_rtx changes.
8452
8453 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
8454
8455         PR tree-optimization/23109
8456         PR tree-optimization/23948
8457         PR tree-optimization/24123
8458
8459         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
8460         * tree-cfg.c (single_noncomplex_succ): New.
8461         * tree-flow.h (single_noncomplex_succ): Declare it.
8462         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
8463         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
8464         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
8465         insert_bb, register_division_in, insert_reciprocals,
8466         replace_reciprocal, free_bb): New.
8467         (execute_cse_reciprocals_1): Rewritten.
8468         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
8469         Do not commit any edge insertion.  Always compute dominators and
8470         create the allocation pool.
8471         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
8472         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
8473         * targhooks.c (default_min_divistions_for_recip_mul): New.
8474         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
8475         * passes.c (init_optimization_passes): Run recip after tree loop
8476         optimizations.
8477         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
8478
8479 2006-01-11  Danny Berlin <dberlin@dberlin.org>
8480             Kenneth Zadeck <zadeck@naturalbridge.com>
8481
8482         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
8483         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
8484         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
8485         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
8486         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
8487         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
8488         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
8489         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
8490         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
8491         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
8492         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
8493         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
8494         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
8495         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
8496         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
8497         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
8498         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
8499         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
8500         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
8501         DF_SCAN_POST_ALLOC): New macros.
8502         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
8503         df_free_bb_function, df_local_compute_function, df_init_function,
8504         df_dataflow_function, df_confluence_function_0,
8505         df_confluence_function_n, df_transfer_function,
8506         df_finalizer_function, df_free_function, df_dump_problem_function,
8507         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
8508         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
8509         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
8510         df_urec_bb_info, ) New types.
8511         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
8512         variables.
8513         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
8514         df_analyze_simple_change_some_blocks,
8515         df_analyze_simple_change_one_block, df_compact_blocks,
8516         df_bb_replace, df_bb_regno_last_use_find,
8517         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
8518         df_insn_regno_def_p, df_find_def, df_find_use,
8519         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
8520         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
8521         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
8522         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
8523         debug_df_chain, df_get_dependent_problem, df_chain_create,
8524         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
8525         df_grow_bb_info, df_chain_dump, df_print_bb_index,
8526         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
8527         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
8528         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
8529         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
8530         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
8531         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
8532         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
8533         df_ref_remove, df_insn_refs_delete, df_refs_delete,
8534         df_reorganize_refs, df_set_state, df_hard_reg_init,
8535         df_read_modify_subreg_p) New public functions.
8536         * df-core.c: The core dataflow solver and glue routines for rtl
8537         dataflow.
8538         (df_init, df_add_problem, df_set_blocks, df_finish,
8539         df_hybrid_search_forward, df_hybrid_search_backward,
8540         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
8541         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
8542         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
8543         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
8544         df_reg_defined, df_find_use, df_reg_used, df_dump,
8545         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
8546         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
8547         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
8548         debug_df_useno, reset_df_after_reload): New functions.
8549         * df-scan.c: The scanning fuctions, once in df.c, completely
8550         rewritten so that they now fully model the functionality of
8551         register usage at the backend.
8552         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
8553         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
8554         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
8555         df_grow_insn_info, df_rescan_blocks, df_ref_create,
8556         df_get_artificial_defs, df_get_artificial_uses,
8557         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
8558         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
8559         df_refs_delete, df_reorganize_refs, df_set_state,
8560         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
8561         df_def_record_1, df_defs_record, df_uses_record,
8562         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
8563         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
8564         df_record_exit_block_uses, df_hard_reg_init): New functions.
8565
8566         * df-problems.c: Seven concrete dataflow problems that use the
8567         scanning in df-scan.c and are solved by the engine in df-core.c.
8568         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
8569         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
8570         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
8571         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
8572         df_ru_free_bb_info, df_ru_alloc,
8573         df_ru_bb_local_compute_process_def,
8574         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
8575         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
8576         df_ru_transfer_function, df_ru_free, df_ru_dump,
8577         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
8578         df_rd_free_bb_info, df_rd_alloc,
8579         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
8580         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
8581         df_rd_transfer_function, df_rd_free, df_rd_dump,
8582         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
8583         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
8584         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
8585         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
8586         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
8587         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
8588         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
8589         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
8590         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
8591         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
8592         df_urec_mark_reg_change, df_urec_check_earlyclobber,
8593         df_urec_mark_reg_use_for_earlyclobber,
8594         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
8595         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
8596         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
8597         df_urec_dump, df_urec_add_problem, df_chain_alloc,
8598         df_chain_create_bb_process_use, df_chain_create_bb,
8599         df_chain_finalize, df_chain_free, df_chains_dump,
8600         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
8601         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
8602         df_reg_lifetime): New functions.
8603         * df.c: Deleted file.
8604         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
8605         consistent with new df api.
8606         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
8607         rest_of_handle_sms): Ditto.
8608         * web.c (unionfind_union, union_defs, entry_register, web_main):
8609         Ditto.
8610         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
8611         invariant_expr_equal_p, find_defs, check_dependencies,
8612         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
8613         free_inv_motion_data, move_loop_invariants): Ditto.
8614         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
8615         Update dependencies.
8616         (odf.c): Added defective entry that was deleted later in day.
8617         * sched-deps.c (sched_analyze_1): Ditto.
8618
8619 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
8620
8621         * tree-ssa-operands.c (get_expr_operands): Record addressable
8622         variables directly.  Do not call add_stmt_operands for CONST_DECLs
8623         and ARRAY_DECLs.
8624         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
8625         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
8626
8627 2006-01-11  Ben Elliston  <bje@au.ibm.com>
8628
8629         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
8630         function returns true in the positive case.
8631
8632 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8633
8634         PR target/20754
8635         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
8636         for SI, DI, SF and DF modes.  Add alternatives to copy between
8637         general and floating point registers to the 32-bit patterns.
8638         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
8639         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
8640         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
8641         generating 64-bit code.
8642         * config/pa/pa.c (output_move_double): Handle copies between general
8643         and floating registers.
8644
8645 2006-01-10  Stuart Hastings  <stuart@apple.com>
8646
8647         * config/i386/i386.md (set_got): Update.
8648         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
8649         (builtin_setjmp_receiver): Mach-O support.
8650         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
8651         (GOT_SYMBOL_NAME): Define.
8652         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
8653         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
8654         * config/i386/i386.c (override_options): Revise for Darwin.
8655         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
8656         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
8657         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
8658         * config/i386/i386-protos.h (output_set_got): Likewise.
8659         * config/darwin.c (machopic_legitimize_pic_address): Update
8660         regs_ever_live[].
8661
8662 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
8663
8664         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
8665         when MODE isn't BLKmode.
8666
8667 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
8668
8669         PR rtl-optimization/25367
8670         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
8671
8672 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
8673
8674         PR target/25718
8675         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
8676         for a negative bound.
8677
8678 2006-01-10  Richard Guenther  <rguenther@suse.de>
8679
8680         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8681         Never override with anything constraint.
8682
8683 2006-01-10  Jan Beulich  <jbeulich@novell.com>
8684
8685         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
8686         256 bits when optimize_size.
8687
8688 2006-01-10  Jan Beulich  <jbeulich@novell.com>
8689
8690         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
8691         MASK_ALIGN_DOUBLE.
8692         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
8693         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
8694         arguments.
8695
8696 2006-01-10  Ben Elliston  <bje@au.ibm.com>
8697
8698         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
8699         float modes.
8700         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
8701         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8702         (USE_FP_FOR_ARG): Reject decimal float modes.
8703         (function_arg_advance): Likewise.
8704         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
8705         (rs6000_handle_altivec_attribute): Do not permit decimal floating
8706         point types in AltiVec vectors.
8707         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
8708         (rs6000_libcall_value): Likewise.
8709
8710 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
8711
8712         * config/xtensa/ieee754-df.S: New file.
8713         * config/xtensa/ieee754-sf.S: New file.
8714         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
8715         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
8716         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
8717
8718 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
8719
8720         * config/sh/predicates.md (binary_float_operator,
8721         binary_logical_operator, commutative_float_operator,
8722         equality_comparison_operator, greater_comparison_operator,
8723         less_comparison_operator, logical_operator,
8724         noncommutative_float_operator, shift_operator,
8725         symbol_ref_operand, unary_float_operator): Remove redundant
8726         conditionals.
8727
8728 2006-01-09  Jeff Law  <law@redhat.com>
8729
8730         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
8731         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
8732         now unused arguments.  Callers updated.
8733         (eliminate_redundant_computations): Remove now unused arguments,
8734         callers updated.
8735         (local_fold): Remove, no longer used.
8736         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
8737         and moved to...
8738         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
8739         (simplify_cond): New function.
8740         (forward_propagate_into_cond): Call simplify_cond.
8741
8742 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
8743
8744         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
8745         (*vec_extractv2di_1_sse): New.
8746
8747 2006-01-09  Ben Elliston  <bje@au.ibm.com>
8748
8749         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
8750
8751 2006-01-08  Richard Guenther  <rguenther@suse.de>
8752
8753         * tree-ssa-structalias.c (get_constraint_for): Remove
8754         anyoffset argument.
8755         (get_constraint_for_component_ref): Likewise.
8756         (do_deref): Likewise.
8757         (get_constraint_for): Likewise.
8758         (do_structure_copy): Likewise.
8759         (handle_ptr_arith): Likewise.
8760         (find_func_aliases): Likewise.  Remove unused need_anyoffset
8761         variable.
8762
8763 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
8764             Kaz Kojima  <kkojima@gcc.gnu.org>
8765
8766         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
8767         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
8768         (EXTRA_CONSTRAINT_C16): Remove.
8769         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
8770         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
8771         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
8772         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
8773         constants of SHmedia.  Handle nested constant expressions of
8774         SHmedia correctly.
8775         (andcosts): Fix the costs for SHmedia constants.
8776         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
8777         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
8778         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
8779         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
8780         (movv4hi_i, movv2si_i): Likewise.
8781         (movsi_const): Adjust the second operand of ior so to match with
8782         the Csu constraint.
8783         (movdi_const, movdi_const_32bit): Likewise.
8784         (movdi_const_16bit+1): Don't sign-extend LOW.
8785         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
8786         step.
8787         (*double_shori): Fix the split condition.  Use GEN_INT instead
8788         of get_int_mode calls.  Mask lower 16-bit of the argument of
8789         the last GEN_INT.
8790         (sym2GOTPLT): Remove.
8791         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
8792         gen_rtx_UNSPEC.
8793         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
8794         instead of EXTRA_CONSTRAINT_C16.
8795
8796 2006-01-07  Ian Lance Taylor  <ian@airs.com>
8797             David Edelsohn  <edelsohn@gnu.org>
8798
8799         PR rtl-optimization/25662
8800         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
8801         for constant operands instead of simplify_gen_binary.
8802         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
8803         after trying simplify_binary_operation
8804
8805 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
8806
8807         * tree.c (iterative_hash_expr): Hash decls based on UID.
8808
8809 2006-01-06  Eric Christopher  <echristo@apple.com>
8810
8811         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
8812         (TARGET_UNWIND_EMIT): Fix spelling.
8813         * target.h (gcc_target): Add except_table_label.
8814         * except.c (output_function_exception_table): Use.
8815         * varasm.c (default_emit_except_table_label): New.
8816         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
8817         define.
8818         (asm_out): Add here.
8819         * output.h (default_emit_except_table_label): Prototype.
8820         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
8821         * config/darwin.c (darwin_emit_except_table_label): Define.
8822         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
8823
8824 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
8825
8826         PR tree-optimization/18527
8827         * tree-ssa-loop-niter.c (number_of_iterations_cond,
8828         number_of_iterations_special, number_of_iterations_exit):
8829         Move base and step of an iv to a single structure.  Add
8830         no_overflow flag, and use it in # of iterations analysis.
8831         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
8832         folded_casts argument.
8833         (simple_iv): Pass base and step in a structure.  Set no_overflow
8834         flag.
8835         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
8836         Evaluate expensiveness of computing # of iterations instead of
8837         the final expression.
8838         * tree-scalar-evolution.h (affine_iv): New structure.
8839         (simple_iv): Declaration changed.
8840         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
8841         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
8842         find_givs_in_stmt): Changed due to simple_iv change.
8843
8844 2006-01-06  Jeff Law  <law@redhat.com>
8845
8846         PR ada/24994
8847         * tree-cfg.c (bsi_replace): Rename final argument from
8848         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
8849         change (stmt -> orig_stmt).
8850         * tree-eh.c (verify_eh_throw_stmt_node): New function.
8851         (bsi_remove): Add new argument.  Remove EH information
8852         if requested.
8853         (verify_eh_throw_table_statements): New function.
8854         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
8855         updated.
8856         * tree-optimize.c (execute_free_cfg_annotations): Verify
8857         the EH throw statement table after removing annotations.
8858         * except.h (verify_eh_throw_table_statements): Prototype.
8859         * tree-flow.h (bsi_remove): Update prototype.
8860         * tree-vrp.c (remove_range_assertions): Add new argument to
8861         bsi_remove call.
8862         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
8863         * tree-complex.c (expand_complex_div_wide): Likewise.
8864         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
8865         * tree-tailcall.c (eliminate_tailcall): Likewise.
8866         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
8867         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
8868         * tree-nrv.c (tree_nrv): Likewise.
8869         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
8870         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
8871         (combine_blocks): Likewise.
8872         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
8873         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
8874         (cleanup_control_flow): Likewise.
8875         (remove_forwarder_block): Likewise.
8876         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
8877         * tree-sra.c (sra_replace): Likewise.
8878         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
8879         (forward_propagate_single_use_vars): Likewise.
8880         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
8881         * tree-inline.c (expand_call_inline): Likewise.
8882         * tree-vect-transform.c (vect_transform_loop): Likewise.
8883         * tree-outof-ssa.c (rewrite_trees): Likewise.
8884         * tree-cfg.c (make_goto_expr_edges): Likewise.
8885         (cleanup_dead_labels): Likewise.
8886         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
8887         (bsi_move_before, bsi_move_after): Likewise.
8888         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
8889         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
8890
8891 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
8892
8893         PR tree-opt/25528
8894         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
8895         and IMAGPART_EXPR.
8896         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
8897         on non gimple variables.  Also add checks at the top for decls and
8898         mtags.
8899         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
8900         complex types.
8901         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
8902         and IMAGPART_EXPR for creating MUST_DEFs.
8903         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
8904         and NAME_MEMORY_TAG separately from the DECLs.
8905
8906 2006-01-06  Richard Guenther  <rguenther@suse.de>
8907
8908         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
8909         annotation, if necessary.
8910         * tree-ssa-pre.c (create_expression_by_pieces): Remove
8911         redundant calls to update_stmt.
8912         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
8913         Likewise.
8914
8915 2006-01-05  Richard Henderson  <rth@redhat.com>
8916
8917         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
8918
8919 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
8920
8921         * c-typeck.c: Update copyright date.
8922
8923 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
8924
8925         * c-typeck.c (build_c_cast): Always warn when casting
8926         from a pointer to an integer of different size, even if
8927         the node was constant.
8928
8929 2006-01-05  Richard Guenther  <rguenther@suse.de>
8930
8931         PR tree-optimization/22555
8932         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
8933         if one structure field is an array.
8934         * tree-ssa-operands.c (get_expr_operands): Continue scanning
8935         operands even if we found a subvar, but ignore VOPs in this
8936         case.
8937         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
8938         for renaming.
8939         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
8940
8941 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
8942
8943         PR middle-end/24998
8944         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
8945
8946 2006-01-05  Richard Guenther  <rguenther@suse.de>
8947             Diego Novillo  <dnovillo@redhat.com>
8948
8949         * tree-pass.h (TODO_remove_unused_locals): Define.
8950         * gimple-low.c (expand_var_p, remove_useless_vars,
8951         pass_remove_useless_vars): Remove.  Update all users.
8952         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
8953         (remove_unused_locals): New function.
8954         * tree-flow.h (remove_unused_locals): Declare.
8955         * passes.c (execute_todo): Call remove_unused_locals if
8956         TODO_remove_unused_locals is set.
8957         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
8958         * tree-ssa-dce.c (pass_dce): Likewise.
8959         * tree-outof-ssa.c (pass_del_ssa): Likewise.
8960
8961 2006-01-05  Richard Guenther  <rguenther@suse.de>
8962
8963         * tree-flow.h (struct fieldoff): Decompose field to
8964         type, size and decl.
8965         * tree-ssa-alias.c (create_sft): Take type as parameter.
8966         (create_overlap_variables_for): Store type, size and decl
8967         in the fieldoff structure.
8968         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
8969         of struct fieldoff.
8970         (push_fields_onto_fieldstack): Likewise.
8971         (create_variable_info_for): Likewise.  Use offset for the
8972         SFT name if the decl is not available.
8973
8974 2006-01-04  Paul Brook  <paul@codesourcery.com>
8975
8976         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
8977
8978 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
8979
8980         * lambda-code.c (can_put_in_inner_loop): Relax
8981         restrictions.
8982         (can_put_after_inner_loop): New function.
8983         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
8984         (perfect_nestify): Change to make copies and modify uses.
8985
8986 2006-01-04  Richard Henderson  <rth@redhat.com>
8987
8988         Merge from gomp branch:
8989         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
8990         via integer constant.
8991         (pragma_lex): Remove.
8992         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
8993         rather than parsing it.
8994         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
8995         handle_pragma_extern_prefix): Add %< %> quotes.
8996         (registered_pragmas): New.
8997         (c_register_pragma_1): New.
8998         (c_register_pragma): Use it.
8999         (c_register_pragma_with_expansion): Likewise.
9000         (c_invoke_pragma_handler): New.
9001         (init_pragma): Use cpp_register_deferred_pragma directly for
9002         pch_preprocess.
9003         * c-pragma.h (enum pragma_kind): New.
9004         (pragma_handler): New.
9005         (c_invoke_pragma_handler): Declare.
9006         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
9007         CPP_PRAGMA_EOL.
9008         * c-common.h (c_common_pch_pragma): Update decl.
9009         * Makefile.in (c-parser.o): Update dependencies.
9010         (GTFILES): Add c-pragma.h.
9011         * c-parser.c (struct c_token): Add pragma_kind.
9012         (struct c_parser): Add in_pragma.
9013         (c_lex_one_token): Always initialize keyword and pragma_kind.
9014         Extract data for CPP_PRAGMA.
9015         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
9016         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
9017         Don't allow CPP_PRAGMA_EOL if in_pragma.
9018         (c_parser_consume_pragma): New.
9019         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
9020         (c_parser_skip_to_end_of_parameter): Likewise.
9021         (c_parser_skip_to_end_of_block_or_statement): Likewise.
9022         (c_parser_skip_to_pragma_eol): New.
9023         (c_parser_external_declaration): Handle CPP_PRAGMA.
9024         (c_parser_compound_statement_nostart): Likewise.
9025         (c_parser_statement_after_labels): Likewise.
9026         (c_parser_pragma): New.
9027         (pragma_lex): Likewise.
9028         (c_parser_pragma_pch_preprocess): New.
9029         (c_parser_new): Merge into ...
9030         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
9031
9032 2006-01-04  Jeff Law  <law@redhat.com>
9033
9034         PR ada/24994
9035         * tree-cfg.c (bsi_replace): Remove the original statement
9036         from the EH throw statement table.
9037
9038 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
9039
9040         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
9041         make the prototype extern "C" and add throw ().
9042
9043         PR target/25554
9044         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
9045         and pos non-negative and pos + len <= 32.
9046         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
9047         drop pos + len < HOST_BITS_PER_WIDE_INT test.
9048         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
9049
9050         PR c/25559
9051         * c-common.c (handle_vector_size_attribute): Reject zero vector size
9052         as well as sizes not multiple of component size.
9053
9054         PR debug/25562
9055         * function.c (instantiate_expr): New function.
9056         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
9057         walk its DECL_VALUE_EXPR with instantiate_expr.
9058
9059         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
9060         DW_OP_deref{,_size} if address isn't going to be added.
9061
9062 2006-01-04  Ben Elliston  <bje@au.ibm.com>
9063
9064         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
9065         * config/fp-bit.c: Likewise.
9066
9067 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
9068
9069         * dominance.c: Add comment about why we use DFS numbering
9070         of dominance tree.
9071
9072 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
9073             Richard Henderson  <rth@redhat.com>
9074
9075         Merge from gomp-branch:
9076         * varasm.c (assemble_variable): Handle thread-local COMMON data.
9077         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
9078
9079 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
9080
9081         PR rtl-optimization/25578
9082         * combine.c (combine_simplify_rtx, force_to_mode): Don't
9083         pass a parameter to simplify_shift_const if changing ASHIFTRT
9084         to LSHIFTRT.
9085
9086 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
9087
9088         * builtins.c (get_builtin_sync_mem): New function.
9089         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
9090         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
9091         Call get_builtin_sync_mem to generate mem rtx.
9092
9093 2006-01-03  Richard Guenther  <rguenther@suse.de>
9094
9095         PR c/25183
9096         * stmt.c (add_case_node): Make sure to clear overflow flags
9097         from ranges.
9098
9099 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
9100
9101         Merge from gomp-branch.
9102         * config/sparc/sync.md: New file.
9103         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
9104         UNSPECV_LDSTUB): New constants.
9105         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
9106         * config/sparc/predicates.md (memory_reg_operand): New predicate.
9107         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
9108         prototype.
9109
9110 2006-01-03  Roger Sayle  <roger@eyesopen.com>
9111
9112         * combine.c (reg_subword_p): New predicate to test whether the
9113         destination of a set refers to a subword/piece of a register.
9114         (try_combine): Generalize the code to merge the setting of a
9115         pseudo to a constant followed by a set of a subword of that
9116         register to a constant.
9117
9118 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
9119
9120         * basic-block.h (control_flow_graph): Change the type of
9121         x_label_to_block_map to VEC(basic_block,gc) *.
9122         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
9123         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
9124
9125         * tree-ssa-propagate.c (cfg_blocks): Change the type to
9126         VEC(basic_block,heap) *.
9127         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
9128         ssa_prop_fini): Adjust the uses of cfg_blocks.
9129
9130 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
9131
9132         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
9133         COMPONENT_REFs.
9134         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
9135         hashing trees instead of a pointer hash.
9136         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
9137         compare for MEM_EXPR.
9138
9139         PR rtl-optimization/25130
9140         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
9141         when comparing MEMs for GCSE
9142
9143 2006-01-03  Ben Elliston  <bje@au.ibm.com>
9144
9145         * targhooks.h (default_decimal_float_supported_p): Declare.
9146         * targhooks.c (default_decimal_float_supported_p): Define.
9147         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
9148         `default_decimal_float_supported_p'.
9149         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
9150
9151 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
9152
9153         * combine.c (apply_distributive_law <SUBREG>): Check
9154         TRULY_NOOP_TRUNCATION.
9155
9156 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
9157
9158         * dwarf2out.c (have_switched_text_section): Delete.
9159         (have_multiple_function_sections): New.
9160         (have_location_lists): Make 'bool'.
9161         (add_AT_loc_list): Use 'true' not '1'.
9162         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
9163         (output_loc_list): Use have_multiple_function_sections.
9164         (output_ranges): Likewise.
9165         (dwarf2out_begin_function): Set have_multiple_function_sections if
9166         necessary.
9167         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
9168         Check function_section rather than DECL_SECTION_NAME.
9169         (dwarf2out_finish): Use have_multiple_function_sections.
9170         Don't clear have_location_lists.
9171
9172 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
9173             Jan Hubicka  <jh@suse.cz>
9174
9175         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
9176         case of conditional jump jumping to the next instruction.
9177         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
9178         cases of conditional jump jumping to the next instruction.
9179
9180 2006-01-02  Jan Hubicka  <jh@suse.cz>
9181
9182         * i386.c (*_cost): Add COSTS_N_INSNS.
9183         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
9184
9185 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
9186
9187         PR target/25259
9188         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
9189
9190 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9191
9192         * config/arm/arm.c (all_fpus): Fix comment typo.
9193         * config/darwin.c: Likewise.
9194         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
9195         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
9196         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
9197
9198 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
9199
9200         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
9201         (rs6000_split_compare_and_swapqhi): New.
9202         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
9203         (sync_compare_and_swapqhi_internal): New.
9204         * config/rs6000/rs6000-protos.h: Declare.