OSDN Git Service

PR tree-optimization/13827
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-11-12  Roger Sayle  <roger@eyesopen.com>
2
3         PR tree-optimization/13827
4         * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
5         as ((X^Y)&C) op 0.
6
7 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
8
9         * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
10         update_single_exit_for_duplicated_loops): New functions.
11         (duplicate_loop_to_header_edge): Use
12         update_single_exit_for_duplicated_loops.
13         * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
14         functions only with ENABLE_CHECKING.
15
16 2006-11-12  Andreas Schwab  <schwab@suse.de>
17
18         * except.c (sjlj_emit_function_enter): Remove unused variable.
19
20 2006-11-11  Roger Sayle  <roger@eyesopen.com>
21
22         * fold-const.c (int_binop_types_match_p): New function.
23         (size_binop): Relax constraint that both arguments must both have
24         exactly the same sizetype type.  Instead use int_binop_types_match_p.
25         (size_diffop): Likewise.
26
27         (make_range): Use build_int_cst instead of fold_convert.
28         (fold_cond_expr_with_comparison): Use build_int_cst to construct
29         integer constants of the correct type.
30         (fold_div_compare): Likewise.
31         (fold_single_bit_test): Likewise.
32         (fold_binary): Likewise.
33         * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
34         has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
35
36 2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
37
38         PR rtl-opt/28812
39         * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
40         non null value if the struct memory access is in the 0th
41         aliasing set.
42
43 2006-11-12  Jie Zhang  <jie.zhang@analog.com>
44
45         Revert
46         2006-11-11  Jie Zhang  <jie.zhang@analog.com>
47         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
48         and __BFIN__.
49
50         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
51         instead of builtin_define for bfin and BFIN.
52
53 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
54
55         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
56         and __BFIN__.
57
58 2006-11-11  Jan Hubicka  <jh@suse.cz>
59
60         * extended.texi (__builtin_expect): We no longer require second argument
61         to be constant.
62         * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
63         * builtins.c (expand_builtin_expect): Simplify.
64         (expand_builtin_expect_jump): Kill.
65         * final.c (final_scan_insn): Do not skip the removed notes.
66         * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
67         EXPECTED_VALUE): Remove.
68         * dojump.c (do_jump): Do not care about __builtin_expect.
69         * predict.c (expected_value_to_br_prob): Kill.
70         * function.c (expand_function_end): Do not expand
71         NOTE_INSN_REPEATED_LINE_NUMBER.
72         * print-rtl.c (print_rtx): Do not pretty print the removed notes.
73         * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
74         * cfgexpand.c (add_reg_br_prob_note): Export.
75         * cfgcleanup.c (rest_of_handle_jump2): Do not call
76         expected_value_to_br_prob.
77         * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
78         * rtl.h (add_reg_br_prob_note): Declare.
79
80 2006-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
81
82         * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
83
84 2006-11-11  Jan Hubicka  <jh@suse.cz>
85
86         * predict.c (predict_loops): Kill RTL variant.
87
88 2006-11-11  Jan Hubicka  <jh@suse.cz>
89
90         * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
91         * modulo-sched.c (find_line_note): Remove.
92         (loop_canon_p): Do not worry about line number notes.
93         (sms_schedule): Likewise.
94         * cse.c (cse_main): Likewise.
95         * regmove.c (fixup_match_1): Likewise
96         * function.c (emit_return_info_block): Likewise.
97         (expand_function_end): Likewise.
98         (thread_prologue_an_epilogue_insns): Likewise.
99         * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
100         Likewise.
101         * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
102         emit_note_copy_after): Kill.
103         (emit_note_copy): Do not worry about line numbers.
104         * jump.c (purge_line_number_notes): Kill.
105         (pass_purge_lineno_notes): Kill.
106         * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
107         call.
108         * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
109         * passes.c (init_optimization_passes): Don't purge_lineno_notes.
110         * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
111         * tree-pass.h (pass_purge_lineno_notes): Kill.
112         * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
113         rm_redundant_line_notes.
114         * sched-rgb.c (schedule_region): Don't rm_line_notes,
115         rm_redundant_line_notes.
116         * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
117         * haifa-sched.c: Update comment about handling notes.
118         (unlink_line_notes): Kill.
119         (rm_line_notes): Kill.
120         (save_line_notes): Simplify.
121         (rm_redundant_line_notes): Kill.
122
123 2006-11-11  Richard Guenther  <rguenther@suse.de>
124
125         * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
126         Remove unused tree codes.
127         * tree-vrp.c (extract_range_from_unary_expr): Remove handling
128         of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
129         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
130         * tree.c (stabilize_reference): Likewise.
131         * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
132         fold_unary): Likewise.
133         * tree-gimple.c (is_gimple_cast): Likewise.
134         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
135         * expr.c (expand_expr_real_1): Likewise.
136         * tree-eh.c (tree_could_trap_p): Likewise.
137         * gimplify.c (gimplify_expr): Likewise.
138         * tree-inline.c (estimate_num_insns_1): Likewise.
139         * tree-cfg.c (verify_expr): Likewise.
140
141 2006-11-11  Zdenek Dvorak <dvorakz@suse.cz>
142
143         * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
144         * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
145         (tree_ssa_prefetch_arrays): Do not dump for removed loops.
146
147 2006-11-11  Richard Sandiford  <richard@codesourcery.com>
148
149         PR middle-end/27528
150         * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
151         constraints accept neither registers or memories.
152
153 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
154
155         * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
156         (NO_PROFILE_COUNTERS): Define as 1.
157
158 2006-11-10  Roger Sayle  <roger@eyesopen.com>
159
160         * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
161         Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
162
163 2006-11-10  Peter Bergner  <bergner@vnet.ibm.com>
164
165         * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
166
167 2006-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
168
169         * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
170         (fold_builtin_hypot): Likewise.
171         * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
172
173         * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
174
175 2006-11-10  Roger Sayle  <roger@eyesopen.com>
176
177         * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
178         when attempting to build INTEGER_CSTs of non-integral types.
179         * expmed.c (make_tree): Use the correct type, i.e. the inner
180         type, when constructing the individual elements of a CONST_VECTOR.
181
182 2006-11-10  Jan Hubicka  <jh@suse.cz>
183
184         * cse.c (cse_process_notes): Copy the propagated value.
185         * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
186         in REG_EQUIV notes.
187         * gcse.c (try_replace_reg): Copy the replacement.
188         * i386.c (emit_i387_cw_initialization): Copy stored_mode.
189         (assign_386_stack_local): Always return copied memory expression
190         * function.c (instantiate_virtual_regs_in_insn): Copy the operand
191         duplicates.
192
193 2006-11-10  Jan Hubicka  <jh@suse.cz>
194
195         * final.c (final): Walk from first instruction.
196         * cfglayout.c (insn_locators_initialize): Remove line number notes.
197
198 2006-11-10  Uros Bizjak  <ubizjak@gmail.com>
199
200         PR target/29777
201         * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
202         to define_expand.
203         (umulv8hi3_highpart): Ditto.
204         (vec_widen_smult_hi_v8hi): New expander.
205         (vec_widen_smult_lo_v8hi): Ditto.
206
207 2006-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
208
209         * builtins.c (do_mpfr_arg3): New.
210         (fold_builtin_1): Handle builtins fma, fmin and fmax.
211
212 2006-11-09  Eric Christopher  <echristo@apple.com>
213
214         PR bootstrap/26892
215         PR bootstrap/27814
216         PR other/28994
217         * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
218         * config.gcc (powerpc64-*-darwin*): New target.
219         * config.host: Ditto.
220         * config/rs6000/darwin64.h: New file.
221         * config/rs6000/x-darwin64: Ditto.
222         * config/rs6000/host-ppc64-darwin.c: Ditto.
223
224 2006-11-09  Steve Ellcey  <sje@cup.hp.com>
225
226         * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
227         routines for integer division.
228
229 2006-11-09  Daniel Jacobowitz  <dan@codesourcery.com>
230
231         * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
232
233 2006-11-09  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
234
235         PR middle-end/29726
236         * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
237
238 2006-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
239
240         * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
241         simplify_subreg with BLKmode outer mode.
242
243 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
244
245         * doc/invoke.texi: Minor formatting fixes in option lists.
246
247 2006-11-08  Zdenek Dvorak <dvorakz@suse.cz>
248
249         PR tree-optimization/29738
250         * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
251         (ccp_lattice_t): Remove UNKNOWN_VAL.
252         (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
253         Do not handle UNKNOWN_VAL.
254         (get_default_value): Set initial value of virtual operands to
255         VARYING.
256         (get_value): Always use get_default_value on uninitialized
257         operands.
258         (set_value_varying, surely_varying_stmt_p): New functions.
259         (set_lattice_value): Do not pass argument to get_value.
260         Do not handle UNKNOWN_VAL.
261         (likely_value): Follow the semantics described in the comment.
262         (ccp_initialize): Use surely_varying_stmt_p.  Do not mark
263         phi nodes DONT_SIMULATE_AGAIN.
264         (ccp_fold): Do not pass argument to get_value.
265         (fold_const_aggregate_ref, visit_assignment): Ditto.  Do not
266         handle UNKNOWN_VAL.
267
268 2006-11-08  Andrew Pinski  <Andrew_Pinski@playstation.sony.com>
269
270         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
271         HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
272
273 2006-11-08  Roger Sayle  <roger@eyesopen.com>
274
275         * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
276         test for inclusion rather than as a test for exclusion.
277         * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
278         the condition after calling fold_binary.
279         * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
280         (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
281         * builtins.c (fold_builtin_isascii): Likewise.
282         (fold_builtin_isdigit): Likewise.
283
284 2006-11-08  Carlos O'Donell  <carlos@codesourcery.com>
285
286         * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
287         * configure: Regenerate.
288
289 2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
290
291         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
292         enum argument instead of bool.
293         (vect_analyze_operations): Call vectorizable_type_promotion.
294         * tree-vectorizer.h (type_promotion_vec_info_type): New enum
295         stmt_vec_info_type value.
296         (supportable_widening_operation, vectorizable_type_promotion): New
297         function declarations.
298         * tree-vect-transform.c (vect_gen_widened_results_half): New function.
299         (vectorizable_type_promotion): New function.
300         (vect_transform_stmt): Call vectorizable_type_promotion.
301         * tree-vect-analyze.c (supportable_widening_operation): New function.
302         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
303         Add implementation.
304         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
305         mode.
306
307         * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
308         (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
309         * tree-inline.c (estimate_num_insns_1): Add cases for above new
310         tree-codes.
311         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
312         * expr.c (expand_expr_real_1): Likewise.
313         * optabs.c (optab_for_tree_code): Likewise.
314         (init_optabs): Initialize new optabs.
315         * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
316         vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
317         vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
318         vec_unpacku_lo_optab): Initialize new optabs.
319         * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
320         (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
321         OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
322         optab indices.
323         (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
324         (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
325         (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
326         (vec_unpacku_lo_optab): New optabs.
327         * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
328         (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
329         (vec_widen_smult_hi, vec_widen_smult_lo): New.
330         * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
331         (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
332         (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
333
334         * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
335         (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
336         (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
337         (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
338         (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
339         implement the unsigned unpacking patterns.
340         (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
341         (vec_unpacks_lo_v8hi): New signed unpacking patterns.
342         (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
343         (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
344         (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
345         (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
346         (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
347         (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
348         multiplication patterns.
349
350         * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
351         * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
352         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
353         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
354         (rs6000_builtin_mul_widen_odd): New.
355         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
356         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
357         * tree-vectorizer.h (enum vect_relevant): New enum type.
358         (_stmt_vec_info): Field relevant chaned from bool to enum
359         vect_relevant.
360         (STMT_VINFO_RELEVANT_P): Updated.
361         (STMT_VINFO_RELEVANT): New.
362         * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
363         instead of STMT_VINFO_RELEVANT_P.
364         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
365         Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
366         and boolean variable with enum vect_relevant.
367         (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
368         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
369         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
370
371         2006-11-08  Richard Henderson  <rth@redhat.com>
372
373         * config/i386/sse.md (vec_widen_umult_hi_v8hi,
374         vec_widen_umult_lo_v8hi): New.
375         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
376         vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
377
378         * config/i386/i386.c (ix86_expand_sse_unpack): New.
379         * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
380         * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
381         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
382         vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
383         vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
384         vec_unpacks_lo_v4si): New.
385
386         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
387
388         * tree-vect-transform.c (vectorizable_type_demotion): New function.
389         (vect_transform_stmt): Add case for type_demotion_vec_info_type.
390         (vect_analyze_operations): Call vectorizable_type_demotion.
391         * tree-vectorizer.h (type_demotion_vec_info_type): New enum
392         stmt_vec_info_type value.
393         (vectorizable_type_demotion): New function declaration.
394         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
395         mode.
396
397         * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
398         * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
399         VEC_PACK_SAT_EXPR.
400         * tree-iniline.c (estimate_num_insns_1): Likewise.
401         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
402         * optabs.c (optab_for_tree_code): Likewise.
403
404         * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
405         compared against the predicate of the result is not 'mode' (the input
406         to the function) but a mode with half the size of 'mode'.
407         (init_optab): Initialize new optabs.
408         * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
409         New optab indices.
410         (vec_pack_mod_optab, vec_pack_ssat_optab,  vec_pack_usat_optab): New
411         optabs.
412         * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
413         (vec_pack_usat_optab): Initialize new optabs.
414         * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
415         * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
416
417         2006-11-08  Richard Henderson  <rth@redehat.com>
418
419         * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
420         (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
421         (vec_interleave_highv8hi, vec_interleave_lowv8hi):
422         (vec_interleave_highv4si, vec_interleave_lowv4si):
423         (vec_interleave_highv2di, vec_interleave_lowv2di): New.
424
425         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
426
427         * tree-vect-transform.c (vectorizable_reduction): Support multiple
428         datatypes.
429         (vect_transform_stmt): Removed redundant code.
430
431         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
432
433         * tree-vect-transform.c (vectorizable_operation): Support multiple
434         datatypes.
435
436         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
437
438         * tree-vect-transform.c (vect_align_data_ref): Removed.
439         (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
440         Updated function documentation. Return the increment stmt in ptr_incr.
441         (bump_vector_ptr): New function.
442         (vect_get_vec_def_for_stmt_copy): New function.
443         (vect_finish_stmt_generation): Create a stmt_info to newly created
444         vector stmts.
445         (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
446         argument.
447         (vectorizable_reduction, vectorizable_assignment): Not supported yet if
448         VF is greater than the number of elements that can fit in one vector
449         word.
450         (vectorizable_operation, vectorizable_condition): Likewise.
451         (vectorizable_store, vectorizable_load): Support the case that the VF
452         is greater than the number of elements that can fit in one vector word.
453         (vect_transform_loop): Don't fail in case of multiple data-types.
454         * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
455         in case of multiple data-types; the smallest type determines the VF.
456         (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
457         if they are of different sizes.
458         (vect_update_misalignment_for_peel): Compare misalignments in terms of
459         number of elements rather than number of bytes.
460         (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
461         (vect_can_advance_ivs_p): Fix a dump printout
462
463 2006-11-07  Eric Christopher  <echristo@apple.com>
464
465         * libgcc2.c (__bswapdi2): Rename from bswapDI2.
466         (__bswapsi2): Ditto.
467         * libgcc2.h: Remove transformation of bswap routines.
468         * config/i386/i386.md (bswapsi2): New.
469         (bswapdi2): Ditto.
470
471 2006-11-07  Jakub Jelinek  <jakub@redhat.com>
472
473         * c-common.c (c_common_attributes): Add gnu_inline attribyte.
474         (handle_gnu_inline_attribute): New function.
475         * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
476         (merge_decls, start_decl, start_function): Likewise.
477         * doc/extend.texi: Document gnu_inline attribute.
478
479 2006-11-07  Steve Ellcey  <sje@cup.hp.com>
480
481         PR other/25028
482         * config/ia64/t-hpux (LIB1ASMFUNCS):  Filter out _fixtfdi,
483         _fixunstfdi, and  _floatditf
484
485 2006-11-06  Anatoly Sokolov <aesok@post.ru>
486
487         * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
488         prototype.
489         * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
490         (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
491         lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
492         which start in an odd register.
493
494 2006-11-07  Richard Sandiford  <richard@codesourcery.com>
495
496         * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
497
498 2006-11-07  Josh Conner  <jconner@apple.com>
499
500         * doc/invoke.texi (fstrict-aliasing): Move implementation
501         details...
502         * doc/tree-ssa.texi (Alias analysis): ...here.
503
504 2006-11-07  Richard Guenther  <rguenther@suse.de>
505
506         PR tree-optimization/29610
507         * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
508         of tree_purge_dead_eh_edges as it may free dominators.
509
510         * g++.dg/other/pr29610.C: New testcase.
511
512 2006-11-07  David Ung  <davidu@mips.com>
513
514         * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
515         costs when optimizing for size.
516         (override_options): Use mips_rtx_cost_optimize_size table for cost
517         calculations.
518
519 2006-11-07  Jie Zhang  <jie.zhang@analog.com>
520
521         * gcc.c (process_command): Treat -b as normal switch if its argument
522         has no dash.
523
524 2006-11-07  David Ung  <davidu@mips.com>
525
526         * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
527         list.
528
529 2006-11-06  Eric Christopher  <echristo@apple.com>
530
531         * config.gcc: Add x86_64-darwin host support.
532         * config.host: Ditto.
533         * config/i386/darwin64.h: New file.
534         * config/i386/t-darwin64: Ditto.
535
536 2006-11-06  Janis Johnson  <janis187@us.ibm.com>
537
538         * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
539         and output-exists-not.
540
541 2006-11-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
542
543         PR tree-opt/29439
544         * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
545         checking for overflow.
546
547 2006-11-06  Jan van Dijk  <jan@etpmod.phys.tue.nl>
548
549         * configure.ac: Fixed typo in case statement: :: changed to ;;
550
551 2006-11-06  Bob Wilson  <bob.wilson@acm.org>
552
553         * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
554         count_leading_zeros, and count_trailing_zeros.
555         * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
556         (TARGET_FOLD_BUILTIN): Define.
557         (TARGET_EXPAND_BUILTIN): Define.
558         (xtensa_init_builtins): New.
559         (xtensa_fold_builtin): New.
560         (xtensa_expand_builtin): New.
561         (xtensa_rtx_costs): Add CTZ and CLZ.  Adjust costs for MULT.
562         * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
563         (CLZ_DEFINED_VALUE_AT_ZERO): Define.
564         (CTZ_DEFINED_VALUE_AT_ZERO): Define.
565         * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
566         (any_extend): New code macro.
567         (u, su): New code attributes.
568         (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
569         (nsau): Remove; replaced by clzsi2.
570         (ffssi2): Use clzsi2.
571         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
572         _clzsi2, _ctzsi2, and _ffssi2.  Rename _nsau to _clz.
573         * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
574         (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
575         (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
576
577 2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>
578
579         * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
580         set inhibit_libc.
581         * config/arm/t-strongarm-elf: Likewise.
582         * config/arm/t-pe: Likewise.
583         * config/arm/t-arm-elf: Likewise.
584         * config/arm/t-xscale-elf: Likewise.
585         * config/arm/t-arm-coff: Likewise.
586         * config/arm/t-xscale-coff: Likewise.
587         * config/arm/t-wince-pe: Likewise.
588
589 2006-11-05  Kaz Kojima  <kkojima@gcc.gnu.org>
590
591         * config/sh/lib1funcs-4-300.asm: Guard entire file with
592         #if !__SHMEDIA__ .
593
594 2006-11-05  Jakub Jelinek  <jakub@redhat.com>
595
596         PR middle-end/29695
597         * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
598         simplification.
599
600 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
601
602         PR target/26915
603         * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
604         as a valid 80387 constant.
605         (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
606         * config/i386/i386.md (unnamed splitter): Split the load of
607         constant -0.0 or -1.0  into the load of 0.0 or 1.0, followed
608         by negation.
609
610 2006-11-04  Richard Earnshaw  <rearnsha@arm.com>
611
612         * arm.c (thumb_legitimate_addres_p): Allow any constant offset
613         from the soft-frame, argument and virtual registers.
614
615 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
616
617         * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
618         patterns for standard 80387 constants.
619
620 2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
621             Steven Bosscher  <steven@gcc.gnu.org>
622
623         * fwprop.c: New file.
624         * Makefile.in: Add fwprop.o.
625         * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
626         * passes.c (init_optimization_passes): Schedule forward propagation.
627         * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
628         parameter.
629         * timevar.def (TV_FWPROP): New.
630         * common.opt (-fforward-propagate): New.
631         * opts.c (decode_options): Enable forward propagation at -O2.
632         * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
633         * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
634         canon_for_address, table_size): Remove.
635         (new_basic_block, insert, remove_from_table): Remove references to
636         table_size.
637         (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
638         simplification loop more straightforward by not calling fold_rtx
639         recursively.
640         (equiv_constant): Move here a small part of fold_rtx_subreg,
641         do not call fold_rtx.  Call avoid_constant_pool_reference
642         to process MEMs.
643         * recog.h (canonicalize_change_group): New.
644
645         * doc/invoke.texi (Optimization Options): Document fwprop.
646         * doc/passes.texi (RTL passes): Document fwprop.
647
648 2006-11-03  Geoffrey Keating  <geoffk@apple.com>
649
650         * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
651         (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
652         (grokdeclarator): Likewise.
653
654 2006-11-03  Steven Bosscher  <steven@gcc.gnu.org>
655
656         * tree-dump.c (dump_enable_all): Rename local variable
657         ir_type to avoid name conflicts.
658         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
659         instead of using ir_type().
660         * profile.c (tree_register_profile_hooks): Likewise.
661         * value-prof.c (tree_register_value_prof_hooks): Likewise.
662         * basic-block.h (struct edge_def): Likewise.
663         * config/arm/arm.c (legitimize_pic_address): Likewise.
664         * coretypes.h (ir_type): New enum of all intermediate languages
665         used in GCC.
666         * cfghooks.c (ir_type): Rename to...
667         (current_ir_type): ...this.  Distinguish between cfgrtl and
668         cfglayout mode when the current IR is RTL.  Return enum ir_type.
669         * cfghooks.h (ir_type): Replace with current_ir_type prototype.
670
671 2006-11-03  Paul Brook  <paul@codesourcery.com>
672
673         * config/arm/arm.c (arm_file_start): New function.
674         (TARGET_ASM_FILE_START): Define.
675         (arm_default_cpu): New variable.
676         (arm_override_options): Set arm_default_cpu.
677
678 2006-11-03  David Ung  <davidu@mips.com>
679
680         * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
681         PROCESSOR_24KC and PROCESSOR_24KF.
682         * config/mips/mips.c (mips_cpu_info_table): Add processor names
683         and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
684         (mips_rtx_cost_data): Add costs for the 24kc.
685         * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
686         * config/mips/24k.md: Remove references to 24k and replace with
687         uses of 24kc/24kf in the appropriate reservations.
688         * doc/invoke.texi (MIPS Options): Updated.
689
690 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
691
692         * config/sh/crt1.asm: Fix #ifdef indent.
693
694 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
695         Merged from STMicroelectronics sources:
696         2006-10-06  Andrew Stubbs  <andrew.stubbs@st.com>
697           * config/sh/crt1.asm (vbr_600): Add missing #if.
698         2006-08-03  J"orn Rennecke  <joern.rennecke@st.com>
699           * sh.opt (mfused-madd): New option.
700           * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
701         2006-07-04  Andrew Stubbs  <andrew.stubbs@st.com>
702           * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
703           Remove pointless handler at VBR+0.
704           (vbr_200, vbr_300, vbr_500): Remove pointless handler.
705           (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
706           fr7. Make sure the timer handler is called with the correct FPU
707           precision setting, according to the ABI.
708         2006-06-14  J"orn Rennecke <joern.rennecke@st.com>
709           * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
710           * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
711           (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
712         2006-06-09  J"orn Rennecke <joern.rennecke@st.com>
713           * sh.md (cmpgeusi_t): Change into define_insn_and_split.  Accept
714           zero as second operand.
715         2006-04-28  J"orn Rennecke <joern.rennecke@st.com>
716           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
717           Fixed some bugs related to negative values, in particular -0
718           and overflow at -0x80000000.
719           * config/sh/divcost-analysis: Added sh4-300 figures.
720         2006-04-27  J"orn Rennecke <joern.rennecke@st.com>
721           * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
722         2006-04-26  J"orn Rennecke <joern.rennecke@st.com>
723           * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
724           ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
725           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
726         New files.
727           * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
728           -m4-340.
729         2006-04-24  J"orn Rennecke <joern.rennecke@st.com>
730           SH4-300 scheduling description & fixes to SH4-[12]00 description:
731           * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
732           mac_mem, mem_mac, dfp_mul, fp_cmp.
733           (insn_class, dfp_comp, any_fp_comp): Update.
734           (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
735           (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
736           (muldf3_i): Likewise.
737           (movsi_i): Split rI08 alternative into two separate alternatives.
738           Update type.
739           (movsi_ie, movsi_i_lowpart): Likewise.
740           (movqi_i): Split ri alternative into two separate alternatives.
741           Update type.
742           * sh1.md (sh1_load_store, sh1_fp): Update.
743           * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
744           (mac_mem, sh4_fpscr_toggle): New insn_reservations.
745           * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
746           (sh4a_fp_double_arith): Likewise.
747           * sh4-300.md: New file.
748           * sh.c (sh_handle_option): Handle m4-300* options.
749           (sh_adjust_cost): Fix latency of auto-increments.
750           Handle SH4-300 differently than other SH4s.  Check for new insn types.
751           * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
752           been set by an option.
753           * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
754           (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
755           (mbranch-cost=): Likewise.
756           * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
757
758           * sh.md (mulsf3): Remove special expansion code.
759           (mulsf3_ie): Now a define_insn_and_split.
760           (macsf3): Allow for TARGET_SH4.
761
762           * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
763           * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
764           (expand_cbranchdi4): Likewise.
765           (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
766           CONST_DOUBLE if the outer code is COMPARE.
767           * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
768           TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
769           (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
770           (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
771           Remove redundant fp_{zero,one}_operand checks.
772           * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
773           * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
774           (expand_cbranchdi4): Likewise.
775         2006-04-20  J"orn Rennecke <joern.rennecke@st.com>
776           * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
777
778 2006-11-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
779
780         * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
781         constraints.
782
783 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
784
785         * doc/invoke.texi: Fix mfp-trap-mode typo.
786
787 2006-11-02  Carlos O'Donell  <carlos@codesourcery.com>
788
789         * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
790         * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
791         file_end_indicate_exec_stack.
792         * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
793         Define as 0.
794         * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
795         for a non-executable stack.
796         * crti.asm: Likewise.
797         * crtn.asm: Likewise.
798         * libunwind.S: Likewise.
799
800 2006-11-02  Ben Elliston  <bje@au.ibm.com>
801
802         * tree-ssa.c (warn_uninit): Use expand_location variables for
803         locus and declaration locus.
804
805 2006-11-02  Kaz Kojima  <kkojima@gcc.gnu.org>
806
807         PR target/27405
808         * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
809         (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
810         cmp{eq,gt,gtu}{si,di}_media.
811         (*cmpne0si_media): Remove.
812         (*movsicc_umin): Adjust gen_cmp*_media call.
813         (unordered): Change the mode of unordered and operands[1] to
814         SImode.
815         (seq): Adjust gen_cmp*_media calls.  Make the mode of
816         a temporary result of compare SImode if needed.  If the mode
817         of operands[0] is DImode, extend the temporary result to DImode.
818         (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
819         (sunorderd): Change the mode of match_operand and unorderd to
820         SImode.
821         (cmpeq{sf,df}_media): Remove.
822         (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
823         (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
824         and compare operation to SImode.
825
826 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
827
828         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
829         instructions.
830         (sparc64-sun-solaris2*): Likewise.
831
832 2006-11-02  Paul Brook  <paul@codesourcery.com>
833
834         * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
835         from priority argument.  Use different section for non-default
836         priority.
837         * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
838
839 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
840
841         PR other/29639
842         * except.c (switch_to_exception_section): Do not cache the section
843         if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
844         and flag_function_sections is set.
845
846 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
847
848         PR middle-end/29335
849         * builtins.c (do_mpfr_sincos): New.
850         (fold_builtin_1): Use it to fold builtin sincos.
851
852 2006-11-01  Roger Sayle  <roger@eyesopen.com>
853
854         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
855         it into -D_REENTRANT.
856
857 2006-11-01  Roger Sayle  <roger@eyesopen.com>
858
859         * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
860         whether the assembler supports taking the difference of symbols in
861         different sections.  On x86/Solaris, GAS does but Solaris as doesn't.
862         * configure: Regenerate.
863         * config.in: Regenerate.
864         * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
865         the assembler doesn't support taking the difference of symbols in
866         different sections, i.e. we're using the native solaris assembler.
867
868 2006-11-01  Pete Steinmetz  <steinmtz@us.ibm.com>
869             Peter Bergner  <bergner@vnet.ibm.com>
870
871         * doc/invoke.texi: Add cpu_type power6x
872         (RS/6000 and PowerPC Options): Add -mmfpgpr.
873         * config.gcc: Add cpu_type power6x.
874         * configure.ac: Add test for mf{t,f}gpr instructions.
875         (HAVE_AS_MFPGPR): New.
876         * config.in: Regenerate.
877         * configure: Regenerate.
878         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
879         * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
880         shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
881         and mftgpr attributes.
882         (define_attr "cpu"): Add power6.
883         Change instruction sequences to use new attributes.
884         (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
885         (fix_truncdfsi2_mfpgpr): New.
886         (floatsidf_ppc64_mfpgpr): New.
887         (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
888         (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
889         (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
890         (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
891         (fix_truncdfsi2): Use gpc_reg_operand constraint.
892         * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
893         7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
894         Add descriptions for insert_dword, shift,trap,var_shift_rotate,
895         cntlz,exts and var_delayed_compare.
896         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
897         _ARCH_PWR6X, if features enabled.
898         * config/rs6000/rs6000.opt (mmfpgpr): New.
899         * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
900         (cached_can_issue_more): New variable.
901         (processor_costs): Add power6_cost.
902         (rs6000_sched_init): New function.
903         (is_dispatch_slot_restricted): Deleted.
904         (set_to_load_agen): New function.
905         (is_load_insn,is_store_insn): New functions.
906         (adjacent_mem_locations): New function.
907         (insn_must_be_first_in_group): New function.
908         (insn_must_be_last_in_group): New function.
909         (rs6000_sched_reorder): New function.
910         (rs6000_sched_reorder2): New function.
911         (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
912         TARGET_SCHED_REORDER2): Define.
913         (processor_target_table): Use PROCESSOR_POWER6 for power6.
914         Add power6x. Add MASK_MFPGPR for power6x.
915         (POWERPC_MASKS): Add MASK_MFPGPR.
916         (rs6000_override_options): Set rs6000_always_hint to false
917         for power6.  Set rs6000_align_branch_targets. Replace
918         rs6000_sched_groups check with rs6000_align_branch_targets.
919         Use PROCESSOR_POWER6.
920         (last_scheduled_insn): New variable.
921         (load_store_pendulum): New variable.
922         (rs6000_variable_issue): Set last_scheduled_insn and
923         cached_can_issue_more.
924         (rs6000_adjust_cost): Add power6 cost adjustments.
925         (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
926         with insn_must_be_first_in_group. Add power6 priority adjustments.
927         (rs6000_issue_rate): Add CPU_POWER6.
928         (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
929         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
930         (TARGET_MFPGPR): New.
931         (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
932         (ASM_CPU_SPEC): Add power6x.
933         (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
934         conditions.
935         * config/rs6000/power6.md: New file.
936
937 2006-11-01  Adam Nemet  <anemet@caviumnetworks.com>
938
939         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
940         HOST_WIDE_INT_PRINT to print high and low parts.  Use
941         HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT.  When
942         printing a hexadecimal number prefix it with 0x.
943
944 2006-11-01  Chris Johns <chris@contemporary.net.au>
945
946         PR bootstrap/28400
947         * Makefile.in (install-driver): Use exeext when installing
948         $target-gcc-$version.
949
950 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
951
952         * c-common.c (flag_cpp0x): New.
953         * c-common.h (flag_cpp0x): New.
954         * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
955         supported, define __GXX_EXPERIMENTAL_CPP0X__.
956         * c-opts.c (set_std_cxx0x): New.
957         (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
958         * c.opt (std=c++0x): Document.
959         (std=gnu++0x): Ditto.
960         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
961         * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
962
963 2006-11-01  Richard Guenther  <rguenther@suse.de>
964
965         * config/i386/i386.c (ix86_expand_rint): Fix issues with
966         signed zeros.
967         (ix86_expand_floorceildf_32): Likewise.
968         (ix86_expand_floorceil): Likewise.
969         (ix86_expand_trunc): Likewise.
970
971 2006-10-31  Andrew Pinski  <pinskia@gmail.com>
972
973         * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
974         to "GNU C89".
975
976 2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
977
978         * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
979         hook.
980         * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
981         default.
982         * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
983         Override default.
984         * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
985         * configure.ac (use_cxa_atexit): As a special case, don't test
986         for libc definition of __cxa_atexit on mingw32
987         * configure: Regenerate.
988         * config.gcc (i[34567]86-pc-mingw32): Default to
989         enable__cxa_atexit=yes.
990
991 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
992
993         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
994
995 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
996
997         PR 23067
998         * c-decl.c (start_struct): Don't create self-containing
999         structures.
1000         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
1001         New.
1002         * config/rs6000/rs6000-protos.h
1003         (darwin_rs6000_special_round_type_align): New.
1004         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
1005         (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
1006
1007 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1008
1009         * toplev.c (compile_file): Call final_write_globals
1010         even if there have been errors.
1011
1012 2006-10-31  Eric Christopher  <echristo@apple.com>
1013             Falk Hueffner  <falk@debian.org>
1014
1015         * doc/extend.texi (__builtin_bswap32): Document.
1016         (__builtin_bswap64): Ditto.
1017         * doc/libgcc.texi (bswapsi2): Document.
1018         (bswapdi2): Ditto.
1019         * doc/rtl.texi (bswap): Document.
1020         * optabs.c (expand_unop): Don't widen a bswap.
1021         (init_optabs): Init bswap. Set libfuncs explicitly
1022         for bswapsi2 and bswapdi2.
1023         * optabs.h (OTI_bswap): New.
1024         (bswap_optab): Ditto.
1025         * genopinit.c (optabs): Handle bswap_optab.
1026         * tree.h (tree_index): Add TI_UINT32_TYPE and
1027         TI_UINT64_TYPE.
1028         (uint32_type_node): New.
1029         (uint64_type_node): Ditto.
1030         * tree.c (build_common_tree_nodes_2): Initialize
1031         uint32_type_node and uint64_type_node.
1032         * builtins.c (expand_builtin_bswap): New.
1033         (expand_builtin): Call.
1034         (fold_builtin_bswap): New.
1035         (fold_builtin_1): Call.
1036         * fold-const.c (tree_expr_nonnegative_p): Return true
1037         for bswap.
1038         * builtin-types.def (BT_UINT32): New.
1039         (BT_UINT64): Ditto.
1040         (BT_FN_UINT32_UINT32): Ditto.
1041         (BT_FN_UINT64_UINT64): Ditto.
1042         * builtins.def (BUILT_IN_BSWAP32): New.
1043         (BUILT_IN_BSWAP64): Ditto.
1044         * rtl.def (BSWAP): New.
1045         * genattrtab.c (check_attr_value): New.
1046         * libgcc2.c (__bswapSI2): New.
1047         (__bswapDI2): Ditto.
1048         * libgcc2.h (__bswapSI2): Declare.
1049         (__bswapDI2): Ditto.
1050         * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
1051         * simplify-rtx.c (simplify_const_unary_operation): Return
1052         0 for BSWAP.
1053         * libgcc-std.ver (__bwapsi2): Add.
1054         (__bswapdi2): Ditto.
1055         * reload1.c (eliminate_regs_1): Add bswap.
1056         (elimination_effects): Ditto.
1057         * config/i386/i386.h (x86_bswap): New.
1058         (TARGET_BSWAP): Use.
1059         * config/i386/i386.c (x86_bswap): Set.
1060
1061 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1062
1063         * coverage.c (coverage_checksum_string): Update comment.
1064         * dwarf2out.c (switch_to_eh_frame_section): Update for removal
1065         of get_file_function_name.
1066         * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
1067         of get_file_function_name_long.
1068         * tree.c (get_file_function_name): Rename from
1069         get_file_function_name_long; improve comment; handle 'I' and 'D'
1070         specially when the target has ctor/dtor support; remove special
1071         handling for 'F'.
1072         (get_file_function_name): Remove.
1073         * tree.h (get_file_function_name): Rename from
1074         get_file_function_name_long.
1075         (get_file_function_name): Remove prototype.
1076
1077 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1078
1079         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
1080         * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1081
1082         * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
1083         Call dsymutil when compiling and linking one or more source files
1084         in one step.
1085
1086 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1087
1088         PR 15834
1089         * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
1090
1091 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1092
1093         * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
1094         inline static functions in c99 mode.
1095
1096         PR 16622
1097         * doc/extend.texi (Inline): Update.
1098         * c-tree.h (struct language_function): Remove field 'extern_inline'.
1099         * c-decl.c (current_extern_inline): Delete.
1100         (pop_scope): Adjust test for an undefined nested function.
1101         Add warning about undeclared inline function.
1102         (diagnose_mismatched_decls): Update comments.  Disallow overriding
1103         of inline functions in a translation unit in C99.  Allow inline
1104         declarations in C99 at any time.
1105         (merge_decls): Boolize variables.  Handle C99 'extern inline'
1106         semantics.
1107         (grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
1108         C99 inline semantics.
1109         (start_function): Don't clear current_extern_inline.  Don't set
1110         DECL_EXTERNAL.
1111         (c_push_function_context): Don't push current_extern_inline.
1112         (c_pop_function_context): Don't restore current_extern_inline.
1113
1114         PR 11377
1115         * c-typeck.c (build_external_ref): Warn about static variables
1116         used in extern inline functions.
1117         * c-decl.c (start_decl): Warn about static variables declared
1118         in extern inline functions.
1119
1120 2006-10-31  Roger Sayle  <roger@eyesopen.com>
1121
1122         PR middle-end/23470
1123         * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
1124         * fold-const.c (tree_expr_nonnegative_p): Likewise.  Consider
1125         pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
1126         or y is an even integer.
1127
1128 2006-10-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1129
1130         PR target/24071
1131         * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
1132         * gthr-posix95.h (__gthread_active_p): Likewise.
1133
1134 2006-10-31  Richard Guenther  <rguenther@suse.de>
1135
1136         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1137         acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
1138         expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
1139         exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
1140         ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
1141         lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
1142         lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
1143         btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
1144         !optimize_size.
1145
1146 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
1147
1148         * opts.c (decode_options): Disable CSE skip blocks.
1149
1150 2006-10-30  Dirk Mueller  <dmueller@suse.de>
1151
1152         * c-common.h (strict_aliasing_warning): Fix whitespace.
1153         * c-decl (start_function): Move code for main decl warning ..
1154         * c-common.c (check_main_parameter_types): .. here.
1155         * c-common.h (check_main_parameter_types): Declare.
1156
1157 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1158
1159         PR middle-end/29335
1160         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
1161
1162 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
1163
1164         * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
1165         be a PARALLEL containing sets.  Return false when out_pat is not
1166         a PARALLEL insn.
1167
1168 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
1169
1170         * config/mips/mips.md (mul<mode>3): Split into...
1171         (mulsi3, muldi3): ...these separate patterns.
1172
1173 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
1174
1175         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
1176         but with each set of options separated by spaces.
1177
1178 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
1179
1180         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
1181         dwarf_reg_size_table has been initialized.
1182
1183 2006-10-30  Roger Sayle  <roger@eyesopen.com>
1184
1185         * builtins.c (expand_builtin_mathfn_3): Correct coding style.
1186         * ddg.c (print_ddg_edge): Likewise.
1187         * dwarf2out.c (prune_unused_types_walk): Likewise.
1188         * ifcvt.c (noce_try_cmove_arith): Likewise.
1189         * langhooks.c (add_builtin_function): Likewise.
1190         * reg-stack.c (subst_stack_regs_pat): Likewise.
1191         * tree.c (expanded_location): Likewise.
1192         * tree-dump.c (dequeue_and_dump): Likewise.
1193
1194 2006-10-30  David Daney  <ddaney@avtrex.com>
1195
1196         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
1197
1198 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
1199
1200         PR tree-optimization/29637
1201         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
1202         of the innertype is the innertype itself.
1203
1204 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
1205
1206         * dwarf2out.c (file_name_acquire): Correct typo.
1207
1208 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
1209
1210         * tree.h (tree_value_handle): Remove struct value_set declaration.
1211         Change value_set to bitmap_set.
1212         * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
1213         * tree-vn.c (get_value_handle): Made inline and moved to
1214         tree-flow-inline.h.
1215         * tree-flow-inline.h: (has_stmt_ann): New function.
1216         * tree-ssa-pre.c (expressions): New variable.
1217         (next_expression_id): Ditto.
1218         (alloc_expression_id): New function.
1219         (struct value_set): Remove.
1220         (get_expression_id): New function.
1221         (get_or_alloc_expression_id): Ditto.
1222         (expression_for_id): Ditto.
1223         (clear_expression_ids): Ditto.
1224         (FOR_EACH_EXPR_ID_IN_SET): New macro.
1225         (bb_value_sets): Renamed to bb_bitmap_sets.
1226         All value sets replaced with bitmap_sets.
1227         Add visited member.
1228         (BB_VISITED): New macro.
1229         (postorder): New variable.
1230         (add_to_value): Removed.
1231         (value_exists_in_set_bitmap): Ditto.
1232         (value_insert_into_set_bitmap): Ditto.
1233         (set_new): Ditto.
1234         (set_copy): Ditto.
1235         (set_remove): Ditto.
1236         (set_contains_value): Ditto.
1237         (insert_into_set): Ditto.
1238         (set_equal): Ditto.
1239         (find_leader): Ditto.
1240         (bitmap_set_subtract_from_value_set): Ditto.
1241         (value_insert_into_set): Ditto.
1242         (print_value_set): Ditto.
1243         (debug_value_set): Ditto.
1244         (constant_expr_p): New function.
1245         (bitmap_remove_from_set): Ditto.
1246         (bitmap_insert_into_set): Ditto.
1247         (bitmap_set_free): Ditto.
1248         (vh_compare): Ditto.
1249         (sorted_array_from_bitmap_set): Ditto.
1250         (bitmap_set_subtract): Ditto.
1251         (bitmap_set_equal): Ditto.
1252         (debug_bitmap_set): Ditto.
1253         (find_leader_in_sets): Ditto.
1254         (bitmap_set_replace_value): Modify for bitmapped sets.
1255         (phi_translate): Ditto.
1256         (phi_translate_set): Ditto.
1257         (bitmap_find_leader): Ditto.
1258         (valid_in_sets): Ditto.
1259         (union_contains_value): Ditto.
1260         (clean): Ditto.
1261         (compute_antic_aux): Ditto.  Mark changed blocks.
1262         (compute_antic): Ditto. Iterate in postorder and only over
1263         changing blocks.
1264         (compute_rvuse_and_antic_safe): Reuse postorder.
1265         (create_component_ref_by_pieces): Modify for bitmapped sets.
1266         (find_or_generate_expression): Ditto.
1267         (create_expression_by_pieces): Ditto.
1268         (insert_into_preds_of_block): Ditto.
1269         (changed_blocks): New variable.
1270         (do_regular_insertion): Broken out from insert_aux.
1271         (insert_aux): Modified for bitmapped sets.
1272         (find_existing_value_expr): New function.
1273         (create_value_expr_from): Use it.
1274         (insert_extra_phis): Removed.
1275         (print_bitmap_set): Renamed from bitmap_print_value_set.
1276         (compute_avail): Handle RETURN_EXPR.
1277         (init_pre): Modify for bitmapped sets.
1278         * tree-flow.h (has_stmt_ann): New function.
1279
1280 2006-10-29  Roger Sayle  <roger@eyesopen.com>
1281
1282         * builtins.c (fold_builtin_floor): Check for the availability of
1283         the C99 trunc function before transforming floor into trunc.
1284
1285 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1286
1287         * builtins.c (fold_builtin_hypot): Rearrange recursive
1288         transformation before others, and also do ABS_EXPR.  When
1289         necessary, check flag_unsafe_math_optimizations.  When necessary,
1290         add fabs.
1291
1292 2006-10-29  Roger Sayle  <roger@eyesopen.com>
1293
1294         * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
1295         Fold ~X op C as X op' ~C, where op' is the swapped comparison.
1296         (fold_binary): ~X eq/ne C is now handled in fold_comparison.
1297         Fold -X eq/ne -Y as X eq/ne Y.
1298
1299 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
1300
1301         * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
1302         GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
1303         rather than GENERATE_MULT3_SI in the various define_peephole2s.
1304         (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
1305         Use an inclusive test for "mult" rather than "mul".
1306         (rotr<mode>3): Depend on ISA_HAS_ROR.
1307         * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
1308         ISA_HAS_MUL3.
1309         (GENERATE_MULT3_DI): Delete.
1310         (ISA_HAS_64BIT_REGS): Use consistent formatting.
1311         (ISA_HAS_MUL3): New macro.
1312         (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
1313         (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
1314         (ISA_HAS_CLZ_CLO): Likewise.
1315         (ISA_HAS_DCLZ_DCLO): Delete.
1316         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
1317         (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
1318         the VR4120 and VR4130.
1319         (ISA_HAS_MACCHI): Use consistent formatting.
1320         (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
1321         (ISA_HAS_ROR): ...this new macro.
1322         (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
1323         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
1324         (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
1325
1326 2006-10-29  Roger Sayle  <roger@eyesopen.com>
1327
1328         PR tree-optimization/15458
1329         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
1330         is a constant.
1331
1332 2006-10-29  Richard Guenther  <rguenther@suse.de>
1333
1334         * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
1335         (ix86_expand_truncdf_32): Likewise.
1336         * config/i386/i386.c (ix86_expand_trunc): New function expanding
1337         trunc inline for SSE math and -fno-trapping-math and if not
1338         optimizing for size.
1339         (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
1340         * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
1341         for expanding btrunc inline for SSE math.
1342
1343 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
1344
1345         * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
1346         Handle tuning for bi-arch i[34567]86-*-linux* like that for
1347         i[34567]86-*-solaris2.1[0-9]*.
1348         * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
1349         Define conditionally depending on TARGET_64BIT_DEFAULT.
1350         (SPEC_32, SPEC_64): Define.
1351         (LINK_SPEC): Use them.
1352         * doc/install.texi (--enable-targets=all): Document for x86-linux.
1353
1354 2006-10-29  Richard Guenther  <rguenther@suse.de>
1355
1356         * config/i386/i386-protos.h (ix86_expand_round): Declare.
1357         (ix86_expand_rounddf_32): Likewise.
1358         * config/i386/i386.c (ix86_expand_round): New function expanding
1359         round inline for SSE math and -fno-trapping-math and if not
1360         optimizing for size.
1361         (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
1362         * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
1363         round via ix86_expand_round.
1364
1365 2006-10-29  Richard Guenther  <rguenther@suse.de>
1366
1367         * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
1368         (ix86_expand_floorceildf_32): Likewise.
1369         * config/i386/i386.c (ix86_expand_sse_compare_mask): New
1370         static helper function.
1371         (ix86_expand_floorceil): Expander for floor and ceil to SSE
1372         math.
1373         (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
1374         * config/i386/i386.md (floordf2): Adjust to enable floor
1375         expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
1376         -fno-trapping-math is enabled and if not optimizing for size.
1377         (floorsf2, ceildf2, ceilsf2): Likewise.
1378         * config/i386/sse.md (sse_maskcmpsf3): New insn.
1379         (sse2_maskcmpdf3): Likewise.
1380
1381 2006-10-29  Richard Guenther  <rguenther@suse.de>
1382
1383         * builtins.c (expand_builtin_mathfn): Expand nearbyint as
1384         rint in case -fno-trapping-math is enabled.
1385         * config/i386/i386-protos.h (ix86_expand_rint): Declare.
1386         * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
1387         (ix86_expand_sse_fabs): Likewise.
1388         (ix86_expand_rint): New function expanding rint to x87 or SSE math.
1389         * config/i386/i386.md (rintdf2): Enable for SSE math if
1390         -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
1391         (rintsf2): Likewise.
1392
1393 2006-10-29  Richard Guenther  <rguenther@suse.de>
1394
1395         * genopinit.c (optabs): Change lfloor_optab and lceil_optab
1396         to conversion optabs.
1397         * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
1398         as conversion optab.
1399         * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
1400         (enum convert_optab_index): Add COI_lfloor and COI_lceil.
1401         (lfloor_optab, lceil_optab): Adjust defines.
1402         * builtins.c (expand_builtin_int_roundingfn): Adjust for
1403         lfloor and lceil optabs now being conversion optabs.
1404         * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
1405         * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
1406         New static helper function.
1407         (ix86_expand_lfloorceil): New function to expand lfloor and
1408         lceil inline.
1409         * config/i386/i386.md (lfloor<mode>2): Split into ...
1410         (lfloorxf<mode>2): ... x87 variant
1411         (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
1412         using ix86_expand_lfloorceil.
1413         (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
1414         Likewise.
1415         * doc/md.texi (lfloorMN, lceilMN): Document.
1416
1417 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
1418
1419         * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.  Test for the
1420         -mno-shared assembler option on mips targets.
1421         * configure, config.in: Regenerate.
1422         * config/mips/linux.h (NO_SHARED_SPECS): New macro.
1423         (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
1424         * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
1425
1426 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
1427
1428         * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
1429         as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
1430
1431 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
1432
1433         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
1434         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
1435         comment typos.
1436
1437 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1438
1439         PR middle-end/29335
1440         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
1441         (fold_builtin_pow): Evaluate constant arguments at compile-time
1442         using MPFR.
1443         (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
1444         (do_mpfr_ckconv): New helper function.
1445         (do_mpfr_arg1): Use do_mpfr_ckconv.
1446         (do_mpfr_arg2): New.
1447
1448 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1449
1450         PR tree-opt/29271
1451         * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
1452         (-fdump-rtl-sched): Rename to ..
1453         (-fdump-rtl-sched1): here.  Also fix file extension number.
1454
1455 2006-10-28  Richard Guenther  <rguenther@suse.de>
1456
1457         * fold-const.c (maybe_canonicalize_comparison): Fix code
1458         to match comment.
1459
1460 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
1461
1462         * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
1463         (NON_QI_REG_P): Use IN_RANGE.
1464         (REX_INT_REGNO_P): Use IN_RANGE.
1465         (FP_REGNO_P): Use IN_RANGE.
1466         (SSE_REGNO_P): Use IN_RANGE.
1467         (REX_SSE_REGNO_P): Use IN_RANGE.
1468         (MMX_REGNO_P): Use IN_RANGE.
1469         (STACK_REGNO_P): New macro.
1470         (STACK_REG_P): Use STACK_REGNO_P.
1471         (NON_STACK_REG_P): Use STACK_REGNO_P.
1472         (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
1473         (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
1474         (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
1475         (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
1476         (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
1477
1478 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
1479
1480         * except.h (output_function_exception_table): Add 'const char*' param.
1481         * except.c (switch_to_exception_section): Add 'const char*' param.
1482         If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1483         and flag_function_sections is set, use a function-specific section.
1484         (output_function_exception_table): Add 'const char*' param.
1485         Adjust call to switch_to_exception_section.
1486         * final.c (rest_of_handle_final): Adjust calls to
1487         output_function_exception_table.
1488         * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
1489         * config.in: Regenerate.
1490         * configure: Likewise.
1491
1492 2006-10-28  Richard Guenther  <rguenther@suse.de>
1493
1494         PR middle-end/26899
1495         * fold-const.c (maybe_canonicalize_comparison_1): Helper
1496         for maybe_canonicalize_comparison.
1497         (maybe_canonicalize_comparison): New function for canonicalizing
1498         comparison trees.
1499         (fold_comparison): Call it to canonicalize comparisons with
1500         constants involved.
1501
1502 2006-10-28  Richard Guenther  <rguenther@suse.de>
1503
1504         PR target/28806
1505         * builtins.c (expand_builtin_int_roundingfn_2): Expand
1506         BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
1507         (expand_builtin): Adjust likewise.
1508         * genopinit.c (optabs[]): Add lround optab.
1509         * optabs.c (init_optabs): Initialize lround_optab.
1510         * optabs.h (enum convert_optab_index): Add COI_lround.
1511         (lround_optab): Define.
1512         * config/i386/i386-protos.h (ix86_expand_lround): Declare.
1513         * config/i386/i386.c (ix86_sse_copysign_to_positive): New
1514         static function.
1515         (ix86_expand_lround): New function.
1516         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
1517         New expanders.
1518         * doc/md.texi (lroundMN2): Document.
1519
1520 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1521
1522         PR target/29377
1523         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
1524         argument to HOST_WIDE_INT.  Update function prototype.
1525         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
1526         "size" argument to HOST_WIDE_INT.  Update function prototype.
1527
1528 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1529
1530         * config/i386/i386.c (output_387_ffreep): Create output from a
1531         template string for !HAVE_AS_IX86_FFREEP.
1532
1533 2006-10-27  Eric Christopher  <echristo@apple.com>
1534
1535         * config/darwin.c: Fix formatting and grammar.
1536
1537 2006-10-27  Jan Hubicka  <jh@suse.cz>
1538
1539         * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
1540         to be thrown away soon when IGNORE is set.
1541         * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
1542         indicating when return value shall not be computed.
1543         * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
1544
1545 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
1546
1547         * config/i386/i386.h (TARGET_GEODE):
1548         (TARGET_CPU_CPP_BUILTINS): Add code for geode.
1549         (TARGET_CPU_DEFAULT_geode): New macro.
1550         (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
1551         TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
1552         TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
1553         TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
1554         TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
1555         the macro values.
1556         (TARGET_CPU_DEFAULT_NAMES): Add geode.
1557         (processor_type): Add PROCESSOR_GEODE.
1558
1559         * config/i386/i386.md: Include geode.md.
1560         (cpu): Add geode.
1561
1562         * config/i386/i386.c (geode_cost): New initialized global
1563         variable.
1564         (m_GEODE, m_K6_GEODE): New macros.
1565         (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
1566         x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
1567         x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
1568         x86_schedule): Use m_K6_GEODE instead of m_K6.
1569         (x86_movx, x86_cmove): Set up m_GEODE.
1570         (x86_integer_DFmode_moves): Clear m_GEODE.
1571         (processor_target_table): Add entry for geode.
1572         (processor_alias_table): Ditto.
1573
1574         * config/i386/geode.md: New file.
1575
1576         * doc/invoke.texi: Add entry about geode processor.
1577
1578 2006-10-27  Mike Stump  <mrs@apple.com>
1579
1580         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
1581         __DYNAMIC__ from here back to ...
1582         * config/darwin.h (CPP_SPEC): ... here.
1583
1584 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
1585             Nathan Sidwell  <nathan@codesourcery.com>
1586
1587         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
1588         when choosing the minimum heapsize.
1589
1590 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
1591
1592         * gcc/unwind-dw2.h: Move cfa-related variables into
1593         struct frame_state_reg_info to ensure that the CFA is properly
1594         handled when executing DW_CFA_{remember,restore}_state.
1595         * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
1596         gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
1597         gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
1598         gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
1599         gcc/config/rs6000/linux-unwind.h,
1600         gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
1601         gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
1602         Modify to use new cfa_* fields.
1603
1604 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1605
1606         * config/s390/s390.c (s390_init_frame_layout): Check positive
1607         frame_size.
1608
1609 2006-10-26  Ben Elliston  <bje@au.ibm.com>
1610
1611         * gimplify.c (get_name): Remove extraneous break.
1612         (gimplify_omp_for): Initialise ret with GS_OK.
1613
1614 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
1615
1616         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
1617         Add unix98.o to link line.
1618
1619 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1620
1621         PR middle-end/29335
1622         * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
1623         Calculate compile-time constants using MPFR.
1624         (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
1625         BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
1626
1627 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
1628
1629         * config/xtensa/lib2funcs.S: Use C-style comments.
1630
1631 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
1632
1633         * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
1634         (file_table_relative_p): Likewise.
1635         (dwarf2out_finish): Likewise.
1636         (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
1637
1638 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
1639
1640         * tree-ssa-structalias.c (intra_create_variable_infos):
1641           Don't recreate nonlocal_all if it already exists.
1642
1643 2006-10-25  Richard Guenther  <rguenther@suse.de>
1644
1645         PR target/28803
1646         * optabs.h (enum optab_index): Remove OTI_lrint.
1647         (enum convert_optab_index): Add COI_lrint.
1648         (lrint_optab): Adjust.
1649         (expand_sfix_optab): Declare.
1650         * optabs.c (expand_sfix_optab): New function.
1651         (init_optabs): Init lrint_optab as conversion optab.
1652         * genopinit.c (lrint_optab): Change to a conversion optab.
1653         * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
1654         expansion via conversion optab.
1655         * config/i386/i386.md (*fistdi2_1): Remove
1656         flag_unsafe_math_optimizations guard.
1657         (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
1658         fist<mode>2_with_temp): Likewise.
1659         (lrint<mode>2): Split into...
1660         (lrintxf<mode>2): ... x87 part
1661         (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
1662         * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
1663         sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
1664         UNSPEC_FIX_NOTRUNC matching non-vector float modes.
1665         * doc/md.texi (lrintMN2): Document.
1666
1667 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
1668
1669         PR target/28909
1670         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
1671         Use inc and dec instructions for TARGET_USE_INCDEC.
1672         ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
1673         ("sync_double_compare_and_swap<mode>"): Likewise.
1674         ("*sync_double_compare_and_swapdi_pic"): Likewise.
1675         ("*sync_compare_and_swap_cc<mode>"): Likewise.
1676         ("sync_double_compare_and_swap_cc<mode>"): Likewise.
1677         ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
1678         ("sync_old_add<mode>"): Likewise.
1679         ("sync_lock_test_and_set<mode>"): Likewise.
1680         ("sync_lock_test_and_set<mode>"): Likewise.
1681         ("sync_add<mode>"): Likewise.
1682         ("sync_sub<mode>"): Likewise.
1683         ("sync_ior<mode>"): Likewise.
1684         ("sync_and<mode>"): Likewise.
1685         ("sync_xor<mode>"): Likewise.
1686
1687 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
1688
1689         * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
1690         (remainder_optab): Define corresponding macro.
1691         (drem_optab): Remove.
1692         * optabs.c (init_optabs): Initialize remainder_optab.  Remove
1693         drem_optab initialization.
1694         * genopinit.c (optabs): Implement remainder_optab using
1695         remainder?f3 patterns.  Remove drem_optab.
1696         * builtins.c (expand_builtin_mathfn_2): Handle
1697         BUILT_IN_REMAINDER{,F,L} using remainder_optab.
1698         (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
1699         expand_builtin_mathfn_2.
1700
1701         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
1702         depend on flag_unsafe_math_optimizations.
1703
1704         * config/i386/i386.md ("remaindersf3", "remainderdf3")
1705         ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
1706         Do not depend on flag_unsafe_math_optimizations.  Use
1707         truncxf?f expander instead of truncxf?f_i387_noop.
1708
1709         ("fpremxf4", "fprem1xf4"): Do not depend on
1710         flag_unsafe_math_optimizations.
1711         ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
1712         flag_unsafe_math_optimizations.  Use truncxf?f expander
1713         instead of truncxf?f_i387_noop.
1714
1715         * doc/md.texi (fmod, remainder): Document standard named pattern.
1716
1717 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
1718             David Daney  <ddaney@avtrex.com>
1719
1720         PR middle-end/29519
1721         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
1722
1723 2006-10-25  Ben Elliston  <bje@au.ibm.com>
1724
1725         * doc/extend.texi (Variable Attributes): Typo fix.
1726
1727 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
1728
1729         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
1730         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
1731         (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
1732         (FRAME_POINTER_REGNUM): Update register number to 21.
1733         (REG_CLASS_CONTENTS): Update contents for added fpcr register.
1734         (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
1735
1736         * config/i386/i386.c (regclass_map): Add fpcr entry.
1737         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
1738         Add fpcr entry.
1739         (print_reg): Assert REGNO (x) != FPCR_REG.
1740
1741         * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
1742         (DIRFLAG_REG): Renumber.
1743         (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
1744         (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
1745         (sse_prologue_save, *sse_prologue_save_insn): Renumber
1746         hardcoded SSE register numbers.
1747
1748         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
1749         hardcoded MMX register numbers.
1750
1751 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1752
1753         PR middle-end/29335
1754         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
1755         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
1756         Update all callers.
1757         (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
1758         (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
1759         BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
1760         BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
1761
1762 2006-10-24  Richard Guenther  <rguenther@suse.de>
1763
1764         PR middle-end/28796
1765         * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
1766         and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
1767         for deciding optimizations in consistency with fold-const.c
1768         (fold_builtin_unordered_cmp): Likewise.
1769
1770 2006-10-24  Richard Guenther  <rguenther@suse.de>
1771
1772         * builtins.c (fold_builtin_floor): Fold floor (x) where
1773         x is nonnegative to trunc (x).
1774         (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
1775         nonnegative to FIX_TRUNC_EXPR.
1776
1777 2006-10-24  Richard Guenther  <rguenther@suse.de>
1778
1779         PR tree-optimization/29567
1780         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
1781         for TRUTH_NOT_EXPR.  Clarify comments.
1782
1783 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1784
1785         PR middle-end/29335
1786         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
1787         at compile-time using MPFR.  Change parameter VALUE to FUNC,
1788         update all callers.
1789         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
1790         for overflow and underflow at all times and avoid folding in
1791         those cases.
1792
1793 2006-10-24  Ben Elliston  <bje@au.ibm.com>
1794
1795         * reload1.c: Formatting fixes.
1796
1797 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
1798
1799         PR tree-optimization/14784
1800         * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
1801         * tree-ssa-structalias.c (get_constraint_for,
1802         intra_create_variable_infos): Set is_heapvar.
1803         * tree-ssa-operands.c (access_can_touch_variable): Do not handle
1804         non-heapvar pointer variables specially.
1805
1806 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1807
1808         PR middle-end/29335
1809         * builtins.c (fold_builtin_sin, fold_builtin_cos,
1810         fold_builtin_tan): Fold all constant arguments.  Take a "type"
1811         argument as necessary.
1812         (do_mpfr_arg1): New.
1813         * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
1814
1815 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
1816
1817         * config/xtensa/lib1funcs.asm: Use C-style comments.
1818
1819 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
1820
1821         * tree.c (local_define_builtin): Replace calls to
1822         lang_hooks.builtin_function with add_builtin_function.
1823         * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
1824         c_builtin_function.
1825         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
1826         the signature.
1827         * c-decl.c (builtin_function): Rename to c_builtin_function. Move
1828         common code to add_builtin_function.
1829         * langhooks.c (add_builtin_function): New function.
1830         (lhd_builtin_function): New function.
1831         * langhooks.h (struct lang_hooks): Change the signature of
1832         builtin_function.
1833         (add_builtin_function): New function.
1834         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
1835         calls to lang_hooks.builtin_function with add_builtin_function.
1836         * c-common.c (decl_builtin_1): Replace calls to
1837         lang_hooks.builtin_function with add_builtin_function.
1838         * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
1839         lang_hooks.builtin_function with add_builtin_function.
1840         * config/frv/frv.c (def_builtin): Replace calls to
1841         lang_hooks.builtin_function with add_builtin_function.
1842         * config/s390/s390.c (s390_init_builtins): Replace calls to
1843         lang_hooks.builtin_function with add_builtin_function.
1844         * config/sparc/sparc.c (def_builtin): Replace calls to
1845         lang_hooks.builtin_function with add_builtin_function.
1846         * config/i386/i386.c (def_builtin): Replace calls to
1847         lang_hooks.builtin_function with add_builtin_function.
1848         * config/sh/sh.c (sh_media_init_builtins): Replace calls to
1849         lang_hooks.builtin_function with add_builtin_function.
1850         * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
1851         lang_hooks.builtin_function with add_builtin_function.
1852         * config/stormy16/stormy16.c (xstormy16_init_builtins):
1853         Replace calls to lang_hooks.builtin_function with
1854         add_builtin_function.
1855         * config/iq2000/iq2000.c (def_builtin):
1856         Replace calls to lang_hooks.builtin_function with
1857         add_builtin_function.
1858         * config/ia64/ia64.c (def_builtin): Replace calls to
1859         lang_hooks.builtin_function with add_builtin_function.
1860         * config/rs6000/rs6000.c (def_builtin): Replace calls to
1861         lang_hooks.builtin_function with add_builtin_function.
1862         (altivec_init_builtins): Replace calls to
1863         lang_hooks.builtin_function with add_builtin_function.
1864         * config/arm/arm.c (def_mbuiltin): Replace calls to
1865         lang_hooks.builtin_function with add_builtin_function.
1866         (arm_init_tls_builtins): Replace calls to
1867         lang_hooks.builtin_function with add_builtin_function.
1868         * config/mips/mips.c (mips_init_builtins): Replace calls to
1869         lang_hooks.builtin_function with add_builtin_function.
1870         * config/bfin/bfin.c (def_builtin): Replace calls to
1871         lang_hooks.builtin_function with add_builtin_function.
1872         * langhooks-def.h (lhd_builtin_function): New function.
1873         (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
1874
1875 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
1876
1877         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
1878         BUILT_IN_STRNCAT_CHK.
1879
1880 2006-10-23  Jan Hubicka  <jh@suse.cz>
1881
1882         * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
1883         don't do conversion from memmove to memcpy here.
1884         (expand_builtin_bcopy, expand_builtin): Update call of
1885         expand_builtin_memmove.
1886         (fold_builtin_memory_op): Do folding of memmove to memcpy here.
1887
1888 2006-10-23  Paul Brook  <paul@codesourcery.com>
1889
1890         * stor-layout.c (start_record_layout): maximum_field_alignment
1891         overrides STRUCTURE_SIZE_BOUNDARY.
1892
1893 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
1894
1895         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
1896         nonlocal function symbols if flag_pic.
1897
1898 2006-10-23  Richard Guenther  <rguenther@suse.de>
1899
1900         PR middle-end/27132
1901         PR middle-end/23295
1902         * builtins.c (fold_binary): Remove checks for flag_wrapv
1903         and flag_trapv where negate_expr_p covers these cases.
1904
1905 2006-10-23  Richard Guenther  <rguenther@suse.de>
1906
1907         PR middle-end/29548
1908         * fold-const.c (fold_plusminus_mult_expr): Check exact power
1909         of two on the absolute value.
1910         (fold_binary): Fold x * -C to -x * C if x is easily negatable
1911         and negating -C does not overflow.
1912
1913 2006-10-23  Richard Guenther  <rguenther@suse.de>
1914
1915         PR middle-end/21032
1916         * convert.c (convert_to_real): Fold (float)-x to -(float)x
1917         only if not flag_rounding_math.
1918
1919 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
1920             Kaz Kojima  <kkojima@gcc.gnu.org>
1921
1922         PR target/28232
1923         * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
1924         SImode memory reference for the source of a movua.
1925         * config/sh/sh.md (UNSPEC_MOVUA): New macro.
1926         (movua): Use an unspec instead of sign_extract.  Expect the source
1927         to have mode BLKmode.
1928         (extv, insv): Use a BLKmode rather than SImode memory reference
1929         for the source of a movua.
1930
1931 2006-10-22  Jeff Law  <law@redhat.com>
1932         Richard Guenther  <rguenther@suse.de>
1933
1934         PR tree-optimization/15911
1935         * tree-vrp.c (extract_code_and_val_from_cond): New function.
1936         (register_edge_assert_for_1): Likewise.
1937         (register_edge_assert_for): Handle &&/&/||/| in conditionals.
1938         (find_conditional_asserts): Adjust for new function signature.
1939         (find_assert_locations): Likewise.
1940
1941 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
1942
1943         * config/i386/tmmintrin.h: Remove the duplicated content.
1944
1945 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
1946
1947         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
1948         (x86_64-*-*): Likewise.
1949
1950         * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
1951         (override_options): Check SSSE3.
1952         (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
1953         IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
1954         IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
1955         IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
1956         IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
1957         IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
1958         IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
1959         IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
1960         IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
1961         IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
1962         IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
1963         IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
1964         IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
1965         IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
1966         IX86_BUILTIN_PABSD128.
1967         (bdesc_2arg): Add SSSE3.
1968         (bdesc_1arg): Likewise.
1969         (ix86_init_mmx_sse_builtins): Support SSSE3.
1970         (ix86_expand_builtin): Likewise.
1971         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1972
1973         * config/i386/i386.md (UNSPEC_PSHUFB): New.
1974         (UNSPEC_PSIGN): Likewise.
1975         (UNSPEC_PALIGNR): Likewise.
1976         Include mmx.md before sse.md.
1977
1978         * config/i386/i386.opt: Add -mssse3.
1979
1980         * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
1981         (ssse3_phaddwv4hi3): Likewise.
1982         (ssse3_phadddv4si3): Likewise.
1983         (ssse3_phadddv2si3): Likewise.
1984         (ssse3_phaddswv8hi3): Likewise.
1985         (ssse3_phaddswv4hi3): Likewise.
1986         (ssse3_phsubwv8hi3): Likewise.
1987         (ssse3_phsubwv4hi3): Likewise.
1988         (ssse3_phsubdv4si3): Likewise.
1989         (ssse3_phsubdv2si3): Likewise.
1990         (ssse3_phsubswv8hi3): Likewise.
1991         (ssse3_phsubswv4hi3): Likewise.
1992         (ssse3_pmaddubswv8hi3): Likewise.
1993         (ssse3_pmaddubswv4hi3): Likewise.
1994         (ssse3_pmulhrswv8hi3): Likewise.
1995         (ssse3_pmulhrswv4hi3): Likewise.
1996         (ssse3_pshufbv16qi3): Likewise.
1997         (ssse3_pshufbv8qi3): Likewise.
1998         (ssse3_psign<mode>3): Likewise.
1999         (ssse3_psign<mode>3): Likewise.
2000         (ssse3_palignrti): Likewise.
2001         (ssse3_palignrdi): Likewise.
2002         (abs<mode>2): Likewise.
2003         (abs<mode>2): Likewise.
2004
2005         * config/i386/tmmintrin.h: New file.
2006
2007         * doc/extend.texi: Document SSSE3 built-in functions.
2008
2009         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
2010
2011 2006-10-22  Ira Rosen  <irar@il.ibm.com>
2012
2013         * tree-vect-transform.c (vectorizable_load): Use the type of the
2014         return value of the mask_for_load builtin to create realign_load
2015         stmt.
2016
2017 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
2018
2019         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
2020         expressions.
2021
2022 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
2023
2024         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
2025         (UNSPEC_LDDQU): This.
2026         * config/i386/sse.md (sse3_lddqu): Updated.
2027
2028 2006-10-21  Richard Guenther  <rguenther@suse.de>
2029
2030         * builtins.c (expand_builtin_int_roundingfn_2): New function.
2031         (expand_builtin): Use it to expand lrint instead of
2032         expand_builtin_mathfn.
2033
2034 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
2035
2036         PR middle-end/28252
2037         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
2038         flag_unsafe_math_optimizations is set.
2039
2040 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
2041
2042         PR target/19398
2043         * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
2044         patterns to use memory input operand in x87->mem->XMM
2045         reload sequences.  Skip transformation for TARGET_K8.
2046
2047 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
2048
2049         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
2050         force operand1 to register if both operands are memory operands.
2051         (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
2052         (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
2053         if both operands are memory operands.
2054         (truncdfsf2): Do not force operand1 to register if both operands
2055         are memory operands.
2056
2057 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2058
2059         * Makefile.in (LIBS): Add $(GMPLIBS).
2060         * doc/install.texi: Update GMP and MPFR requirements.
2061         * doc/sourcebuild.texi (need_gmp): Delete.
2062
2063 2006-10-21  Richard Guenther  <rguenther@suse.de>
2064
2065         PR tree-optimization/3511
2066         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
2067         got new invariant arguments during PHI translation.
2068
2069 2006-10-21  Richard Guenther  <rguenther@suse.de>
2070
2071         PR middle-end/26898
2072         * fold-const.c (fold_comparison): Fold signed comparisons
2073         of the form X +- C1 CMP Y +- C2.
2074
2075 2006-10-21  Richard Guenther  <rguenther@suse.de>
2076
2077         PR target/19116
2078         * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
2079         if flag_unsafe_math_optimizations is specified.  We have
2080         flag_finite_math_only for that.
2081         * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
2082         or flag_unsafe_math_optimizations.
2083
2084 2006-10-21  Richard Guenther  <rguenther@suse.de>
2085
2086         * builtins.c (fold_builtin_classify): Fix typo.
2087
2088 2006-10-21  Richard Guenther  <rguenther@suse.de>
2089
2090         PR middle-end/28796
2091         * simplify-rtx.c (simplify_const_relational_operation):
2092         Do not constant-fold ORDERED and UNORDERED for
2093         flag_unsafe_math_optimizations but only we do not need to
2094         honor NaNs for the given mode.
2095
2096 2006-10-21  Richard Guenther  <rguenther@suse.de>
2097
2098         PR target/29512
2099         * config/i386/i386.c (classify_argument): Remove redundant
2100         walking of the BINFOs.
2101         (contains_128bit_aligned_vector_p): Likewise.
2102
2103 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
2104
2105         * BASE-VER: Set to 4.3.0.
2106
2107 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
2108
2109         * tree.h (DECL_PTA_ARTIFICIAL): Remove.
2110         (tree_decl_with_vis): Remove artificial_pta_var flag.
2111         * tree-flow.h (referenced_var_check_and_insert): Expose.
2112         (nonlocal_all): New prototype.
2113         * tree-ssa-structalias.c (nonlocal_for_type): Remove.
2114         (nonlocal_all): Make global.
2115         (nonlocal_lookup): Remove.
2116         (nonlocal_insert): Ditto.
2117         (create_nonlocal_var): Do not call nonlocal_insert.
2118         (get_nonlocal_id_for_type): Remove.
2119         (find_global_initializers): Mark new vars we find for renaming.
2120         (intra_create_variable_infos): Only create one nonlocal.
2121         (expand_nonlocal_solutions): Remove.
2122         (compute_points_to_sets): Don't call it.
2123         (ipa_pta_execute): Ditto.
2124         (init_alias_heapvars): Don't create nonlocal_for_type.
2125         (delete_alias_heapvars): Don't remove it.
2126         * tree-ssa-operands.c (access_can_touch_variable): Don't prune
2127         nonlocal_all.
2128
2129 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
2130
2131         * doc/install.texi (Downloading GCC): Clarify mention of
2132         Fortran in the "full distribution" description.
2133
2134 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
2135
2136         Fix PR tree-optimization/28778
2137         Fix PR tree-optimization/29156
2138         Fix PR tree-optimization/29415
2139         * tree.h (DECL_PTA_ARTIFICIAL): New macro.
2140         (tree_decl_with_vis): Add artificial_pta_var flag.
2141         * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
2142         pushed into callers.
2143         * tree-ssa-structalias.c (nonlocal_for_type): New variable.
2144         (nonlocal_all): Ditto.
2145         (struct variable_info): Add directly_dereferenced member.
2146         (var_escaped_vars): New variable.
2147         (escaped_vars_tree): Ditto.
2148         (escaped_vars_id): Ditto.
2149         (nonlocal_vars_id): Ditto.
2150         (new_var_info): Set directly_dereferenced.
2151         (graph_size): New variable
2152         (build_constraint_graph): Use graph_size.
2153         (solve_graph): Don't process constraints that cannot change the
2154         solution, don't try to propagate an empty solution to our
2155         successors.
2156         (process_constraint): Set directly_dereferenced.
2157         (could_have_pointers): New function.
2158         (get_constraint_for_component_ref): Don't process STRING_CST.
2159         (nonlocal_lookup): New function.
2160         (nonlocal_insert): Ditto.
2161         (create_nonlocal_var): Ditto.
2162         (get_nonlocal_id_for_type): Ditto.
2163         (get_constraint_for): Allow results vector to be empty in the case
2164         of string constants.
2165         Handle results of calls properly.
2166         (update_alias_info): Update alias info stats on number and type of
2167         calls.
2168         (find_func_aliases): Use could_have_pointers.
2169         (make_constraint_from_escaped): Renamed from
2170         make_constraint_to_anything, and changed to make constraints from
2171         escape variable.
2172         (make_constraint_to_escaped): New function.
2173         (find_global_initializers): Ditto.
2174         (create_variable_info_for): Make constraint from escaped to any
2175         global variable, and from any global variable to the set of
2176         escaped vars.
2177         (intra_create_variable_infos): Deal with escaped instead of
2178         pointing to anything.
2179         (set_uids_in_ptset): Do type pruning on directly dereferenced
2180         variables.
2181         (find_what_p_points_to): Adjust call to set_uids_with_ptset.
2182         (init_base_vars): Fix comment, and initialize escaped_vars.
2183         (need_to_solve): Removed.
2184         (find_escape_constraints): New function.
2185         (expand_nonlocal_solutions): Ditto.
2186         (compute_points_to_sets): Call find_escape_constraints and
2187         expand_nonlocal_solutions.
2188         (delete_points_to_sets): Don't fall off the end of the graph.
2189         (init_alias_heapvars): Initialize nonlocal_for_type and
2190         nonlocal_all.
2191         (delete_alias_heapvars): Free nonlocal_for_type and null out
2192         nonlocal_all.
2193
2194 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
2195
2196         * fold-const.c (add_double): Rename to add_double_with_sign.
2197         Add 'unsigned_p' parameter and take it into account for the overflow.
2198         (mul_double): Rename to mul_double_with_sign.
2199         Add 'unsigned_p' parameter and take it into account for the overflow.
2200         (fold_div_compare): Call add_double_with_sign instead of add_double
2201         and mul_double_with_sign instead of mul_double, passing them the
2202         unsignedness of the type.
2203         * tree.h (add_double): Macroize.
2204         (add_double_with_sign): New prototype.
2205         (mul_double): Macroize.
2206         (mul_double_with_sign): New prototype.
2207
2208 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
2209
2210         * config/score/crti.asm: New file.
2211         * config/score/crtn.asm: New file.
2212         * config/score/elf.h: New file.
2213         * config/score/mac.md: New file.
2214         * config/score/misc.md: New file.
2215         * config/score/mul-div.S: New file.
2216         * config/score/predicates.md: New file.
2217         * config/score/score7.md: New file.
2218         * config/score/score.c: New file.
2219         * config/score/score-conv.h: New file.
2220         * config/score/score.h: New file.
2221         * config/score/score.md: New file.
2222         * config/score/score-mdaux.c: New file.
2223         * config/score/score-mdaux.h: New file.
2224         * config/score/score-modes.def: New file.
2225         * config/score/score.opt: New file.
2226         * config/score/score-protos.h: New file.
2227         * config/score/score-version.h: New file.
2228         * config/score/t-score-elf: New file.
2229         * config.gcc: Add score*-*-* configurations(Update before).
2230         * doc/invoke.texi (Score Options): New section.
2231         * doc/md.texi (Score family): New section to document constraints.
2232
2233 2006-10-19  Nick Clifton  <nickc@redhat.com>
2234
2235         * config/arm/arm.c: Fix spelling typo.
2236
2237 2006-10-18  Tom Tromey  <tromey@redhat.com>
2238
2239         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
2240
2241 2006-10-18  Jan Hubicka  <jh@suse.cz>
2242
2243         PR middle-end/29299
2244         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
2245         are used.
2246
2247 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
2248
2249         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
2250         TSI_SAME_STMT, since that's the desired entity.
2251
2252 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
2253
2254         * config/s390/contraints.md: New file.
2255         * config/s390/s390-protos.h (s390_mem_constraint,
2256         s390_O_constraint_str, s390_N_constraint_str,
2257         s390_float_const_zero_p): Function prototypes added.
2258         * config/s390/s390.c (s390_extra_constraint_str,
2259         s390_const_double_ok_for_constraint_p,
2260         s390_const_ok_for_constraint_p): Functions removed.
2261         (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
2262         s390_float_const_zero_p): New functions.
2263         * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
2264         CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
2265         EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
2266         Macro definitions removed.
2267         (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
2268         s390_extra_constraint_str): Functions removed.
2269
2270 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
2271             Richard Sandiford  <richard@codesourcery.com>
2272
2273         PR target/29413
2274         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
2275         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
2276
2277 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
2278
2279         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
2280         (DWARF2_FRAME_REG_OUT): Likewise.
2281         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
2282         (DWARF2_FRAME_REG_OUT): Likewise.
2283
2284 2006-10-17  Paul Brook  <paul@codesourcery.com>
2285
2286         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
2287
2288 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2289
2290         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
2291         Standardize on "GNU Fortran" as the official name of the Fortran
2292         compiler.
2293
2294 2006-10-16  Mike Stump  <mrs@apple.com>
2295
2296         * doc/invoke.texi (Darwin Options): Document -mkernel.
2297         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
2298         -mkernel support.
2299         (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
2300         SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
2301         (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
2302         (OS_MISSING_ALTIVEC): Add.
2303         * config/i386/i386.c (override_options): Add
2304         SUBSUBTARGET_OVERRIDE_OPTIONS callout.
2305         * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
2306         -mkernel, -static or -mdynamic-no-pic is given.
2307         (C_COMMON_OVERRIDE_OPTIONS): Add.
2308         * config/darwin.opt (fapple-kext): Add.
2309         (mkernel): Add.
2310         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
2311         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
2312         -mkernel support.
2313         (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
2314         (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
2315         (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
2316         (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
2317         (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
2318         (flag_mkernel): Add.
2319         (flag_apple_kext): Add.
2320         (TARGET_KEXTABI): Add.
2321         * config/darwin.c (darwin_handle_kext_attribute): Add.
2322         (DARWIN_VTABLE_P): Add.
2323         (darwin_binds_local_p): Add partial support for rebinding vtables
2324         in kexts.
2325         (darwin_kextabi_p): Add.
2326         (darwin_override_options): Add.
2327         * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
2328         (darwin_kextabi_p): Add.
2329         (darwin_override_options): Add.
2330         * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
2331         __DYNAMIC__ and __STATIC__ here.
2332
2333 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2334
2335         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
2336         Added mention of "make pdf" target, and Texinfo requirements for
2337         same.
2338
2339 2006-10-16  DJ Delorie  <dj@redhat.com>
2340
2341         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
2342         into the GOT in case we need a subreg of the address.
2343
2344 2006-10-16  Richard Guenther  <rguenther@suse.de>
2345
2346         PR target/25519
2347         * doc/extend.texi (X86 Built-in Functions): Fix typos in
2348         SSE builtin documentation.  Document SSE2 builtins.
2349
2350 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2351
2352         * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
2353         symbol in the output file for non-shared links when -nostdlib or
2354         -nodefaultlibs isn't specified.
2355
2356         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
2357         posix thread support.
2358
2359 2006-10-15  Jan Hubicka  <jh@suse.cz>
2360
2361         PR middle-end/29241
2362         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
2363         declared always_inline even when not inlining.
2364
2365 2006-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
2366             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2367             Andrew Pinski  <pinskia@gmail.com>
2368
2369         PR middle-end/29111
2370         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
2371
2372 2006-10-15  Jan Hubicka  <jh@suse.cz>
2373             Richard Guenther  <rguenther@suse.de>
2374
2375         PR middle-end/29299
2376         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
2377         process_function_and_variable_attributes on all variables, including
2378         those discovered during cgraph construction phase.
2379
2380 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
2381
2382         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
2383
2384 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
2385
2386         * config/i386/athlon.md (athlon_fist): Add fisttp.
2387
2388 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
2389             Ian Lance Taylor  <ian@airs.com>
2390
2391         PR middle-end/29250
2392         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
2393         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
2394         recursing.
2395
2396 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
2397
2398         * config/score/score.c, config/score/score.h: Fix comment
2399         typos.
2400
2401 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2402
2403         PR bootstrap/29402
2404         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
2405         shell pipeline.
2406
2407 2006-10-13  Eric Christopher  <echristo@apple.com>
2408
2409         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2410
2411 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
2412
2413         Revert this change:
2414         2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
2415         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
2416         alignment supported by 32-bit ELF.
2417
2418 2006-10-13  Eric Christopher  <echristo@apple.com>
2419
2420         * config/darwin.c (darwin_emit_unwind_label): Strip
2421         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
2422
2423 2006-10-13  Richard Guenther  <rguenther@suse.de>
2424
2425         PR tree-optimization/29446
2426         * tree-vrp.c (fix_equivalence_set): Remove.
2427         (extract_range_from_assert): Do not call fix_equivalence_set.
2428         (debug_value_range): Print a newline.
2429         (compare_name_with_value): For equivalence sets with
2430         inconsistent value ranges conservatively bail out.
2431         (compare_names): Likewise.
2432
2433 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
2434
2435         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
2436         and MPFR for gfortran.
2437
2438 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
2439
2440         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
2441         alignment supported by 32-bit ELF.
2442
2443 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
2444
2445         PR c/29092
2446
2447         * c-typeck.c (digest_init): Always allow initializing vectors
2448         that have static storage duration with compound literals.
2449         * tree.c (build_type_attribute_qual_variant): New, based on
2450         build_type_attribute_variant.
2451         (build_type_attribute_variant): Rewrite using the former.
2452         (make_vector_type): Use build_type_attribute_qual_variant to build
2453         type variants.  Use type_hash_canon on the others.
2454
2455 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
2456             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
2457
2458         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
2459
2460 2006-10-12  Jan Hubicka  <jh@suse.cz>
2461
2462         PR c/28419
2463         * c-decl.c (c_make_fname_decl): Do not segfault in case where
2464         current_function_decl is set but current_function_scope is not.
2465
2466 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
2467
2468         * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
2469         emit_insn to emit eh_return_internal instruction.
2470         (eh_return_internal): Explicitly set pc.
2471
2472 2006-10-11  Richard Guenther  <rguenther@suse.de>
2473
2474         PR tree-optimization/28230
2475         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
2476         to the correct place.
2477
2478 2006-10-11  Richard Guenther  <rguenther@suse.de>
2479
2480         PR inline-asm/29119
2481         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
2482         addressable.
2483
2484 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
2485
2486         * configure.ac: Added pdf to "Make-hooks"
2487         * Makefile.in: Added TEXI2PDF definition, and various pdf-file
2488         targets and *.pdf file patterns in cleanup targets.
2489         * configure: Regenerated.
2490
2491 2006-10-10  Anatoly Sokolov <aesok@post.ru>
2492
2493         * config/avr/predicates.md: New file.
2494         * config/avr/avr.md: Include it.
2495         (REG_SP): New constant.
2496         (peepholes): Use predicates.
2497         (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
2498         difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
2499         sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
2500
2501 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
2502
2503         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
2504         avoid alias set 0.
2505
2506 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
2507
2508         PR middle-end/29272
2509         * builtins.c (var_decl_component_p): New function.
2510         (fold_builtin_memset, fold_builtin_memory_op): Restrict
2511         single entry optimization to variables and components thereof.
2512
2513 2006-10-10  Richard Guenther  <rguenther@suse.de>
2514
2515         PR rtl-optimization/29323
2516         * except.c (set_nothrow_function_flags): For functions
2517         that do not bind local bail out early.
2518
2519 2006-10-10  Ben Elliston  <bje@au.ibm.com>
2520
2521         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
2522         -mdlmzb option.
2523
2524 2006-10-09  Richard Henderson  <rth@redhat.com>
2525
2526         Revert emutls patch.
2527
2528 2006-10-09  Richard Guenther  <rguenther@suse.de>
2529
2530         PR middle-end/29254
2531         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
2532         errors.
2533
2534 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
2535
2536         PR target/27880
2537         * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
2538         * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
2539         * configure: Regenerate.
2540         * config.in: Regenerate.
2541
2542 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
2543
2544         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2545
2546 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2547
2548         * config/mips/mips.c (mips_legitimize_tls_address): Implement
2549         all TLS models in the same way as local exec if !TARGET_ABICALLS.
2550         Remove stray newline.
2551
2552 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2553
2554         * config/mips/mips.c (mips_classify_symbol): Do not return
2555         SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
2556         (mips_in_small_data_p): Tweak comments.
2557
2558 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2559
2560         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2561
2562 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
2563
2564         * gimplify.c, sched-int.h: Fix comment typos.
2565
2566         * sched-int.h: Fix comment typos.
2567
2568 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2569
2570         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
2571         New macros.
2572         * sched-ebb.c (begin_schedule_ready): Use them.
2573         * haifa-sched.c (schedule_insn, move_insn, try_ready,
2574         add_to_speculative_block, create_check_block_twin, speculate_insn,
2575         fix_jump_move, move_block_after_check): Ditto.
2576         * sched-rgn.c (new_ready): Ditto.
2577
2578 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2579
2580         PR rtl-optimization/29128
2581         * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
2582         * sched-ebb.c (advance_target_bb): Use it to fix condition to
2583         allow interblock movement of speculation checks.
2584
2585 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
2586
2587         PR middle-end/29256
2588         * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
2589         casted to integer type.
2590         (get_address_cost): Decrease cost of [symbol + index] addressing modes
2591         if they are significantly more expensive than [reg + index] ones.
2592
2593 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
2594
2595         PR tree-optimization/29330
2596         * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
2597         (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
2598         on newly allocated ddrs.
2599         (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
2600         to VEC (loop_p, heap) pointer.
2601         (compute_data_dependences_for_loop): Adjust caller.
2602         (free_dependence_relations): Free DDR_LOOP_NEST.
2603
2604         * tree-loop-linear.c (linear_transform_loops): Don't forget to
2605         free DEPENDENCE_RELATIONS and DATAREFS.
2606
2607         PR target/28924
2608         * builtins.c (expand_builtin_sync_operation,
2609         expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
2610         Use convert_to_mode to handle promoted arguments.
2611
2612 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
2613
2614         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2615
2616 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
2617
2618         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2619
2620 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
2621
2622         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
2623         "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
2624         Use <modeconstraint> instead of "r" as operand 1 constraint.
2625
2626 2006-10-06  Olivier Hainque  <hainque@adacore.com>
2627
2628         * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
2629         Don't recurse on the pointed-to type.
2630         * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
2631         DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
2632         types with components of variable size.
2633
2634 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
2635
2636         * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2637
2638 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
2639
2640         PR tree-optimization/29290
2641         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
2642         multiple exits.
2643
2644         PR target/29198
2645         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
2646         * config/i386/predicates.md (local_symbolic_operand): Likewise.
2647
2648         PR c/29091
2649         * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
2650         the number of vector elements fill the rest with zeros.
2651
2652 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
2653
2654         * config/mips/mips.c (mips_pass_by_reference): Do not return false
2655         for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
2656         instead.
2657
2658 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2659
2660         * config/bfin/bfin.md (subsi3): Lose expander, change previously
2661         unnamed pattern into subsi3.  Use correct constraints/predicates.
2662         * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
2663         * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
2664
2665 2006-10-05  Ira Rosen  <irar@il.ibm.com>
2666
2667         * doc/loop.texi: Add data references analysis description.
2668
2669 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
2670
2671         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2672
2673 2006-10-04  Richard Henderson  <rth@redhat.com>
2674             Jakub Jelinek  <jakub@redhat.com>
2675
2676         * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
2677         * builtin-types.def (BT_WORD): Make unsigned.
2678         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
2679         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
2680         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
2681         * c-decl.c (grokdeclarator): Don't error if !have_tls.
2682         * c-parser.c (c_parser_omp_threadprivate): Likewise.
2683         * cgraph.c (decide_is_variable_needed): Look at force_output.
2684         Recurse for emulated tls.
2685         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
2686         checks redundant with decide_is_variable_needed.
2687         (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
2688         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
2689         emulated tls.
2690         * expr.c (emutls_var_address): New.
2691         (expand_expr_real_1): Expand emulated tls.
2692         (expand_expr_addr_expr_1): Likewise.
2693         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
2694         * output.h (emutls_finish): Declare.
2695         * toplev.c (compile_file): Call it.
2696         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
2697         address before wrapping in CONST.
2698         * varasm.c (emutls_htab, emutls_object_type): New.
2699         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
2700         (get_emutls_object_name, get_emutls_object_type): New.
2701         (get_emutls_init_templ_addr, emutls_decl): New.
2702         (emutls_common_1, emutls_finish): New.
2703         (assemble_variable): When emulating tls, swap decls; generate
2704         constructor for the emutls objects.
2705         (do_assemble_alias): When emulating tls, swap decl and target name.
2706         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
2707         for emulated tls.
2708         * emutls.c: New file.
2709         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
2710         tls_object for real tls.
2711
2712 2006-10-04  Zack Weinberg  <zackw@panix.com>
2713
2714         Fix bug in constraint-check generator, reported by Rask Ingemann
2715         Lambertsen:
2716         * genpreds.c (add_constraint): Don't remove anything from the
2717         expression here.
2718         (write_tm_constrs_h): Detect whether "op" argument is used, and
2719         mark it ARG_UNUSED if it isn't.
2720         (write_insn_const_int_ok_for_constraint): Skip the part of the
2721         expression that would test whether "op" (which is not available
2722         here) is a CONST_INT.
2723
2724 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
2725
2726         PR c++/28448
2727         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
2728
2729 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
2730
2731         * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
2732         current Leopard versions.
2733         * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
2734
2735 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2736
2737         * doc/install.texi: Fix typos.
2738
2739 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2740
2741         * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
2742         * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
2743         * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
2744
2745 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
2746
2747         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
2748         arg to be struct mach_header_64* instead.
2749
2750 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
2751
2752         PR c/29154
2753         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
2754         side effects after the outer expression's post side effects.
2755
2756 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
2757
2758         * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
2759         comments to reflect actual behavior and relationship between
2760         DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
2761
2762         * doc/c-tree.texi (Working with declarations): Fix documentation
2763         of FIELD_DECL likewise.
2764
2765 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
2766
2767         PR c/20533
2768         * doc/extend.texi: Add used variable attribute description.
2769
2770 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
2771
2772         PR c/24010
2773         * c.opt (Woverride-init): New.
2774         * c-opts.c (c_common_post_options): Default warn_override_init to
2775         extra_warnings.
2776         * c-typeck.c (add_pending_init, output_init_element): Warn for
2777         overriding initializers without side effects.
2778         * doc/invoke.texi (-Woverride-init): Document.
2779         (-Wextra): Update.
2780
2781 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
2782
2783         PR rtl-optimization/28096
2784         * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
2785         assignment has already been used as a destination earlier in the block.
2786
2787 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2788
2789         * builtins.c (expand_builtin_setjmp): Delete.
2790         (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
2791         <BUILT_IN_SETJMP_SETUP>: New case.
2792         <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
2793         <BUILT_IN_SETJMP_RECEIVER>: Likewise.
2794         * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
2795         (BUILT_IN_SETJMP_DISPATCHER): Likewise.
2796         (BUILT_IN_SETJMP_RECEIVER): Likewise.
2797         * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
2798         (lower_function_body): Initialize it to false.  If it is set to true
2799         at the end of the processing, emit the setjmp dispatcher.
2800         (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
2801         is __builtin_setjmp and set calls_builtin_setjmp to true as well.
2802         <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
2803         on the rhs of the assignment.
2804         (lower_builtin_setjmp): New function.
2805         * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
2806         BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
2807         * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
2808         to detect calls that can go to non-local labels.  Use specific
2809         helper to create the abnormal edges associated with them.
2810         <MODIFY_EXPR>: Likewise.
2811         (make_abnormal_goto_edges): New function extracted from...
2812         (make_goto_expr_edges): ...here.  Call it for computed gotos.
2813         (simple_goto_p): Minor tweak.
2814         (tree_can_make_abnormal_goto): New predicate.
2815         (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
2816         (tree_purge_dead_abnormal_call_edges): New function.
2817         * tree-flow.h (tree_can_make_abnormal_goto): Declare.
2818         (tree_purge_dead_abnormal_call_edges): Likewise.
2819         (make_abnormal_goto_edges): Likewise.
2820         * tree-inline.c (expand_call_inline): Simplify statement frobbing.
2821         Purge all dead abnormal edges if the call was in the last statement.
2822         * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
2823         (execute_fixup_cfg): If there are non-local labels in the function,
2824         scan the basic blocks and split them at calls that can go to non-local
2825         labels or add missing abnormal call edges.  Write down the CFG in the
2826         dump file.
2827         (pass_fixup_cfg): Remove TODO_dump_func flag.
2828         * unwind-sjlj.c: Poison setjmp.
2829         * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
2830         * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
2831         (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
2832         (DONT_USE_BUILTIN_SETJMP): Document it.
2833
2834 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
2835
2836         PR target/28617
2837         * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
2838         to 1 when __ppc64__ is defined.
2839         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
2840         darwin-64.c.
2841         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
2842
2843 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
2844
2845         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
2846         * config/ia64/unwind-hpux.c: Delete.
2847
2848 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2849
2850         * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
2851         on the element before gimplifying it, instead of punting if it is of
2852         variable size.
2853
2854 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
2855
2856         * doc/loop.texi: New file.
2857         * doc/gccint.texi: Reference loop.texi.
2858         * Makefile.in (loop.texi): Add.
2859
2860 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
2861
2862         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
2863         __sysctl.
2864         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2865         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2866
2867 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2868
2869         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
2870
2871 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
2872
2873         * doc/install.texi: Document required versions of GMP and MPFR.
2874
2875 2006-09-27  Paul Brook  <paul@codesourcery.com>
2876
2877         PR target/29230
2878         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
2879
2880 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
2881
2882         * reload1.c (alter_reg): Require the alignment of the stack slot to
2883         be at least reg_max_ref_width bytes.
2884         (scan_paradoxical_subregs): Record the largest width in
2885         reg_max_ref_width.
2886
2887 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
2888
2889         PR middle-end/25261
2890         PR middle-end/28790
2891         * tree-nested.c (struct nesting_info): Added static_chain_added.
2892         (convert_call_expr): Set static_chain_added when adding static
2893         chain.  Handle OMP_PARALLEL and OMP_SECTION.
2894
2895 2006-09-25  Matthias Klose  <doko@debian.org>
2896
2897         * doc/invoke.texi: Add missing full stop.
2898
2899 2006-09-25  Richard Henderson  <rth@redhat.com>
2900
2901         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
2902         before cgraph_function_flags_ready.
2903
2904 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
2905             Adam Nemet  <anemet@caviumnetworks.com>
2906
2907         * tree-ssa-loop-ivopts.c (aff_combination_convert,
2908         determine_common_wider_type): New functions.
2909         (get_computation_aff): Use them to simplify arithmetic between
2910         UBASE and CBASE if they are shortened from the same type.
2911
2912 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
2913
2914         PR target/28911
2915         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
2916         -2147483647 - 1 instead of 0x80000000.
2917
2918 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
2919
2920         * flags.h (HONOR_NANS): Fix typo in comment.
2921
2922 2006-09-23  Uros Bizjak <uros@kss-loka.si>
2923
2924         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
2925
2926 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
2927
2928         PR c/28706
2929         PR c/28712
2930         * tree.c (merge_attributes, attribute_list_contained): If both
2931         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
2932         simple_cst_equal.
2933         * c-typeck.c (comptypes_internal): Don't consider aggregates
2934         in different TUs as compatible if there one set of attributes is
2935         not a subset of the other type's attributes.
2936         (composite_type): Try harder not to create a new aggregate type.
2937
2938 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
2939
2940         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
2941         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
2942         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
2943         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
2944         than replicating condition above.
2945         * config.host (i[34567]86-*-*): Always use driver-i386.o.
2946
2947         * config/darwin.h (LINK_SYSROOT_SPEC): New.
2948         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
2949         the linker by default.
2950
2951 2006-09-22  Mike Stump  <mrs@apple.com>
2952
2953         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
2954         code.
2955
2956 2006-09-22  Richard Guenther  <rguenther@suse.de>
2957
2958         PR middle-end/28964
2959         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
2960         sort of stack variables stable.
2961
2962 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
2963
2964         PR middle-end/28690
2965         * explow.c (force_reg): Set REG_POINTER flag according to
2966         MEM_POINTER flag.
2967
2968 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
2969
2970         PR tree-optimization/28888
2971         * tree-if-conv.c (combine_blocks): Rewritten.
2972         * tree-cfg.c (tree_verify_flow_info): Check that edges with
2973         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
2974
2975 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
2976
2977         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
2978         needed.
2979
2980 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
2981
2982         * varasm.c (copy_constant): Fix reversed gcc_assert check.
2983
2984 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
2985
2986         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
2987
2988 2006-09-21  Roger Sayle  <roger@eyesopen.com>
2989
2990         PR debug/29132
2991         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
2992         dw_fde_current_label, to be the start of the function, i.e. the same
2993         value as dw_fde_begin.
2994
2995 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
2996
2997         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
2998         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
2999         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
3000         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
3001         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
3002         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
3003         (abs<mode>2, neg<mode>2): Likewise.
3004         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
3005         (*mips_abs_ps): New define_insn.
3006
3007 2006-09-20  Josh Conner  <jconner@apple.com>
3008
3009         PR middle-end/25505
3010         * calls.c (expand_call): Allow reuse of structure return stack
3011         temp.
3012
3013 2006-09-20  Paul Brook  <paul@codesourcery.com>
3014
3015         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
3016         positive offsets.
3017
3018 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
3019
3020         * doc/extend.texi (Decimal Float): Update for latest draft TR,
3021         clean up terminology.
3022
3023 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
3024
3025         PR target/28574
3026         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
3027         with tablejumps in them.
3028
3029 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
3030
3031         PR middle-end/28046
3032         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
3033         wrap it into TARGET_EXPR.
3034
3035 2006-09-20  Eric Christopher  <echristo@apple.com>
3036
3037         * config/i386/i386.c (x86_fisttp): Remove.
3038         * config/i386/i386.h (x86_fisttp): Ditto.
3039         (TARGET_FISTTP): Ditto.
3040
3041 2006-09-19  Eric Christopher  <echristo@apple.com>
3042
3043         * doc/tm.texi (OBJC_JBLEN): Describe.
3044         * config/i386/darwin.h (OBJC_JBLEN): Define.
3045         * config/rs6000/darwin.h: Ditto.
3046
3047 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
3048
3049         PR rtl-optimization/21299
3050         * reload1.c (reload): Purge invalid ASMs in the final pass.
3051
3052 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
3053
3054         PR  28490
3055         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
3056         pointers as legitimate constants.
3057
3058 2006-09-19  Paul Brook  <paul@codesourcery.com>
3059
3060         PR target/28516
3061         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
3062
3063 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
3064
3065         PR tree-optimization/28887
3066         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
3067         component parts from the reference.
3068         (gather_memory_references_ref): Record the reference without the
3069         nonaddressable component parts.
3070
3071 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
3072
3073         PR c/25993
3074         * c-opts.c (c_common_handle_option): Ignore the -std options
3075         if the input language is assembly.
3076
3077 2006-09-17  Ira Rosen  <irar@il.ibm.com>
3078
3079         PR tree-opt/21591
3080         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
3081         tag first.
3082         (ptr_ptr_may_alias_p): Likewise.
3083         (record_record_differ_p): New function.
3084         (base_object_differ_p): Call record_record_differ_p.
3085
3086 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
3087
3088         PR tree-opt/29059
3089         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
3090         away for the expr argument.
3091
3092 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
3093
3094         PR tree-opt/27742
3095         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
3096         before using it for dumping after vectorizing loops.
3097
3098 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
3099             Jack Howarth  <howarth@bromo.med.uc.edu>
3100
3101         PR target/29030
3102         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
3103         skip on error_mark_node.
3104         (rs6000_darwin64_record_arg_recurse): Likewise.
3105
3106 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
3107
3108         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
3109         * doc/rtl.texi: Remove related documentation.
3110
3111 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3112
3113         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
3114         printf.
3115
3116 2006-09-15  Jim Wilson  <wilson@specifix.com>
3117
3118         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
3119         Handle symbol offsets same as they are handled in ia64_expand_move
3120         and move_operand.
3121
3122 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
3123
3124         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
3125         Add forgotten parameter to the fprintf call.
3126
3127 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
3128
3129         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
3130
3131 2006-09-15  Uros Bizjak <uros@kss-loka.si>
3132
3133         * doc/contrib.texi: Add my entry.
3134
3135 2006-09-15  Nick Clifton  <nickc@redhat.com>
3136
3137         * doc/md.texi (Processor pipeline description): Fix typo in
3138         example of how to use the absence_set directive and reword the
3139         description to make it slightly easier to read.
3140
3141 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3142
3143         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
3144         * loop-doloop.c (doloop_optimize): Use it to limit costs of
3145         expanding the number of iterations.
3146         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
3147
3148         * cfgrtl.c (emit_insn_at_entry): New function.
3149         * rtl.h (emit_insn_at_entry): Declare it.
3150         * integrate.c (emit_initial_value_sets): Use it.
3151
3152         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
3153
3154         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
3155         bad.
3156         (struct loop_work and related VEC declarations): Delete.
3157         (bfin_dump_loops): Print out new member bad.
3158         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
3159         (bfin_scan_loop): Don't recurse.
3160         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
3161         loops.  No longer need to update outer loops if the current one is
3162         found bad.  Move some validitiy checks to bfin_discover_loop.
3163         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
3164         but changed not to check for nesting.  Also changed to use the new bad
3165         flag.
3166         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
3167         time.  Use bitmap based test to discover loop nesting.
3168
3169 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
3170
3171         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
3172         one line.
3173
3174 2006-09-14  Richard Guenther  <rguenther@suse.de>
3175             Kazu Hirata  <kazu@codesourcery.com>
3176
3177         PR middle-end/28884.
3178         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
3179         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
3180         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
3181         with TARGET_FUNCTION_VALUE.
3182
3183 2006-09-14  Anatoly Sokolov <aesok@post.ru>
3184
3185         PR target/26504
3186         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
3187
3188 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
3189
3190         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
3191         of a RETURN_EXPR
3192
3193 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
3194
3195         PR debug/28980
3196         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
3197         FUNCTION_DECL.
3198
3199 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3200
3201         * basic_block.h (bb_has_eh_pred): Fix comment.
3202
3203 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3204
3205         * flow.c (calculate_global_regs_live): Invalidate eh registers
3206         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
3207         (propagate_block): Handle eh registers as if they were set at basic
3208         block start.
3209         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
3210         registers.
3211         * global.c (global_conflicts): Make eh registers to conflict with
3212         pseudos live at basic block begin.
3213         * basic_block.h (bb_has_eh_pred): New function.
3214
3215 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
3216
3217         PR rtl-optimization/28982
3218         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
3219         index of a PRE_MODIFY or POST_MODIFY address.
3220         * reload1.c (inc_for_reload): Use find_replacement on the original
3221         base and index registers.
3222
3223 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
3224
3225         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
3226         for -Os. Update __m128 alignment requirement.
3227
3228 2006-09-13  Jan Hubicka  <jh@suse.cz>
3229
3230         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
3231
3232 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3233
3234         PR rtl-optimization/28243
3235         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
3236         the insn to which the note was originally attached.
3237
3238 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
3239             Roger Sayle  <roger@eyesopen.com>
3240
3241         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
3242         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
3243         on platforms that don't use dwarf for debug info.
3244
3245 2006-09-12  Jason Merrill  <jason@redhat.com>
3246
3247         PR middle-end/28493
3248         * builtins.c (expand_builtin_setjmp_receiver): Clobber
3249         hard_frame_pointer_rtx after using it to update the frame pointer.
3250
3251 2006-09-12  Roger Sayle  <roger@eyesopen.com>
3252
3253         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
3254         (TARGET_ASM_CLOSE_PAREN): Likewise.
3255         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
3256         (TARGET_ASM_CLOSE_PAREN): Likewise.
3257
3258 2006-09-12  Roger Sayle  <roger@eyesopen.com>
3259
3260         PR target/22223
3261         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
3262         frame information for frames larger than 512 Kbytes on Tru64 when
3263         using the native assembler.
3264
3265 2006-09-12  Roger Sayle  <roger@eyesopen.com>
3266
3267         PR middle-end/4520
3268         PR bootstrap/28784
3269         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
3270         and symbols.  Instead use the implementation from cse.c's hash_rtx.
3271
3272 2006-09-12  Jan Hubicka  <jh@suse.cz>
3273
3274         PR rtl-optimization/28071
3275         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
3276         (vect_transform_loop): Likewise.
3277         * tree-vectorizer.c (new_loop_vec_info): Likewise.
3278         (new_loop_vec_info): Likewise.
3279         (destroy_loop_vec_info): Likewise.
3280         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
3281         (create_stmt_ann): Likewise.
3282         (create_tree_ann): Rename to ...
3283         (create_tree_common_ann): ... this one; allocate only the common part
3284         of annotations.
3285         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
3286         (get_value_handle): Likewise.
3287         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
3288         get_tree_common_ann.
3289         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
3290         (vinfo_for_stmt): Use stmt annotations.
3291         * tree-flow.h (tree_ann_common_t): New type.
3292         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
3293         (tree_ann, get_tree_ann, create_tree_ann): New.
3294         * tree-flow-inline.h (get_function_ann): Do more type checking.
3295         (stmt_ann): Likewise.
3296         (tree_ann): Rename to ...
3297         (tree_common_ann): ... this one; return ony common_ann
3298         (get_tree_ann): Rename to ...
3299         (tree_common_ann): This one; return only common_ann.
3300         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
3301         of set_stmt_info.
3302
3303 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
3304
3305         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
3306         with_cpu by default.
3307
3308         * dwarf2out.c (dwarf_file_data): New.
3309         (enum dw_val_class): Add dw_val_class_file.
3310         (struct dw_val_struct): Add val_file.
3311         (file_table): Change to a hash table.
3312         (file_table_emitted): Delete.
3313         (file_table_last_lookup_index): Delete.
3314         (emitcount): Delete.
3315         (last_emitted_file): New.
3316         (lookup_filename): Change prototype to return a struct dwarf_file_data.
3317         (init_file_table): Delete.
3318         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
3319         (AT_addr): Add comment.
3320         (add_AT_file): New.
3321         (AT_file): New.
3322         (get_AT_file): New.
3323         (print_die): Handle dw_val_class_file.
3324         (print_dwarf_line_table): Update for new file table structure.
3325         (attr_checksum): Do checksum a filename.
3326         (same_dw_val_p, same_attr_p): Do compare a filename.
3327         (size_of_die): Handle dw_val_class_file.
3328         (value_format): Likewise.
3329         (output_die): Likewise.  Also, call maybe_emit_file here.
3330         (struct file_info): Constify filenames.  Make file_idx a pointer
3331         to a struct dwarf_file_data.
3332         (struct dir_info): Constify directory names.  Remove 'used' field.
3333         (struct file_name_acquire_data): New.
3334         (file_name_acquire): New.
3335         (output_file_names): Modify to handle new file data structures.
3336         (add_src_coords_attributes): Use add_AT_file.
3337         (add_call_src_coords_attributes): Likewise.
3338         (dwarf2out_imported_module_or_decl): Likewise.
3339         (gen_subprogram_die): Modify for new file data structures.
3340         (gen_variable_die): Likewise.
3341         (file_table_eq): New.
3342         (file_table_hash): New.
3343         (file_table_last_lookup): New.
3344         (lookup_filename): Rewrite to handle new file data structures.
3345         (maybe_emit_file): Rewrite to handle new file data structures.
3346         (dwarf2out_source_line): Always call lookup_filename and
3347         maybe_emit_file.
3348         (dwarf2out_init): Create file_table here.
3349         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
3350         (file_table_relative_p): New.
3351         (dwarf2out_finish): Change detection of relative filenames
3352         to work with new file data structures.  Move output_line_info call
3353         after debug_info output.
3354
3355 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
3356
3357         PR target/13685
3358         PR target/27537
3359         PR target/28621
3360         * config/i386/i386.c (override_options): Always default to 16
3361         byte stack boundary.
3362
3363 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
3364
3365         PR target/28672
3366         * var-tracking.c (dump_dataflow_set): Start dumping at
3367         register zero.
3368         (clobber_variable_part): Kill only the variable part in
3369         registers holding it, leaving other variables alone.
3370
3371 2006-09-11  Josh Triplett  <josh@freedesktop.org>
3372
3373         * doc/extend.texi (Other Builtins): Actually use the macro
3374         argument in the documentation example for
3375         __builtin_types_compatible_p.
3376
3377 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3378
3379         PR rtl-optimization/28726
3380         * sched-deps.c (sched_analyze_reg): New function extracted from...
3381         (sched_analyze_1): ...here.  Call it to analyze references to
3382         registers.  Treat again writes to a stack register as writing to the
3383         register.
3384         (sched_analyze_2): ...and here.  Call it to analyze references to
3385         registers.  Treat again reads of a stack register as reading the
3386         register.
3387
3388 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
3389             David Edelsohn  <edelsohn@gnu.org>
3390
3391         PR target/27287
3392         * config/rs6000/spe.md (frob_df_di): Remove %H.
3393         (frob_di_df): Remove %H.  Change evmergelo to mr.
3394         (frob_di_df_2): Remove %H.  Change evldd to two loads.
3395
3396 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
3397
3398         * doc/cpp.texi: Fix names of charset options.
3399
3400 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
3401
3402         PR target/29009
3403         * config/i386/i386.c (override_options): Use 128-bit
3404         stack boundary always for 64bits.
3405
3406 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3407
3408         PR rtl-optimization/28636
3409         * combine.c (force_to_mode): Test for side-effects before
3410         substituting by zero.
3411         (simplify_shift_const): Likewise for zero or other constants.
3412
3413 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
3414
3415         PR middle-end/26983
3416         * builtins.c (expand_builtin_setjmp): Force next_lab to be
3417         preserved.
3418
3419 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
3420
3421         PR target/29006
3422         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
3423         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
3424         returned by mode_for_size, rather than the mode of src itself,
3425         to choose between 32-bit and 64-bit patterns.
3426         (mips_mem_fits_mode_p): New function.
3427         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
3428         that the size of the source matches the size of the destination.
3429         (mov_<store>l, mov_<store>r): Likewise.
3430
3431 2006-09-10  Eric Christopher  <echristo@apple.com>
3432
3433         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
3434         for literal16.
3435
3436 2006-09-09  Eric Christopher  <echristo@apple.com>
3437
3438         PR target/28995
3439         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
3440         for literal16.
3441
3442 2006-09-09  Roger Sayle  <roger@eyesopen.com>
3443             Nicolas Setton <setton@adacore.com>
3444
3445         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
3446
3447 2006-09-10  Andreas Schwab  <schwab@suse.de>
3448
3449         * config/m68k/m68k.md (bungt_rev): New pattern.
3450
3451 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
3452             Dale Johannesen  <dalej@apple.com>
3453
3454         PR target/26778
3455         * regclass.c (struct reg_pref): Update documentation.
3456         (regclass): Set prefclass to NO_REGS if memory is the best option.
3457         (record_reg_classes): Cope with a prefclass set to NO_REGS.
3458
3459 2006-09-08  Eric Christopher  <echristo@apple.com>
3460
3461         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
3462         * config/t-slibgcc-darwin: Support x86_64 multilib.
3463         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
3464         Return 1 for x86_64-darwin.
3465         * config/i386/t-darwin: Add m64 multilib.
3466         (LIB2_SIDITI_CONV_FUNCS): Use.
3467         (LIB2FUNCS_EXTRA): Ditto.
3468         * config/i386/darwin.h: Support x86_64.
3469         * config/i386/i386.c (override_options): Turn on flag_pic
3470         for x86_64-darwin. Disable flag_omit_pointer.
3471         (get_pc_thunk_name): Assert !TARGET_64BIT.
3472         (legitimate_address_p): Disable machopic addressing for
3473         x86_64.
3474         (legitimize_pic_address): Ditto.
3475         (ix86_expand_move): Ditto.
3476         (ix86_expand_call): Ditto.
3477         (machopic_output_stub): Ditto.
3478         * config/darwin.c (machopic_select_section): Support literal16.
3479         (machopic_select_rtx_section): Ditto.
3480         * config/darwin-sections.def: Ditto.
3481         * config/darwin-64.c: New.
3482
3483 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
3484
3485         PR c/28504
3486         * c-tree.h (struct c_arg_info): Add pending_sizes.
3487         * c-parser.c (c_parser_parms_declarator,
3488         c_parser_parms_list_declarator): Initialize pending_sizes.
3489         * c-decl.c (get_parm_info): Initialize pending_sizes.
3490         (get_parm_info): Set pending_sizes.
3491         (grokdeclarator): Call put_pending_sizes for parameters for
3492         function definition only.
3493
3494 2006-09-07  Jason Merrill  <jason@redhat.com>
3495
3496         PR middle-end/27724
3497         * varasm.c (output_constant): Only strip actual no-op conversions.
3498
3499         PR target/13685
3500         * config/i386/i386.c (override_options): Use 128-bit
3501         stack boundary if -msse.
3502
3503 2006-09-07  Eric Christopher  <echristo@apple.com>
3504
3505         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
3506         comment.
3507         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
3508         Redefine.
3509
3510 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
3511
3512         * dwarf2out.c: Remove strange characters from comment above
3513         dwarf2out_frame_debug_expr.
3514
3515 2006-09-07  Eric Christopher  <echristo@apple.com>
3516
3517         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
3518         * config/darwin.h: ... to here.
3519
3520 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3521
3522         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
3523
3524         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
3525         (TARGET_PARTIAL_FLAG_REG_STALL): New.
3526
3527         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
3528         TARGET_PARTIAL_FLAG_REG_STALL.
3529         (*ashldi3_cconly_rex64): Likewise.
3530         (*ashlsi3_cmp): Likewise.
3531         (*ashlsi3_cconly): Likewise.
3532         (*ashlsi3_cmp_zext): Likewise.
3533         (*ashlhi3_cmp): Likewise.
3534         (*ashlhi3_cconly): Likewise.
3535         (*ashlqi3_cmp): Likewise.
3536         (*ashlqi3_cconly): Likewise.
3537         (*ashrdi3_cmp_rex64): Likewise.
3538         (*ashrdi3_cconly_rex64): Likewise.
3539         (*ashrsi3_cmp): Likewise.
3540         (*ashrsi3_cconly): Likewise.
3541         (*ashrsi3_cmp_zext): Likewise.
3542         (*ashrhi3_cmp): Likewise.
3543         (*ashrhi3_cconly): Likewise.
3544         (*ashrqi3_cmp): Likewise.
3545         (*ashrqi3_cconly): Likewise.
3546         (*lshrdi3_cmp_rex64): Likewise.
3547         (*lshrdi3_cconly_rex64): Likewise.
3548         (*lshrsi3_cmp): Likewise.
3549         (*lshrsi3_cconly): Likewise.
3550         (*lshrsi3_cmp_zext): Likewise.
3551         (*lshrhi3_cmp): Likewise.
3552         (*lshrhi3_cconly): Likewise.
3553         (*lshrqi2_cmp): Likewise.
3554         (*lshrqi2_cconly): Likewise.
3555
3556 2006-09-07 Uros Bizjak <uros@kss-loka.si>
3557
3558         PR target/28946
3559         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
3560         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
3561         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
3562         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
3563         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
3564         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
3565         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
3566         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
3567         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
3568         implement only CC setting effects of shift instructions.
3569
3570 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
3571
3572         * doc/contrib.texi: Add myself.
3573
3574 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
3575
3576         PR middle-end/28862
3577         * stor-layout.c (relayout_decl): Don't zero the alignment if it
3578         was set by the user.
3579
3580 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
3581
3582         PR target/27117
3583         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
3584         (divsi_inv_m1): Use them.
3585         (UNSPEC_DIV_INV_TABLE): New constant.
3586
3587 2006-09-06  James E Wilson  <wilson@specifix.com>
3588
3589         PR rtl-opt/27883
3590         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
3591         then call count_or_remove_death_notes.
3592
3593 2006-09-06  Jason Merrill  <jason@redhat.com>
3594
3595         PR c++/27371
3596         * tree-inline.c (copy_result_decl_to_var): New fn.
3597         (declare_return_variable): Use it.  Call declare_inline_vars here.
3598         (expand_call_inline): Not here.
3599
3600 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
3601
3602         * doc/contrib.texi: Update my entry.
3603
3604 2006-09-06  Nick Clifton  <nickc@redhat.com>
3605
3606         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
3607
3608 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
3609
3610         PR tree-opt/28937
3611         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
3612         (canonicalize_induction_variables): Likewise.
3613         (tree_unroll_loops_completely): Likewise.
3614         (tree_ssa_prefetch_arrays): Likewise.
3615         (remove_empty_loops): Likewise.
3616         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
3617         TODO_cleanup_cfg instead of directly calling
3618         cleanup_tree_cfg_loop.
3619         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
3620         Likewise.
3621         (tree_unroll_loops_completely): Likewise.
3622         (remove_empty_loops): Likewise.
3623         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
3624         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
3625         of tree_ssa_unswitch_loops.
3626         (tree_ssa_loop_ivcanon): Use the return value of
3627         canonicalize_induction_variables.
3628         (tree_ssa_empty_loop): Use the return value of
3629         remove_empty_loops.
3630         (tree_complete_unroll): Use the return value of
3631         tree_unroll_loops_completely.
3632         (tree_ssa_loop_prefetch): Use the return value of
3633         tree_ssa_prefetch_arrays.
3634         * passes.c (execute_todo): Before Cleanup CFG, set
3635         updating_used_alone and after cleanup CFG, call
3636         recalculate_used_alone.
3637
3638 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
3639
3640         PR tree-opt/28952
3641         * tree-vect-transform.c (vectorizable_condition): Move the check
3642         for the type after the check for simple condition.
3643
3644 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
3645             Kaz Kojima  <kkojima@gcc.gnu.org>
3646
3647         PR target/28764
3648         * mode-switching.c (optimize_mode_switching): Make the destination
3649         block of an abnormal edge have no anticipatable mode.  Don't
3650         insert mode switching code at the end of the source block of
3651         an abnormal edge.
3652
3653 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
3654
3655         PR rtl-optimization/26847
3656         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
3657         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
3658         (simplify_plus_minus): Count n_constants while filling ops.  Replace
3659         qsort with insertion sort.  Before going through the array to simplify
3660         pairs, sort it.  Delay early exit until after the first sort, exiting
3661         only if no swaps occurred.  Simplify pairs in reversed order, without
3662         special-casing the first iteration.  Pack ops after simplifying pairs.
3663
3664 2006-09-05  Anatoly Sokolov <aesok@post.ru>
3665
3666         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
3667         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3668         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3669         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
3670
3671 2006-09-05  Richard Guenther  <rguenther@suse.de>
3672
3673         PR tree-optimization/28900
3674         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
3675         compound conditional before creating COND_EXPR condition.
3676
3677 2006-09-05  Richard Guenther  <rguenther@suse.de>
3678
3679         PR tree-optimization/28905
3680         * tree-vrp.c (fix_equivalence_set): Manually implement
3681         !value_ranges_intersect_p to also handle symbolic ranges.
3682
3683 2006-09-05  Richard Guenther  <rguenther@suse.de>
3684
3685         PR middle-end/28935
3686         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
3687         of a COND_EXPR.
3688
3689 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3690
3691         PR rtl-optimization/27616
3692         * cse.c (table_size): New static variable.
3693         (new_basic_block): Initialize it to 0.
3694         (remove_from_table): Decrement it.
3695         (insert): Increment it.
3696         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
3697         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
3698         fold_rtx_mem_1 if under the cap.
3699         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
3700         the lookup of the equivalent expression and test for equality of the
3701         first operand of the equivalent expression before in turn looking up
3702         an equivalent constant for the second operand.
3703
3704 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
3705
3706         Revert this change:
3707         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
3708         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3709         pointer, instead of assuming it is possible to derive the
3710         correct args size from a call insn.
3711
3712 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
3713
3714         PR middle-end/27567
3715         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
3716         (fold_builtin_mempcpy): Rename to...
3717         (fold_builtin_memory_op): ... this.  Optimize one element copy
3718         into an assignment.
3719         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
3720         functions.
3721         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
3722         (expand_builtin_memcpy, expand_builtin_mempcpy,
3723         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
3724         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
3725         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
3726         BUILT_IN_MEM{CPY,PCPY,MOVE}.
3727
3728 2006-09-01  DJ Delorie  <dj@redhat.com>
3729
3730         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
3731         (stzx_16): Likewise.
3732         ("stzx_24_<mode>"): Likewise.
3733         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
3734         ("cmp<mode>_op"): New.
3735         (cmp<mode>): Change to expander; just save operands.
3736         (b<code>_op): New.
3737         (b<code>): Change to expander, emit compare here.
3738         (s<code>_op): Change to use split and expander.
3739         (s<code>_24_op): Likewise.
3740         (s<code>_<mode>): New.
3741         (s<code>_<mode>_24): New.
3742         (movqicc_<code>_<mode): New.
3743         (movhicc_<code>_<mode>): New.
3744         (s<code>): New.
3745         (s<code>_24): New.
3746         * config/m32c/m32c.c (compare_op0, compare_op1): New.
3747         (m32c_pend_compare): New.
3748         (m32c_unpend_compare): New.
3749         (m32c_expand_scc): New.
3750         (m32c_expand_movcc): Emit the compare also.
3751         * config/m32c/predicates.md (mra_nopp_operand): New.
3752
3753 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
3754         Richard Guenther  <rguenther@suse.de>
3755         Adam Nemet  <anemet@caviumnetworks.com>
3756
3757         PR middle-end/27226
3758         * builtins.c (get_pointer_alignment): Handle more forms
3759         of base addresses that can be used to derive more precise
3760         information about alignment.
3761
3762 2006-09-01  Jason Merrill  <jason@redhat.com>
3763
3764         PR c++/28899
3765         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
3766         want_value.
3767
3768         * gimplify.c (voidify_wrapper_expr): Handle null type.
3769
3770 2006-09-01  Josh Conner  <jconner@apple.com>
3771
3772         PR c++/25505
3773         * tree-nrv.c (dest_safe_for_nrv_p): New function.
3774         (execute_return_slot_opt): Use it.
3775
3776 2006-08-31  Josh Conner  <jconner@apple.com>
3777
3778         PR c++/25505
3779         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
3780         returning aggregates.
3781
3782 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
3783
3784         PR tree-optimization/28839
3785         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
3786         blocks in that phi arguments appear.
3787
3788 2006-08-31  Roger Sayle  <roger@eyesopen.com>
3789
3790         PR other/22313
3791         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
3792         NULL, otherwise use an advance_loc4 to adjust relative to the
3793         current label.
3794         (output_cfi) <DW_CFA_set_loc>: Update the current label.
3795         (dwarf2out_switch_text_section): Reset the current label to avoid
3796         using advance_loc4 over section boundaries.
3797
3798 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
3799
3800         PR target/24367
3801         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
3802         r12 + SYMBOLIC_CONST.
3803
3804 2006-08-30  Richard Guenther  <rguenther@suse.de>
3805
3806         * Makefile.in (see.o): Add $(EXPR_H) dependency.
3807
3808 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
3809
3810         PR rtl-optimization/27735
3811         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
3812         Add new argument to keep track of whether an irreducible region
3813         was affected.  All callers changed.
3814         (fix_irreducible_loops): Removed.
3815         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
3816         flags were invalidated.
3817
3818 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
3819
3820         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
3821         instead of SF operands.
3822         (*fop_df_comm_sse): Likewise.
3823         (*fop_df_comm_i387): Likewise.
3824         (*fop_df_1_mixed): Likewise.
3825         (*fop_df_1_sse): Likewise.
3826
3827 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
3828             J"orn Rennecke  <joern.rennecke@st.com>
3829
3830         PR tree-optimization/17506
3831         * tree-ssa.c (warn_uninit): If warning about a location outside of
3832         the current function, note where the variable was declared.
3833
3834 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
3835
3836         PR tree-optimization/28411
3837         * double-int.c (double_int_div): Use double_int_divmod.
3838         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
3839         double_int_mod, double_int_smod, double_int_umod): New functions.
3840         * double-int.h (double_int_divmod, double_int_sdivmod,
3841         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
3842         Declare.
3843         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
3844         in double_int.
3845         (get_computation_aff, get_computation_cost_at): Handle double_int
3846         return type of constant_multiple_of.
3847
3848 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
3849
3850         PR middle-end/26632
3851         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
3852         an implicit conversion.
3853
3854 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
3855
3856         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
3857
3858 2006-08-27  Roger Sayle  <roger@eyesopen.com>
3859
3860         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
3861         x87 instructions.
3862
3863 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
3864
3865         * config/i386/crtfastmath.c: Fix a comment typo.
3866
3867 2006-08-26  Roger Sayle  <roger@eyesopen.com>
3868
3869         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
3870         temporary visit flags on CASE_LABEL_EXPRs.
3871         * c-common.c (match_case_to_enum): Add function comment.  Avoid
3872         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
3873         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
3874         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
3875         a constant, only warn if that constant value isn't handled.
3876
3877 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
3878
3879         PR c++/24009
3880         * input.h (restore_input_file_stack): Declare.
3881         (INPUT_FILE_STACK_BITS): Define.
3882         * toplev.c (fs_p, input_file_stack_history,
3883         input_file_stack_restored, restore_input_file_stack): New.
3884         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
3885         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
3886         (pop_srcloc): Don't free old state of stack.
3887
3888 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
3889
3890         PR target/27544
3891         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
3892         (PowerPC Type Attributes): New.
3893
3894 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
3895
3896         * config/xtensa/xtensa.c (function_arg_boundary): New.
3897         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
3898         STACK_BOUNDARY.
3899         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
3900         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
3901
3902 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
3903
3904         PR middle-end/28683
3905         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
3906         3 following insns.
3907
3908 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3909
3910         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
3911         (verify_local_live_at_start): Likewise.
3912
3913 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
3914
3915         PR c/27893
3916         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
3917         omp_add_variable): Treat sizes as variable whenever not
3918         INTEGER_CST.
3919
3920 2006-08-26  Richard Guenther  <rguenther@suse.de>
3921
3922         PR middle-end/28814
3923         * fold-const.c (fold_binary): Fold temporary to correct
3924         type before constructing new comparison.
3925
3926 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
3927
3928         PR c/28418
3929         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
3930         variable again if DECL_SEEN_IN_BIND_EXPR_P.
3931
3932 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
3933
3934         PR c/28299
3935         * c-decl.c (start_function): Don't try to process prototype
3936         information from old declaration that isn't a function.
3937
3938 2006-08-25  Jan Hubicka  <jh@suse.cz>
3939
3940         PR target/28621
3941         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
3942
3943 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
3944
3945         PR target/27075
3946         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
3947         for 8 byte objects.
3948
3949 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
3950
3951         PR tree-optimization/16876
3952         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
3953         exit if PARM doesn't match VALUE.
3954
3955 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
3956
3957         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
3958         literal_prefix directive.
3959         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
3960         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
3961         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
3962
3963 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
3964
3965         PR target/28753
3966         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
3967         predicate to general_operand.  Add 0->y and I->r alternatives.
3968
3969 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
3970
3971         * doc/tm.texi: Fix a typo.
3972         * predict.c: Fix comment typos.
3973
3974 2006-08-25  Nick Clifton  <nickc@redhat.com>
3975
3976         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3977         assertions of "cpu" and "machine".
3978
3979 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
3980
3981         PR tree-opt/28807
3982         * tree-ssa-operands.c (access_can_touch_variable): Don't say
3983         the access through a base which has an alias set of 0 cannot
3984         touch the variable.
3985
3986 2006-08-24  Bill Wendling  <wendling@apple.com>
3987
3988         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
3989
3990 2006-08-24  Jan Hubicka  <jh@suse.cz>
3991
3992         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
3993
3994 2006-08-24  Jan Hubicka  <jh@suse.cz>
3995
3996         PR debug/26881
3997         * cgraph.c: Fix comments.
3998         (cgraph_varpool_mark_needed_node): Mark only variables not already
3999         output to file.
4000         * cgraphunit.c: Update comments; include gt-cgraphunit.h
4001         (cgraph_varpool_assembled_nodes_queue): New static variable.
4002         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
4003         (cgraph_varpool_output_debug_info): New function.
4004         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
4005         * Makefile.in: Add gt-cgraphunit.h
4006
4007 2006-08-24  Jan Hubicka  <jh@suse.cz>
4008
4009         * predict.c (probability_reliable_p): New predicate.
4010         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
4011         (predict_loops): Do not predict loop exit with less than 2%
4012         probability.
4013         * basic-block.h (edge_probability_reliable_p,
4014         br_prob_note_reliable_p): Declare.
4015         * ia64.h (ia64_print_operand): Do not disable on-chip branch
4016         prediction when static predictor is not reliable.
4017         * rs6000.c (output_cbranch): Likewise.
4018
4019 2006-08-23  Stuart Hastings  <stuart@apple.com>
4020
4021         PR 28825
4022         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
4023         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
4024
4025 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
4026
4027         PR debug/28692
4028         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
4029         complex values, nor for generic vector values.
4030
4031 2006-08-22  Richard Guenther  <rguenther@suse.de>
4032
4033         PR middle-end/28776
4034         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
4035         parameter.  Convert arguments to arithmetic expression to the
4036         chrecs type.
4037         (analyze_scalar_evolution_1): Adjust caller.
4038
4039 2006-08-22  Jan Hubicka  <jh@suse.cz>
4040
4041         Patch by Paolo Bonzini
4042         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
4043         my previous patch.
4044
4045 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
4046
4047         PR tree-optimization/28003
4048         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
4049         before grouping aliases.
4050
4051 2006-08-22  Roger Sayle  <roger@eyesopen.com>
4052
4053         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
4054         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
4055
4056 2006-08-21  Jason Merrill  <jason@redhat.com>
4057
4058         PR c++/27115
4059         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
4060         wrapper.  Loop to handle nested wrappers.
4061         (gimplify_bind_expr): Remove temp parameter.
4062         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
4063         and STATEMENT_LIST on the rhs.
4064         (gimplify_statement_list): Voidify the STATEMENT_LIST.
4065         (gimplify_expr): Pass pre_p to gimplify_statement_list.
4066         (gimplify_target_expr): Remove special BIND_EXPR handling.
4067
4068 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
4069
4070         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
4071         #if !__SHMEDIA__ .
4072
4073 2006-08-21  Olivier Hainque  <hainque@adacore.com>
4074
4075         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
4076         Arrange for the temporary captures of components overlapping the lhs
4077         to happen before the lhs is possibly cleared.
4078
4079 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
4080
4081         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
4082         necessary places to pass the correct "number of registers" values
4083         to _Unwind_VRS_Pop.
4084
4085 2006-08-20  Jan Hubicka  <jh@suse.cz>
4086
4087         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
4088         (create_name_tags): Instead of quadratic checking use hashtable.
4089         * bitmap.h: Include hashtab.h.
4090         (bitmap_hash): Declare.
4091         * bitmap.c (bitmap_hash): New function.
4092
4093 2006-08-20  Jan Hubicka  <jh@suse.cz>
4094
4095         PR rtl-optimization/28071
4096         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
4097         twice.
4098         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
4099         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
4100         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
4101         cgraph_decide_inlining_incrementally): Update use of
4102         cgraph_check_inline_limits.
4103         * cgraph.c (edge_hash, edge_eq): New function.
4104         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
4105         cgraph_edge_remove_caller, cgraph_node_remove_callees,
4106         cgraph_remove_node): Maintain call site hash.
4107         * cgraph.h (struct cgraph_node): Add call_site_hash.
4108         (cgraph_set_call_stmt): New function.
4109
4110 2006-08-20  Jan Hubicka  <jh@suse.cz>
4111
4112         PR rtl-optimization/28071
4113         * reload1.c (reg_has_output_reload): Turn into regset.
4114         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
4115         choose_reload_regs, emit_reload_insns): Update to new
4116         reg_has_output_reload.
4117
4118 2006-08-20  Jan Hubicka  <jh@suse.cz>
4119
4120         PR middle-end/28779
4121         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
4122         function body sizes.
4123         * cgraphunit.c (cgraph_analyze_function): Don't do so.
4124
4125 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
4126
4127         PR target/28648 c:
4128         * tree.c (handle_dll_attribute): Return early if not a
4129         var or function decl.
4130
4131 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
4132
4133         PR target/27565
4134         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
4135         alignment of SPE vector types.
4136
4137 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
4138
4139         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
4140
4141 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
4142
4143         PR c/28744
4144         * cgraph.h (struct cgraph_node): Remove externally_visible
4145         bitfield.
4146         * cgraphunit.c (process_function_and_variable_attributes): Set
4147         local.externally_visible rather than externally_visible.
4148
4149         PR c/28744
4150         * c-common.c (handle_externally_visible_attribute): First look
4151         at TREE_CODE and only if it is function or var decl, check for
4152         non-public objects.  Don't warn for DECL_EXTERNAL.
4153         * cgraphunit.c (process_function_and_variable_attributes): Warn
4154         if externally_visible attribute is used on non-public object.
4155
4156 2006-08-17  Jan Hubicka  <jh@suse.cz>
4157
4158         PR tree-optimization/27865
4159         * reload1.c (forget_marked_reloads): New function.
4160         (forget_old_reloads_1): When data are passed, just mark the registers
4161         for later removal.
4162         (reload_as_needed): Use the new mechanizm.
4163
4164 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
4165
4166         PR target/28146
4167         * reload.h (reg_equiv_alt_mem_list): New declaration.
4168         * reload1.c (reg_equiv_alt_mem_list): New definition.
4169         (reload): Initialize it and release it.
4170         (delete_output_reload): Use it.
4171         * reload.c (push_reg_equiv_alt_mem): New function.
4172         (find_reloads_toplev): Call it.
4173         (find_reloads_address, find_reloads_address_1): Likewise.
4174         (find_reloads_subreg_address): Likewise.
4175
4176 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4177
4178         PR rtl-optimization/28489
4179         * sched-ebb.c (begin_schedule_ready): Create basic block
4180         at the right place.
4181         (advance_target_bb): Skip empty blocks.
4182         * haifa-sched.c (bb_note): Make global.
4183         * sched-int.h (bb_note): Add prototype.
4184
4185 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
4186
4187         PR tree-optimization/27865
4188         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
4189         for pointer types.
4190         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
4191         fold_used_pointer, pointer_used_p): New functions.
4192         (analyze_scalar_evolution_1): Use fold_used_pointer.
4193         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
4194         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
4195         for pointers.
4196
4197 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
4198
4199         PR c++/28573
4200         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
4201         or the INTEGER_CST.  Fail on a CALL_EXPR.
4202         (fold_offsetof): Pass new argument to fold_offsetof_1.
4203         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
4204         operand into an INDIRECT_REF.
4205         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
4206
4207 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
4208
4209         PR gcov/profile/26570
4210         * value-prof.c (static_values): Removed.
4211         (tree_find_values_to_profile): Do not set static_values.
4212         (find_values_to_profile): Do not free static_values.
4213         * profile.c (instrument_values): Do not free the values.
4214         (branch_prob): Free the values.
4215
4216 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
4217
4218         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
4219
4220 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
4221
4222         PR c/27697
4223         * c-typeck.c (build_component_ref): Combine qualifiers of
4224         structure or union and field.
4225
4226 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
4227
4228         PR rtl-optimization/28071
4229         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
4230         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
4231         * tree-into-ssa.c (struct dom_dfsnum): New.
4232         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
4233         functions.
4234         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
4235         compute_global_livein.
4236         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
4237         in phi nodes in the correct blocks.
4238
4239 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
4240
4241         PR tree-optimization/28364
4242         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
4243         correctly.
4244         (fold_affine_expr): New function.
4245         (may_eliminate_iv): Use fold_affine_expr.
4246
4247 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4248
4249         PR c/27489
4250         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
4251         Clean up.
4252
4253 2006-08-16  Mike Stump  <mrs@apple.com>
4254
4255         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
4256         * doc/cppopts.texi (-MD): Likewise.
4257
4258 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
4259
4260         PR c/28287
4261         * c-common.c (handle_weak_attribute): Ignore and warn if
4262         not a FUNCTION_ or VAR_DECL.
4263
4264 2006-07-15  Mike Stump  <mrs@apple.com>
4265
4266         PR c/28280
4267         * c-parser.c (c_parser_typeof_specifier): Don't use
4268         c_finish_expr_stmt, open code desired semantics instead.
4269
4270 2006-08-15  Nick Clifton  <nickc@redhat.com>
4271
4272         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
4273         fragment to tmake_file only if threads are enabled.
4274         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
4275         * config/i386/t-gthr-win32: New file. ... here.
4276
4277 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4278
4279         PR c/28649
4280         * c-parser.c (c_parser_compound_statement_nostart): Reset
4281         parser->error after each statement.
4282
4283 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
4284
4285         PR middle-end/28713
4286         * omp-low.c (lower_omp_parallel): Convert t to
4287         receiver_decl's type.
4288         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
4289         source before comparison.
4290
4291         PR middle-end/28724
4292         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
4293         to itype in assignment to oldival2.
4294
4295 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
4296
4297         PR c/27490
4298         PR c/27489
4299         * c-typeck.c (build_compound_expr): If the second expression
4300         is an error mark, then just return an error mark instead of
4301         creating a COMPOUND_EXPR.
4302
4303 2006-07-14  Mike Stump  <mrs@apple.com>
4304
4305         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
4306
4307 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
4308
4309         * c-decl.c, var-tracking.c: Fix comment typos.
4310
4311 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
4312
4313         PR rtl-optimization/28634
4314         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
4315         for floating-point modes unless flag_unsafe_math_optimizations.
4316
4317 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
4318             Andrew Pinski  <pinskia@physics.uc.edu>
4319
4320         PR c/27184
4321         * tree.c (build_array_type): Unify array types with
4322         unspecified index_type.
4323         * c-decl.c (grokdeclarator): Make sure we do not modify a
4324         unified incomplete array type.
4325         * c-typeck.c (store_init_value): Create distinct type before
4326         filling in the index type in an initializer from a compound
4327         literal.
4328
4329         * c-decl.c (grokdeclarator): Remove code where we copy the
4330         array type over.
4331
4332 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
4333
4334         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
4335         into account for TODO_dump_cgraph.
4336         (TODO_update_ssa_no_phi): Likewise.
4337         (TODO_update_ssa_full_phi): Likewise.
4338         (TODO_update_ssa_only_virtuals): Likewise.
4339         (TODO_remove_unused_locals): Likewise.
4340         (TODO_set_props): Likewise.
4341         (TODO_update_stmt_usage): Likewise.
4342
4343 2006-08-13  Dirk Mueller  <dmueller@suse.de>
4344
4345         * c-common.c (strict_aliasing_warning): Fix formatting.
4346
4347 2006-08-13  Matthias Klose  <doko@debian.org>
4348
4349         * doc/invoke.texi: Fix spelling errors.
4350
4351 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
4352
4353         PR rtl-optimization/23454
4354         * reorg.c (relax_delay_slots): Update comment.
4355
4356 2006-08-11  Richard Guenther  <rguenther@suse.de>
4357
4358         PR middle-end/28651
4359         * simplify-rtx.c (simplify_const_relational_operation):
4360         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
4361         codes.
4362
4363 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
4364
4365         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
4366         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
4367
4368 2006-08-10  Paul Brook  <paul@codesourcery.com>
4369
4370         * final.c (final_scan_insn): Clear current_insn_predicate before
4371         outputting inline asm.
4372
4373 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
4374
4375         PR tree-optimization/26197
4376         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
4377         get_ref_base_and_extent and overlap_subvar to add only relevant
4378         subvars as may-aliases.
4379         (add_may_alias_for_new_tag): New function, factored out of
4380         new_type_alias.
4381         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
4382         with additional argument.
4383         * tree-flow.h (new_type_alias): Takes additional argument.
4384
4385 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
4386
4387         * gcov.c (no_data_file): New flag.
4388         (read_count_file): Set it if data file not present.  Assume counts
4389         zero if not found.
4390         (output_lines): Don't name the data file, if there wasn't one.
4391
4392 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
4393
4394         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
4395         (rs6000_generate_compare): Tweak comments.
4396         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
4397
4398 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
4399
4400         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
4401         (var_debug_decl): New function.
4402         (var_reg_set): Follow debug decl link.  Add location even if
4403         reg is already known to hold some other variable.
4404         (var_mem_set): Follow debug decl link.
4405         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
4406         decl link.  Delete other known locations of the variable part
4407         if requested.
4408         (var_reg_delete, var_mem_delete): Delete other known locations
4409         of the variable part if requested.
4410         (same_variable_part_p): New function.
4411         (add_stores): Select MO_COPY when appropriate.
4412         (vt_initialize): Handle it.
4413         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
4414         known locations for MO_SET and MO_CLOBBER.
4415         (find_variable_location_part): New function.
4416         (set_variable_part, delete_variable_part): Use it.
4417         (clobber_variable_part): New function.
4418         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
4419         decl link.
4420
4421 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
4422
4423         PR tree-optimization/26969
4424         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
4425         with an empty list of PHIs.
4426
4427 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
4428
4429         PR target/27827
4430
4431         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
4432         instructions.
4433
4434 2006-08-06  Andreas Schwab  <schwab@suse.de>
4435
4436         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
4437         string.  Whitespace and comment fixup.
4438
4439 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4440
4441         PR c/28502
4442         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
4443         argument.
4444
4445         PR c/27721
4446         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
4447
4448         PR c/28136
4449         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
4450
4451 2006-08-04  Jan Hubicka  <jh@suse.cz>
4452
4453         PR target/26655
4454         PR target/28270
4455         * reload.c (push_reload): Patch out the mismatching instruction;
4456         return early.
4457         (find_reload): Bail out if the instruction was patched out.
4458
4459 2006-08-04  Jan Hubicka  <jh@suse.cz>
4460
4461         PR tree-optimization/24888
4462         * tree-inline.c (expand_call_inline): Do not re-record variables.
4463         (declare_inline_vars): Add variable to unexpanded_var_list.
4464
4465 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4466             Roger Sayle  <roger@eyesopen.com>
4467
4468         PR rtl-optimization/26244
4469         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
4470         inner_const are negative or greater than or equal to the bitsize of
4471         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
4472         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
4473         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
4474         CONST0_RTX (mode) when the new shift count is greater than or equal to
4475         to the bitsize of the object being shifted and XEXP (y, 0) has no side
4476         effects.
4477
4478 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
4479
4480         * tree-cfg.c: Fix a comment typo.
4481
4482 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
4483
4484         PR c++/28148
4485         * varasm.c (output_constant): Give the front end another chance to
4486         expand constants, after stripping NOPs.
4487
4488 2006-08-03  Jan Hubicka  <jh@suse.cz>
4489
4490         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
4491         implementation.
4492
4493 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
4494
4495         PR tree-optimization/27770
4496         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
4497         declaration removed (moved to tree-flow.h).
4498         (vect_can_force_dr_alignment_p): Likewise.
4499         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
4500         (moved from tree-vectorizer.h).
4501         (vect_can_force_dr_alignment_p): Likewise.
4502         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
4503         from outside the vectorizer - in particular from cgraph stage.
4504         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
4505         the alignment of global arrays when -fsection-anchors is enabled.
4506         * cgraphunit.c (cgraph_increase_alignment): New function.
4507         (cgraph_optimize): Call cgraph_increase_alignment.
4508
4509 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
4510
4511         PR target/27566
4512         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
4513         not reload a SPE symbol_ref into a lo_sum address.
4514
4515 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
4516
4517         PR debug/28063
4518         * dwarf2out.c (prune_unused_types_prune): Move call to
4519         prune_unused_types_update_strings to cover the parent DIE also.
4520
4521 2006-08-02  Jan Hubicka  <jh@suse.cz>
4522
4523         PR gcov/profile/28480
4524         * tree-cfg.c (change_bb_for_stmt): New function.
4525         (tree_merge_blocks, tree_split_blocks): Use it.
4526
4527 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4528
4529         PR c++/28250
4530         PR c++/28257
4531         PR c++/28259
4532         PR c++/28267
4533         * toplev.c (compile_file): Return early on errorcount or sorrycount.
4534         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
4535         (cgraph_optimize): Likewise.
4536
4537 2006-08-01  Stuart Hastings  <stuart@apple.com>
4538
4539         * rtl.h (UINTVAL) New.
4540         * config/rs6000/rs6000.c (SMALL_INT) Use it.
4541         * testsuite/gcc.dg/20060801-1.c: New.
4542
4543 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
4544
4545         PR debug/23336
4546         * c-typeck.c (build_external_type): Mark used enum types.
4547         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
4548         cfun also.
4549         (gen_subprogram_die): Whitespace fix.
4550
4551 2006-08-01  Jan Hubicka  <jh@suse.cz>
4552
4553         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
4554         bitmap when not needed.
4555         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
4556         bitmaps.
4557
4558 2006-08-01  Dirk Mueller  <dmueller@suse.de>
4559
4560         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
4561
4562 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4563
4564         * Makefile.in: Revert part of previous patch:
4565         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
4566         and REGS_H.
4567
4568 2006-07-30  Eric Christopher  <echristo@apple.com>
4569
4570         PR target/27543
4571         * doc/extend.texi (i386 Variable Attributes): Add anchor.
4572         (PowerPC Variable Attributes): New section.
4573
4574 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
4575
4576         PR target/28126 (partial fix)
4577         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
4578
4579 2006-07-28  Jan Hubicka  <jh@suse.cz>
4580
4581         PR rtl-optimization/28071
4582         * cfgrtl.c (rtl_delete_block): Free regsets.
4583         * flow.c (allocate_bb_life_data): Re-use regsets if available.
4584
4585 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4586
4587         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
4588         and variables used in dependencies.
4589
4590 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
4591
4592         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
4593         %fs for -mcmodel=kernel.
4594         (stack_tls_protect_test_di): Likewise.
4595
4596 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
4597
4598         * Makefile.in: Use mkinstalldirs.
4599
4600 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
4601
4602         PR driver/28437
4603         * opts-common.c (prune_options): Skip joined switches.
4604
4605 2006-07-27  Jan Hubicka  <jh@suse.cz>
4606
4607         PR rtl-optimization/28071
4608         * cselib.c (cselib_process_insn): Don't remove useless values too
4609         often for very large hashtables.
4610
4611 2006-07-27  Jan Hubicka  <jh@suse.cz>
4612
4613         PR rtl-optimization/28071
4614         * global.c (greg_obstack): New obstack.
4615         (allocate_bb_info): Use it.
4616         (free_bb_info): Likewise.
4617         (modify_reg_pav): Likewise.
4618
4619 2006-07-27  Roger Sayle  <roger@eyesopen.com>
4620
4621         * builtins.c (fold_fixed_mathfn): When long and long long are the
4622         same size, canonicalize llceil*, llfloor*, llround* and llrint*
4623         functions to their lceil*, lfloor*, lround* and lrint* forms.
4624
4625 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4626
4627         PR gcc/28508
4628         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
4629         branch.
4630         (rev_branch_insn): Likewise.
4631
4632 2006-07-27  Jan Hubicka  <jh@suse.cz>
4633
4634         PR rtl-optimization/28071
4635         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
4636         (reg_set_in_bb, max_reg_computed): New static variables.
4637         (regmove_optimize): Free the new array.
4638         (fixup_match_1): Update call of reg_is_remote_constant_p.
4639
4640 2006-07-26  Jan Hubicka  <jh@suse.cz>
4641
4642         PR tree-optimization/27882
4643         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
4644         and decl fields.
4645         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
4646         next pointer
4647         (cgraph_analyze_compilation_unit): Likewise.
4648         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
4649         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
4650         (cgraph_early_inlinine): Make order garbage collected.
4651         * Makefile.in (gt-ipa-inline): New garbagecollected file.
4652
4653 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
4654
4655         * dbxout.c (output_types_sort): Add a comment.
4656         (output_used_types): Free the VEC.
4657
4658 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
4659
4660         * function.c (reorder_fix_fragments): Delete.
4661         (reorder_blocks): Don't call it.
4662         (reorder_blocks_1): Put all subblocks under the origin block.
4663
4664 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
4665
4666         PR rtl-optimization/27907
4667         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
4668         FLOAT_TRUNCATE.
4669
4670 2006-07-25  Roger Sayle  <roger@eyesopen.com>
4671
4672         PR middle-end/28473
4673         * convert.c (convert_to_integer): When transforming (T)foo(x) into
4674         bar(x) check that bar's result type can represent all the values of T.
4675
4676 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
4677
4678         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
4679
4680 2006-07-25  Nick Clifton  <nickc@redhat.com>
4681
4682         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
4683         size_lookup[] array.
4684         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
4685         (ggc_pch_count_object): Likewise.
4686         (ggc_pch_alloc_object): Likewise.
4687         (ggc_pch_write_object): Likewise.
4688         (init_ggc): Do not attempt to initialize entries in the
4689         size_lookup[] array for objects whose size is greater than than
4690         the length of the array.
4691
4692 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
4693
4694         * dbxout.c (output_used_types_helper): Push queued types
4695         on a VEC.
4696         (output_types_sort): New.
4697         (output_used_types): Collect used types on a VEC and sort them
4698         before emission.
4699
4700 2006-07-24  Richard Guenther  <rguenther@suse.de>
4701
4702         PR middle-end/28463
4703         * cgraph.c (cgraph_remove_node): Do not check if dumps
4704         are enabled.
4705         * cgraphunit.c (cgraph_optimize): Likewise.
4706
4707 2006-07-24  Jan Hubicka  <jh@suse.cz>
4708
4709         PR rtl-optimization/28071
4710         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
4711         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
4712         splitting before first stmt.
4713
4714 2006-07-24  Jan Hubicka  <jh@suse.cz>
4715
4716         PR rtl-optimization/28071
4717         * ipa-inline.c (update_caller_keys): Remove edges that
4718         are no longer inline candidates.
4719
4720 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
4721
4722         PR debug/27473
4723         * dbxout.c (output_used_types_helper, output_used_types): New.
4724         (dbxout_symbol): Call output_used_types.
4725
4726 2006-07-23  Jan Hubicka  <jh@suse.cz>
4727
4728         PR c/25795
4729         PR c++/27369
4730         * cgraph.c (cgraph_varpool_nodes): Export.
4731         (decide_is_variable_needed): Ignored "used" attribute in
4732         unit-at-a-time mode.
4733         * cgraph.h (cgraph_varpool_nodes): Declare.
4734         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
4735         unit-at-a-time mode.
4736
4737 2006-07-23  Roger Sayle  <roger@eyesopen.com>
4738
4739         PR target/28247
4740         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
4741         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
4742         the __gthrw form of thr_keycreate.
4743         (__gthread_key_delete): Silence the unused argument warning.
4744
4745 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
4746
4747         PR debug/25468
4748         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
4749         Cache the last found '\0' marker to avoid quadratic behavior.
4750
4751 2006-07-23  Jan Hubicka  <jh@suse.cz>
4752
4753         * i386.md (subsi_3_zext): Fix output template.
4754
4755 2006-07-21  Mike Stump  <mrs@apple.com>
4756
4757         * doc/invoke.texi (C++ Dialect Options): Note that
4758         -fvisibility-inlines-hidden doesn't affect explicitly
4759         instantiationed inline methods.
4760
4761 2006-07-20  Roger Sayle  <roger@eyesopen.com>
4762
4763         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
4764         if the target assembler is GNU binutils' gas.
4765         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
4766         whether to pass GNU gas or native as command line options.
4767
4768 2006-07-20  Jason Merrill  <jason@redhat.com>
4769
4770         * tree.c (remove_attribute): New fn.
4771         * tree.h: Declare it.
4772
4773 2006-07-20  Paul Brook  <paul@codesourcery.com>
4774
4775         PR 27363
4776         * cse.c (cse_insn): Add destination addresses to hash table. Check if
4777         they are invalidated by this instruction.
4778
4779 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
4780
4781         PR target/28427
4782         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
4783
4784 2006-07-20  Eric Christopher  <echristo@apple.com>
4785
4786         PR target/26877
4787         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
4788
4789 2006-07-19  Eric Christopher  <echristo@apple.com>
4790
4791         * config/t-slibgcc-darwin (stmp-lipo): Remove.
4792         Rewrite dependencies for libgcc_s.1.dylib.
4793
4794 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
4795
4796         * except.c (duplicate_eh_regions_1): Clear next_peer.
4797
4798 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
4799
4800         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
4801         -mlongcall does not guarantee all calls will be long.
4802         * doc/extend.texi (long_call/short_call): Document that longcall
4803         does not guarantee a long call will be used.
4804         (longcall/shortcall): Likewise.
4805
4806 2006-07-18  Roger Sayle  <roger@eyesopen.com>
4807
4808         PR middle-end/28283
4809         * expmed.c (expand_shift): Additionally check that the shift_cost
4810         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
4811         before implementing a LSHIFT_EXPR as a sequence of additions.
4812         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
4813         middle-end that DImode shifts need to be synthesized by expand.
4814
4815 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
4816
4817         PR 28410
4818         * tree-ssa-operands.c (access_can_touch_variable): Update
4819         comment.
4820         Return true if ALIAS is .GLOBAL_VAR.
4821
4822 2006-07-18  David Daney  <ddaney@avtrex.com>
4823
4824         * gcc.c (display_help): Fix typo in help text.
4825
4826 2006-07-18  Olivier Hainque  <hainque@adacore.com>
4827
4828         * tree.h (categorize_ctor_elements): Adjust prototype and add
4829         descriptive comment, both in accordance with the interface change
4830         described below.
4831         * varasm.c (constructor_static_from_elts_p): New function.
4832         Whether a constructor node is a valid static constant initializer
4833         if all its elements are.
4834         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
4835         * output.h: Declare it.
4836         * expr.c (categorize_ctor_elements_1): Return whether the constructor
4837         is a valid constant initializer instead of computing the number of
4838         non-constant elements.  Use constructor_static_from_elts_p for this
4839         purpose.  Replace the head comment with an indication that this is a
4840         helper for categorize_ctor_elements.
4841         (categorize_ctor_elements): Same interface change as for the _1
4842         helper.  Former head comment from this helper moved here, adjusted to
4843         account for the interface changes.
4844         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
4845         (all_zeros_p): Likewise.
4846         * gimplify.c (gimplify_init_constructor): Decide whether we can make
4847         static versions of the constructor from the categorize_ctor_elements
4848         return value instead of the formerly computed number of non-constant
4849         elements.
4850
4851 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
4852
4853         * configure: Regenerate.
4854         * Makefile.in (build_libsubdir): New configure substitution
4855         (build_libobjdir): New variable.
4856         (BUILD_LIBIBERTY): Use it.
4857
4858 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4859
4860         PR c/28286
4861         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
4862
4863 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
4864
4865         PR c/26993
4866         * c-common.c (handle_weakref_attribute): Ignore attribute in
4867         the same conditions the alias attribute is ignored.
4868
4869 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
4870
4871         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
4872         (dbxout_begin_prologue): Increment scope_labelno.
4873
4874 2006-07-17  Richard Henderson  <rth@redhat.com>
4875
4876         PR 27889
4877         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
4878         if needed.
4879
4880 2006-07-17  Roger Sayle  <roger@eyesopen.com>
4881             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4882
4883         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
4884         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
4885         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
4886         functions such as sbrk, write, etc..  Add function prototypes.
4887         Convert function declarations from K&R to ISO C.  Cast pointers
4888         to "long" and "unsigned long" instead of "int" and "unsigned int".
4889         Convert tokens following #endif into comments.
4890
4891 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
4892
4893         * invoke.texi: Remove mention of f77; Reformat table for
4894         inline parameter options correctly; mention that -malign-double
4895         is default on x86-64 targets.
4896
4897 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
4898
4899         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
4900         (convert_affine_scev, chrec_convert_aggressive): Use
4901         avoid_arithmetics_in_type_p.  Do not check for the subtypes
4902         separately.
4903
4904 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
4905
4906         PR middle-end/28403
4907         * optabs.c (expand_doubleword_shift): Wrap the call to
4908         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
4909
4910 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
4911
4912         PR middle-end/28402
4913         * optabs.c (expand_binop): Pass next_methods rather than methods
4914         to expand_doubleword_shift.
4915
4916 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
4917
4918         PR other/28251
4919         * tree.h (dump_addr): Declare.
4920         * print-tree.c (dump_addr): New function.
4921         (print_node_brief, print_node): Use it.
4922         * print-rtl.c (print_rtx): Likewise.
4923         * common.opt (-fdump-noaddr): New option.
4924         * doc/invoke.texi (-fdump-noaddr): Document.
4925         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
4926         (ve_info_hash): Likewise.
4927
4928 2006-07-13  Andrew Haley  <aph@redhat.com>
4929
4930         PR tree-optimization/19505
4931         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
4932         edge leaving this block, make sure that the destination of this
4933         block has only one predecessor.
4934
4935 2006-07-17  Richard Guenther  <rguenther@suse.de>
4936
4937         PR tree-optimization/28238
4938         * tree-inline.c (copy_bb): Check if we produced valid
4939         gimple copying and substituting a stmt.  If not, gimplify
4940         it.
4941
4942 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
4943
4944         * optabs.c (maybe_encapsulate_block): New function extracted from...
4945         (emit_libcall_block): ...here.  Invoke it on the block of insns to
4946         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
4947         (emit_no_conflict_block): Likewise.
4948
4949 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
4950
4951         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
4952
4953 2006-07-15  Roger Sayle  <roger@eyesopen.com>
4954
4955         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
4956         a new NOP_EXPR case of the switch statement.
4957
4958 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4959
4960         PR middle-end/28160
4961         * stor-layout.c (place_field): Take the bit field with
4962         an excessive size into account in the ms-bitfiled case.
4963
4964         PR middle-end/28161
4965         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
4966         the previous bit field.
4967
4968 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
4969
4970         PR target/27287
4971         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
4972
4973 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
4974
4975         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
4976         signal frames correctly even when the signal was installed with
4977         sa_restorer set.
4978
4979 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
4980
4981         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
4982         (dbxout_function_end): Use local label LFBB. Remove hook
4983         DBX_OUTPUT_NFUN.
4984         (dbxout_source_line): Use local label LFBB.
4985         (dbxout_block): Likewise.
4986         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
4987         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
4988         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
4989         and DBX_OUTPUT_NFUN.
4990
4991 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
4992
4993         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
4994
4995 2006-07-13  Jan Hubicka  <jh@suse.cz>
4996
4997         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
4998         align_variable.
4999         * output.h (align_variable): Declare.
5000         * varasm.c (align_variable): Export.
5001         * value-prof.c (tree_value_profile_transformations): Recompute iterator
5002         when basic block changed.
5003
5004 2006-07-13  Nick Clifton  <nickc@redhat.com>
5005
5006         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
5007         walking the LOG_LINKS chain.
5008
5009 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
5010
5011         * doc/invoke.texi (C++ Dialect Options): Explain difference
5012         between -fvisibility-inlines-hidden and setting hidden
5013         visibility explicitly.
5014
5015 2006-07-12  Eric Christopher  <echristo@apple.com>
5016
5017         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
5018         (stmp-lipo): Depend on libgcc.a.
5019
5020 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
5021
5022         * tree.c: Fix a comment typo.
5023
5024 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
5025
5026         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
5027         dest.
5028         (umulhisi3_r): Likewise.
5029
5030 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
5031
5032         PR libstdc++/27878
5033         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
5034         x < 19, vs wchar_t support.
5035
5036 2006-07-12  Nick Clifton  <nickc@redhat.com>
5037
5038         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
5039         instead of -isa=sh4.
5040
5041 2006-07-12  Mike Stump  <mrs@apple.com>
5042
5043         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
5044
5045 2006-07-10  Eric Christopher  <echristo@apple.com>
5046
5047         * config/t-slibgcc-darwin: Rewrite.
5048
5049 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5050
5051         PR bootstrap/20437
5052         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
5053         dependencies.
5054
5055 2006-07-08  Matthias Klose  <doko@debian.org>
5056
5057         * doc/sourcebuild.texi: Fix typo.
5058
5059 2006-07-07  Mike Stump  <mrs@apple.com>
5060
5061         * toplev.c (process_options): Don't give -ffunction-sections may
5062         affect debugging warning for Mach-O.
5063
5064 2006-07-07  James E Wilson  <wilson@specifix.com>
5065
5066         * config/mips/mips.md (cpu): Add sb1a.
5067         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
5068         addition to sb1.  Adjust comments to clarify SB-1A differences from
5069         SB-1.
5070         (ir_sb1a_load): New.  Modify bypasses to use it.
5071         (ir_sb1a_simple_alu): Likewise.
5072         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
5073         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
5074         (mips_issue_rate): Add PROCESSOR_SB1A.
5075         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
5076         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
5077         (TARGET_SB1): Add PROCESSOR_SB1A check.
5078         (TUNE_SB1): Likewise.
5079
5080         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
5081         * config/mips/mips.c (mips_store_data_bypass_p): New.
5082         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
5083         store_data_bypass_p.
5084
5085 2006-07-08  Paul Brook  <paul@codesourcery.com>
5086
5087         PR target/27991
5088         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
5089
5090 2006-07-07   Richard Guenther  <rguenther@suse.de>
5091
5092         PR middle-end/28268
5093         * tree.h (build_one_cst): Declare.
5094         * tree.c (build_one_cst): New function.
5095         * tree-ssa-math-opts.c (get_constant_one): Remove.
5096         (insert_reciprocals): Use build_one_cst.
5097         * fold-const.c (fold_plusminus_mult): Likewise.
5098
5099 2006-07-07  Roger Sayle  <roger@eyesopen.com>
5100
5101         * pointer-set.c (pointer_set_destroy): Correct whitespace.
5102         * cfgloopanal.c (dump_graph): Likewise.
5103         * dojump.c (discard_pending_stack_adjust): Likewise.
5104         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
5105         Likewise.
5106         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
5107         * function.c (finalize_block_changes): Likewise.
5108         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
5109         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
5110         * rtl.c (dump_rtx_statistics): Likewise.
5111         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
5112         Likewise.
5113         * varray.c (dump_varray_statistics): Likewise.
5114         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5115         decode_decimal64, encode_decimal128, decode_decimal128,
5116         decimal_real_to_decimal): Likewise.
5117
5118 2006-07-07  Richard Guenther  <rguenther@suse.de>
5119
5120         PR tree-optimization/28187
5121         * tree-vrp.c (vrp_operand_equal_p): New function.
5122         (vrp_bitmap_equal_p): Likewise.
5123         (update_value_range): Use them to compare old and new
5124         max and min values.
5125
5126 2006-07-06  Roger Sayle  <roger@eyesopen.com>
5127
5128         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
5129         a default case to switch statement to silence compiler warnings.
5130
5131 2006-07-06  Roger Sayle  <roger@eyesopen.com>
5132
5133         PR target/27968
5134         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
5135         the configured assembler supports the x87's ffreep mnemonic.
5136         * configure: Regenerate.
5137         * config.in: Regenerate.
5138
5139         * config/i386/i386.c (output_387_ffreep): New function.
5140         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
5141         (output_387_reg_move): Likewise.
5142
5143 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
5144
5145         Port to hosts whose 'sort' and 'tail' implementations
5146         treat operands with leading '+' as file names, as POSIX
5147         has required since 2001.  However, make sure the code still
5148         works on pre-POSIX hosts.
5149         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
5150         which says you should use "tail -c +N" rather than "tail +Nc".
5151         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
5152
5153 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
5154
5155         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
5156         argument name.
5157
5158 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
5159
5160         PR target/28150
5161         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
5162         PRE_{INC,DEC} of TFmode.
5163
5164 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
5165             Alan Modra  <amodra@bigpond.net.au>
5166
5167         PR target/28170
5168         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
5169         bounds. Simplify.
5170
5171 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5172
5173         PR target/28285
5174         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
5175         Remove duplicate gtu.
5176
5177 2006-07-05  Jason Merrill  <jason@redhat.com>
5178
5179         PR c++/13983
5180         PR c++/17519
5181         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
5182         * c-common.c (handle_packed_attribute): So don't copy it here.
5183         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
5184
5185 2006-07-05  Mike Stump  <mrs@apple.com>
5186
5187         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
5188
5189 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5190
5191         PR target/26146
5192         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
5193
5194 2006-07-05  Richard Guenther  <rguenther@suse.de>
5195
5196         PR target/28158
5197         * config/i386/i386.md (*negdf2_1): Restrict pattern to
5198         TARGET_SSE2 targets if using SSE math.
5199         (*absdf2_1): Likewise.
5200
5201 2006-07-05  Richard Guenther  <rguenther@suse.de>
5202
5203         PR tree-optimization/28162
5204         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
5205         make sure to convert the operands to the correct type.
5206
5207 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
5208
5209         PR tree-optimization/28218
5210
5211         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
5212         to calculate and free the dominator information.
5213
5214 2006-07-04  Peter O'Gorman  <peter@pogma.com>
5215
5216         * mklibgcc.in: chmod 644 before ranlib during install.
5217
5218 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
5219             J"orn Rennecke <joern.rennecke@st.com>
5220
5221         * configure.ac (.eh_frame data check): Use diff -b.
5222
5223 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5224
5225         PR bootstrap/18058
5226         * Makefile.in (BUILD_RTL): Add build/vec.o.
5227         (build/gencondmd.o): Filter out -fkeep-inline-functions.
5228         (build/genextract): Delete.
5229         (build/genautomata): Likewise.
5230
5231 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
5232
5233         PR target/28207
5234         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
5235         128-bit IBM long doubles for ABI_V4.
5236
5237 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
5238
5239         * tree.c (range_in_array_bounds_p): New predicate.
5240         * tree.h (range_in_array_bounds_p): Declare it.
5241         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
5242         return a less conservative answer.
5243         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
5244         and flag 'is_group'.
5245         (IS_ELEMENT_FOR_GROUP): New macro.
5246         (FOR_EACH_ACTUAL_CHILD): Likewise.
5247         (next_child_for_group): New helper function.
5248         (can_completely_scalarize_p): Take into account groups.
5249         (sra_hash_tree): Handle RANGE_EXPR.
5250         (sra_elt_eq): Likewise.
5251         (lookup_element): Be prepared for handling groups.
5252         (is_valid_const_index): Delete.
5253         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
5254         instead of is_valid_const_index.
5255         <ARRAY_RANGE_REF>: New case.
5256         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
5257         is_valid_const_index.
5258         <ARRAY_RANGE_REF>: Do not unconditionally punt.
5259         (scan_dump): Dump info for groups too.
5260         (decide_instantiation_1): Likewise.
5261         (decide_block_copy): Assert that the element is not a group.
5262         Propagate decision to groups.
5263         (generate_one_element_ref): Handle RANGE_EXPR.
5264         (mark_no_warning): Iterate over actual childs.
5265         (generate_copy_inout): Likewise.
5266         (generate_element_copy): Likewise.
5267         (generate_element_zero): Likewise.
5268         (generate_element_init_1): Likewise.
5269         (dump_sra_elt_name): Handle RANGE_EXPR.
5270
5271 2006-07-03  Roger Sayle  <roger@eyesopen.com>
5272
5273         PR tree-optimization/26251
5274         * tree-ssa-threadupdate.c (redirection_block_p): New function.
5275         (thread_block): When optimizing for size refuse to thread jumps
5276         that would require duplication of blocks other than redirection
5277         blocks.
5278
5279 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
5280
5281         * configure.ac: Fix thinko in previous check-in.
5282         * configure: Regenerate.
5283
5284 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
5285
5286         PR other/27063
5287         * configure.ac (for lang...): Simplify nesting of conditionals.
5288         Test subdir_requires for non-enabled languages.  Move processing
5289         of lang_opt_files and lang_tree_fiels below that test.
5290         * configure: Regenerate.
5291         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
5292
5293 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
5294
5295         * doc/gcov.texi (Invoking Gcov): Add a missing word.
5296
5297 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
5298
5299         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
5300         comment typos.
5301
5302 2006-06-29  Jason Merrill  <jason@redhat.com>
5303
5304         PR c++/26905
5305         PR c++/26612
5306         PR c++/27000
5307         PR c++/26984
5308         PR c++/19134
5309         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
5310         * c-common.c (c_determine_visibility): Handle it here.
5311         * c-decl.c (finish_decl): Call c_determine_visibility for
5312         functions, too.
5313         * flags.h (enum symbol_visibility): Sort from most to least visibility.
5314         * tree.h: Likewise.
5315         * varasm.c (default_assemble_visibility): Likewise.
5316         * c-common.c (handle_visibility_attribute): Complain about trying
5317         to give visibility to an already defined class, or trying to change
5318         declared visibility. Always attach the attribute.
5319
5320         PR c++/26905
5321         PR c++/21675
5322         PR c++/17470
5323         * attribs.c (decl_attributes): Ignore type-in-place attributes
5324         once the type has been defined.
5325
5326 2006-06-29  Roger Sayle  <roger@eyesopen.com>
5327
5328         PR middle-end/27428
5329         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
5330         to indicate the cpplib has issued an error message for us.
5331
5332 2006-06-29  Asher Langton  <langton2@llnl.gov>
5333
5334         PR target/25765
5335         * config/i386/i386.c (ix86_output_function_epilogue): Don't
5336         insert a label at the end of an function under Mach-O.
5337
5338 2006-06-29  Eric Christopher  <echristo@apple.com>
5339             Evan Cheng  <evan.cheng@apple.com>
5340
5341         * predicates.md (vector_all_ones_operand): New.
5342         (nonimmediate_or_sse_const_operand): Ditto.
5343         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
5344         * config/i386/i386.c (standard_sse_constant_opcode): Define.
5345         (standard_sse_mode_p): Ditto.
5346         (standard_sse_constant_p): Add case for -1 vector.
5347         (ix86_expand_vector_move): Try to use.
5348         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
5349         Call standard_sse_constant_opcode.
5350         (*movv4sf_internal): Ditto.
5351         (*movv2df_internal): Ditto.
5352
5353 2006-06-29  Roger Sayle  <roger@eyesopen.com>
5354
5355         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
5356         of XEXP to extract the operands of a MATCH_CODE rtx.
5357
5358 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
5359
5360         * tree.c (tree_size): Do not waste tail padding in
5361         struct tree_string and make the size be the same as
5362         build_string will generate.
5363
5364 2006-06-28  Jason Merrill  <jason@redhat.com>
5365
5366         PR c++/27768
5367         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
5368         may_aliases already in the tag's annotations to the bitmap.
5369
5370 2006-06-28  Roger Sayle  <roger@eyesopen.com>
5371
5372         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
5373
5374 2006-06-28  Roger Sayle  <roger@eyesopen.com>
5375
5376         * genpreds.c (generate_switch_p): New function.
5377         (add_mode_tests): Push the new mode test down inside an AND expr
5378         if this allows the switch-suitable MATCH_CODE to be near the root.
5379         (write_match_code_switch): New function to write a MATCH_CODE as
5380         a switch statement.
5381         (write_predicate_stmts): New function to write a predicate RTX
5382         expression as a sequence of statements.
5383         (write_one_predicate_function): Use write_predicate_stmts.
5384         (write_tm_constrs_h): Likewise.
5385
5386 2006-06-26  Fred Fish  <fnf@specifix.com>
5387
5388         * config/mips/t-sb1: New file.
5389         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
5390         tmake_file list.
5391
5392 2006-06-26  DJ Delorie  <dj@redhat.com>
5393
5394         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
5395
5396 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
5397             Jayant Sonar  <jayants@kpitcummins.com>
5398             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
5399
5400         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
5401         (subsi3, subsi3_1, subsi3_2): New.
5402         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
5403         * config/m32c/mov.md (SI mov peephole): New.
5404         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
5405         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
5406
5407 2006-06-26  Olivier Hainque  <hainque@adacore.com>
5408
5409         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
5410         a CALL_EXPR target function declaration.
5411
5412 2006-06-26  Richard Guenther  <rguenther@suse.de>
5413
5414         * tree.c (build_string): Do not waste tail padding in
5415         struct tree_string.
5416
5417 2006-06-26  Richard Guenther  <rguenther@suse.de>
5418
5419         * ggc-page.c (init_ggc): Add missing element to size_lookup
5420         table.
5421
5422         Revert
5423         2006-06-23  Richard Guenther  <rguenther@suse.de>
5424
5425         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
5426         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
5427         alignment requests instead.  Add verification code.
5428         Add struct tree_function_decl and struct tree_binfo size to
5429         extra_order_size_table.  Add missing element to size_lookup
5430         table.
5431
5432 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
5433
5434         PR middle-end/28151
5435         * fold-const.c (const_binop): Be prepared for self returning zero.
5436         Simplify code handling complex values.
5437
5438 2006-06-24  Olivier Hainque  <hainque@adacore.com>
5439
5440         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
5441         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
5442         aggregate types.
5443
5444 2006-06-24  Olivier Hainque  <hainque@adacore.com>
5445
5446         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
5447         ARRAY_REF, so have the callback called for the low bound expression.
5448
5449 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
5450
5451         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
5452         * c-typeck.c (c_common_type): Disallow operations on decimal float
5453         types and other float types.
5454         * convert.c (convert_to_real): Don't ignore conversions involving
5455         decimal float types.
5456
5457 2006-06-23  Olivier Hainque  <hainque@adacore.com>
5458
5459         * tree.c (max_int_size_in_bytes): New function, inspired from
5460         code in function.c:assign_temp.
5461         * tree.h (max_int_size_in_bytes): Declare.
5462         * function.c (assign_temp): Use it.
5463         * gimplify.c (create_tmp_var): Relax the assertions on the type
5464         properties, not mandating constant size any more.
5465         (force_constant_size): New static function.
5466         (gimple_add_tmp_var): Use it, forcing variable size to a
5467         constant upper bound if it is not constant on entry.
5468
5469 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
5470
5471         PR target/27789
5472         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
5473         for initialization and setting of one_only flag to ...
5474         (i386_pe_encode_section_info): ...here.
5475         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
5476         Recheck that the symbol has not been defined.
5477
5478 2006-06-23  Richard Guenther  <rguenther@suse.de>
5479
5480         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
5481         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
5482         alignment requests instead.  Add verification code.
5483         Add struct tree_function_decl and struct tree_binfo size to
5484         extra_order_size_table.  Add missing element to size_lookup
5485         table.
5486
5487 2006-06-22  Roger Sayle  <roger@eyesopen.com>
5488             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5489
5490         PR middle-end/28131
5491         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
5492         call to lang_hooks.types.type_for_mode returned NULL_TREE.
5493
5494 2006-06-23  Ben Elliston  <bje@au.ibm.com>
5495
5496         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
5497         negate dn -- manipulate it directly.
5498
5499 2006-06-22  Roger Sayle  <roger@eyesopen.com>
5500             Steven Bosscher  <stevenb.gcc@gmail.com>
5501
5502         PR target/27531
5503         * reload1.c (gen_reload): Call mark_jump_label on the new insns
5504         generated by gen_move_insn to add REG_LABEL notes if necessary.
5505
5506 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
5507
5508         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
5509         (leaf_entry): Remove use of MIN_ESA.
5510
5511 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
5512
5513         PR rtl-optimization/28121
5514         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
5515         the entry edge.
5516
5517 2006-06-21  DJ Delorie  <dj@redhat.com>
5518
5519         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
5520         (TN-16C-A156A/E).
5521         (mulhisi3_r): Likewise.
5522
5523 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
5524
5525         PR middle-end/28034
5526         * coverage.c (coverage_counter_alloc): Leave the index type
5527         unspecified.
5528         (coverage_counter_alloc): Use null arguments for operands 2 and 3
5529         of the ARRAY_REF.
5530
5531 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
5532
5533         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
5534         section from the "Options for Code Generation Conventions".
5535
5536 2006-06-21  Richard Henderson  <rth@redhat.com>
5537
5538         PR target/26347
5539         PR target/27082
5540         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
5541         symbols.
5542         (global_symbolic_operand): Allow weak symbols, even if local_p.
5543
5544 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
5545
5546         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
5547         (find_interesting_uses_address): Punt if above function returns true.
5548
5549 2006-06-21  Richard Guenther  <rguenther@suse.de>
5550
5551         * configure: Regenerated.
5552
5553 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
5554
5555         * config/mips/mips.c (function_arg): Where one part of a
5556         complex argument is in registers and the other part in the stack,
5557         return a REG not a PARALLEL.
5558
5559 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
5560
5561         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
5562         when cross-compiling.  Do not substitute libstdcxx_incdir.
5563         * configure: Regenerated.
5564
5565 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
5566
5567         * varasm.c (mergeable_string_section): Check for embedded NULs and
5568         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
5569         rather than TREE_STRING_LENGTH bytes.
5570
5571 2006-06-21  Richard Guenther  <rguenther@suse.de>
5572
5573         * ggc-page.c (extra_order_size_table): Add var_ann_d,
5574         tree_ssa_name, bitmap_element and phi_node with 4 arguments
5575         sizes.
5576
5577 2006-06-21  Richrad Guenther  <rguenther@suse.de>
5578
5579         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
5580         Limit iteration over the dominators.
5581
5582 2006-06-20  Roger Sayle  <roger@eyesopen.com>
5583
5584         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
5585         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
5586
5587 2006-06-20  Richard Guenther  <rguenther@suse.de>
5588         Michael Matz  <matz@suse.de>
5589
5590         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
5591         function.
5592         * alloc-pool.c (free_alloc_pool_if_empty): New function.
5593         * et-forest.h (et_free_pools): Prototype new function.
5594         * et-forest.c (et_free_tree_force): Free parent occurrence.
5595         (et_free_pools): New function.
5596         * dominance.c (free_dominance_info): Free et-forest alloc
5597         pools.
5598
5599 2006-06-20  Roger Sayle  <roger@eyesopen.com>
5600
5601         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
5602         integer modes, attempt to directly construct an integer constant.
5603
5604         * fold-const.c (native_encode_vector): Determine the size of each
5605         element from the vector type instead of the first vector element.
5606
5607         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
5608         if all of its elements/components are constant.
5609         (build_constructor_from_list): Likewise.
5610
5611 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
5612
5613         PR tree-optimization/27331
5614         * tree-data-ref.c (free_data_ref): New function.
5615         (create_data_ref): Fail if the data reference has unknown access
5616         function.
5617         (free_data_refs): Use free_data_ref.
5618
5619 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
5620
5621         PR middle-end/28075
5622         * tree-inline.c (setup_one_parameter): Strip useless
5623         type conversion before adding it to the IR.
5624         (declare_return_variable): Likewise.
5625
5626 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
5627
5628         PR c/27149
5629         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
5630
5631 2006-06-19  Mike Stump  <mrs@apple.com>
5632
5633         * tree.c (variably_modified_type_p): VM arguments don't make the
5634         type a VM type.
5635
5636 2006-06-19  Richard Guenther  <rguenther@suse.de>
5637
5638         * tree-ssa-pre.c (try_combine_conversion): Strip useless
5639         type conversions after folding.
5640
5641 2006-06-19  Richard Guenther  <rguenther@suse.de>
5642
5643         * ggc-page.c (extra_order_size_tab): Add entries with
5644         size of struct function and basic_block.
5645         (size_lookup): Extend to cover sizes up to 511.
5646         (ggc_alloc_stat): Adjust user.
5647         (ggc_pch_count_object): Likewise.
5648         (ggc_pch_alloc_object): Likewise.
5649         (ggc_pch_write_object): Likewise.
5650
5651 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
5652
5653         * tree-ssa-loop-niter.c (implies_ge_p): New function.
5654         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
5655         correctly.
5656
5657 2006-06-19  Denis Chertykov  <denisc@overta.ru>
5658
5659         * config/avr/libgcc.S : Correct my wrong previous commit.
5660
5661 2006-06-19  Roger Sayle  <roger@eyesopen.com>
5662
5663         PR target/27861
5664         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
5665         have stripped a SUBREG from the shift count, so we may need to
5666         convert_to_mode back to the type's mode before calling make_tree.
5667         Use new_amount instead of amount to avoid expanding a tree twice.
5668
5669 2006-06-19  Richard Guenther  <rguenther@suse.de>
5670
5671         PR middle-end/28045
5672         * fold-const.c (operand_equal_p): Check if the argument types
5673         have the same precision before stripping NOPs.
5674
5675 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
5676
5677         Fix PR tree-optimization/27341
5678         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
5679         statement we get.
5680         * tree-complex.c (pass_lower_complex): Update SMT usage.
5681
5682 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5683
5684         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
5685         Add a new alternative to the constraint strings. Add move of
5686         operand 1 to 3 to the splitter definition.
5687         ("doloop_si_long"): Second contraint alternative removed.
5688
5689 2006-06-08  Anatoly Sokolov <aesok@post.ru>
5690
5691         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
5692         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
5693         __AVR_HAVE_LPMX__.
5694         (AVR_HAVE_MOVW) Define.
5695         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
5696         (ASM_SPEC): Add avr25.
5697         (LINK_SPEC): Add avr25.
5698         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
5699         (base_arch_s): Add new member 'have_movw_lpmx'.
5700         (avr_arch_types): Init 'have_movw_lpmx'.
5701         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
5702         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
5703         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
5704         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
5705         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
5706         AVR_HAVE_MOVW.
5707         (avr_file_start): Do not output '.arh' derective.
5708         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
5709         (__do_copy_data): Use __AVR_HAVE_LPMX__.
5710         * config/avr/avr.md (mcu_enhanced): Delete.
5711         (mcu_have_movw): Define.
5712         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
5713         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
5714         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
5715         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
5716         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
5717         attiny861 and at86rf401 devices.
5718
5719 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
5720
5721         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
5722         of 4096.
5723
5724 2006-06-17  Karl Berry  <karl@gnu.org>
5725
5726         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
5727         doc/gccint.texi, doc/install.texi (@dircategory): Use
5728         "Software development" instead of "Programming", following
5729         the Free Software Directory.
5730
5731 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
5732
5733         * config/i386/i386.c (legitimate_tls_address)
5734         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
5735         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
5736         (*tls_dynamic_gnu2_combine_64): Likewise.
5737
5738 2006-06-16  Richard Guenther  <rguenther@suse.de>
5739
5740         PR middle-end/27116
5741         * fold-const.c (negate_expr_p): Do not introduce undefined
5742         overflow in negating INTEGER_CSTs.
5743         (fold_negate_expr): Rename from negate_expr.  Revert last
5744         change for folding BIT_NOT_EXPR.  Change semantics to
5745         return NULL_TREE for non-simplified negations.  Do not
5746         strip type conversions and unify type handling.
5747         (negate_expr): New function, wrap around fold_negate_expr
5748         but ensure building a tree always.  Strip type conversions
5749         here, fold to result type.
5750         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
5751
5752 2006-06-16  Roger Sayle  <roger@eyesopen.com>
5753
5754         PR middle-end/27802
5755         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
5756         that (would) return their results in stack registers.
5757
5758 2006-06-16  Michael Matz  <matz@suse.de>
5759         Richard Guenther  <rguenther@suse.de>
5760
5761         * fold-const.c (fold_truthop): Only return new tree node if
5762         we canonicalized something.
5763
5764 2006-06-16  Richard Guenther  <rguenther@suse.de>
5765
5766         * function.h (enum function_frequency): Move declaration
5767         out of struct function.
5768         (struct function): Move bool fields and the enum to the bitfield
5769         section.  Reorder elements to avoid padding.  Remove unused
5770         fields left over from the RTL inliner removal.
5771         * function.c (free_after_compilation): Do not zero removed fields.
5772         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
5773         (ipa-type-escape.o): Likewise.
5774
5775 2006-06-16  Richard Guenther  <rguenther@suse.de>
5776
5777         * cgraph.h (struct cgraph_local_info): Turn bool elements
5778         into a bitfield.
5779         (struct cgraph_node): Likewise.
5780         (struct cgraph_varpool_node): Likewise.
5781
5782 2006-06-15  Richard Guenther  <rguenther@suse.de>
5783
5784         * fold-const.c (fold_truth_not_expr): Rename from
5785         invert_truthvalue.  Give it fold_* semantics to avoid
5786         generating garbage.
5787         (invert_truthvalue): New function.  Wrapper around
5788         fold_truth_not_expr.
5789         (optimize_minmax_comparison): Avoid creating garbage.
5790         (fold_unary): Use fold_truth_not_expr for folding
5791         TRUTH_NOT_EXPR.
5792         (fold_ternary): Replace uses of invert_truthvalue with
5793         fold_truth_not_expr where applicable.
5794         * tree.h (fold_truth_not_expr): Prototype.
5795
5796 2006-06-16  Richard Guenther  <rguenther@suse.de>
5797
5798         PR tree-optimization/27781
5799         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
5800         * ipa-pure-const.c (target.h): Include.
5801         (analyze_function): Do not analyze functions that do not
5802         bind locally.
5803
5804 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
5805
5806         PR middle-end/27793
5807         * tree-dfa.c (referenced_vars_dup_list): Remove.
5808         (find_referenced_vars): Remove assert.
5809         (referenced_var_check_and_insert): Replace dup list with assert.
5810         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
5811         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
5812
5813 2006-06-15  Richard Guenther  <rguenther@suse.de>
5814
5815         * tree-ssa-structalias.c (alias_get_name): Avoid creating
5816         extra unused identifiers if not dumping.
5817         (create_variable_info_for): Likewise.
5818
5819 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
5820
5821         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
5822         (derive_constant_upper_bound): Derive more precise upper bound in
5823         common cases.  Return type changed to double_int.
5824         (record_estimate): Reflect the changed return type of
5825         derive_constant_upper_bound.
5826         * double-int.c (double_int_zext, double_int_sext): Fix.
5827
5828 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
5829
5830         * configure.ac (CFLAGS): Get them from the toplevel or from the
5831         configure invocation.
5832         * configure: Regenerate.
5833         * Makefile.in (CFLAGS): Substitute value provided by configure.
5834
5835 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
5836
5837         PR c++/26559
5838         * c-common.h (c_finish_omp_atomic): Adjust declaration.
5839         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
5840         rather than calling add_stmt on it.
5841         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
5842
5843 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5844
5845         PR middle-end/27959
5846         * reload1.c (reload): Remove registers returned by update_eliminables
5847         from used_spill_regs.
5848
5849 2006-06-13  DJ Delorie  <dj@redhat.com>
5850
5851         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
5852
5853 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
5854
5855         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
5856         html__strip_dir, html__mkdir_p. Enhance install-html target.
5857         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
5858         * configure: Regenerate.
5859
5860 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
5861
5862         * fold-const.c (fold_cond_expr_with_comparison): Check for
5863         Objective-C++ as language in deciding COND_EXPR transformation.
5864
5865 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
5866
5867         PR target/28014:
5868         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
5869         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
5870         * config/sh/lib1funcs.h (SL, SL1): Define.
5871         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
5872         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
5873         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
5874         (OBJS_Os_4_200): New variable.
5875         ($(T)libgcc-Os-4-200.a): Use it.
5876         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
5877         when dividing 1 and/or by 0.
5878
5879 2006-06-13  Roger Sayle  <roger@eyesopen.com>
5880
5881         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
5882         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
5883         * configure: Regenerate.
5884
5885 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
5886
5887         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
5888         for real instruction.
5889
5890 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5891
5892         PR middle-end/26807
5893         * haifa-sched.c (check_cfg): Handle special case.
5894
5895 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
5896
5897         PR debug/26754
5898         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
5899         Add debug_info parameter.  Chain the vars to the BLOCK instead
5900         of the BIND_EXPR if debug info are requested for them.
5901         (pop_gimplify_context): Adjust for above change.
5902         (gimple_add_tmp_var): Likewise.
5903         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
5904         Add bool parameter.
5905         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
5906         (convert_local_reference): Likewise.
5907         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
5908         (finalize_nesting_tree_1): Request that debug info be emitted
5909         for debug_var_chain.
5910
5911 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5912
5913         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
5914         for PR target/27863.
5915
5916 2006-06-13  Richard Guenther  <rguenther@suse.de>
5917
5918         PR middle-end/27536
5919         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
5920
5921 2006-06-13  Richard Guenther  <rguenther@suse.de>
5922
5923         PR tree-optimization/27830
5924         * tree-inline.c (copy_body_r): For copying the operand
5925         of an ADDR_EXPR make sure to fold &* afterwards.
5926
5927 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
5928
5929         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
5930         lvalues in the fb_none case with side-effects.
5931
5932 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
5933
5934         * tree-flow.h: Remove the prototype for
5935         compute_phi_arg_on_exit.
5936         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
5937         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
5938         Remove.
5939
5940 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
5941
5942         * builtins.c (expand_builtin_return_addr): Only use
5943         frame_pointer_rtx when count == 0 and we are expanding
5944         __builtin_return_address.
5945
5946 2006-06-12  Fred Fish  <fnf@specifix.com>
5947
5948         * config/mips/mips.c (mips_file_start): Create special section
5949         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
5950
5951 2006-06-11  Eric Christopher  <echristo@apple.com>
5952
5953         PR middle-end/27948
5954         * stor-layout.c (place_field): Remove check for
5955         remaining_in_alignment when aligning at the end of a run.
5956
5957 2006-06-11  Eric Christopher  <echristo@apple.com>
5958
5959         PR 27542
5960         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
5961         pragma.
5962
5963 2006-06-11  Roger Sayle  <roger@eyesopen.com>
5964
5965         PR target/27858
5966         Revert incorrect fix for PR target/27158
5967         2006-05-08  Roger Sayle  <roger@eyesopen.com>
5968         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
5969         of a reg_equiv_constant if the result is a legitimate constant.
5970
5971 2006-06-11  Roger Sayle  <roger@eyesopen.com>
5972
5973         PR target/27158
5974         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
5975         extract a CONST_VECTOR element and interpret it as an integer.
5976         (vspltis_constant): Use const_vector_elt_as_int instead of the
5977         macro CONST_VECTOR_ELT in order to handle FP vector modes.
5978         * config/rs6000/predicates.md (easy_vector_const): Consider
5979         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
5980
5981 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5982
5983         PR middle-end/27942
5984         * stor-layout.c (update_alignment_for_field): Don't add extra
5985         alignment for packed non-bitfield fields in ms_bitfield_layout_p
5986         code.
5987
5988 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
5989
5990         * config/mips/t-rtems: Add EL/EB multilib variants.
5991
5992 2006-06-09  Mike Stump  <mrs@apple.com>
5993
5994         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
5995
5996 2006-06-09  David Daney  <ddaney@avtrex.com>
5997
5998         * doc/install.texi: Add binutils version recommendation for mips-*-*.
5999
6000 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
6001
6002         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
6003
6004 2006-06-09  Richard Guenther  <rguenther@suse.de>
6005
6006         PR tree-optimization/26998
6007         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
6008         of signed types, only TYPE_MIN_VALUE is special, but for both,
6009         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
6010         in this case, as is -fwrapv.
6011
6012 2006-06-08  Mike Stump  <mrs@apple.com>
6013
6014         PR target/26427
6015         * config/darwin.c (darwin_asm_output_anchor): Disable
6016         -fsection-anchors on darwin for now.
6017         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
6018         * rs6000/rs6000.c (optimization_options): Likewise.
6019
6020 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6021
6022         PR target/27421
6023         * config/i386/i386.c (classify_argument): Skip fields with invalid
6024         types in unions.
6025
6026 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
6027
6028         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
6029         (cse_insn): Likewise for the stack_pointer_rtx.
6030
6031 2006-06-08  Roger Sayle  <roger@eyesopen.com>
6032
6033         * tree-ssa-dom.c (record_conditions): Only record "unordered"
6034         conditions from floating point comparisons.
6035
6036 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
6037
6038         PR middle-end/27733
6039         * expmed.c (struct alg_hash_entry): Fix type of field T
6040         to match synth_mult argument.
6041         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
6042
6043 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6044
6045         PR target/27863
6046         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
6047         block boundaries.
6048
6049 2006-06-08  Richard Guenther  <rguenther@suse.de>
6050
6051         PR middle-end/27116
6052         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
6053         only, if overflow is defined and not trapping.
6054         (negate_expr): Likewise.
6055
6056 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
6057
6058         PR tree-optimization/27872
6059         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
6060         flag on the new exit edge of the unrolled loop.
6061
6062 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
6063
6064         PR rtl-optimization/26449
6065         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
6066
6067 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
6068
6069         PR middle-end/27793
6070         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
6071         referenced_variables with matching DECL_UID's.
6072         (find_referenced_vars): Make sure duplicate list is empty to start.
6073         (referenced_var_p): Remove.
6074         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
6075         Check if var is in the list, and add if needed.  Update the duplicate
6076         list if a different var is in the list with the same DECL_UID.
6077         (add_referenced_var): Call routine to check and insert.
6078         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
6079         * tree-flow.h (referenced_vars_dup_list): External declaration.
6080
6081 2006-06-07  Fred Fish  <fnf@specifix.com>
6082
6083         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
6084         into single entry.
6085
6086 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
6087
6088         PR target/27390
6089         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
6090         the imaginary and real parts of a clobbered register.
6091         Emit insn to set the imaginary part.
6092
6093 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
6094
6095         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
6096         in lieu of unwind-dw2-fde.c.
6097
6098 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6099
6100         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
6101
6102 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
6103
6104         PR target/27842
6105         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
6106         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
6107         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
6108         V4SImode temporaries and operations instead.
6109
6110 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
6111
6112         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
6113         dp-bit.c.
6114
6115 2006-06-06  Mike Stump  <mrs@apple.com>
6116
6117         * Makefile.in: Rename to htmldir to build_htmldir to avoid
6118         installing during build.
6119
6120 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6121
6122         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
6123         value to 0.
6124         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
6125         * config/ia64/ia64.c (params.h): New header.
6126         (ia64_optimization_options): New function to adjust parameters.
6127         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
6128         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
6129         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
6130
6131 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
6132
6133         * stor-layout.c (debug_rli): Fix a typo in a debug message.
6134
6135 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
6136
6137         PR target/27051
6138         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
6139
6140 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
6141             Victor Kaplansky  <victork@il.ibm.com>
6142
6143         PR tree-optimization/26360
6144         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
6145         stmts.
6146
6147 2006-06-04  Roger Sayle  <roger@eyesopen.com>
6148             Andrew Pinski  <pinskia@physics.uc.edu>
6149
6150         PR middle-end/27382
6151         * c-common.c (c_common_truthvalue_conversion): Explicitly check
6152         for LABEL_DECL before calling DECL_WEAK.
6153
6154         PR c/27150
6155         * c-typeck.c (build_binary_op): Likewise, explicitly check for
6156         LABEL_DECL and PARM_DECL.
6157
6158 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
6159
6160         PR c/25161
6161         PR c/27020
6162         * c-decl.c (grokdeclarator): Disallow variably modified types at
6163         file scope.  Avoid marking shared array type of constant size as
6164         VLA.
6165
6166 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6167
6168         PR c++/27601
6169         * c-common.c (fold_offsetof_1): Handle static members.
6170
6171 2006-06-04 Eric Christopher <echristo@apple.com>
6172
6173         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
6174         (debug_rli): Output value for remaining_in_alignment.
6175         (update_alignment_for_field): Unconditionalize
6176         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
6177         extra alignment code.
6178         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
6179         ms_bitfield_layout_p code. Rewrite handling of structure fields.
6180         * tree.h (record_layout_info_s): Remove prev_packed.
6181         * doc/extend.texi (ms_struct): Add documentation of format.
6182
6183 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
6184
6185         * tree.h: Declare folding_initializer.
6186         * builtins.c (fold_builtin_constant_p): Give definite answer
6187         if folding inside an initializer.
6188         * fold-const.c: Define folding_initializer.
6189         (START_FOLD_INIT): Save and then set folding_initializer.
6190         (END_FOLD_INIT): Restore folding_initializer.
6191
6192 2006-06-04  Richard Guenther  <rguenther@suse.de>
6193
6194         PR tree-optimization/27039
6195         * fold-const.c (fold_comparison): Handle pointer comparison
6196         again for all comparison codes.  Compare offsets in signed
6197         size type.
6198         (fold_binary): Move code from here.
6199
6200 2006-06-03  Roger Sayle  <roger@eyesopen.com>
6201
6202         PR target/26223
6203         * config/i386/i386.c (construct_container): Split static issued_error
6204         flag into issued_sse_arg_error, issued_sse_ret_error and
6205         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
6206         requires the use of x87 registers and the user explicitly
6207         specified the -mno-80387 command line option.
6208
6209 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
6210
6211         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
6212         HAVE_DECL_SIGALTSTACK.
6213         (MC_FLD): New.
6214         (segv_handler): Use MC_FLD.
6215         * configure.ac: Check for a sigaltstack declaration.
6216         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
6217         * configure: Regenerate.
6218         * config.in: Regenerate.
6219
6220 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
6221
6222         PR other/27850
6223         * Makefile.in (stmp-fixinc): Fix typo.
6224
6225 2006-06-02  Roger Sayle  <roger@eyesopen.com>
6226
6227         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
6228         are type correct.  Clean-up.
6229         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
6230         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
6231
6232 2006-06-01  DJ Delorie  <dj@redhat.com>
6233
6234         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
6235         shift, as we've disabled the "switch" insn that needs it.
6236
6237 2006-06-01  Per Bothner  <bothner@bothner.com>
6238
6239         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
6240         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
6241         * c-ppoutput.c (cb_define): Don't increment line 0.
6242
6243 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
6244
6245         * doc/invoke.texi: Add cpu_type power6.
6246         * config.gcc: Add cpu_type power6.
6247         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
6248         to power5+ with Altivec.
6249         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
6250         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
6251
6252 2006-05-30  Anatoly Sokolov <aesok@post.ru>
6253
6254         * config/avr/avr.h (SET_ASM_OP): Define.
6255
6256 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
6257
6258         * config/bfin/bfin.c: Fix comment typos.
6259
6260 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
6261
6262         PR 25453
6263         * doc/install.texi: Document --enable-bootstrap and
6264         --disable-bootstrap.
6265
6266 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
6267
6268         * doc/install.texi: Document that InfoZIP can replace jar.
6269
6270 2006-05-31  Roger Sayle  <roger@eyesopen.com>
6271
6272         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
6273         isn't available, directly generate the simpler x87 patterns without
6274         the (use (const_int 0)).
6275         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
6276         implementation isn't available.
6277         (*negdf2_1): Likewise.
6278         (*negxf2_1): XF mode negation is always done using the x87.
6279         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
6280
6281 2006-05-31  Roger Sayle  <roger@eyesopen.com>
6282
6283         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
6284         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
6285         cabs(z).
6286         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
6287
6288 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
6289
6290         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
6291         * config/bfin/bfin.c (basic-block.h): Include.
6292         (struct machine_function): New.
6293         (bfin_init_machine_status): New.
6294         (override_options): Initialize init_machine_status.
6295         (bfin_hardware_loop): New.
6296         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
6297         (DEF_VEC_P (loop_info)): New.
6298         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
6299         (struct loop_info): New.
6300         (loop_info): New typedef.
6301         (struct loop_work): New.
6302         (loop_work): New typedef.
6303         (DEF_VEC_O (loop_work)): New.
6304         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
6305         (bfin_dump_loops): New.
6306         (bfin_bb_in_loop): New.
6307         (bfin_scan_loop): New.
6308         (bfin_optimize_loop): New.
6309         (bfin_reorg_loops): New.
6310         (bfin_reorg): Use bfin_reorg_loops.
6311         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
6312         loop registers.
6313         (I_REGNO_P): Simplify.
6314         (DP_REGNO_P, DPREG_P): New macros.
6315         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
6316         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
6317         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
6318         Add LT_REGS, LC_REGS, LB_REGS.
6319         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
6320         'l' for LB_REGS.
6321         (REGNO_REG_CLASS): Deal with loop registers.
6322         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
6323         letters.
6324         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
6325         New constants for loop registers.
6326         (UNSPEC_LSETUP_END): New.
6327         (seq_insns): New define_attr. Set it for appropriate insns.
6328         (movsi_insn): Add alternatives for move from/to
6329         loop count registers.
6330         (doloop_end): New define_expand.
6331         (loop_end): New define_insn.
6332         (define_split for bad doloop_end): New.
6333         (lsetup_with_autoinit): New define_insn.
6334         (lsetup_without_autoinit): New define_insn.
6335         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
6336         * config/bfin/predicates.md (lc_register_operand): New.
6337         (lt_register_operand): New.
6338         (lb_register_operand): New.
6339         (nondp_register_operand): New.
6340         (nondp_reg_or_memory_operand): New.
6341         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
6342
6343 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
6344
6345         * config/bfin/bfin.c (bfin_delegitimize_address): New.
6346         (TARGET_DELEGITIMIZE_ADDRESS): Define.
6347
6348 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
6349
6350         * Makefile.in (CATALOGS): Add po/ prefix.
6351         * configure: Regenerated.
6352
6353 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
6354
6355         PR target/27829
6356         * arm.c (arm_print_operand case 'S'): Validate that the operand is
6357         a shift operand before calling shift_op.  Avoid redundant call of
6358         shift_op.
6359
6360 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
6361             DJ Delorie  <dj@redhat.com>
6362
6363         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
6364         we're inserting is a singlt-bit constant.
6365
6366 2006-05-30  Roger Sayle  <roger@eyesopen.com>
6367
6368         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
6369         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
6370
6371 2006-05-30  Roger Sayle  <roger@eyesopen.com>
6372
6373         PR tree-optimization/23452
6374         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
6375         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
6376         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
6377         complex values and with -ffast-math for FP complex values.
6378
6379 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
6380
6381         * c-common.h: Remove the prototype for yyparse.
6382         * rtl.h: Remove the prototype for init_loop.
6383
6384 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
6385
6386         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
6387         calling recog.
6388
6389 2006-05-30  Roger Sayle  <roger@eyesopen.com>
6390
6391         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
6392         and rotate cases.
6393         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
6394         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
6395
6396 2006-05-30  Dirk Mueller  <dmueller@suse.de>
6397
6398         PR c/27273
6399         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
6400         for CONSTANT_CLASS_P expresisons.
6401
6402 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6403
6404         PR c/27718
6405         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
6406
6407 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
6408
6409         PR tree-optimization/27779
6410         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
6411         initial_condition instead of CHREC_LEFT.
6412
6413 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
6414
6415         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
6416         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
6417         Make prototypes ISO C90.
6418
6419 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
6420             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
6421
6422         * see.c (see_analyze_one_def): Correct check.
6423         (see_get_extension_data): Check if extension is parallel.
6424         (see_get_extension_reg): Likewise.
6425
6426 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
6427
6428         PR target/27790
6429         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
6430         into register for (code == GTU).
6431
6432 2006-05-29  Roger Sayle  <roger@eyesopen.com>
6433
6434         PR tree-optimization/24964
6435         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
6436         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
6437         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
6438         abs(x)*abs(x) as x*x for scalar floating point modes.
6439
6440 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
6441
6442         PR middle-end/27745
6443         * lambda-code.c (perfect_nestify): Don't copy statements
6444         in the inner loop: move them to the inner loop header.
6445
6446 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
6447
6448         PR 26237
6449         * c-tree.texi: Document OpenMP directives and clauses.
6450
6451 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
6452
6453         * varasm.c (globalize_decl): Fix indentation.
6454
6455 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
6456
6457         PR 26242
6458         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
6459         pass_fre, pass_store_ccp, pass_copy_prop,
6460         pass_store_copy_prop, pass_merge_phi, pass_nrv,
6461         pass_return_slot, pass_object_size, pass_lim,
6462         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
6463         pass_loop_prefetch and pass_stdarg.
6464
6465 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6466
6467         * config/bfin/bfin.opt (mfdpic): New option.
6468         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
6469         (EXTRA_MULTILIB_PARTS): Likewise.
6470         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
6471         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
6472         multilib.
6473         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
6474         (CRT_CALL_STATIC_FUNCTION): New.
6475         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
6476         -shared.
6477         (CRT_CALL_STATIC_FUNCTION): New.
6478         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
6479         FD-PIC moves.
6480         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
6481         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
6482         (initialize_trampoline): Changed to handle FD-PIC code generation.
6483         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
6484         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
6485         (override_options): Disallow -mid-shared-library -mfdpic combination.
6486         Can't do unaligned ops if FD-PIC.
6487         Turn off flag_pic if trying to generate non-id-shared-library
6488         non-fdpic code, since it's not supported.
6489         (bfin_assemble_integer): New function.
6490         (TARGET_ASM_INTEGER): Define.
6491         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
6492         __BFIN_FDPIC__.
6493         * config/bfin/crtn.s: Restore them.
6494         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
6495         if TARGET_FDPIC.
6496         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
6497         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
6498         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
6499         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
6500         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
6501         call-used.
6502         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
6503         FDPIC_REGS and FDPIC_FPTR_REGS.
6504         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
6505         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
6506         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
6507         (load_funcdescsi): New pattern.
6508         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
6509         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
6510         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
6511
6512 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
6513
6514         * gcse.c, rtlanal.c: Remove obsolete comments associated with
6515         loop.c.
6516
6517         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
6518
6519         * tree-flow.h: Remove the prototype for add_type_alias.
6520         * tree-ssa-alias.c (add_type_alias): Remove.
6521
6522 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
6523
6524         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
6525         config/fr30/fr30.md, config/i386/i386-interix.h,
6526         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
6527         config/sh/superh64.h, config/v850/v850.c, df-core.c,
6528         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
6529         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
6530         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
6531         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
6532         Follow spelling conventions.
6533         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
6534         Follow spelling conventions.
6535
6536 2006-05-27  Richard Guenther  <rguenther@suse.de>
6537
6538         PR middle-end/27773
6539         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
6540         to produce a constant of value 1 of generic type.
6541
6542 2006-05-27  Dirk Mueller  <dmueller@suse.de>
6543
6544         * cgraphunit.c (decide_is_function_needed): Fix wrong
6545         PR reference.
6546
6547 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
6548
6549         PR rtl-optimization/27661
6550         * reload.c (find_reloads): When reloading a VOIDmode constant
6551         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
6552         use Pmode as mode of the reload register.
6553
6554 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6555
6556         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
6557         is enabled at -O and above.
6558
6559 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6560
6561         PR target/27571
6562         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
6563         table data.
6564
6565 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
6566
6567         PR c++/20103
6568         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
6569         for anonymous variables explicitly declared by front ends.
6570
6571 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6572
6573         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
6574         (struct alias_info): Add new field ref_all_symbol_mem_tag.
6575         * tree-ssa-alias.c (compute_may_aliases): If the program contains
6576         ref-all pointers, run a finalization pass for them.
6577         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
6578         (finalize_ref_all_pointers): New function.
6579         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
6580         regular pointer type to a ref-all pointer type.
6581         (get_tmt_for): Return the special memory tag for ref-all pointers.
6582
6583 2006-05-25  Richard Guenther  <rguenther@suse.de>
6584
6585         PR middle-end/27743
6586         * fold-const.c (fold_binary): Do not look at the stripped
6587         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
6588
6589 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6590
6591         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
6592         for LT and GT if the computed range is effectively empty.
6593
6594 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6595
6596         PR target/27627
6597         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
6598         mips_quad_format formats instead of ieee_single_format,
6599         ieee_double_format and ieee_quad_format formats, respectively.
6600
6601 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
6602
6603         PR tree-optimization/27639
6604         PR tree-optimization/26719
6605         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
6606         call to scev_probably_wraps_p.
6607         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
6608         used_in_pointer_arithmetic_p, convert_step): Removed.
6609         (nowrap_type_p): New function.
6610         (scev_probably_wraps_p): Rewritten.
6611         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
6612         chrec_convert if chrec_convert_aggressive might have been used.
6613         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
6614         scev_direction): New functions.
6615         (chrec_convert): Changed to a wrapper over chrec_convert_1.
6616         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
6617         instead of convert_step.
6618         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
6619         (convert_step): Declaration removed.
6620         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
6621
6622 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
6623
6624         * df-core.c: Added to header comments.
6625         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
6626         df_ur_bb_info, df_urec_bb_info): Added comments.
6627         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
6628         urec, ri problems): Fixed header comments.
6629         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
6630         code from df_rd_transfer_function.
6631
6632 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
6633
6634         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
6635         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
6636         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
6637
6638 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
6639
6640         * expr.c (undefined_operand_subword_p): New.
6641         (emit_move_multi_word): Do not generate move from undefined bits
6642         of a paradoxical subreg.
6643
6644 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
6645
6646         PR rtl-optimization/27736
6647         * combine.c (replaced_rhs_value): New variable.
6648         (combine_instructions): Set it.
6649         (distribute_notes): When distributing a note in replaced_rhs_insn,
6650         check whether the value was used in replaced_rhs_value.
6651
6652 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
6653
6654         PR c++/26757
6655         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
6656         add_referenced_var instead of add_referenced_tmp_var.
6657         * tree-complex.c (create_one_component_var): Use add_referenced_var.
6658         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
6659         add_referenced_var.
6660         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
6661         tree_optimize_tail_calls_1): Use add_referenced_var.
6662         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
6663         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
6664         Use add_referenced_var.
6665         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
6666         * gimplify.c (force_gimple_operand): Use add_referenced_var.
6667         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
6668         Use add_referenced_var.
6669         * tree-dfa.c (struct walk_state): Remove.
6670         (find_referenced_vars): Remove walk state and vars_found hash table.
6671         (make_rename_temp): Use add_referenced_var.
6672         (find_vars_r): Pass less parameters to add_referenced_var.
6673         (referenced_var_p): New.  Is var in referenced_var hash table.
6674         (referenced_var_insert): Assert var isn't already in hash table.
6675         (add_referenced_var): Don't need walk_state parameter.  Add var if it
6676         isn't already in the hash table.
6677         (add_referenced_tmp_var): Remove.
6678         (find_new_referenced_vars_1): Use add_referenced_var.
6679         * tree-ssa-pre.c (create_expression_by_pieces,
6680         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
6681         Use add_referenced_var.
6682         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
6683         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
6684         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
6685         add_referenced_var.
6686         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
6687         vect_create_data_ref_ptr, vect_create_destination_var,
6688         vect_init_vector, vect_build_loop_niters,
6689         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
6690         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
6691         Use add_referenced_var.
6692         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
6693         * tree-flow.h (add_referenced_tmp_var): Remove prototype
6694         (add_referenced_var): Add prototype.
6695         * tree-ssa-structalias.c (get_constraint_for,
6696         intra_create_variable_infos): Use add_referenced_var.
6697
6698 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
6699
6700         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
6701         big-endian paradoxical subregs.
6702         * var-tracking.c (struct micro_operation_def): Document that,
6703         for modify micro operations, insn is the subsequent instruction.
6704         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
6705         (var_reg_set, var_mem_set): ... new functions.
6706         (add_stores): Record subsequent insn.
6707         (compute_bb_dataflow): Use new functions for MO_USE.
6708         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
6709         notes after the insn, and modify notes before the insn known
6710         to be the subsequent one.
6711         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
6712
6713 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
6714
6715         PR target/27696
6716         * config/i386/i386.c (ix86_expand_builtin): Use
6717         gen_sse3_monitor64 for TARGET_64BIT.
6718
6719 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
6720
6721         PR rtl-optimization/26375
6722         PR rtl-optimization/26855
6723         * df-problems (df_ru_bb_local_compute_process_def): Removed update
6724         to gen set.
6725         (df_ru_bb_local_compute): Reversed statements and removed bogus
6726         comment explaining why they should be in wrong order.
6727         (df_ru_dump, df_rd_dump): Enhanced debug info.
6728         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
6729         debug info.
6730         * ddg.c (add_deps_for_def): Converted use of reaching defs to
6731         reaching uses and fixed space problem.
6732
6733 2006-05-23  Jan Hubicka  <jh@suse.cz>
6734
6735         * cgraphunit.c (decide_is_function_needed): Also nested functions
6736         and functions declared inline can be optimized out at -O0.
6737
6738 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
6739
6740         * doc/install.texi (Configuration): Remove reference to CrossGCC
6741         FAQ which was gone.
6742         (Building): Ditto.
6743
6744 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
6745
6746         PR target/27266
6747         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
6748         ix86_compare_emitted is non-NULL.
6749
6750 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6751
6752         PR c++/27451
6753         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
6754         clobbers.
6755
6756 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
6757
6758         PR rtl-optimization/25514
6759         * combine.c (replaced_rhs_insn): New variable.
6760         (combine_instructions): Set replaced_rhs_insn when trying to replace
6761         a SET_SRC with a REG_EQUAL note.
6762         (distribute_notes): Use replaced_rhs_insn when determining the live
6763         range of a REG_DEAD register.
6764
6765 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
6766             Anatoly Sokolov <aesok@post.ru>
6767
6768         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
6769         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
6770         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
6771         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
6772         atmega3290, atmega649, atmega6490, atmega406, atmega640,
6773         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
6774         at90usb647, at90usb1286 and at90usb1287 devices.
6775         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6776         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6777
6778 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
6779
6780         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
6781
6782 2006-05-22  Richard Guenther  <rguenther@suse.de>
6783
6784         Revert
6785         2006-01-31  Richard Guenther  <rguenther@suse.de>
6786         Paolo Bonzini  <bonzini@gnu.org>
6787
6788         * doc/install.texi (--disable-libgcc-math): Document.
6789
6790 2006-05-22  Richard Guenther  <rguenther@suse.de>
6791
6792         Revert
6793         2006-01-31  Richard Guenther  <rguenther@suse.de>
6794
6795         * doc/invoke.texi (-msselibm): Document.
6796         * target.h (expand_library_builtin): New target hook.
6797         * builtins.c (expand_builtin): Use expand_library_builtin.
6798         (default_expand_library_builtin): New function.
6799         * gcc.c (LINK_GCC_MATH_SPEC): Define.
6800         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
6801         (link_gcc_math_spec): Declare.
6802         (static_specs): Add link_gcc_math_spec.
6803         * expr.h (default_expand_library_builtin): Declare.
6804         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
6805         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
6806         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
6807         * config/i386/i386.opt (msselibm): New target option.
6808         * config/i386/i386.c (ix86_builtin_function_variants): New array.
6809         (ix86_init_sse_abi_builtins): New function.
6810         (ix86_expand_library_builtin): Likewise.
6811         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
6812         (override_options): Handle error conditions wrt -msselibm.
6813         (ix86_builtins): Add function codes for SSE2 ABI builtins.
6814         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
6815         * doc/extend.texi (__builtin_sse2_*): Document new target specific
6816         builtins.
6817
6818 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6819
6820         PR c/27420
6821         * c-common.c (self_promoting_args_p): Skip erroneous args.
6822
6823         PR c/26818
6824         * c-decl.c (finish_struct): Skip erroneous fields.
6825
6826 2006-05-22  Nick Clifton  <nickc@redhat.com>
6827
6828         * config/cris/cris.opt (march): Remove VarExists attribute.
6829         (max-stackframe=): Likewise.
6830
6831 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
6832
6833         * doc/rtl.texi: Fix a typo.
6834         * see.c: Fix comment typos.
6835
6836         * tree-ssa-structalias.h (alias_info): Remove num_references.
6837
6838 2006-05-21  Mike Stump  <mrs@apple.com>
6839
6840         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
6841         (BAD2): Add.
6842         (darwin_pragma_options): Use BAD instead.
6843         (darwin_pragma_unused): Likewise.
6844         (darwin_pragma_ms_struct): Likewise.
6845
6846 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
6847
6848         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
6849
6850 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
6851
6852         PR rtl-optimization/27671
6853         * simplify-rtx.c (simplify_relational_operation_1): Fix
6854         simplifications of (eq/ne (xor x y) y) and
6855         (eq/ne (xor x y) x).
6856
6857         PR tree-optimization/26622.
6858         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
6859         on arg1.
6860
6861 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
6862
6863         * tree-cfg.c: Prune whitespace.
6864         (debug_tree_cfg): Point to correct header containing the
6865         TDF_* defines.
6866
6867 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
6868
6869         PR middle-end/25776
6870         * cgraphunit.c (verify_cgraph_node): Typo in error message.
6871
6872 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
6873
6874         PR middle-end/25776
6875         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
6876         or sorry count is non zero.
6877
6878 2006-05-20  Andreas Schwab  <schwab@suse.de>
6879
6880         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
6881
6882 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
6883             Kenneth Zadeck <zadeck@naturalbridge.com>
6884
6885         PR rtl-optimization/26855
6886
6887         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
6888         multiword refs.
6889         (df_scan_alloc): Added code to properly handle multiword hard
6890         registers and add all_blocks parameter.
6891         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
6892         code to properly handle multiword hard registers.
6893         (df_rescan_blocks): Added code to remove deleted blocks from
6894         bitmap.
6895         (df_ref_create_structure, df_ref_record): Added code to properly
6896         handle subregs.
6897         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
6898         and set DF_REF_PARTIAL.
6899         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
6900         (df_uses_record): Added DF_REF_PARTIAL for subreg.
6901         (df_scan_add_problem): Added flags parameter.
6902         (df_ref_create_structure): Changed switching structure.
6903         (df_bb_refs_record): Fixed case where duplicate artificial refs
6904         were created.  Changed location of flags.
6905         (df_record_entry_block_defs): Added code to make stack pointer
6906         live in entry block.  Refined cases where frame pointer is needed.
6907         Changed location of flags.
6908         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
6909         (df_set_state): Removed function.
6910         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
6911         df_insn_create_insn_record, df_insn_refs_delete,
6912         df_ref_create_structure): Formatting changes.
6913         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
6914         df_delete_basic_block): New function.
6915         (df_init): Changed location of flags.
6916         (df_add_problem): Added flags parameter and the way flags are
6917         processed.
6918         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
6919         debug_df_chain): Improved debugging output.
6920         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
6921         (df_refs_chain_dump): Removed df parameter.
6922         (df_iterative_dataflow): Added consistency check.
6923         (df_prune_to_subcfg): Made public.
6924         (df_analyze_problem): Added blocks_to_init parameter and made
6925         public.
6926         (df_ref_record, df_bb_refs_record, df_mark_reg,
6927          df_record_exit_block_uses): Whitespace changes.
6928         (df_dump): Whitespace changes.
6929         * df.h: Some reordering to remove forward references.
6930         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
6931         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
6932         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
6933         (dataflow.flags): New field.
6934         (df.flag): Deleted field.
6935         (df_alloc_function): Added additional bitmap parameter.
6936         (df_dependent_problem_function): New type.
6937         (df_problem.changeable_flags): New field.
6938         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
6939         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
6940         (df_mw_hardreg): New struct.
6941         (DF_INSN_UID_MWS): New macro.
6942         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
6943         parameter.
6944         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
6945         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
6946         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
6947         (df_set_state): Removed function.
6948         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
6949         * df-problems.c (df_chain_dump): Removed df parameter.
6950         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
6951         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
6952         parameter.
6953         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
6954         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
6955         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
6956         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
6957         DF_REF_MUST_CLOBBER cases.
6958         (df_ru_bb_local_compute_process_def,
6959         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
6960         df_lr_bb_local_compute, df_ur_bb_local_compute,
6961         df_chain_create_bb): Made subreg aware.
6962         (df_ru_bb_local_compute, df_rd_bb_local_compute,
6963         df_lr_bb_local_compute, df_lr_bb_local_compute,
6964         df_chain_create_bb): Cleanup to use proper macros.
6965         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
6966         code to fixup bitvectors.
6967         (df_ri_alloc): Cleared lifetime.
6968         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
6969         df_create_unused_note): New function.
6970         (df_ri_bb_compute, df_ri_compute): Added code to create/update
6971         REG_DEAD and REG_UNUSED notes as well as register information.
6972         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
6973         df_chains_dump): Fixed crash if problem was never run.
6974         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
6975         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
6976         df_ri_add_problem): Processes flags in uniform manner.
6977         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
6978         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
6979         df_rd_dump, df_urec_free_bb_info): Formatting changes.
6980         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
6981         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
6982         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
6983         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
6984         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
6985         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
6986         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
6987         * see.c (see_initialize_data): Ditto.
6988         * final.c (rest_of_clean_state) Added regstack_completed.
6989         * rtl.h (regstack_completed): Ditto.
6990         * reg-stack.c (regstack_completed): Ditto.
6991
6992 2006-05-19  Mike Stump  <mrs@apple.com>
6993
6994         * c-tree.h (default_conversion): Remove.
6995         * c-common.h (default_conversion): Add.
6996
6997 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
6998
6999         * tree-vrp.c (valid_value_p): New function.
7000         (adjust_range_with_scev): Fail if the value of bound is not
7001         simple.
7002
7003 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
7004
7005         * config/mips/linux-unwind.h: Include <asm/unistd.h>
7006         (mips_fallback_frame_state): Use syscall numbers to determine
7007         the appropriate li instruction for the current ABI.  Only use
7008         __NR_sigreturn for o32.
7009
7010 2006-05-19  Nicolas Setton  <setton@adacore.com>
7011
7012         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
7013         * langhooks.c (lhd_dwarf_name): New function.
7014         * langhooks-def.h (lhd_dwarf_name): Declare.
7015         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
7016         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
7017         * ada/misc.c (gnat_dwarf_name): New function.
7018         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
7019
7020 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
7021
7022         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
7023         libgcc2.h.
7024         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
7025         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
7026         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
7027         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
7028         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
7029         determine the size of Wtype, etc.
7030         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
7031         (swfloatfuncs): New variable.
7032         (dwfloatfuncs): Likewise.
7033         (lib2funcs): Remove floating-point conversion functions from
7034         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
7035         the set of conversion routines needed.  Allow entries to specify
7036         an object name, filename and word size.  Update users accordingly.
7037         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
7038         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
7039
7040         Revert:
7041
7042         2006-02-08  Roger Sayle  <roger@eyesopen.com>
7043
7044         PR target/22209
7045         * config/fixtfdi.c: New libgcc source file.
7046         * config/fixunstfdi.c: New source file.
7047         * config/floatditf.c: New source file.
7048         * config/floatunditf.c: New souce file.
7049         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
7050         files above instead of config/mips/_tilib.c.
7051         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
7052
7053 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7054
7055         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
7056         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
7057
7058 2006-05-18  Mike Stump  <mrs@apple.com>
7059
7060         Fix up vla, vm and [*] sematics.
7061
7062         PR c/18740
7063         PR c/7948
7064         PR c/25802
7065         PR c/27673
7066         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
7067         (c_vla_unspec_p): Add.
7068         (c_vla_type_p): Add.
7069         * c-decl.c (struct c_scope): Add had_vla_unspec.
7070         (build_array_declarator): Add support for [*].
7071         (grokdeclarator): Likewise.
7072         (grokparms): Likewise.
7073         (get_parm_info): Likewise.
7074         * c-objc-common.c (c_vla_unspec_p): Likewise.
7075         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
7076         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
7077         typeof when argument is a variably modified type not inside sizeof or alignof.
7078         (c_parser_direct_declarator_inner): Propagate errors.
7079         (c_parser_sizeof_expression): Add support for [*].
7080         (c_parser_parms_declarator): Initialize had_vla_unspec.
7081         (c_parser_parms_list_declarator): Likewise.
7082         * c-typeck.c (c_vla_type_p): Add.
7083         (composite_type): Add support for vla compositing.
7084         (comptypes_internal): Add support for vla compatibility.
7085         (c_expr_sizeof_expr): Evaluate vla arguments.
7086         * tree.c (variably_modified_type_p): Update comment for [*].
7087
7088 2006-05-18  Michael Matz  <matz@suse.de>
7089
7090         PR target/27599
7091         * config.host: Make assignments to host_xmake_file cumulative.
7092         * config.host (*-darwin*): Test $host, not $target.
7093
7094 2006-05-12  Stuart Hastings  <stuart@apple.com>
7095
7096         * config/i386/i386.opt (-mstackrealign): New flag.
7097         * config/i386/i386.c (force_align_arg_pointer): New attribute.
7098         (ix86_handle_cconv_attribute): Emit error when
7099         force_align_arg_pointer attribute collides with too many regparms.
7100         (ix86_function_regparm): Limit regparms when used with
7101         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
7102         Support stack-realigning prologue in non-main functions.  Emit
7103         warning for nested functions under -mstackrealign, emit error for
7104         nested functions with force_align_arg_pointer attribute.
7105         * doc/extend.texi (force_align_arg_pointer): Document it.
7106         * doc/invoke.texi (-mstackrealign): Document it.
7107
7108 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
7109
7110         PR rtl-optimization/27477
7111         * combine.c (try_combine): Don't split a parallel consisting
7112         of two sets into two individual sets if both sets reference
7113         cc0.
7114
7115 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
7116
7117         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
7118         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
7119
7120         * doc/options.texi (VarExists): Updated.
7121
7122 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7123
7124         * unwind-dw2.c: Add declarations for uw_update_context and
7125         uw_frame_state_for.
7126         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
7127         detected, advance frame state and context once to skip over stub.
7128
7129 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
7130
7131         PR middle-end/20256
7132         PR middle-end/26435
7133         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
7134         Call rewrite_into_loop_closed_ssa only when something changed.
7135         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
7136         * lambda-code.c (can_convert_to_perfect_nest): Declared.
7137         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
7138         Test for perfect_nest_p here.  Fix formating.
7139         (replace_uses_equiv_to_x_with_y): Fix formating.
7140         (stmt_uses_op): Removed.
7141         (can_convert_to_perfect_nest): Removed loopivs parameter.
7142         Complete the test by checking the scalar dependences.
7143         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
7144         Fix formating.
7145
7146 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7147
7148         PR bootstrap/22541
7149         From Dan Kegel <dank@kegel.com>:
7150         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
7151
7152 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
7153
7154         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
7155         if the element type is variably modified without recursing.
7156
7157 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
7158
7159         PR middle-end/27332
7160         * tree-loop-linear.c (try_interchange_loops): Test for
7161         no data dependences.
7162
7163 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
7164
7165         PR tree-optimization/27548
7166         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
7167         range of ssa names that appear on abnormal edges.
7168         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
7169         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
7170
7171 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7172
7173         PR middle-end/27620
7174         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
7175
7176 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
7177
7178         PR middle-end/27415
7179         * tree.h (OMP_PARALLEL_COMBINED): Define.
7180         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
7181         (new_omp_context): Add is_combined_parallel argument.
7182         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
7183         new_omp_context caller.
7184         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
7185         Adjust gimplify_scan_omp_clauses callers.
7186         (omp_is_private): Issue errors if iteration variable is firstprivate
7187         or reduction in the current context.
7188         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
7189         on combined parallel workshare constructs.
7190
7191 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
7192
7193         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
7194         (gcc-options.o): New rule.
7195
7196         * optc-gen.awk: Protect variables for gcc-options.o with
7197         #ifdef GCC_DRIVER/#endif.
7198
7199 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
7200
7201         Fix PR tree-optimization/27373
7202         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
7203          (forward_propagate_addr_expr): Update call.
7204
7205 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
7206
7207         * doc/options.texi: Move the Negative option.
7208
7209 2006-05-16  Richard Guenther  <rguenther@suse.de>
7210
7211         PR tree-optimization/22303
7212         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
7213         from STRING_CSTs.
7214         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
7215         ccp_fold did not simplify the statement.
7216
7217 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
7218
7219         PR driver/26885
7220         * Makefile.in (GCC_OBJS): New.
7221         (OBJS-common): Add opts-common.o.
7222         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
7223         (cpp$(exeext)): Likewise.
7224         (gcc.o): Also depend on opts.h.
7225         (opts-common.o): New.
7226
7227         * common.opt (gcoff): Add Negative(gdwarf-2).
7228         (gdwarf-2): Add Negative(gstabs).
7229         (gstabs): Add Negative(gstabs+).
7230         (gstabs+): Add Negative(gvms).
7231         (gvms): Add Negative(gxcoff).
7232         (gxcoff): Add Negative(gxcoff+).
7233         (gxcoff+): Add Negative(gcoff).
7234         * config/i386/i386.opt (m32): Add Negative(m64).
7235         (m64): Add Negative(m32).
7236
7237         * doc/options.texi: Document the Negative option.
7238
7239         * gcc.c: Include "opts.h".
7240         (main): Call prune_options after expandargv.
7241
7242         * optc-gen.awk: Generate common declarations for all flag
7243         variables in options.c. Output the neg_index field.
7244
7245         * opts.c (find_opt): Moved to ...
7246         * opts-common.c: Here. New file.
7247
7248         * opts.h (cl_option): Add a neg_index field.
7249         (find_opt): New.
7250         (prune_options): Likewise.
7251
7252 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
7253
7254         PR middle-end/27573
7255         * omp-low.c (expand_omp_parallel): Don't assert
7256         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
7257         instead search for it.
7258
7259         PR c/27499
7260         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
7261         is signed.
7262
7263 2006-05-16  Andreas Schwab  <schwab@suse.de>
7264
7265         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
7266         defmac.
7267
7268 2006-05-15  Roger Sayle  <roger@eyesopen.com>
7269
7270         PR target/26600
7271         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
7272         integer constants other than zero are only legitimate on TARGET_64BIT.
7273         <CONST_VECTOR> Only zero vectors are legitimate.
7274         (ix86_cannot_force_const_mem): Integral and vector constants can
7275         always be put in the constant pool.
7276
7277 2006-05-16  DJ Delorie  <dj@redhat.com>
7278
7279         * crtstuff.c (__dso_handle): Set section from
7280         TARGET_LBIGCC_SDATA_SECTION if defined.
7281         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
7282         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
7283
7284 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
7285
7286         PR target/27599
7287         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
7288         host_xmake_file.
7289
7290 2006-05-16  Ben Elliston  <bje@au.ibm.com>
7291
7292         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
7293
7294 2006-05-15  Per Bothner  <per@bothner.com>
7295
7296         * tree.c: (last_annotated_node): Use source_locus typedef.
7297         This permits bootstrapping with --enable-mapped-location.
7298
7299 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
7300
7301         PR tree-optimization/26830
7302         * tree-into-ssa.c (struct ssa_name_info): Add age field.
7303         (info_for_ssa_name, current_info_for_ssa_name_age,
7304         blocks_to_update): New variables.
7305         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
7306         (clear_ssa_name_info, initialize_flags_in_bb,
7307         mark_block_for_update): New functions.
7308         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
7309         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
7310         prepare_def_site_for): Use mark_block_for_update.
7311         (mark_def_interesting): Assert that the processed block is marked in
7312         blocks_to_update.  Do not take blocks argument.
7313         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
7314         argument.
7315         (rewrite_update_init_block, rewrite_update_stmt): Only process
7316         blocks with statements to rewrite.
7317         (delete_update_ssa): Do not clear SSA_NAME_AUX.
7318         (update_ssa): Initialize and free blocks_to_update.  Do not
7319         clear flags on statements.  Do not use blocks bitmap.
7320         * tree.h (SSA_NAME_AUX): Removed.
7321         (struct tree_ssa_name): Removed aux field.
7322         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
7323
7324 2006-05-15  Richard Guenther  <rguenther@suse.de>
7325
7326         PR tree-optimization/27603
7327         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
7328         Do computations in original type.
7329
7330 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
7331
7332         * see.c: Code style changes such as redundant paranthesis,
7333         redundant intialization of local variables etc.
7334         (see_main): Declared now as static.
7335         * doc/invoke.texi: Update that -fsee is not enabled by
7336         default at -O3.
7337
7338 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
7339
7340         * omp-low.c (check_omp_nesting_restrictions): New function.
7341         (scan_omp_1): Call it.
7342
7343         PR middle-end/27416
7344         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
7345         construct, return *VAR.
7346
7347 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
7348
7349         PR rtl-optimization/27406
7350         * bt-load.c (migrate_btr_def): Skip the block having abnormal
7351         edges.
7352
7353 2006-05-14  Roger Sayle  <roger@eyesopen.com>
7354
7355         PR rtl-optimization/27538
7356         * combine.c (expand_compound_operation): Call gen_lowpart
7357         before calling simplify_shift_const.
7358
7359 2006-05-14  Roger Sayle  <roger@eyesopen.com>
7360
7361         PR rtl-optimization/22563
7362         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
7363         a fixed width bitfield, always force the intermediates into psuedos.
7364
7365 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
7366
7367         PR 27501
7368         * mkconfig.sh: Use operator = instead of == for test.
7369
7370 2006-05-13  Nick Clifton  <nickc@redhat.com>
7371
7372         * dwarf2out.c (dbx_reg_number): Check return value from
7373         LEAF_REG_REMAP and only use it if it is valid.
7374         (multiple_reg_loc_descriptor): Likewise.
7375
7376 2006-05-13  Richard Guenther  <rguenther@suse.de>
7377
7378         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
7379         host_xmake_file.
7380
7381 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
7382
7383         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
7384         information attached to non-INSNs such as NOTEs.
7385         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
7386
7387 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7388
7389         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
7390         On contraint.
7391         * config/s390/s390.md: Adjust comment describing On constraint.
7392
7393 2006-05-11  Jan Hubicka  <jh@suse.cz>
7394
7395         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
7396         to be output at -O0.
7397
7398 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7399
7400         PR middle-end/27384
7401         * fold-const.c (size_binop): Move sanity check for arguments to
7402         the beginning of the function.
7403
7404         PR middle-end/27488
7405         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
7406         expression.
7407
7408 2006-05-11  Richard Guenther  <rguenther@suse.de>
7409
7410         PR middle-end/27529
7411         * fold-const.c (fold_unary): Handle intermediate conversion
7412         to a pointer type like intermediate conversion to an integer
7413         type in folding of (T1)(T2)var to var.
7414         Match the code to the comment in the final conversion for
7415         (T1)(T2)var to (T1)var regarding to type precision.  Rather
7416         than disallow T1 being of pointer type, assert that both T1
7417         and var are of pointer type or not.  Make sure not to fall
7418         over the frontends lazyness wrt array to pointer decay though.
7419
7420 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
7421
7422         * arm.c (arm_struct_value_rtx): Delete.
7423         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
7424         (arm_init_cumulative_args): Always initialize nregs to zero.
7425
7426 2006-05-10  Richard Guenther  <rguenther@suse.de>
7427
7428         PR tree-optimization/27532
7429         * tree-object-size.c (plus_expr_object_size): Fix typo.
7430
7431 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
7432
7433         PR target/24949
7434         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
7435         ashrdi_const, ashrdi3): Use a scratch register.
7436
7437 2006-05-10  Richard Guenther  <rguenther@suse.de>
7438
7439         PR tree-optimization/27302
7440         * fold-const.c (operand_equal_p): For two comparisons,
7441         try comparison of one comparison code swapped if that yields
7442         the same code.
7443
7444 2006-05-10  Ben Elliston  <bje@au.ibm.com>
7445
7446         * tree-pretty-print.c (pretty_print_string): No need to handle
7447         '\0' as a special character.
7448
7449         * tree.h: Include "hashtab.h".
7450         (iterative_hash_expr): Use hashval_t in its prototype.
7451         * Makefile.in (TREE_H): Add $(HASHTAB_H).
7452
7453 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
7454
7455         PR bootstrap/26872
7456         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
7457         (hppa*64*-*-hpux11*): Ditto.
7458         (hppa[12]*-*-hpux11*): Ditto.
7459
7460 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
7461
7462         PR target/26545
7463         * config/rs6000/aix41.h (TARGET_64BIT): Define.
7464
7465 2006-05-09  Michael Matz  <matz@suse.de>
7466
7467         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
7468         host_extra_gcc_objs and host_xmake_file.
7469         (<*-*-linux*>): Don't overwrite host_xmake_file.
7470         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
7471         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
7472         (host_detect_local_cpu): Declare.
7473         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
7474         * config/i386/i386.c (override_options): Handle -mtune=native
7475         as -mtune=generic.
7476         * config/i386/x-i386: New file.
7477         * config/i386/driver-i386.c: New file.
7478         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
7479         cpu-type "native".
7480
7481 2006-05-09  Dirk Mueller  <dmueller@suse.de>
7482         Richard Guenther  <rguenther@suse.de>
7483
7484         PR middle-end/27498
7485         * fold-const.c (fold_read_from_constant_string): Relax check
7486         for matching types to matching modes.
7487
7488 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
7489
7490         PR rtl-optimization/27335
7491         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
7492         loops.
7493
7494 2006-05-08  Chao-ying Fu  <fu@mips.com>
7495             Richard Sandiford  <richard@codesourcery.com>
7496
7497         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
7498         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
7499         * config/mips/mips.md (UNSPEC_SCC): New constant.
7500         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
7501         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
7502         (mips_emit_compare): Use it.
7503         (mips_expand_vcondv2sf): New function.
7504
7505 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
7506
7507         Fix PR tree-optimization/27093
7508         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
7509         renaming when they become not-used_alone.
7510
7511 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7512
7513         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
7514         relocation and relocation stubs.
7515
7516 2006-05-08  Eric Christopher  <echristo@apple.com>
7517
7518         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
7519         section for ppc.
7520
7521 2006-05-08  Jan Hubicka  <jh@suse.cz>
7522
7523         PR middle-end/24561
7524         * cgraphunit.c (decide_is_function_needed): When not optimizing even
7525         unused static functions are needed.
7526
7527 2006-05-08  Roger Sayle  <roger@eyesopen.com>
7528
7529         PR target/27158
7530         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
7531         of a reg_equiv_constant if the result is a legitimate constant.
7532
7533 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
7534
7535         PR target/27277
7536         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
7537         standard 80387 constants, raise the cost to prevent
7538         compress_float_constant() to generate load from memory.
7539
7540 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
7541
7542         * config/arm/constraints.md (c): Fix a typo.
7543
7544         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
7545         typos.
7546
7547 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
7548
7549         PR target/24879
7550         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
7551         inline function.
7552         (_mm_mwait): Likewise.
7553
7554         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
7555         "mwait".
7556         (sse3_monitor): Make it 32bit only.
7557         (sse3_monitor64): New. 64bit monitor.
7558
7559 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7560
7561         PR target/27421
7562         * config/i386/i386.c (classify_argument): Skip fields with invalid
7563         types.
7564
7565 2006-05-07  Richard Guenther  <rguenther@suse.de>
7566
7567         PR tree-optimization/27409
7568         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7569         Do not try to find zero-sized subvars.
7570
7571 2006-05-07  Richard Guenther  <rguenther@suse.de>
7572
7573         PR tree-optimization/27136
7574         * tree-ssa-loop-niter.c (get_val_for): Correct function
7575         comment, assert requirements.
7576         (loop_niter_by_eval): Stop processing if the iterated
7577         value did not simplify.
7578
7579 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
7580
7581         * opts.c (flag_see): remove its setting at -O3.
7582
7583 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
7584
7585         * genpeep.c (main): Make insn-peep.c depend on flags.h.
7586         * arm/constraints.md: New file.
7587         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
7588         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
7589         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
7590         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
7591         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
7592         (EXTRA_MEMORY_CONSTRAINT): Likewise.
7593         * arm.md: Include constraints.md.
7594         (thumb_movsi_insn): Use satisfies_constraint_J.
7595         (movhi, movqi): Use satisfies_constraint_I.
7596
7597 2006-04-29 Anatoly Sokolov <aesok@post.ru>
7598
7599         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
7600         for atmeg a645 device.
7601
7602 2006-05-06   Richard Guenther  <rguenther@suse.de>
7603
7604         PR tree-optimization/27151
7605         * tree-vect-transform.c (vectorizable_condition): Punt on
7606         values that have a different type than the condition.
7607
7608 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
7609
7610         PR/21391
7611         * c-parser.c (c_parser_cast_expression): Only insert casts into
7612         hash table if pointer.
7613         * function.c (used_types_insert_helper): Rename from
7614         used_types_insert.
7615         (used_types_insert): Call used_types_insert_helper.
7616         * function.h (used_types_insert): Accept only one argument.
7617
7618 2006-05-05  David Edelsohn  <edesohn@gnu.org>
7619
7620         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
7621         scratch with output modifier.
7622
7623 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
7624
7625         PR target/26481
7626         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
7627         with output modifier.
7628
7629 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
7630
7631         PR target/26765
7632         * config/mips/mips.c (mips_symbolic_address_p): Return true
7633         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
7634         SYMBOL_GOTTPREL, and SYMBOL_TLS.
7635
7636 2006-05-04  Richard Guenther  <rguenther@suse.de>
7637
7638         PR tree-optimization/14287
7639         PR tree-optimization/14844
7640         PR tree-optimization/19792
7641         PR tree-optimization/21608
7642         PR tree-optimization/27090
7643         * tree-ssa-pre.c (try_combine_conversion): New function.
7644         (compute_avail): After constructing the value-handle
7645         expression, use try_combine_conversion to combine NOP_EXPRs
7646         with previous value-handle expressions and use the result if it
7647         is available.
7648
7649 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
7650
7651         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
7652
7653 2006-05-04  Jan Hubicka  <jh@suse.cz>
7654
7655         PR middle-end/25962
7656         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
7657
7658 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
7659
7660         * config/bfin/predicates.md (const01_rtx): Tell generator programs
7661         that this only matches CONST_INTs.  All users changed to VOIDmode
7662         operands.
7663
7664         * config/bfin/bfin.c: Include "optabs.h".
7665         (bfin_rtx_costs): Some costs for vector operations, to allow combine
7666         to do more work.
7667         (enum bfin_builtins): Add a number of fractional and vector builtins.
7668         (bfin_init_builtins): Likewise.
7669         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
7670         (safe_vector_operand, bfin_expand_binop_builtin,
7671         bfin_expand_unop_builtin): New functions.
7672         (bfin_expand_builtin): Handle the new builtins.
7673         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
7674         __ADSPBLACKFIN__.
7675
7676 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
7677
7678         * see.c: New file.
7679         * Makefile.in (OBJS-common): Add see.o.
7680         (see.o): Add dependencies.
7681         * common.opt (fsee): New flag for the see optimization was added.
7682         * opts.c (flag_see): Initialized.
7683         * passes.c (init_optimization_passes, pass_see): New pass.
7684         * rtl.h (see_main): Declaration as extern.
7685         * timevar.def (TV_SEE): New.
7686         * tree-pass.h (pass_see): Declaration as extern.
7687         * invoke.texi (-fsee): Document.
7688         * recog.c (validate_simplify_insn): New function.
7689         * recog.h (validate_simplify_insn): Declaration as extern.
7690         * df-problems.c (df_chain_dump): Check for NULL.
7691
7692 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
7693             Daniel Berlin  <dberlin@dberlin.org>
7694
7695         * cfgrtl.c (insert_insn_bb_end_new): New function.
7696         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
7697
7698 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
7699
7700         * df.h (struct web_entry): Moved from web.c.
7701         (union_defs): Declaration as extern.
7702         (unionfind_root): Likewise.
7703         (unionfind_union): Likewise.
7704         * web.c (struct web_entry): Moved to df.h.
7705         (unionfind_root): Remove static declaration.
7706         (unionfind_union): Likewise.
7707         (union_defs): Likewise and generalize to use callback function.
7708         (web_main): Update arguments for union_defs function call.
7709
7710 2006-05-04  Richard Guenther  <rguenther@suse.de>
7711
7712         PR tree-optimization/26447
7713         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
7714         produce SSA_NAME copies before the store stmt to avoid
7715         breaking exception handling.
7716
7717 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
7718
7719         PR middle-end/27388
7720         * gimplify.c (omp_is_private): If var is shared in some outer context,
7721         return false instead of true.  Stop searching on parallel context
7722         boundary.
7723
7724 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
7725
7726         PR java/8260
7727         * coverage.c: Use get_gcov_unsigned_t() instead of
7728         unsigned_type_node all over.
7729
7730 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
7731
7732         PR tree-optimization/27381
7733         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
7734         maintain the same immediate_use links.
7735         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
7736         node rather than segfaulting.
7737
7738 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
7739
7740         PR fortran/27395
7741         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
7742         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
7743         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
7744
7745 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
7746
7747         Fix PR tree-optimization/26626
7748         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
7749         always.
7750         * tree-ssa-operands.c (access_can_touch_variable): Allow
7751         typecasting through union pointers.
7752
7753 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
7754
7755         PR c++/26943
7756         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
7757         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
7758         to find if var will be a global variable even in the nested context.
7759         (omp_copy_decl): Only check for global variable at the end, it might
7760         be overridden in outer contexts.
7761         (scan_sharing_clauses): For global variables don't create a field.
7762         (lower_rec_input_clauses): Do nothing for global shared variables.
7763         Emit a barrier at the end of ILIST if there were any decls in both
7764         firstprivate and lastprivate clauses.
7765         (lower_send_clauses): Do nothing for global variables except for
7766         COPYIN.
7767
7768 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
7769
7770         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
7771         of the correct signedness is returned.
7772
7773 2006-05-02  Jeff Law  <law@redhat.com>
7774
7775         PR tree-optimization/27364
7776         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
7777         multiply expressions.
7778
7779 2006-05-02  Tom Tromey  <tromey@redhat.com>
7780
7781         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
7782
7783 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
7784
7785         PR target/27387
7786         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
7787         -mthumb -fPIC are used.
7788
7789 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
7790             Joshua Kinard  <kumba@gentoo.org>
7791
7792         PR target/25871
7793         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
7794         with 64-bit pointers.
7795
7796 2006-05-02  Paul Brook  <paul@codesourcery.com>
7797
7798         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
7799         and pool overlap.
7800         (create_fix_barrier): Check that a suitable barrier location is
7801         found.
7802         (arm_reorg): Include ftmp->address in allowable range of addresses.
7803
7804 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
7805
7806         PR ada/27366
7807         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
7808         on Cygwin.
7809
7810 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
7811
7812         PR middle-end/27337
7813         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
7814         around RESULT_DECL for result passed by reference.
7815         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
7816         * omp-low.c (use_pointer_for_field): Don't look at
7817         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
7818         (scan_omp_1): Call remap_decl on RESULT_DECLs.
7819         (lower_rec_input_clauses): Don't allocate VLA memory for the second
7820         time or var for passing by reference for
7821         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
7822         TREE_ADDRESSABLE variables when passing by reference.
7823
7824         * omp-low.c (dump_omp_region): Fix output formatting.
7825
7826         PR middle-end/27328
7827         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
7828         (expand_omp_parallel): Likewise.
7829         * tree-cfg.c (move_sese_region_to_fn): Likewise.
7830
7831         PR middle-end/27325
7832         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
7833         on statement list containing also constructors and destructors.
7834         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
7835
7836         PR middle-end/27310
7837         * except.c (duplicate_eh_regions): Fix clearing of
7838         cfun->eh->region_array entries.
7839
7840 2006-05-01  DJ Delorie  <dj@redhat.com>
7841
7842         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
7843         build!=host.
7844         (gcc_cv_objdump): Likewise.
7845         * configure: Regenerated.
7846
7847 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
7848
7849         PR target/27374
7850         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
7851         templates for case 3 and 4.
7852
7853 2006-05-01  DJ Delorie  <dj@redhat.com>
7854
7855         * vec.c: Include bconfig.h when appropriate.
7856         * Makefile.in (build/vec.o): Adjust dependencies.
7857         * mkconfig.sh: Make sure config.h isn't used for build machine
7858         compiles.
7859
7860 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
7861
7862         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
7863         variables.
7864         (mark_phi_for_rewrite): New function.
7865         (insert_phi_nodes_for, mark_use_interesting): Call
7866         mark_phi_for_rewrite.
7867         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
7868         (update_ssa): Initialize and free phis_to_rewrite.
7869
7870 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
7871
7872         PR rtl-optimization/27291
7873         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
7874         folded to a constant.
7875
7876 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
7877
7878         PR tree-optimization/27283
7879         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
7880         not whole # of iteration descriptions.
7881         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
7882         uses abnormal ssa name.
7883         (niter_for_single_dom_exit): Ditto.
7884         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
7885         return just the number of iterations.
7886
7887 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
7888
7889         PR tree-optimization/27144
7890         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
7891         (record_estimate): Only record constant upper bound.
7892         (infer_loop_bounds_from_undefined): Call
7893         compute_estimated_nb_iterations just once.
7894         (proved_non_wrapping_p): Renamed to ...
7895         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
7896         (convert_step_widening, scev_probably_wraps_p): Call
7897         n_of_executions_at_most instead of proved_non_wrapping_p.
7898         (substitute_in_loop_info): Do not replace values in bounds.
7899         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
7900         comments.
7901
7902 2006-05-01  Richard Henderson  <rth@redhat.com>
7903
7904         PR c/27358
7905         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
7906         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
7907         CPP_PRAGMA.
7908
7909 2006-05-01  Roger Sayle  <roger@eyesopen.com>
7910
7911         * c-typeck.c (parser_build_binary_op): Don't call the function
7912         unsigned_conversion_warning to spot operand/result type overflow.
7913         (build_binary_op): Instead, call convert_and_check instead of
7914         convert to report the problem when the operands are promoted.
7915         * c-common.c (unsigned_conversion_warning): Make static.
7916         * c-common.h (unsigned_conversion_warning): Delete prototype.
7917
7918 2006-05-01  Richard Guenther  <rguenther@suse.de>
7919
7920         PR tree-optimization/26726
7921         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
7922         problem ...
7923         (find_interesting_uses_address): ... we work around here
7924         by folding INDIRECT_REFs in the substituted base.
7925
7926 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
7927
7928         * omp-low.c (dump_omp_region): Add newlines.
7929
7930 2006-04-30  Roger Sayle  <roger@eyesopen.com>
7931
7932         * common.opt (Woverflow): New command line option.
7933         * c-common.c (constant_expression_warning): Check warn_overflow.
7934         (overflow_waring): Pass OPT_Woverflow to warning.
7935         (unsigned_conversion_warning): Likewise.
7936         (convert_and_check): Likewise.
7937         * doc/invoke.texi: Document new command line option.
7938
7939 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
7940
7941         * config/rs6000/rs6000.c (rs6000_override_options): Enable
7942         TARGET_NO_FP_IN_TOC for section anchors.
7943         (optimization_options): Enable section anchors for all
7944         non-"Objective" languages.
7945
7946 2006-04-28  Eric Christopher  <echristo@apple.com>
7947
7948         * config/darwin-c.c (darwin_ms_struct): Move this
7949         (darwin_set_default_type_attributes): and this...
7950         * config/darwin.c: ... here.
7951         * config/darwin.h (darwin_ms_struct): Declare.
7952
7953 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
7954
7955         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
7956
7957 2006-04-28  Roger Sayle  <roger@eyesopen.com>
7958
7959         PR c/25309
7960         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
7961         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
7962         an unsigned HOST_WIDE_INT.
7963         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
7964         array index.
7965         (really_start_incremental_init): No need to call convert because
7966         bitsize_zero_node is already of type bitsizetype.
7967         (push_init_level): Extract the value of constructor_index as an
7968         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
7969         (process_init_element): Likewise.
7970
7971 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
7972
7973         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
7974         value before passing to make_relative_prefix.
7975
7976 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
7977
7978         PR middle-end/27260
7979         * builtins.c (expand_builtin_memset): Expand val in original mode.
7980
7981 2006-04-27  Eric Christopher  <echristo@apple.com>
7982
7983         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
7984         with #ifndef/#endif.
7985         * config/darwin-c.c (darwin_ms_struct): New.
7986         (darwin_pragma_ms_struct): Ditto.
7987         (darwin_set_default_type_attributes): Ditto.
7988         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
7989         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
7990         Register ms_struct pragma.
7991         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
7992         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
7993         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
7994         darwin_set_default_type_attributes if TARGET_MACHO.
7995
7996 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
7997
7998         PR tree-optimization/26854
7999         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
8000         * doc/tree-ssa.texi: Update immuse iterator documentation.
8001         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
8002         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
8003         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
8004         first_safe_imm_use, next_safe_imm_use): Remove.
8005         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
8006         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
8007         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
8008         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
8009         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
8010         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
8011         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
8012         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
8013         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
8014         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
8015         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
8016         (perfect_nestify): Use new iterator.
8017         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
8018         iterator.
8019         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
8020         (next_imm_name): New field in struct immediate_use_iterator_d.
8021         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
8022         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
8023         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
8024         * tree-cfg.c (replace_uses_by): Use new iterator.
8025         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
8026         * tree-ssa-operands.c (correct_use_link): Remove.
8027         (finalize_ssa_use_ops): No longer call correct_use_link.
8028
8029 2006-04-27  Stuart Hastings  <stuart@apple.com>
8030
8031         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
8032         * config/t-darwin (crt3.o): Use it.
8033         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
8034         'pmode', use Pmode instead of SImode for SYMBOL_REF.
8035         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
8036         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
8037         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
8038         support.
8039
8040 2006-04-27  Roger Sayle  <roger@eyesopen.com>
8041
8042         * expmed.c (store_fixed_bit_field): If we're not optimizing for
8043         size, force the intermediate into a new pseudo rather instead of
8044         performing both a bitwise AND and a bitwise IOR in memory.
8045
8046 2006-04-27  Richard Guenther  <rguenther@suse.de>
8047
8048         PR rtl-optimization/26685
8049         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
8050         this one "max-flow-memory-locations".
8051
8052 2006-04-27  Richard Guenther  <rguenther@suse.de>
8053
8054         PR tree-optimization/25148
8055         * tree-vrp.c (compare_values): Remove code dealing with
8056         comparisons against type min/max value.  Honour overflow
8057         and negative constants in code dealing with comparisons
8058         of plus and minus expressions.
8059         (value_inside_range): Use fold_binary with LE_EXPR and
8060         GE_EXPR rather than compare_values.
8061
8062 2006-04-27  Dirk Mueller  <dmueller@suse.de>
8063
8064         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
8065         prototype for SSE.
8066
8067 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
8068
8069         * basic-block.h (safe_insert_insn_on_edge): Removed.
8070         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
8071
8072 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
8073             Paolo Bonzini  <bonzini@gnu.org>
8074
8075         PR middle-end/27282
8076         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
8077         (simplify_and_const_int): Same.
8078
8079 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
8080
8081         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
8082
8083 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
8084
8085         PR c/26171
8086         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
8087         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
8088         cgraph_global_info_ready.
8089
8090         PR middle-end/26913
8091         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
8092
8093         PR c/25996
8094         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
8095         either decl or init is error_mark_node.
8096
8097         PR middle-end/25989
8098         * tree-flow.h (struct omp_region): Add sched_kind.
8099         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
8100         instead of extracting omp for data.
8101         (expand_omp_for): Save extracted sched_kind.
8102
8103 2006-04-25  Roger Sayle  <roger@eyesopen.com>
8104
8105         * expmed.c (store_bit_field): Also check whether the bitsize is
8106         valid for the machine's "insv" instruction before moving the
8107         target into a pseudo for use with the insv.
8108         * config/i386/predicates.md (const8_operand): New predicate.
8109         * config/i386/i386.md (extv, extzv, insv): Use the new
8110         const8_operand predicate where appropriate.
8111
8112 2006-04-25  DJ Delorie  <dj@redhat.com>
8113
8114         * doc/install.texi (Specific): Clarify that this is not a list of
8115         supported hosts or targets.
8116
8117 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
8118
8119         PR rtl-optimization/26725
8120         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
8121         block's BB_DIRTY flag.
8122
8123 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
8124
8125         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
8126         are no branches.
8127
8128         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
8129         to print an integer.
8130
8131 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
8132
8133         * varasm.c (align_variable): New function.
8134         (get_block_for_decl): Apply align_variable to DECL before
8135         calculating section information.
8136         (assemble_variable): Split out alignment computation.
8137
8138 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8139
8140         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
8141         machines.
8142
8143 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
8144
8145         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
8146         MODE_PARTIAL_INT mode.
8147         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
8148         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
8149         for CONST_INTs.
8150         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
8151         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
8152         V2PDImode.
8153         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
8154         New predicates.
8155         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
8156         New constants.
8157         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
8158         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
8159         MACFLAG_IH): Likewise.
8160         (movstricthi_1): Renamed from "*movstricthi".
8161         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
8162         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
8163         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
8164         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
8165         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
8166         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
8167         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
8168         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
8169         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
8170         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
8171         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
8172         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
8173         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
8174         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
8175         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
8176
8177         * doc/rtl.texi (ss_ashift): Improve wording.
8178
8179 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
8180
8181         * dwarf2out.c (verify_marks_clear): New.
8182         (prune_unused_types): Call verify_marks_clear initially, not
8183         prune_unmark_dies.
8184
8185 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8186
8187         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
8188         * doc/rtl.texi: Document them.
8189         * simplify-rtx.c (simplify_unary_operation,
8190         simplify_binary_operation_1): Don't abort when we see them.
8191
8192 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
8193
8194         Revert:
8195         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
8196         * configure.ac: Completely disregard languages that are not
8197         enabled.
8198         * configure: Regenerated.
8199
8200 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
8201         Richard Guenther  <rguenther@suse.de>
8202
8203         PR tree-optimization/27236
8204         * tree-inline.c (copy_body_r): Make sure to copy
8205         TREE_THIS_VOLATILE flag.
8206
8207 2006-04-24  Richard Guenther  <rguenther@suse.de>
8208
8209         PR middle-end/26869
8210         * tree-complex.c (update_parameter_components): Don't handle
8211         unused parameters which have no default def.
8212
8213 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
8214         Richard Guenther  <rguenther@suse.de>
8215
8216         PR tree-optimization/27218
8217         * tree-inline.c (expand_call_inline): Strip useless type
8218         conversions for the return slot address.
8219
8220 2006-04-24  Richard Guenther  <rguenther@suse.de>
8221
8222         * cfgloop.h (struct loops): Remove unused field array.  Reorder
8223         state after num.
8224         (LOOP_PREFETCH): Remove.
8225
8226 2006-04-24  Richard Guenther  <rguenther@suse.de>
8227
8228         PR tree-optimization/22525
8229         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
8230         variable, adjust types of generated expressions.
8231
8232 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
8233
8234         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
8235         (tree-vect-patterns.o): Likewise.
8236         (jump.o): Likewise.
8237         (cselib.o): Likewise.
8238         (loop-doloop.o): Likewise.
8239         (regclass.o): Likewise.
8240         (reload1.o): Likewise.
8241         (explow.o): Replace target.h with $(TARGET_H).
8242         (ipa-prop.o): Likewise.
8243         (ipa-cp.o): Likewise.
8244         (ipa-inline.o): Likewise.
8245         (reorg.o): Likewise.
8246         (reg-stack.o): Likewise.
8247
8248 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
8249
8250         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
8251
8252 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
8253
8254         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
8255
8256         * configure.ac: Completely disregard languages that are not
8257         enabled.
8258         * configure: Regenerated.
8259
8260         PR c++/26534
8261         * c-common.h (c_build_bitfield_integer_type): Declare.
8262         * c-decl.c (c_build_bitfield_integer_type): Move to ...
8263         * c-common.c (c_build_bitfield_integer_type): ... here.
8264
8265 2006-04-23  Roger Sayle  <roger@eyesopen.com>
8266
8267         PR target/21283
8268         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
8269         a SImode SUBREG of a floating point register after no_new_pseudos.
8270
8271 2006-04-23  Roger Sayle  <roger@eyesopen.com>
8272
8273         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
8274         identify potentially eliminable registers to additionally catch
8275         VIRTUAL_INCOMING_ARGS_REGNUM.
8276         (addsi3): Update the conditions on when to use addsi_small_int.
8277
8278 2006-04-23  Roger Sayle  <roger@eyesopen.com>
8279
8280         PR target/16641
8281         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
8282         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
8283         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
8284
8285 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
8286
8287         * fold-const.c (range_predecessor): Use operand_equal_p
8288         as the predicate for equality.
8289         (range_successor): Likewise.
8290
8291 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
8292
8293         Revert:
8294         * config/soft-fp/op-common.h: Fix a typo.
8295
8296 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
8297
8298         PR libmudflap/26864
8299         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
8300         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
8301
8302 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
8303
8304         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
8305         Fix comment typos.
8306         * doc/tm.texi: Fix a typo.
8307
8308 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
8309
8310         * dwarf2out.c (struct die_struct): Document that die_sib makes
8311         a circular linked list.
8312         (FOR_EACH_CHILD): New.
8313         (reverse_die_lists): Delete.
8314         (reverse_all_dies): Delete.
8315         (add_dwarf_attr): Correct documentation.
8316         (remove_child_with_prev): New.
8317         (remove_child_TAG): Update for change to die_struct, use
8318         remove_child_with_prev.
8319         (add_child_die): Update for change to die_struct.
8320         (splice_child_die): Use remove_child_with_prev and add_child_die.
8321         (print_die): Use FOR_EACH_CHILD.
8322         (die_checksum): Likewise.
8323         (assign_symbol_names): Likewise.
8324         (output_location_lists): Likewise.
8325         (build_abbrev_table): Likewise.
8326         (calc_die_sizes): Likewise.
8327         (mark_dies): Likewise.
8328         (unmark_dies): Likewise.
8329         (unmark_all_dies): Likewise.
8330         (output_die): Likewise.
8331         (prune_unused_types_mark): Likewise.
8332         (prune_unused_types_walk): Likewise.
8333         (same_die_p): Update for change to die_struct.
8334         (break_out_includes): Likewise.
8335         (prune_unused_types_prune): Likewise.
8336         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
8337         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
8338         it's already clear.
8339         (dwarf2out_finish): Don't call reverse_all_dies.
8340
8341 2006-04-21  Eric Christopher  <echristo@apple.com>
8342
8343         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
8344         in comments and function names.
8345
8346 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8347
8348         PR c/25875
8349         * c-typeck.c (digest_init): Robustify.
8350
8351         * c-typeck.c (pop_init_level): Simplify.
8352
8353 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
8354
8355         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
8356
8357 2006-04-21  Paul Brook  <paul@codesourcery.com>
8358
8359         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
8360         hardware floating point.
8361
8362 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
8363
8364         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
8365         NON_FLOAT_REGS.
8366
8367 2006-04-21  Nick Clifton  <nickc@redhat.com>
8368
8369         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
8370         OPT_EXTRA_PARTS.
8371
8372 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
8373
8374         PR target/27230
8375         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
8376         C++ lang type in traceback table for Objective-C++.
8377
8378         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
8379
8380 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8381
8382         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
8383
8384 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8385
8386         PR mudflap/26789
8387         * tree-mudflap.c (mudflap_finish_file): Skip function when there
8388         were errors.  Remove check for erroneous objects.
8389
8390 2006-04-20  Jeff Law  <law@redhat.com>
8391
8392         PR tree-optimization/26854
8393         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
8394         checking for zero or one use.
8395         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
8396         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
8397         * tree-ssa-reassoc.c (negate_value): Similarly.
8398         (reassociate_bb): Similarly.
8399
8400 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
8401
8402         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
8403         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
8404         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
8405
8406 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
8407
8408         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
8409         fp regs if the last fp arg doesn't fit in regs.
8410
8411 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8412
8413         PR target/27182
8414         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
8415         that the last insn has the REG_INC note.
8416
8417 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
8418             Nathan Sidwell  <nathan@codesourcery.com>
8419
8420         PR c/26774
8421         * stor-layout.c (update_alignment_for_field): Do not align
8422         ERROR_MARK nodes.
8423         (place_union_field): Place union field at the start of the union.
8424         (place_field): Move ERROR_MARK check later, and use the current
8425         allocation position to maintain monotonicity.
8426
8427 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
8428
8429         * dominance.c: Include timevar.h.
8430         (calculate_dominance_info): Use TV_DOMINANCE.
8431         * timevar.def (TV_DOMINANCE): New timevar.
8432         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
8433
8434 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
8435
8436         PR rtl-optimization/14261
8437         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
8438         move would be an INSV insn.
8439         (noce_process_if_block): Don't optimize if the destination is a
8440         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
8441
8442 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
8443
8444         * config/s390/s390.md: Add comments with the instructions emitted
8445         by an insn pattern if macros are used.
8446
8447 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
8448
8449         PR rtl-optimization/26026
8450         * fold-const.c (fold_binary): Optimize div and mod where the divisor
8451         is a known power of two shifted left a variable amount.
8452
8453 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
8454
8455         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
8456         to hash table twice when the debug_str section has SECTION_MERGE.
8457
8458 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
8459
8460         * config/soft-fp: New directory.  From glibc.
8461         * config/soft-fp/t-softfp: New.
8462         * config/soft-fp/README: New.
8463         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
8464         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
8465         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
8466         (LIBGCC_DEPS): Add $(SFP_MACHINE).
8467         * config.gcc: Use rs6000/t-fprules-fpbit or
8468         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
8469         rs6000/t-fprules.
8470         * config/rs6000/sfp-machine.h: New.  Based on glibc.
8471         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
8472         New.
8473         * config/rs6000/t-fprules: Remove fp-bit rules.
8474         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
8475         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
8476         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
8477         (softfp_wrap_start, softfp_wrap_end): New.
8478
8479 2006-04-18  DJ Delorie  <dj@redhat.com>
8480
8481         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
8482
8483 2006-04-18  Devang Patel  <dpatel@apple.com>
8484
8485         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
8486
8487 2006-04-18  Nick Clifton  <nickc@redhat.com>
8488
8489         * config/sh/t-symbian: Add rule to build sh-c.o
8490         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
8491         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
8492         (sh_symbian_encode_section_info): Likewise.
8493
8494 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
8495
8496         * builtins.c (expand_builtin_strcmp): Cover label definition of
8497         do_libcall with HAVE_cmpstrnsi.
8498
8499 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
8500
8501         * function.c (temp_slots_at_level, max_slot_level): Use VEC
8502         instead of VARRAY.
8503         * function.h (temp_slot_p): New.
8504         (function): Change the type of x_used_temp_slots to
8505         VEC(temp_slot_p,gc) *.
8506
8507 2006-04-18  Nick Clifton  <nickc@redhat.com>
8508
8509         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
8510         flag_strength_reduce.
8511
8512         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
8513
8514 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
8515
8516         PR target/27117
8517
8518         Partial revert of revision 112637
8519         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
8520                     Dale Johannesen  <dalej@apple.com>
8521
8522         PR target/19653
8523         * regclass.c (struct reg_pref): Update documentation.
8524         (regclass): Set prefclass to NO_REGS if memory is the best option.
8525         (record_reg_classes): Cope with a prefclass set to NO_REGS.
8526
8527 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
8528
8529         PR tree-optimization/26821
8530         * tree-ssa-math-opts.c (get_constant_one): New.
8531         (insert_reciprocals): Use it.
8532
8533 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
8534
8535         * dwarf2out.c (free_AT): Delete.
8536         (remove_AT): Update string ref counts.
8537         (remove_child_TAG): Don't call free_die.
8538         (free_die): Delete.
8539         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
8540         or DW_TAG_GNU_EINCL.
8541         (prune_unused_types_walk_attribs): Reset string refcounts.
8542         (prune_unused_types_update_strings): New.
8543         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
8544         call free_die.  Do call prune_unused_types_update_strings.
8545         (prune_unused_types): Empty debug_str_hash.
8546
8547 2006-04-17  Roger Sayle  <roger@eyesopen.com>
8548
8549         * expr.c (expand_assignment): Optimize away no-op moves where the
8550         source and destination are equal and have no side-effects.
8551
8552 2006-04-17  Richard Guenther  <rguenther@suse.de>
8553
8554         PR target/26826
8555         * reload.c (push_reload): Guard calls to get_secondary_mem
8556         for memory subregs.
8557
8558 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
8559
8560         * alias.c (reg_base_value, old_reg_base_value): Change the
8561         type to VEC(rtx,gc) *.
8562         (REG_BASE_VALUE, find_base_value, record_set,
8563         init_alias_analysis): Use VEC instead of VARRAY.
8564
8565         * alias.c (alias_sets): Change the type to
8566         VEC(alias_set_entry,gc) *.
8567         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
8568         VEC instead of VARRAY.
8569         (last_alias_set): Remove.
8570
8571         * cgraph.h (cgraph_edge_p): New.
8572         Update the prototype of cgraph_function_versioning.
8573         * cgraphunit.c (cgraph_copy_node_for_versioning,
8574         cgraph_function_versioning): Use VEC instead of VARRAY.
8575         * ipa-cp.c (ipcp_insert_stage): Likewise.
8576
8577 2006-04-16  Roger Sayle  <roger@eyesopen.com>
8578
8579         PR target/26961
8580         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
8581         "A op B" or "A op C", we may need to convert A to the type of B and C.
8582
8583 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
8584
8585         * target.h (struct gcc_target): Add mode_rep_extended.
8586         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
8587         (init_num_sign_bit_copies_in_rep): Initialize it using
8588         mode_rep_extended.
8589         (truncate_to_mode): Use it.
8590         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
8591         * targhooks.h (default_mode_rep_extended): Declare it.
8592         * targhooks.c (default_mode_rep_extended): Define it.
8593         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
8594         default_mode_rep_extended.
8595         (TARGET_INITIALIZER): Include it.
8596         * doc/tm.texi (Misc): Document it.
8597         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
8598         (mips_truncated_to_mode): New function.
8599
8600 2006-04-16  Roger Sayle  <roger@eyesopen.com>
8601
8602         PR middle-end/25474
8603         * expr.c (compress_float_constant): Copy the narrow constant into
8604         a new pseudo before extending it to its final width.
8605
8606 2006-04-16  Roger Sayle  <roger@eyesopen.com>
8607             Andrew Pinski  <pinskia@gcc.gnu.org>
8608             Dale Johannesen  <dalej@apple.com>
8609
8610         PR target/24076
8611         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
8612         special case code to implement V8HImode and V16QImode with SSE2.
8613
8614 2006-04-15  Roger Sayle  <roger@eyesopen.com>
8615
8616         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
8617         trees are constructed with a suitable tree type.
8618
8619 2006-04-15  Roger Sayle  <roger@eyesopen.com>
8620
8621         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
8622         (integer_onep): Likewise.
8623         (integer_all_onesp): Likewise.
8624         (integer_pow2p): Likewise.
8625         (integer_nonzerop): Likewise.
8626         (real_zerop): Likewise.
8627         (real_onep): Likewise.
8628         (real_twop): Likewise.
8629         (real_minus_onep): Likewise.
8630         (int_size_in_bytes): Likewise.
8631         (host_integerp): Likewise.
8632
8633 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
8634
8635         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
8636         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
8637         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
8638
8639         * tree-ssa-structalias.h (alias_info): Remove num_references.
8640
8641 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8642
8643         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
8644         (output_bvb patterns): Likewise.
8645         * pa.c (output_bb): Use 'bb' insn for long branch case.
8646         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
8647         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
8648         1.  Correct length operand for alternatives 1 and 2.
8649         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
8650         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
8651
8652 2006-04-14  Roger Sayle  <roger@eyesopen.com>
8653
8654         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
8655         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
8656         were accidentally reverted by r112959.
8657
8658 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
8659
8660         PR middle-end/26823
8661         * except.h (eh_region_outermost): New prototype.
8662         * except.c (eh_region_outermost): New function.
8663         * tree-cfg.c (find_outermost_region_in_block): Use it.
8664
8665 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
8666
8667         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
8668         of VARRAY.
8669         * reload1.c (reg_equiv_memory_loc_varray): Rename to
8670         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
8671         (init_reload, reload): Use VEC instead of VARRAY.
8672         * reload.h: Update the prototype for
8673         reg_equiv_memory_loc_varray.
8674
8675 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
8676             Eric Botcazou  <ebotcazou@libertysurf.fr>
8677
8678         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
8679         register save area.
8680
8681 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
8682
8683         PR middle-end/27134
8684         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
8685         to expand fallback builtin function call.
8686
8687 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
8688
8689         PR middle-end/27095
8690         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
8691         and emit libcall here in case the builtin fails.
8692         (expand_builtin_strcmp): Always emit the libcall here on failure.
8693
8694 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
8695
8696         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
8697         * flow.c (reg_n_info): Change the type to
8698         VEC(reg_info_p,heap) *.
8699         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
8700         instead of VARRAY.
8701         * regs.h (reg_info_p): New.
8702         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
8703         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
8704         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
8705         instead of VARRAY.
8706
8707 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
8708
8709         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
8710         defaulting to 100.
8711         * params.h (MAX_SCHED_READY_INSNS): New macro.
8712         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
8713         past MAX_SCHED_READY_INSNS during the first scheduling pass.
8714         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
8715         the ready list for 1 cycle during the first scheduling pass.
8716         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
8717
8718 2006-04-13  Richard Henderson  <rth@redhat.com>
8719
8720         PR libgomp/26651
8721         * gimple-low.c (lower_omp_directive): Remove dead code.
8722         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
8723         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
8724         * omp-low.c (struct omp_region): Move to tree-flow.h.
8725         (root_omp_region): Export.
8726         (omp_regions, lookup_omp_region): Remove.
8727         (determine_parallel_type): Update for struct omp_region changes.
8728         (dump_omp_region): Dump regions with block numbers.
8729         (new_omp_region): Take type and block instead of stmt; malloc
8730         instead of ggc.
8731         (free_omp_region_1, free_omp_regions): New.
8732         (expand_parallel_call): Take entry_stmt as argument; update for
8733         changes to omp_region.
8734         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
8735         (remove_exit_barriers): New.
8736         (expand_omp_parallel): Update for struct omp_region changes.
8737         (expand_omp_synch): Likewise.
8738         (expand_omp): Likewise.
8739         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
8740         (expand_omp_for_static_chunk): Likewise.
8741         (expand_omp_for): Likewise.
8742         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
8743         (expand_omp_sections): Similarly, with GOMP_sections_end.
8744         (expand_omp_single): New.
8745         (build_omp_regions_1): Update for OMP_CONTINUE.
8746         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
8747         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
8748         OMP_SECTIONS_SECTIONS.
8749         (lower_omp_single_simple): Don't emit barrier here.
8750         (lower_omp_single_copy): Likewise.
8751         (lower_omp_single): Fix bindings, and lower to straightline now.
8752         (lower_omp_master, lower_omp_ordered): Likewise.
8753         (lower_omp_critical): Likewise.
8754         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
8755         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
8756         omp edges, free it afterward.
8757         (make_omp_sections_edges): Remove.
8758         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
8759         (move_stmt_r): Handle OMP_CONTINUE.
8760         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
8761         statement pointers to basic blocks.  Add type member.
8762         (root_omp_region, new_omp_region, free_omp_regions): Declare.
8763         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
8764         * tree-inline.c (estimate_num_insns_1): Likewise.
8765         * tree-pretty-print.c (dump_generic_node): Likewise.
8766         * tree-ssa-operands.c (get_expr_operands): Likewise.
8767         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
8768         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
8769         (OMP_CONTINUE): New.
8770         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
8771         (OMP_SECTIONS_SECTIONS): Remove.
8772         (OMP_SECTION_LAST): New.
8773         (OMP_RETURN_NOWAIT): New.
8774
8775 2006-04-13  Roger Sayle  <roger@eyesopen.com>
8776
8777         * fold-const.c (native_encode_vector, native_interpret_real):
8778         Correct obvious mistakes in the previous check-in.
8779
8780 2006-04-13  Roger Sayle  <roger@eyesopen.com>
8781
8782         * fold-const.c (native_encode_expr): New function to encode
8783         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
8784         or VECTOR_CST into a specified buffer.
8785         (native_encode_int): New function.
8786         (native_encode_real): New function.
8787         (native_encode_complex): New function.
8788         (native_encode_vector): New function.
8789         (native_interpret_expr): Inverse of native_encode_expr to convert
8790         a target representation into an INTEGER_CST, REAL_CST etc...
8791         (native_interpret_int): New function.
8792         (native_interpret_real): New function.
8793         (native_interpret_complex): New function.
8794         (native_interpret_vector): New function.
8795         (fold_view_convert_expr): New function to constant fold/evaluate
8796         a VIEW_CONVERT_EXPR of a suitable constant expression.
8797         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
8798         Change call of build1 to fold_build1 when constructing a
8799         VIEW_CONVERT_EXPR.
8800
8801 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
8802             Ulrich Weigand  <uweigand@de.ibm.com>
8803
8804         PR target/27006
8805         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
8806         to be even.
8807
8808 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
8809
8810         PR target/26459
8811         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8812         optimize to lo_sum for DFmode if !TARGET_FPRS.
8813
8814 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
8815
8816         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
8817         delete_alias_info, compute_flow_sensitive_aliasing,
8818         group_aliases): Use VEC instead of VARRAY.
8819         * tree-ssa-structalias.c (update_alias_info): Likewise.
8820         * tree-ssa-structalias.h (alias_info): Change the type of
8821         processed_ptrs to VEC(tree,heap) *.
8822
8823 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
8824
8825         PR target/27060
8826         * config/sh/lib1funcs.h: New file, broken out of:
8827         * config/sh/lib1funcs.asm.
8828         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
8829         New macros.
8830         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
8831         * config/sh/lib1funcs-Os-4-200.asm: New file.
8832         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
8833         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
8834         (EXTRA_MULTILIB_PARTS): Include it.
8835         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
8836         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
8837         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
8838         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
8839         TARGET_SH2.
8840
8841 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
8842
8843         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
8844         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
8845         tpa_compact, root_var_init, type_var_init): Use VEC instead of
8846         VARRAY.
8847         * tree-ssa-live.h: Include vecprim.h.
8848         (tree_partition_associator_d): Change the type of
8849         first_partition to VEC(int,heap) *.
8850         (tpa_first_partition): Use VEC instead of VARRAY.
8851
8852         * Makefile.in (GTFILES): Move functions.h after tree.h.
8853         * function.c (reset_block_changes, record_block_change,
8854         check_block_change, free_block_changes): Use VEC instead of
8855         VARRAY.
8856         * function.h (function): Change the type of
8857         ib_boundaries_block to VEC(tree,gc) *.
8858         * tree-inline.c (copy_cfg_body): Initialize
8859         ib_boundaries_block to NULL instead of (varray_type) 0.
8860
8861 2006-04-12  Roger Sayle  <roger@eyesopen.com>
8862
8863         * expr.c (emit_group_store): Correct operand order in call to
8864         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
8865         a SUBREG_BYTE of zero.
8866
8867 2006-04-12  Richard Guenther  <rguenther@suse.de>
8868
8869         * profile.c (compute_branch_probabilities): Remove code
8870         encapsulated in !ir_type (), which are remanents of the
8871         removed RTL profiling code.
8872         * rtl-profile.c: Remove.
8873
8874 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
8875
8876         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
8877         magic NULL_RTX comment.
8878         (function_arg): Store entire fp arg to mem if any part should go
8879         on stack.
8880         (rs6000_arg_partial_bytes): Adjust for above change.
8881
8882 2006-04-11  Roger Sayle  <roger@eyesopen.com>
8883
8884         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
8885         if it hasn't been initialized by dwarf2out_init.
8886
8887 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
8888
8889         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
8890         symbolic constants in branch patterns.
8891
8892 2006-04-11  Roger Sayle  <roger@eyesopen.com>
8893
8894         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
8895
8896 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
8897
8898         PR rtl-optimization/27073
8899         * gcse.c (try_replace_reg): Revert last change.  Continue to search
8900         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
8901         on the former.
8902
8903 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8904
8905         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
8906         aggregate types other than record and union types.
8907         (function_arg): Likewise.
8908         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
8909         small arrays.
8910         (function_value): In 64-bit mode, return objects that require it
8911         in FP registers.
8912
8913 2006-04-11  Roger Sayle  <roger@eyesopen.com>
8914
8915         * dwarf2out.c (premark_used_types): Remove problematic prototype.
8916
8917 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
8918
8919         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
8920
8921 2006-04-03  Jeff Law  <law@redhat.com>
8922
8923         PR/27087
8924         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
8925         alias information too.
8926
8927 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
8928
8929         * Makefile.in (gcc-cross): Add $(exeext) to target name.
8930
8931 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
8932
8933         PR/21391
8934         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
8935         (premark_used_types_helper): New.
8936         (premark_used_types): New.
8937         (gen_subprogram_die): Call premark_used_types.
8938         (prune_unused_types_walk): Do not prune perennial dies.
8939         * function.c (used_types_insert): New.
8940         * function.h (struct function): Add used_types_hash field.
8941         (used_types_insert): Add prototype.
8942         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
8943         * c-parser.c (c_parser_cast_expression): Save casted types in used
8944         types hash table.
8945
8946 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
8947
8948         PR target/26459
8949         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
8950         rs6000_explicit_options.float_gprs.
8951
8952 2006-04-10  Roger Sayle  <roger@eyesopen.com>
8953
8954         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
8955         from ix86_expand_vector_init_low_nonzero.  Take an additional
8956         one_var argument indicating which element is non-zero.  Support
8957         one_var != 0 for V4SFmode and V4SImode by permuting the result.
8958         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
8959         with one_var instead of ix86_expand_vector_init_low_nonzero.
8960
8961 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
8962
8963         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
8964         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
8965         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
8966         build/genextract.o): Depend on vecprim.h.
8967         * cfglayout.c, df-problems.c, function.c, genextract.c,
8968         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
8969         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
8970         vecprim.h.
8971         * vecprim.h: New.
8972
8973 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
8974
8975         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
8976         Declare VECs of this type.
8977         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
8978         (remove_children): Delete.
8979         (add_dwarf_attr): Use VEC routines.
8980         (add_AT_flag): Update for changes to add_dwarf_attr.
8981         (add_AT_int): Likewise.
8982         (add_AT_unsigned): Likewise.
8983         (add_AT_long_long): Likewise.
8984         (add_AT_vec): Likewise.
8985         (add_AT_string): Likewise.
8986         (add_AT_die_ref): Likewise.
8987         (add_AT_fde_ref): Likewise.
8988         (add_AT_loc): Likewise.
8989         (add_AT_loc_list): Likewise.
8990         (add_AT_addr): Likewise.
8991         (add_AT_lbl_id): Likewise.
8992         (add_AT_lineptr): Likewise.
8993         (add_AT_macptr): Likewise.
8994         (add_AT_offset): Likewise.
8995         (add_AT_range_list): Likewise.
8996         (get_AT): Use VEC_iterate.
8997         (remove_AT): Use VEC_ordered_remove.
8998         (free_die): Fold remove_children into here; have it use VEC_iterate.
8999         (print_die): Use VEC_iterate on attrs.
9000         (reverse_die_lists): Don't reverse attr lists.
9001         (die_checksum): Use VEC_iterate on attrs.
9002         (same_die_p): Likewise.
9003         (output_location_lists): Likewise.
9004         (build_abbrev_table): Likewise.
9005         (size_of_die): Likewise.
9006         (unmark_all_dies): Likewise.
9007         (output_abbrev_section): Likewise.
9008         (output_die): Likewise.
9009         (prune_unused_types_walk_attribs): Likewise.
9010
9011 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
9012
9013         * doc/install.texi (*-*-solaris2*): Point to the configure page.
9014
9015 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
9016
9017         PR debug/27057
9018         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
9019
9020 2006-04-09  Roger Sayle  <roger@eyesopen.com>
9021
9022         * expr.c (store_constructor): Don't bother clearing target if
9023         we're about to assign a vector to it using vec_init_optab.
9024
9025 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
9026
9027         * tree-ssa-alias.c (lhs_may_store_to): New function.
9028         (recalculate_used_alone): Handle LHS of calls.
9029
9030 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9031
9032         PR target/27034
9033         PR target/26508
9034         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
9035         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
9036         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
9037         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
9038         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
9039         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
9040         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
9041         stubs.  Add ".align 8" directives before all ".dword" directives.
9042         (GTHREAD_USE_WEAK): Revise comment.
9043         (TARGET_ATTRIBUTE_WEAK): Define.
9044         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
9045         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
9046         * stublib.c: New file.
9047
9048         PR target/26743
9049         PR target/11254
9050         PR target/10274
9051         * pa.md (cbranch patterns): Revise arguments used in calls to
9052         output_cbranch, output_bb and output_bvd.  Add long branch length
9053         attributes.
9054         (fbranch patterns): Handle long branches.
9055         (jump): Revise length check.  Revise arguments for output_lbranch call.
9056         Add long branch length attributes.
9057         (decrement_and_branch_until_zero): Add long branch length attributes.
9058         (output_movb, output_parallel_addb and output_parallel_movb patterns):
9059         Likewise.  Revise arguments for output_parallel_addb and
9060         output_parallel_movb calls.
9061         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
9062         output_parallel_movb and output_parallel_addb): Update prototypes.
9063         * pa.c (output_cbranch): Revise arguments.  Correct handling of
9064         nullification in long branches.
9065         (output_lbranch): Add new argument to control extraction of delay
9066         instruction.
9067         (output_bb): Handle long branches.
9068         (output_bvb, output_dbra, output_movb, output_parallel_movb,
9069         output_parallel_addb): Likewise.
9070
9071 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
9072
9073         PR rtl-optimization/27073
9074         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
9075         not REG_EQUIVs.
9076
9077 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
9078
9079         * tree.h (tree_memory_tag): Add old_used_alone.
9080         (SMT_OLD_USED_ALONE): New macro.
9081         * tree-ssa-alias.c (recalculate_used_alone): Stop
9082         marking things for renaming unnecessarily.
9083
9084 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
9085
9086         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
9087         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
9088         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
9089         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
9090         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
9091         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
9092         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
9093         spelling convensions.
9094         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
9095         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
9096         typos.  Follow spelling conventions.
9097
9098 2006-04-07  DJ Delorie  <dj@redhat.com>
9099
9100         * config/m32c/m32c.c (m32c_function_arg): Structures are always
9101         passed on the stack.
9102         (m32c_init_cumulative_args): When a function returns a structure,
9103         always pass the pointer to that return area on the stack.
9104         (m32c_function_arg_advance): Don't increment the parameter number
9105         if we're processing the returned structure pointer.
9106         (pushm_info): Reverse order of registers.
9107
9108 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
9109
9110         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
9111         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
9112         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
9113         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
9114         build_int_cst_type.
9115         * tree-chrec.c (chrec_fold_multiply_poly_poly,
9116         chrec_fold_multiply): Same.
9117         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
9118         force_expr_to_var_cost): Same.
9119         * tree-mudflap.c (mf_xform_derefs_1): Same.
9120         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
9121
9122 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
9123
9124         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
9125         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
9126         insn.
9127
9128 2006-04-07  Jan Hubicka  <jh@suse.cz>
9129
9130         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
9131
9132 2006-04-07  Richard Guenther  <rguenther@suse.de>
9133
9134         PR tree-optimization/26135
9135         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
9136         loads for store copy-prop.
9137         (copy_prop_visit_stmt): Likewise.
9138
9139 2006-04-05  Robert Millan  <robertmh@gnu.org>
9140
9141         * config/i386/linux.h: Add a comment to mark macros that are
9142         being overriden in config/k*bsd-gnu.h.
9143         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
9144         DYNAMIC_LINKER.
9145         * config/knetbsd-gnu.h: Ditto.
9146
9147 2006-04-06  Jan Hubicka  <jh@suse.cz>
9148
9149         PR profile/20815
9150         PR profile/26399
9151         * coverage.c (coverage_checksum_string): Reorganize loop to not read
9152         after buffer.
9153
9154 2006-04-06  Mike Stump  <mrs@apple.com>
9155
9156         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
9157         for HAVE_nonlocal_goto to be consistent.
9158         (expand_builtin_nonlocal_goto): Likewise.
9159         (expand_builtin_strcmp): Use #ifdef instead of #if
9160         for HAVE_cmpstrnsi to be consistent.
9161
9162 2006-04-05  DJ Delorie  <dj@redhat.com>
9163
9164         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
9165         vs m32c.
9166
9167 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
9168
9169         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
9170         got-relative addressing for anything but SImode.
9171
9172         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
9173         even if the calling function doesn't modify them.
9174
9175 2006-04-05  Richard Guenther  <rguenther@suse.de>
9176
9177         PR tree-optimization/26919
9178         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
9179         to cgraph_estimate_size_after_inlining.
9180
9181 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
9182
9183         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
9184
9185 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
9186
9187         PR tree-optimization/26996
9188         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
9189         VECTOR_TYPE variables.
9190
9191 2006-04-05  Richard Guenther  <rguenther@suse.de>
9192
9193         PR tree-optimization/26763
9194         * fold-const.c (fold_comparison): Move folding of
9195         PTR + CST CMP PTR + CST ...
9196         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
9197
9198 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
9199
9200         * doc/install.texi (Prerequisites): Refine some wording on
9201         bootstrapping and ksh.
9202         Move the version numbers of DejaGnu here from the testing section
9203         and fix casing of names.
9204         Fix markup and clarify wording for autogen requirements.
9205         Refer to GCJ instead of just java.
9206         Refer to SVN instead of CVS.
9207         Describe diffutils as useful instead of necessary.
9208         (Downloading the source): Refer to SVN instead of CVS.
9209         Adjust a link to our web site accordingly.
9210         (Configuration): Fix casing of Bison.
9211         (Building): Refer to SVN instead of CVS.
9212         Fix a sentence on the use of Bison and remove duplicate (and
9213         incorrect) version number of Bison requirement.
9214         Remove one redundant list of packages needed for building.
9215         (Specific): Avoid reference to CVS.
9216
9217 2006-04-04  Eric Christopher  <echristo@apple.com>
9218
9219         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
9220         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
9221         (rs6000_handle_struct_attribute): New.
9222         (rs6000_ms_bitfield_layout_p): Ditto.
9223
9224 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
9225
9226         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
9227         NULL for dso parameter to atexit_common.
9228
9229 2006-04-04  Eric Christopher  <echristo@apple.com>
9230
9231         * config/i386/i386.c (machopic_output_stub): Output \t
9232         between instructions and operands.
9233
9234 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
9235
9236         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
9237         satisfies_constraint_[IL] to explicit tests on value.
9238
9239 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
9240
9241         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
9242         set_nb_iterations_in_loop): Use build_int_cst instead of
9243         build_int_cst_type.
9244         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
9245         build_int_cst instead of convert.
9246
9247 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
9248
9249         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
9250         new value 2 for incoming.
9251         * function.c (expand_function_start): Call struct_value_rtx
9252         with incoming as 2.
9253         * config/sparc/sparc.md: Comment updated_return.
9254         * config/sparc/sparc.opt: Add -mstd-struct-return option.
9255         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
9256         struct return if sparc_std_struct_return and incoming is 2.
9257         (print_operand): Do not adjust return if
9258         sparc_std_struct_return.
9259
9260 2006-04-04  Roger Sayle  <roger@eyesopen.com>
9261
9262         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
9263         convert in the middle-end.
9264         * expr.c (store_expr, store_constructor, get_inner_reference,
9265         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
9266         Likewise.
9267         * tree.c (build_range_type): Likewise.
9268
9269 2006-04-04  Tom Tromey  <tromey@redhat.com>
9270
9271         * doc/install.texi (Prerequisites): Mention jar.
9272
9273 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
9274
9275         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
9276         subsection.
9277
9278 2006-04-04  Matthias Klose  <doko@debian.org>
9279
9280         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
9281
9282         PR bootstrap/26764
9283         PR bootstrap/27334
9284         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
9285         strings.
9286
9287 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
9288
9289         * doc/extend.texi (Function Attributes): Rewrite visibility
9290         attribute documentation.
9291         * doc/invoke.texi (C++ Dialect Options): Rewrite
9292         -fvisibility-inlines-hidden documentation to describe something
9293         entirely different, although in practise compatible.
9294         (Code Gen Options): Warn about system headers in -fvisibility=
9295         documentation.
9296
9297         * doc/extend.texi (Other Builtins): Document that
9298         __builtin_nan is a compile-time constant only when its argument
9299         is valid.
9300
9301 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
9302
9303         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
9304         trying to remove TRUNCATE check if all bits outside the new mode
9305         are identical to the sign bit.
9306
9307 2006-04-03  Jeff Law  <law@redhat.com>
9308
9309         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
9310         and operand scanning in some common cases.
9311
9312 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
9313             Dale Johannesen  <dalej@apple.com>
9314
9315         PR target/19653
9316         * regclass.c (struct reg_pref): Update documentation.
9317         (regclass): Set prefclass to NO_REGS if memory is the best option.
9318         (record_reg_classes): Cope with a prefclass set to NO_REGS.
9319         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
9320         into account.  For non-registers, equate an empty preferred
9321         reload class to a `!' in the constraint; move the if clause to
9322         do so after those that reject the insn.
9323         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
9324         return NO_REGS.
9325         (find_dummy_reload): Likewise.
9326         * doc/tm.texi (Register Classes): Document what it means
9327         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
9328         * config/i386/i386.c (ix86_preferred_reload_class): Force
9329         using SSE registers (and return NO_REGS for floating-point
9330         constants) if math is done with SSE.
9331         (ix86_preferred_output_reload_class): New.
9332         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
9333         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
9334         * config/i386/i386.md: Remove # register preferences.
9335
9336 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
9337
9338         PR bootstrap/26992
9339         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
9340         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
9341         the type of nb_iter.
9342         (instantiate_parameters_1): Convert the operands before calling
9343         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
9344         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
9345
9346 2006-04-02  Roger Sayle  <roger@eyesopen.com>
9347
9348         * builtins.c (dummy_object): Use build_int_cst instead of convert.
9349         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
9350         instead of convert.
9351         * dojump.c (do_jump): Likewise.
9352         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
9353         * gimplify.c (gimple_boolify, gimplify_init_constructor,
9354         gimplify_boolean_expr): Likewise.
9355         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9356         * varasm.c (array_size_for_constructor): Likewise.
9357         * tree-object-size.c (compute_object_offset): Likewise.
9358
9359 2006-04-02  Roger Sayle  <roger@eyesopen.com>
9360
9361         PR middle-end/26977
9362         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
9363         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
9364
9365 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
9366
9367         PR tree-optimization/26939
9368         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
9369
9370 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
9371
9372         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
9373         at_stmt.  Convert the type of operands before calling
9374         build_polynomial_chrec.
9375         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
9376         add_to_evolution_1.
9377         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
9378         (instantiate_parameters_1): Convert the type of operands before calling
9379         build_polynomial_chrec.
9380         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
9381         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
9382         reset_evolution_in_loop): Insert asserts to check the types of the
9383         operands.
9384         (chrec_type): Moved...
9385         (eq_evolutions_p): Use operand_equal_p.
9386         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
9387         the types of the operands.
9388         (chrec_type): ...here.
9389         * tree-data-ref.c (create_data_ref): Convert the operands before
9390         calling chrec_replace_initial_condition.
9391         (same_access_functions, analyze_subscript_affine_affine,
9392         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
9393         (compute_subscript_distance, analyze_ziv_subscript,
9394         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
9395         analyze_miv_subscript): Convert the operands before calling
9396         chrec_fold_minus or chrec_fold_plus.
9397
9398 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
9399
9400         * tree-data-ref.c (compute_all_dependences): Use a pointer to
9401         the dependence_relations vector.
9402         (compute_data_dependences_for_loop): Adjust call to
9403         compute_all_dependences.
9404
9405 2006-04-01  Roger Sayle  <roger@eyesopen.com>
9406             Richard Henderson  <rth@redhat.com>
9407
9408         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
9409         gimple_boolify on the condition before calling gimplify_expr.
9410
9411 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
9412
9413         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
9414         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
9415         the frame size.  Update to use the new macros.
9416         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
9417         * config/xtensa/ieee754-df.S: Likewise.
9418
9419 2006-03-31  Richard Henderson  <rth@redhat.com>
9420
9421         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
9422         (make_edges): ... here.  Control fallthru creation with a local
9423         variable.  Do not play with fake edges.
9424         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
9425         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
9426         a boolean.
9427
9428 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
9429
9430         * dwarf2.h (DW64_CIE_ID): Define.
9431         * dwarf2out.c (DWARF_CIE_ID): Define.
9432         (output_call_frame_info): Output 0xffffffff before standard 8-byte
9433         length header.  Use DWARF_CIE_ID.
9434         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
9435         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
9436
9437 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9438
9439         * config/sh/linux-atomic.asm: New file.
9440         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
9441
9442 2006-03-31  DJ Delorie  <dj@redhat.com>
9443
9444         * config/m32c/cond.md: Set condition flags properly throughout.
9445         * config/m32c/minmax.md: Likewise.
9446         * config/m32c/prologue.md: Likewise.
9447         * config/m32c/bitops.md: Likewise.
9448         * config/m32c/muldiv.md: Likewise.
9449         * config/m32c/mov.md: Likewise.
9450         * config/m32c/addsub.md: Likewise.
9451         * config/m32c/m32c.md: Likewise.
9452         * config/m32c/jump.md: Likewise.
9453         * config/m32c/shift.md: Likewise.
9454
9455         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
9456         conditionally output the pattern for this.
9457         * config/m32c/m32c.c (flags_needed_for_conditional): New.
9458         (m32c_compare_redundant): New.
9459         (m32c_output_compare): New.
9460         * config/m32c/m32c-protos.h (m32c_output_compare): New.
9461
9462         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
9463         dest, not src.  Allow other 4-byte modes.
9464
9465 2006-03-30  Denis Chertykov  <denisc@overta.ru>
9466
9467         * doc/md.texi: Refer to avr/constraints.md instead of
9468         avr/avr.h.
9469
9470 2006-03-30  Roger Sayle  <roger@eyesopen.com>
9471
9472         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
9473         signed vs. unsigned comparison failures on some hosts.
9474
9475 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
9476
9477         PR target/26459
9478         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
9479         change to FLOAT_REGS.
9480
9481         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
9482         (rs6000_override_options): Use it.
9483         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
9484         only for -mabi=spe/no-spe and -mabi=altivec.
9485
9486 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
9487
9488         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
9489         !Zdynamiclib.
9490
9491 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
9492
9493         * Makefile.in: Rename docdir to gcc_docdir.
9494
9495 2006-03-30  Roger Sayle  <roger@eyesopen.com>
9496
9497         PR target/17959
9498         * expr.c (emit_group_store): Optimize group stores into a pseudo
9499         register by using a paradoxical subreg to initialize the destination
9500         if the first or last member of the group specifies a "low part".
9501
9502 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9503
9504         PR target/26734
9505         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
9506         * target.h (struct gcc_target.speculate_insn): Change type of the
9507         second parameter to 'int'.
9508         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
9509         the second operand of the DEPS_LIST.
9510         (copy_DEPS_LIST_list): Update reference to the second operand of the
9511         DEPS_LIST.
9512         * rtl.h (alloc_DEPS_LIST): Update signature.
9513         * sched-int.h (ds_t): Change typedef to 'int'.
9514         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
9515
9516 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9517
9518         * haifa-sched.c (try_ready): Change condition to restore
9519         non-speculative pattern of the instruction.
9520         (process_insn_depend_be_in_spec): Code to keep probability of the
9521         speculative dependence non-decreasing.
9522
9523 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
9524
9525         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
9526         (single_move_for_movmem): ... this. Also change all uses.
9527         (bfin_expand_strmov): Renamed to...
9528         (bfin_expand_movmem): ... this. Also change all uses.
9529         * config/bfin/bfin.md (movstrsi): Renamed to...
9530         (movstrsi): ...this.
9531
9532 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
9533
9534         PR tree-optimization/26830
9535
9536         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
9537         (copy_prop_visit_stmt): Remove write-only variable ann.
9538         (init_copy_prop): Check variable loop depth here.  Do not simulate
9539         memory-tag and virtual operand PHIs except for store copy prop.
9540
9541 2006-03-30  Richard Guenther  <rguenther@suse.de>
9542
9543         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
9544         variants with double arguments.
9545
9546 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
9547
9548         * genpreds.c (write_tm_constrs_h): Delete variable p.
9549         * genconditions.c (write_header): Add tm-constrs.h to included
9550         headers.
9551         * genpeep.c (main): Add toplev.h to included headers.
9552         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
9553         (build/genpeep.o): Add toplev.h dependency.
9554         * config/rs6000/constraints.md: Add "W" constraint.
9555
9556 2006-03-29  Roger Sayle  <roger@eyesopen.com>
9557
9558         * stor-layout.c (mode_for_size_tree): Remove restiction on type
9559         sizes by correctly testing whether the size fits a host integer.
9560         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
9561         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
9562         SImode range for the default sizetype and bitsizetype.
9563
9564 2006-03-29  Roger Sayle  <roger@eyesopen.com>
9565
9566         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
9567         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
9568         quickly if the argument is already of the correct type.
9569         Call fold_build1 instead of build1.  Tidy up blank lines.
9570
9571 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
9572
9573         * genemit.c (main): Add tm-constrs.h to included headers.
9574         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
9575         * genpeep.c (main): Add tm-constrs.h to included headers.
9576         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
9577         (write_tm_constrs_h): this and write complete file.
9578         (write_tm_preds_h): Do not emit satisfies_constraint fns.
9579         (write_insn_preds_c): Add tm-constrs.h to included headers.
9580         (gen_constrs): New variable.
9581         (parse_option): Parse "-c".
9582         (main): Invoke write_tm_constrs_h.
9583         * genrecog.c (write_header): Add tm-constrs.h to included headers.
9584         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
9585         (object_out_file): Add tm-constrs.h dependency.
9586         (insn-emit.o): Same.
9587         (insn-output.o): Same.
9588         (insn-peep.o): Same.
9589         (insn-preds.o): Same.
9590         (insn-recog.o): Same.
9591         (tm-constsr.h): New target.
9592         (s-constrs-h): New target.
9593
9594         * config/rs6000/constraints.md: New file.
9595         * config/rs6000/rs6000.c: Include tm-constrs.h.
9596         (num_insn_constant_wide): Convert to satisfies_constraint.
9597         (rs6000_rtx_costs): Convert to satisfies_constraint.
9598         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
9599         (CONST_OK_FOR_LETTER_P): Delete.
9600         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9601         (EXTRA_CONSTRAINT): Delete.
9602         (EXTRA_MEMORY_CONSTRAINT): Delete.
9603         (EXTRA_ADDRESS_CONSTRAINT): Delete.
9604         * config/rs6000/predicates.md: Convert to satisfies_constraint.
9605         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
9606         satisfies_constraint.
9607
9608         * config/i386/i386.c: Include tm-constrs.h.
9609
9610 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
9611
9612         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
9613         * tree-data-ref.c (find_data_references_in_loop,
9614         compute_data_dependences_for_loop): Use pointers to VEC.
9615         (analyze_all_data_dependences): Adjust calls.
9616         * tree-data-ref.h (find_data_references_in_loop,
9617         compute_data_dependences_for_loop): Adjust declarations.
9618         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
9619         compute_data_dependences_for_loop.
9620
9621 2006-03-29  Paul Brook  <paul@codesourcery.com>
9622
9623         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
9624         (movdf_vfp): Ditto.
9625
9626 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
9627
9628         PR tree-optimization/26859
9629         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
9630         division by zero.
9631         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
9632         for the step after fold_convert.
9633
9634 2006-03-29  Paul Brook  <paul@codesourcery.com>
9635
9636         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
9637         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
9638
9639 2006-03-29  Paul Brook  <paul@codesourcery.com>
9640
9641         PR middle-end/23623
9642         * targhooks.c (default_narrow_bitfield): New fuction.
9643         * targhooks.h (default_narrow_bitfield): add prototype.
9644         * target.h (gcc_target): Add narrow_volatile_bitfield.
9645         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
9646         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
9647         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
9648         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
9649
9650 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
9651
9652         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
9653         tmake_file.
9654         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
9655         (NR_C_MODES): Add TDmode, DDmode and SDmode.
9656         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
9657         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
9658         (s390_function_arg_float): Allow SDmode and DDmode values to be
9659         passed in floating point registers.
9660         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
9661         check with SCALAR_FLOAT_MODE_P.
9662         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
9663
9664 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
9665
9666         PR tree-optimization/25985
9667         * tree-ssa-loop-niter.c (number_of_iterations_le,
9668         number_of_iterations_ne): Make comments more precise.
9669         (number_of_iterations_cond): Add only_exit argument.  Use the
9670         fact that signed variables do not overflow only when only_exit
9671         is true.
9672         (loop_only_exit_p): New.
9673         (number_of_iterations_exit): Pass result of loop_only_exit_p to
9674         number_of_iterations_cond.
9675
9676 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
9677
9678         PR tree-optimization/26643
9679         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
9680         bit_field_refs.
9681
9682 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
9683
9684         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
9685         (divsi3_i4_int): Likewise.
9686
9687 2006-03-28  Roger Sayle  <roger@eyesopen.com>
9688
9689         * expr.c (emit_group_store): Only create a new pseudo reg if the
9690         quantity it needs to hold isn't already a suitable pseudo.
9691
9692 2006-03-28  Jeff Law  <law@redhat.com>
9693
9694         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
9695         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
9696
9697 2006-03-28  Roger Sayle  <roger@eyesopen.com>
9698
9699         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
9700         the equivalent ~X & Y, and the symmetry related transformations.
9701         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
9702         ~X & Y, and symmetry related transforms.
9703
9704 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9705
9706         Revert my 2006-03-27 patches.
9707
9708 2006-03-28  Roger Sayle  <roger@eyesopen.com>
9709
9710         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
9711         ~(T1)X, when T1 and T2 are integer types of the same precision
9712         and (T2)X isn't an extension.
9713
9714 2006-03-28  Jeff Law  <law@redhat.com>
9715
9716         PR tree-optimization/26796
9717         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
9718         need EH edge cleanups rather than purging them immediately.
9719         (eliminate_degenerate_phis): Handle queued EH cleanups.
9720
9721 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
9722
9723         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
9724         from parent_var.
9725
9726 2006-03-27  Roger Sayle  <roger@eyesopen.com>
9727
9728         PR middle-end/22524
9729         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
9730         cast BIT_NOT_EXPR operand to the correct type.
9731
9732 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
9733
9734         * tree-loop-linear.c: Don't include varray.h.
9735         (gather_interchange_stats, try_interchange_loops,
9736         linear_transform_loops): Use VEC instead of VARRAY.
9737         * lambda-mat.c: Don't include varray.h.
9738         * tree-chrec.c: Same.
9739         * lambda-trans.c: Same.
9740         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
9741         VEC instead of VARRAY.
9742         * tree-vectorizer.h: Idem.
9743         * tree-data-ref.c (dump_data_references,
9744         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
9745         initialize_data_dependence_relation, finalize_ddr_dependent,
9746         compute_all_dependences, find_data_references_in_loop,
9747         compute_data_dependences_for_loop, analyze_all_data_dependences,
9748         free_dependence_relation, free_dependence_relations,
9749         free_data_refs): Idem.
9750         * tree-data-ref.h (data_reference_p, subscript_p): New.
9751         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
9752         VEC instead of VARRAY.
9753         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
9754         (find_data_references_in_loop, compute_data_dependences_for_loop,
9755         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
9756         dump_data_dependence_relations, free_dependence_relations,
9757         free_data_refs): Adjust declaration.
9758         (lambda_transform_legal_p): Move declaration here...
9759         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
9760         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
9761         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
9762         vect_analyze_data_refs): Use VEC instead of VARRAY.
9763         * lambda.h (lambda_transform_legal_p): ...from here.
9764         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
9765         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
9766         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
9767         tree-chrec.o): Don't depend on VARRAY_H.
9768
9769 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9770
9771         * rtl.def (Copyright): Update date.
9772         (DEPS_LIST): Change type of the second operand to 'int'.
9773         * target.h (Copyright): Update date.
9774         (struct gcc_target.speculate_insn): Change type of the second parameter
9775         to 'int'.
9776         * lists.c (Copyright): Update date.
9777         (alloc_DEPS_LIST): Change signature.  Update reference to the second
9778         operand of the DEPS_LIST.
9779         (copy_DEPS_LIST_list): Update reference to the second operand of the
9780         DEPS_LIST.
9781         * rtl.h (Copyright): Update date.
9782         (alloc_DEPS_LIST): Update signature.
9783         * sched-int.h (Copyright): Update date.
9784         (ds_t): Change typedef to 'int'.
9785         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
9786
9787 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9788
9789         * haifa-sched.c (Copyright): Update date.
9790         (try_ready): Change condition to restore non-speculative pattern
9791         of the instruction.
9792         (process_insn_depend_be_in_spec): Code to keep probability of the
9793         speculative dependence non-decreasing.
9794
9795 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
9796
9797         * regrename.c (replace_oldest_value_addr): Initialize a variable to
9798         shut up the compiler.
9799
9800 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
9801
9802         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
9803         to use lib prefix for target.
9804         ($(T)libic_invalidate_array_4-200.a): Likewise.
9805         ($(T)libic_invalidate_array_4a.a): Likewise.
9806
9807 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
9808             J"orn Rennecke <joern.rennecke@st.com>
9809
9810         * superh.opt: New file.
9811         * sh.c (boardtype, osruntime): Remove.
9812         * superh.h (SUBTARGET_OPTIONS): Remove.
9813         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
9814
9815         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
9816         arguments with ^ and/or [].
9817
9818         * config.gcc (sh-*-*): Add quoting to account for quirk of
9819         Solaris /bin/sh.
9820         Replace == with = in enable_incomplete_targets test.
9821
9822         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
9823         with MASK_LITTLE_ENDIAN.
9824
9825         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
9826         * config/sh/sh.opt: Added to some comments.
9827         * config/sh/superh.h: Removed some chaff.
9828
9829         * config/sh/sh.opt: Add m4-[1234]00* options.
9830         * config/sh/sh.c (sh_handle_option): Likewise.
9831         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
9832         (ic_invalidate_array_4-100.o): New rule.
9833         ($(T)libic_invalidate_array_4-100.a): Likewise.
9834         (ic_invalidate_array_4-200.o): Likewise.
9835         ($(T)libic_invalidate_array_4-200.a): Likewise.
9836         (ic_invalidate_array_4a.o): Likewise.
9837         ($(T)libic_invalidate_array_4a.a): Likewise.
9838         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
9839         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
9840         m4-200*, and m4a*.
9841         * config/sh/crt1.asm: Merged in profiling code.
9842         * config/sh/superh.h (STARTFILE_SPEC): Override.
9843         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
9844         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
9845         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
9846
9847         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
9848         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
9849         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
9850
9851         * sh.opt (mpretend-cmove): New option.
9852         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
9853         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
9854         (movsicc): Add TARGET_PRETEND_CMOVE code.
9855
9856 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9857
9858         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
9859         s390_class_max_nregs): New function prototypes.
9860         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
9861         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
9862         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
9863         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
9864
9865 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
9866
9867         * dwarf2out.c (add_location_or_const_value_attribute): Call
9868         tree_add_const_value_attribute if nothing else works.
9869         (reference_to_unused): New.
9870         (rtl_for_decl_init): Use reference_to_unused to decide whether
9871         to output an initializer.
9872
9873 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
9874
9875         PR target/26459
9876         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
9877         peephole removing spe frob_di_df_2.
9878
9879 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
9880
9881         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
9882         (subscript_dependence_tester_1): Declared.
9883         (print_dir_vectors, print_dist_vectors): New.
9884         (debug_data_dependence_relation): New.
9885         (dump_data_dependence_relation): Print more details.
9886         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
9887         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
9888         (save_dist_v, save_dir_v, add_outer_distances,
9889         build_classic_dist_vector_1): New.
9890         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
9891         Don't test for lambda_vector_lexico_pos.
9892         (same_access_functions, add_multivariate_self_dist,
9893         add_other_self_distances, dir_from_dist): New.
9894         (build_classic_dir_vector): Replace implementation almost identical to
9895         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
9896         dir_from_dist.
9897         (subscript_dependence_tester_1): New.
9898         (subscript_dependence_tester): Handle the lexicographically negative
9899         distance vectors by recomputing the dependence relation.
9900         (compute_affine_dependence): Remove parameter loop_nest_depth.
9901         (compute_self_dependence): Don't call compute_subscript_distance.
9902         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
9903         Add a parameter for the loop_nest.
9904         (find_loop_nest_1, find_loop_nest): New.
9905         (compute_data_dependences_for_loop): Compute the loop nest, and give
9906         up if the nest is not well formed.
9907         * tree-data-ref.h (loop_p): New.
9908         (struct data_dependence_relation): Replace size_vect field with
9909         loop_nest, a vec of loops.
9910         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
9911         (DDR_LOOP_NEST): New.
9912         (print_dir_vectors, print_dist_vectors,
9913         debug_data_dependence_relation): Declared.
9914         (index_in_loop_nest): New.
9915         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
9916         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
9917         distance.
9918
9919 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
9920
9921         * simplify-rtx.c (simplify_relational_operation): Call
9922         simplify_relational_operation_1 even if mode is VOIDmode.
9923
9924 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
9925
9926         PR tree-optimization/26804
9927         * tree.h (DECL_CALL_CLOBBERED): New macro.
9928         (tree_decl_common): Add call_clobbered_flag.
9929         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
9930         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
9931         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
9932         (mark_non_addressable): Ditto.
9933         * tree-ssa.c (verify_call_clobbered): New function.
9934         (verify_alias_info): Use it.
9935         * tree-pass.h (pass_reset_cc_flags): New prototype.
9936         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
9937         (reset_cc_flags): New function.
9938         * passes.c (init_optimization_passes): Call reset_cc_flags after
9939         initializing referenced_vars.
9940
9941 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
9942             Roger Sayle  <roger@eyesopen.com>
9943
9944         PR middle-end/26717
9945         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
9946         to 1.0 for non-real operands. Implement A / A optimization for
9947         complex operands.
9948
9949 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
9950
9951         * config/i386/i386.c (size_cost): Correct the comment for
9952         cost of storing fp registers.
9953         (i386_cost): Likewise.
9954         (i486_cost): Likewise.
9955         (pentium_cost): Likewise.
9956         (pentiumpro_cost): Likewise.
9957         (k6_cost): Likewise.
9958         (athlon_cost): Likewise.
9959         (k8_cost): Likewise.
9960         (pentium4_cost): Likewise.
9961         (nocona_cost): Likewise.
9962         (generic64_cost): Likewise.
9963         (generic32_cost): Likewise.
9964
9965 2006-03-24  Denis Chertykov  <denisc@overta.ru>
9966
9967         * config/avr/avr-protos.h (extra_constraint): Delete.
9968         (extra_constraint_Q): New declaration.
9969         * config/avr/constraints.md: New file.
9970         * config/avr/avr.md: Include it.
9971         (REG_X, REG_Y, REG_Z, REG_W): New constants.
9972         (TMP_REGNO, ZERO_REGNO): Likewise.
9973         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
9974         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
9975         (extra_constraint): Delete.
9976         (extra_constraint_Q): Test for memory constraint 'Q'.
9977         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
9978         (REG_CLASS_FROM_LETTER): Delete.
9979         (CONST_OK_FOR_LETTER_P): Delete.
9980         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9981         (EXTRA_CONSTRAINT): Delete.
9982         (TMP_REGNO): Delete.
9983         (ZERO_REGNO): Delete.
9984
9985 2006-03-24  Jeff Law  <law@redhat.com>
9986
9987         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
9988         directly.  Call mark_new_vars_to_rename slightly earlier.
9989
9990 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
9991
9992         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
9993         (is_cxx): Likewise.
9994         (gen_compile_unit_die): Use new language types for Objective-C and
9995         Objective-C++.
9996         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
9997         DW_LANG_C_plus_plus.
9998
9999         PR 26793
10000         * config/t-darwin (crt3.o): Work around bug 26840.
10001         * config/darwin-crt3.c: Rewrite.
10002         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
10003
10004 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
10005
10006         * doc/invoke.texi: Document -femit-class-debug-always
10007         * common.opt: Add -femit-class-debug-always.
10008
10009 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10010
10011         * config/s390/s390.c (s390_decompose_address): Allow SImode for
10012         index and base register.
10013         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
10014         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
10015         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
10016         REGNO_OK_FOR_INDEX_P.
10017         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
10018         ADDR_REGNO_P.
10019         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
10020         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
10021         REG_OK_FOR_BASE_P): Definitions removed.
10022
10023 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
10024
10025         PR middle-end/26611
10026         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
10027         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
10028         set yet or weren't marked as local yet.
10029
10030 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10031
10032         * regrename.c (scan_rtx_address): Initialize a variable to shut up
10033         the compiler.
10034
10035 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10036
10037         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
10038         (rs6000_legitimate_small_data_p): Delete.
10039         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
10040         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
10041         and make static.  Add forward declaration.  Update uses.
10042         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
10043         of offsettable_memref_p.
10044         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
10045         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
10046
10047 2006-03-24  Jeff Law  <law@redhat.com>
10048
10049         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
10050         around bug in immediate-use iterator.
10051
10052 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
10053
10054         PR target/26607
10055         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
10056         or __LITTLE_ENDIAN__.
10057
10058 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
10059
10060         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
10061         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
10062         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
10063         * config/sh/sh.opt (mdiv=): Amend description.
10064         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
10065         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
10066         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
10067         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
10068         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
10069         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
10070         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
10071         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
10072         TARGET_DIVIDE_CALL_FP.
10073
10074 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
10075
10076         * haifa-sched.c (choose_ready): Fix type of the local variable.
10077         Move local variables.  Add comment.
10078         (check_reg_live): Change signature.  Make callable from debugger.
10079         * sched-int.h (check_reg_live): Update signature.
10080         * sched-ebb.c (check_reg_live): Update parameters.
10081         * sched-rgn.c (check_reg_live): Ditto.
10082         (region_head_or_leaf_p): Check pointer before dereferencing.
10083         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
10084         before reload on optimization levels below 1.
10085
10086 2006-03-23  Richard Henderson  <rth@redhat.com>
10087
10088         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
10089         tls symbols.
10090
10091         PR target/26347
10092         * config/alpha/predicates.md (local_symbolic_operand): Reject
10093         weak symbols.
10094
10095 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
10096
10097         PR tree-opt/26795
10098         * tree-ssa-pre.c (create_value_expr_from): Don't reject
10099         expressions which have overflowed constants.
10100
10101 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
10102
10103         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
10104
10105 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
10106
10107         * cfgloopmanip.c (create_loop_notes): Removed.
10108         * final.c (final_scan_insn): Do not handle loop notes.
10109         * jump.c (squeeze_notes): Ditto.
10110         * cfglayout.c (skip_insns_after_block,
10111         duplicate_insn_chain): Ditto.
10112         * cfgcleanup.c (rest_of_handle_jump2): Do not call
10113         create_loop_notes.
10114         * cfgloop.h (create_loop_notes): Declaration removed.
10115
10116 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
10117
10118         * varasm.c (output_constant_pool): Restore fnname and fndecl
10119         arguments.
10120         (assemble_start_function): Adjust call accordingly.
10121         (assemble_end_function): Likewise.
10122
10123 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10124
10125         PR mudflap/26789
10126         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
10127
10128         PR mudflap/26790
10129         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
10130
10131 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10132
10133         PR driver/22600
10134         * system.h (ICE_EXIT_CODE): New macro.
10135         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
10136         (diagnostic_action_after_output): Likewise.
10137         * gcc.c (fatal_ice): New function.
10138         (execute): Use it instead of fatal.
10139         (fancy_abort): Likewise.
10140         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
10141
10142 2006-03-22  Jeff Law  <law@redhat.com>
10143
10144         * loop-unroll.c (analyze_iv_to_split_insn): Handle
10145         iv_analyze_result returning false.
10146
10147 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
10148
10149         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
10150
10151 2006-03-22  Richard Henderson  <rth@redhat.com>
10152
10153         PR middle-end/26084
10154         * except.c (duplicate_eh_regions_0): New.
10155         (duplicate_eh_region_1): Duplicate the children of the node as
10156         well as the node itself.  Link them up properly.
10157         (duplicate_eh_region_2): Merge into ...
10158         (duplicate_eh_regions): ... here.  Take copy_region argument, and
10159         copy only a sub-tree if asked.  Simplify copying and fixup.
10160         (eh_region_outer_p): New.
10161         * except.h (duplicate_eh_regions): Update decl.
10162         (eh_region_outer_p): Declare.
10163         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
10164         (lower_omp_master): Likewise.
10165         (lower_omp_ordered): Likewise.
10166         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
10167         (move_stmt_r): Use it to remap labels.  Handle recursion vs
10168         remap_decls_p properly.
10169         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
10170         (find_outermost_region_in_block): New.
10171         (new_label_mapper): New.
10172         (move_sese_region_to_fn): Copy eh information to the new function
10173         properly.
10174         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
10175         argument.
10176         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
10177         number.
10178
10179 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
10180
10181         * doc/md.texi (-mshared): Mention that -mshared code can be linked
10182         into shared libraries.
10183
10184 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
10185
10186         * doc/md.texi: Refer to i386/constraints.md instead of
10187         i386/predicates.md.
10188         * config/i386/constraints.md: New file, extracted from...
10189         * config/i386/predicates.md: ...here.
10190         * config/i386/i386.md: Include constraints.md.
10191
10192 2006-03-21  Jason Merrill  <jason@redhat.com>
10193
10194         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
10195
10196         PR middle-end/20297
10197         * expr.c (init_block_move_fn): Force default visibility.
10198         (init_block_clear_fn): Likewise.
10199         * builtins.c (expand_builtin_fork_or_exec): Likewise.
10200         * targhooks.c (default_external_stack_protect_fail): Likewise.
10201
10202 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
10203
10204         * config/mips/predicates.md (const_call_insn_operand): Allow direct
10205         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
10206         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
10207         Use TARGET_OLDABI instead of !TARGET_NEWABI.
10208         (loadgp): Use mips_current_loadgp_style.
10209         (loadgp_noshared): New pattern.
10210         (sibcall_internal): Use MIPS_CALL.
10211         (sibcall_value_internal): Likewise.
10212         (sibcall_value_multiple_internal): Likewise.
10213         (call_internal): Likewise.
10214         (call_value_internal): Likewise.
10215         (call_value_multiple_internal): Likewise.
10216         (call_split): Use MIPS_CALL and add an 'S' constraint.
10217         (call_value_split): Likewise.
10218         (call_value_multiple_split): Likewise.
10219         * config/mips/mips.opt (-mabicalls): Tweak docstring.
10220         (-mshared): New option.
10221         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
10222         (mips_current_loadgp_style): Declare.
10223         * config/mips/mips.c (mips_classify_symbol): Avoid using
10224         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
10225         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
10226         TARGET_ABSOLUTE_ABICALLS.
10227         (override_options): Adjust comments.  Improve the warning that is
10228         issued when -mabicalls and -G are used together.
10229         (mips_file_start): Remove comment.
10230         (mips_current_loadgp_style): New function.
10231         (mips_gnu_local_gp): New variable.
10232         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
10233         LOADGP_ABSOLUTE.
10234         (mips_output_function_prologue): Use mips_current_laodgp_style.
10235         (mips_expand_prologue): Call mips_emit_loadgp before emitting
10236         the cprestore instruction.
10237         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
10238         live for TARGET_ABSOLUTE_ABICALLS.
10239         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
10240         (ASM_SPEC): Pass down -mshared and -mno-shared.
10241         (MIPS_CALL): New macro.
10242         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
10243         definition.
10244         * doc/invoke.texi (-mabicalls): Update documentation.
10245         (-mshared): Document.
10246
10247 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
10248
10249         * config/ia64/unwind-hpux.c: New file.
10250         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
10251
10252 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
10253
10254         PR libgomp/26384
10255         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
10256
10257 2006-03-21  Jeff Law  <law@redhat.com>
10258
10259         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
10260         type conversions of a VR_VARYING source to a wider type.
10261
10262 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
10263
10264         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
10265         tm_file on Solaris 10 and later.
10266         (sparc64-*-solaris2*): Likewise.
10267         (sparc-*-solaris2*): Likewise.
10268         * config/sol26.h: Rename to config/sol2-6.h.
10269         * config/sol2-10.h: New file.
10270
10271 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
10272
10273         PR tree-opt/26781
10274         * tree-ssa-pre.c (create_component_ref_by_pieces):
10275         Handle STRING_CST.
10276
10277 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
10278
10279         PR c++/26690
10280         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
10281         return it immediately.
10282
10283 2006-03-21  Michael Matz  <matz@suse.de>
10284
10285         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
10286         New members.
10287         (remove_arc, add_arc): Update num_out_arcs member.
10288         (set_out_arc_insns_equiv_num): Returns nothing instead of number
10289         of out arcs.
10290         (cache_presence): New function.
10291         (compare_states_for_equiv): New function.
10292         (state_is_differed): Don't take number of outargs, adjust callers.
10293         Use new invariant for speeding up.
10294         (init_equiv_class): Create initial classes based on sorted
10295         input.
10296         (partition_equiv_class): Don't track out_arcs_num.
10297         (evaluate_equiv_classes): Call cache_presence on all states and
10298         sort them.
10299
10300 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
10301
10302         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
10303         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
10304         (bfin_valid_reg_p): Test for pseudos explicitly and use only
10305         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
10306         callers changed.
10307         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
10308         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
10309         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
10310         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
10311         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
10312         macros.
10313         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
10314         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
10315         (REGNO_REG_CLASS): ARGP is in PREGS.
10316         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
10317         IREGS.
10318         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
10319         to deal with those addresses.
10320         * addresses.h: New file.
10321         * caller-save.c: Include "addresses.h".
10322         (init_caller_save): Use new base_reg_class function.
10323         * rtl-factoring.c: Include "addresses.h".
10324         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
10325         * recog.c: Include "addresses.h".
10326         (preprocess_constraints): Use new base_reg_class function.
10327         * regrename.c: Include "addresses.h".
10328         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
10329         functions.  Keep track of a new var INDEX_CODE to compute valid
10330         classes.
10331         (replace_oldest_value_addr): Likewise.
10332         (replace_oldest_value_mem): Use base_reg_class.
10333         * reload.c: Include "addresses.h".
10334         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
10335         (find_reloads): Use new base_reg_class function.
10336         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
10337         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
10338         all callers and prototype changed.
10339         * reload1.c: Include "addresses.h".
10340         (maybe_fix_stack_asms): Use base_reg_class.
10341         * regclass.c: Include "addresses.h".
10342         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
10343         (init_reg_autoinc): Use new base_reg_class function.
10344         (record_reg_classes): Likewise.
10345         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
10346         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
10347         Use new args to compute necessary class.
10348
10349         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
10350         regrename.o, rtl-factoring.o): Update dependencies.
10351         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
10352         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
10353         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
10354         REG_OK_FOR_INDEX_P): Delete documentation.
10355
10356 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
10357
10358         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
10359         from V7 to V9 for Solaris 7 and above.
10360
10361 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
10362
10363         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
10364         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
10365         argument pointers may not alias any other storage.
10366         * common.opt: Define option -fargument-noalias-anything.
10367         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
10368         alias semantics is specified by flag_argument_noalias > 2.
10369
10370 2006-03-20  Jeff Law  <law@redhat.com>
10371
10372         * tree-pass.h (pass_phi_only_copy_prop): Delete.
10373         (pass_phi_only_cprop): Declare.
10374         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
10375         with phi_only_cprop
10376         * tree-ssa-dom.c (degenerate_phi_result): New function.
10377         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
10378         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
10379         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
10380         (eliminate_degenerate_phis): Likewise.
10381         (pass_phi_only_cprop): New pass descriptor.
10382         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
10383         support code.  Callers updated.
10384         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
10385         (store_copy_prop): Likewise.
10386         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
10387
10388 2006-03-20  Jason Merrill  <jason@redhat.com>
10389
10390         PR c++/21764
10391         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
10392         (push_visibility, pop_visibility): Likewise.
10393         * c-pragma.h: Declare them.
10394
10395 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10396
10397         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
10398
10399         * config/sh/sh.c (find_regmode_weight): Change the type of the first
10400         parameter and use get_ebb_head_tail.
10401         (sh_md_init_global): Adjust uses of find_regmode_weight.
10402
10403 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
10404
10405         * function.h (struct function) <x_tail_recursion_reentry>:
10406         Rename to x_stack_check_probe_note.
10407         (tail_recursion_reentry): Rename to stack_check_probe_note.
10408         * function.c: Replace tail_recursion_reentry with
10409         stack_check_probe_note everywhere.
10410         (expand_function_start): Only emit a note for
10411         stack_check_probe_note with -fstack-protect.
10412         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
10413
10414         * emit-rtl.c (remove_unnecessary_notes): Remove.
10415         (pass_remove_unnecessary_notes): Remove.
10416         * rtl.h (remove_unnecessary_notes): Remove prototype.
10417         * final.c (final_start_function): Don't call remove_unnecessary_notes.
10418         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
10419         * passes.c (pass_remove_unnecessary_notes): Don't run it.
10420
10421 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
10422
10423         PR tree-opt/26629
10424         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
10425         (valid_in_set): Handle ARRAY_REF.
10426         Change "if min_variant or VH" to asserts.
10427         (create_component_ref_by_pieces): Handle ARRAY_REF.
10428         (create_expression_by_pieces): Likewise.
10429         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
10430
10431 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
10432
10433         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
10434         is operand of switch, not str[0].
10435
10436 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
10437
10438         * config/rs6000/rs6000.c (rs6000_handle_option): Use
10439         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
10440
10441 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
10442
10443         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
10444         end of insn_extra_address_constraint declaration.
10445
10446 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
10447
10448         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
10449         (no-sum-in-toc): Same.
10450         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
10451         variables.
10452         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
10453         NO_FP_IN_TOC for -fPIC instead of mask.
10454
10455         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
10456         (BOOT_LDFLAGS): Delete.
10457         (LDFLAGS): Delete.
10458         * config/rs6000/t-aix52: Same.
10459
10460         * config/rs6000/rs6000.md (store_multiple_power): Delete.
10461         (stmsi[345678]_power): New.
10462
10463 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
10464
10465         * config/ia64/ia64.opt: Add empty line to end of file.
10466
10467 2006-03-17  Richard Guenther  <rguenther@suse.de>
10468
10469         PR middle-end/26721
10470         * builtins.c (get_pointer_alignment): For component style references
10471         adjust alignment to the component type alignment.  Make sure
10472         to adjust alignment for component access of constants.
10473
10474 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
10475
10476         * config/rs6000/rs6000.md (strlensi): Emit barrier after
10477         unconditional jump.
10478
10479 2006-03-17  Paul Brook  <paul@codesourcery.com>
10480
10481         * doc/install.texi: Docuemnt --with-mode.
10482         * config.gcc: Add --with-mode for arm*-*-*.
10483         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
10484
10485 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
10486
10487         * sh.c (max_labelno_before_reorg): New variable.
10488         (sh_reorg): Initialize it.
10489         (find_barrier): Check max_labelno_before_reorg before using
10490         label_to_alignment.  Take length of explicit alignment insns
10491         into account.  When seeing a UNSPECV_CONST_END, return it.
10492
10493         * sh.c (fixup_mova): Set mode of affected label to QImode.
10494         (untangle_mova): New function.
10495         (find_barrier): Use it.  Check mode of label before decrementing
10496         num_mova.
10497         (sh_reorg): Likewise.
10498         Set mode of all insns back to VOIDmode.
10499
10500         * sh.c (MOVA_LABELREF): New macro.
10501         (mova_p, fixup_mova, sh_reorg): Use it.
10502         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
10503         ADDR_DIFF_VEC matches mova.
10504
10505 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
10506
10507         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
10508         with ATTRIBUTE_UNUSED.
10509
10510 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
10511
10512         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
10513         pointer, instead of assuming it is possible to derive the
10514         correct args size from a call insn.
10515
10516 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10517
10518         * rtl.h (CONST_INT_P): Define.
10519         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
10520         instead of GET_CODE(x) == CONST_INT.
10521         (vax_rtx_costs): Likewise.
10522         (vax_output_int_move): Likewise.
10523         (vax_output_int_add): Likewise.
10524         (legitimate_constant_address_p): Likewise.
10525         (index_term_p): Likewise.
10526         * config/vax/vax.h (PRINT_OPERAND): Likewise.
10527         * config/vax/vax.md (and<mode>3): Likewise.
10528         (ashrsi3): Likewise.
10529         (extv): Likewise.
10530         (movstricthi): Likewise.
10531         (movstrictqi): Likewise.
10532         (rotrsi3): Likewise.
10533         (five unnamed insns): Likewise.
10534
10535 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
10536
10537         * doc/tm.texi (SDB and DWARF): Add extra parameter to
10538         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
10539         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
10540         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
10541         Pass to ASM_OUTPUT_DWARF_OFFSET.
10542         * dwarf2out.c (debug_frame_section): New.
10543         (output_call_frame_info): Use debug_frame_section.  Pass it to
10544         dw2_asm_output_offset.
10545         (output_die): Pass appropriate section to dw2_asm_output_offset.
10546         (output_compilation_unit_header): Likewise.
10547         (output_pubnames): Likewise.
10548         (output_aranges): Likewise.
10549         (enum dw_val_class): Break dw_val_class_lbl_offset into
10550         dw_val_class_lineptr and dw_val_class_macptr.
10551         (add_AT_lbl_offset): Delete.
10552         (add_AT_lineptr): New.
10553         (add_AT_macptr): New.
10554         (AT_lbl): Expect a lineptr or macptr.
10555         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
10556         (attr_checksum): Likewise.
10557         (same_dw_val_p): Likewise.
10558         (size_of_die): Likewise.
10559         (value_format): Likewise.
10560         (output_die): Likewise.
10561         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
10562         add_AT_lbl_offset.
10563         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
10564         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
10565         * config/darwin-protos.h (darwin_file_start): New.
10566         (darwin_asm_output_dwarf_offset): New.
10567         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
10568         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
10569         darwin_file_start.
10570         * config/darwin.c (darwin_emit_unwind_label): Don't output label
10571         if not EH section; simplify.
10572         (darwin_file_start): New.
10573         (darwin_asm_output_dwarf_offset): New.
10574         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
10575         mark as 'debug'.
10576         (DEBUG_INFO_SECTION): Likewise.
10577         (DEBUG_ABBREV_SECTION): Likewise.
10578         (DEBUG_ARANGES_SECTION): Likewise.
10579         (DEBUG_MACINFO_SECTION): Likewise.
10580         (DEBUG_LINE_SECTION): Likewise.
10581         (DEBUG_LOC_SECTION): Likewise.
10582         (DEBUG_PUBNAMES_SECTION): Likewise.
10583         (DEBUG_STR_SECTION): Likewise.
10584         (DEBUG_RANGES_SECTION): Likewise.
10585         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
10586         (ASM_OUTPUT_DWARF_OFFSET): New.
10587
10588 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
10589
10590         * config.gcc (tm_defines): Always add to previous value rather
10591         than replacing it.
10592
10593 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
10594
10595         * config/mips/predicates.md (splittable_const_int_operand): New,
10596         split from move_operand.
10597         (splittable_symbolic_operand): New.
10598         (move_operand): Add commentary.  Use splittable_const_int_operand.
10599         Inline mips_atomic_symbolic_constant_p.
10600         * config/mips/mips.md: Add combine splitters for handling moves
10601         of splittable_const_int_operands and splittable_symbolic_operands.
10602         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
10603         (mips_split_symbol): Declare.
10604         (mips_move_integer): Declare.
10605         * config/mips/mips.c (mips_split_p): Make global.
10606         (TARGET_MIN_ANCHOR_OFFSET): Override default.
10607         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
10608         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
10609         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
10610         (mips_offset_within_object_p): Handle block symbols.
10611         (mips_atomic_symbolic_constant_p): Delete.
10612         (mips_cannot_force_const_mem): Return false for constants that
10613         mips_legitimize_move can handle.
10614         (mips_use_blocks_for_constant_p): New function.
10615         (mips_split_symbol): Make global.
10616         (mips_move_integer): Likewise.  Add a temporary register argument.
10617         (mips_legitimize_const_move): Use splittable_const_int_operand and
10618         splittable_symbolic_operand.
10619         (mips_use_anchors_for_symbol_p): New function.
10620         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
10621         (mips_split_p): Declare.
10622
10623 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
10624
10625         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
10626         (mips*-*-linux*): Likewise.
10627
10628 2006-03-16  Roger Sayle  <roger@eyesopen.com>
10629             Daniel Speyer  <dspeyer@wam.umd.edu>
10630
10631         PR middle-end/18259
10632         * tree-dump.c (dump_real): New function.
10633         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
10634         * Makefile.in (REAL_H): New macro for dependencies on real.h.
10635         (tree-dump.o): Add $(REAL_H) to the dependencies.
10636
10637 2006-03-16  Roger Sayle  <roger@eyesopen.com>
10638
10639         PR middle-end/21781
10640         * real.c (real_from_string): If the mantissa is zero, don't bother
10641         parsing the exponent as the result should always be zero.
10642
10643 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
10644
10645         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
10646
10647 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10648
10649         * config/ia64/ia64.c (stops_p): Added explicit initialization.
10650         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
10651         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
10652         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
10653         ia64_sched_finish_global): New static functions to implement
10654         hooks from gcc_target.sched.
10655         (spec_check_no, max_uid, pending_data_specs): New static variables.
10656         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
10657         ia64_spec_check_src_p): New static functions.
10658         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
10659         (TARGET_SCHED_ADJUST_COST): Removed.
10660         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
10661         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
10662         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
10663         TARGET_SCHED_GEN_CHECK,
10664         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
10665         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
10666         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
10667         Fixed to handle speculation checks.
10668         (rtx_needs_barrier): Fixed to handle speculative loads and
10669         their checks.
10670         (ia64_variable_issue): Added code to count speculative loads and their
10671         checks.
10672         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
10673         speculative loads.
10674         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
10675         New enumerations.
10676         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
10677         New constants.
10678         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
10679         (ia64_reorg): Reset stops_p to NULL after it is freed.
10680         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
10681         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
10682         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
10683         chk_a.
10684         (data_speculative, control_speculative, check_load): New attributes.
10685         (mov<mode>_advanced, mov<mode>_speculative,
10686         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
10687         zero_extend<mode>di2_speculative,
10688         zero_extend<mode>di2_speculative_advanced): New patterns for
10689         data and control speculative loads.
10690         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
10691         check loads.
10692         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
10693         New pattern for data and control speculation checks.
10694         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
10695         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
10696         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
10697         Auxiliary definitions for the patterns.
10698         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
10699         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
10700         constraints.
10701         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
10702         for speculation.
10703         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
10704         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
10705         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
10706         New resource constraints.
10707         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
10708         for speculation.
10709         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
10710         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
10711         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
10712         msched-in-control-spec, msched-ldc, msched-control-ldc,
10713         msched-spec-verbose, msched-prefer-non-data-spec-insns,
10714         msched-prefer-non-control-spec-insns,
10715         msched-count-spec-in-critical-path): New flags to tune speculative
10716         scheduling.
10717         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
10718         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
10719         msched-in-control-spec, msched-ldc, msched-control-ldc,
10720         msched-spec-verbose, msched-prefer-non-data-spec-insns,
10721         msched-prefer-non-control-spec-insns,
10722         msched-count-spec-in-critical-path): Document new flags.
10723
10724 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10725
10726         * target.h (struct spec_info_def): New opaque declaration.
10727         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
10728         speculate_insn, needs_block_p, gen_check,
10729         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
10730         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
10731         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
10732         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
10733         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
10734         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
10735         gcc_target.sched.
10736         (TARGET_SCHED): Use new macros.
10737         * rtl.h (copy_DEPS_LIST_list): New prototype.
10738         * sched-int.h (struct sched_info): Change signature of new_ready field,
10739         adjust all initializations. New fields: add_remove_insn,
10740         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
10741         region_head_or_leaf_p.
10742         (struct spec_info_def): New structure declaration.
10743         (spec_info_t): New typedef.
10744         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
10745         recovery_block, orig_pat.
10746         (glat_start, glat_end): New variables declaraions.
10747         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
10748         New access macros.
10749         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
10750         DETACH_LIFE_INFO, USE_GLAT.
10751         (enum SPEC_SCHED_FLAGS): New enumeration.
10752         (NOTE_NOTE_BB_P): New macro.
10753         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
10754         attach_life_info, debug_spec_status, check_reg_live): New functions.
10755         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
10756         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
10757         sched-ebb.c
10758         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
10759         * ddg.c (get_block_head_tail): Adjust all uses.
10760         * modulo-sched.c (get_block_head_tail): Adjust all uses.
10761         (sms_sched_info): Initialize new fields.
10762         (contributes_to_priority): Removed.
10763         * haifa-sched.c (params.h): New include.
10764         (get_block_head_tail): Adjust all uses.
10765         (ISSUE_POINTS): New macro.
10766         (glat_start, glat_end): New global variables.
10767         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
10768         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
10769         old_last_basic_block, before_recovery, current_sched_info_var,
10770         rgn_n_insns, luid): New static variables.
10771         (insn_cost1): New function.  Move logic from insn_cost to here.
10772         (find_insn_reg_weight1): New function.  Move logic from
10773         find_insn_reg_weight to here.
10774         (reemit_notes, move_insn, max_issue): Change signature.
10775         (move_insn1): Removed.
10776         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
10777         extend_bb): New static functions to support extension of scheduler's
10778         data structures.
10779         (generate_recovery_code, process_insn_depend_be_in_spec,
10780         begin_speculative_block, add_to_speculative_block,
10781         init_before_recovery, create_recovery_block, create_check_block_twin,
10782         fix_recovery_deps): New static functions to support
10783         generation of recovery code.
10784         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
10785         restore_bb_notes, move_block_after_check, move_succs): New static
10786         functions to support ebb scheduling.
10787         (init_glat, init_glat1, attach_life_info1, free_glat): New static
10788         functions to support handling of register live information.
10789         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
10790         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
10791         add_jump_dependencies): New static functions.
10792         (check_cfg, has_edge_p, check_sched_flags): New static functions for
10793         consistancy checking.
10794         (debug_spec_status): New function to call from debugger.
10795         (priority): Added code to handle speculation checks.
10796         (rank_for_schedule): Added code to distinguish speculative instructions.
10797         (schedule_insn): Added code to handle speculation checks.
10798         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
10799         Fixed to handle ebbs.
10800         (move_insn): Added code to handle ebb scheduling.
10801         (max_issue): Added code to use ISSUE_POINTS of instructions.
10802         (choose_ready): Added code to choose between speculative and
10803         non-speculative instructions.
10804         (schedule_block): Added code to handle ebb scheduling and scheduling of
10805         speculative instructions.
10806         (sched_init): Initialize new variables.
10807         (sched_finish): Free new variables.  Print statistics.
10808         (try_ready): Added code to handle speculative instructions.
10809         * lists.c (copy_DEPS_LIST_list): New function.
10810         * sched-deps.c (extend_dependency_caches): New function.  Move logic
10811         from create_dependency_caches to here.
10812         (get_dep_weak, ds_merge): Make global.
10813         * genattr.c (main): Code to output prototype for
10814         dfa_clear_single_insn_cache.
10815         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
10816         (output_dfa_clean_insn_cache_func): Code to output
10817         dfa_clear_single_insn_cache function.
10818         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
10819         n_insns.
10820         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
10821         Removed.
10822         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
10823         New static variables.
10824         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
10825         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
10826         struct sched_info.
10827         (ebb_sched_info): Initialize new fields.
10828         (get_block_head_tail): Adjust all uses.
10829         (compute_jump_reg_dependencies): Fixed to use glat_start.
10830         (schedule_ebb): Code to remove unreachable last block.
10831         (schedule_ebbs): Added code to update register live information.
10832         * sched-rgn.c (region_sched_info): Initialize new fields.
10833         (get_block_head_tail): Adjust all uses.
10834         (last_was_jump): Removed.  Adjust users.
10835         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
10836         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
10837         Implement new hooks.
10838         (check_dead_notes1): New static function.
10839         (struct region): New fields: dont_calc_deps, has_real_ebb.
10840         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
10841         (BB_TO_BLOCK): Fixed to handle EBBs.
10842         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
10843         (ebb_head): New static variable.
10844         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
10845         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
10846         new fields.
10847         (compute_dom_prob_ps): New assertion.
10848         (check_live_1, update_live_1): Fixed to work with glat_start instead of
10849         global_live_at_start.
10850         (init_ready_list): New assertions.
10851         (can_schedule_ready_p): Split update code to begin_schedule_ready.
10852         (new_ready): Add support for BEGIN_CONTROL speculation.
10853         (schedule_insns): Fixed code that updates register live information
10854         to handle EBBs.
10855         (schedule_region): Fixed to handle EBBs.
10856         (init_regions): Use extend_regions and check_dead_notes1.
10857         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
10858         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
10859         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
10860         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
10861         TARGET_SCHED_GEN_CHECK,
10862         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
10863         TARGET_SCHED_SET_SCHED_FLAGS): Document.
10864         * doc/invoke.texi (max-sched-insn-conflict-delay,
10865         sched-spec-prob-cutoff): Document.
10866
10867 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10868
10869         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
10870         inter_tick, queue_index.
10871         (struct sched_info): Change signature of init_ready_list field.
10872         Adjust all initializations.
10873         (RESOLVED_DEPS): New access macro.
10874         (ready_add): Remove prototype.
10875         (try_ready): Add prototype.
10876         * sched-rgn.c (init_ready_list): Use try_ready.
10877         (schedule_region): Initialize
10878         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
10879         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
10880         (init_ready_list): Use try_ready.
10881         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
10882         * lists.c (remove_list_elem): Remove `static'.
10883         (remove_free_INSN_LIST_elem): New function.
10884         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
10885         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
10886         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
10887         New constants.
10888         (readyp): New variable.
10889         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
10890         change_queue_index, resolve_dep): New static functions.
10891         (try_ready): New function.  Adjust callers in sched-rgn.c and
10892         sched-ebb.c to use it instead of ready_add.
10893         (clock_var): Move at the begining of file.
10894         (rank_for_schedule): Fix typo.
10895         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
10896         (ready_lastpos): Enforce assertion.
10897         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
10898         update all callers.
10899         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
10900         (schedule_insn): Rewrite to use try_ready and resolve_dep.
10901         (queue_to_ready): Use free_INSN_LIST_list.
10902         (early_queue_to_ready): Fix typo.
10903         (schedule_block): Init readyp.  Move init_ready_list call after the
10904         initialization of clock_var.  Fix error in rejecting insn by
10905         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
10906         that previously corrected INSN_TICKs.  Add code for handling
10907         QUEUE_INDEX.
10908         (set_priorities): Fix typo.
10909         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
10910         Clarify comment and code that keeps current_sched_info->next_tail
10911         non-null.
10912
10913 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10914
10915         * sched-rgn.c (extend_rgns): New static function.
10916         (find_rgns): Use it.
10917         (gather_region_statistics, print_region_statistics): New static
10918         functions.
10919         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
10920         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
10921
10922 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10923             Andrey Belevantsev <abel@ispras.ru>
10924
10925         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
10926         * lists.c (unused_deps_list): New variable.
10927         (free_list): Add assertions to verify the proper distinguishing
10928         between INSN_LISTs and DEPS_LISTs.
10929         (find_list_elem, remove_list_elem, remove_list_node): New static
10930         functions.
10931         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
10932         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
10933         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
10934         (alloc_INSN_LIST): Assert that the list we're working on is indeed
10935         an INSN_LIST.
10936         (free_INSN_LIST_node): Likewise.
10937         * modulo-sched.c (current_sched_info): Initialize flags field.
10938         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
10939         * rtl.def (DEPS_LIST): Define.
10940         * rtl.h: Declare new functions from lists.c.
10941         * sched-deps.c (spec_dependency_cache): New static variable.
10942         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
10943         (add_dependence): Change return type to void.  Move the logic to ...
10944         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
10945         (delete_all_dependences): Add comment about forward_dependency_cache.
10946         Handle spec_dependency_cache.  Handle DEPS_LISTs.
10947         (fixup_sched_groups): Clarify the change of priority of output
10948         and anti dependencies.
10949         (sched_analyze_2): Adjust add_dependence calls to create data
10950         speculative dependence.
10951         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
10952         Adjust all callers.  Handle DEPS_LISTS.
10953         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
10954         presence of speculation.
10955         (init_dependency_caches, free_dependency_caches):
10956         Handle spec_dependency_cache.
10957         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
10958         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
10959         New static functions.
10960         (add_or_update_back_dep, add_or_update_back_forw_dep,
10961         add_back_forw_dep, delete_back_forw_dep): New functions.
10962         * sched-int.h (ds_t, dw_t): New typedefs.
10963         (struct sched_info): Add new field flags.
10964         (struct haifa_insn_data): Add new bitfield has_internal_dep.
10965         Prototype new sched-deps.c functions.
10966         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
10967         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
10968         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
10969         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
10970         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
10971         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
10972         New constants.
10973         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
10974         New enums.
10975         * sched-rgn.c (current_sched_info): Initialize flags field.
10976         (schedule_insns): Initialize current_sched_info before the sched_init
10977         call.
10978         * sched-ebb.c (current_sched_info): Initialize flags field.
10979         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
10980         Call add_or_update_back_dep instead of add_dependence.
10981         Create control speculative dependencies.
10982         (schedule_insns): Initialize current_sched_info before the sched_init
10983         call.
10984
10985 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
10986
10987         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
10988         fs->signal_frame.
10989         (sh_fallback_frame_state): Likewise.
10990
10991 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
10992
10993         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
10994         Do switch on default_use_cxa_atexit.
10995         (powerpc*-*-darwin*): Build crt2.o on powerpc.
10996         * config/darwin-crt3.o: New.
10997         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
10998         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
10999         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
11000         OS version.
11001         * config/rs6000/t-darwin: Move crt2.o building to here.
11002         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
11003         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
11004         of __cxa_atexit.
11005
11006 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11007
11008         * config/vax/vax.c (nonindexed_address_p): Change logical negation
11009         from '! xxx' to '!xxx' for coding-style conformance.
11010         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
11011         (EXTRA_CONSTRAINT): Likewise.
11012         * config/vax/vax.md (four unnamed insns): Likewise.
11013
11014 2006-03-15  Paul Brook  <paul@codesourcery.com>
11015
11016         * config/arm/arm.c (minipool_pad): New.
11017         (add_minipool_forward_ref): Include pool alignment padding in address
11018         calculation.
11019         (push_minipool_fix): Set minipool_pad.
11020         (minipool_pad): Ditto.
11021
11022 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11023
11024         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
11025         instead of GET_CODE() == MEM and REG_P() instead of
11026         GET_CODE() == REG.
11027         (print_operand_address): Likewise.
11028         (vax_address_cost): Likewise.
11029         (vax_rtx_costs): Likewise.
11030         (vax_notice_update_cc): Likewise.
11031         (vax_output_int_add): Likewise.
11032         (INDEX_REGISTER_P): Likewise.
11033         (BASE_REGISTER_P): Likewise.
11034         (nonindexed_address_p): Likewise.
11035         (vax_mode_dependent_address_p): Likewise.
11036         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
11037         (PRINT_OPERAND): Likewise.
11038         * config/vax/vax.md (ashlsi3): Likewise.
11039         (ashlsi3): Likewise.
11040         (some more unnamed insns): Likewise.
11041
11042 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
11043
11044         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
11045         iterator-style macro.
11046         (mark_control_dependent_edges_necessary): Update the use of
11047         EXECUTE_IF_CONTROL_DEPENDENT.
11048
11049 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
11050
11051         * config/sh/predicates.md (cache_address_operand): Special.
11052         (ua_address_operand): Likewise.
11053
11054 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
11055
11056         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
11057         loop notes.
11058         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
11059
11060 2006-03-15  Andreas Schwab  <schwab@suse.de>
11061
11062         * gensupport.c (identify_predicable_attribute): Don't free p_false
11063         when it is still in use.
11064
11065 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
11066
11067         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
11068         the default setting here.
11069
11070 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
11071
11072         * tree-pass.h (pass_cfg): Remove.
11073         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
11074         * passes.c (pass_cfg): Don't run it.
11075
11076 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
11077
11078         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
11079         * reg-stack.c (stack_regs_mentioned_data): Change the type to
11080         VEC(char,heap) *.
11081         (stack_regs_mentioned): Update the uses of
11082         stack_regs_mentioned_data.  Don't access the array beyond its
11083         end.
11084         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
11085         Don't include gt-reg-stack.h.
11086
11087         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
11088         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
11089
11090         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
11091
11092         PR middle-end/26684
11093         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
11094         STACK_REGS.
11095
11096 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11097
11098         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
11099
11100 2006-03-14  Richard Guenther  <rguenther@suse.de>
11101
11102         PR tree-optimization/26672
11103         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
11104         SSA form.
11105
11106 2006-03-14  Richard Guenther  <rguenther@suse.de>
11107
11108         PR tree-optimization/26667
11109         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
11110         node for the callees.  Always allow inlining if it will shrink
11111         the function size.
11112
11113 2006-03-14  Richard Guenther  <rguenther@suse.de>
11114
11115         PR middle-end/26659
11116         * builtins.c (get_pointer_alignment): Prefer alignment
11117         information from decls over that from types.
11118
11119 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
11120
11121         PR target/26657
11122         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
11123
11124 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
11125
11126         * config/rs6000/rs6000.opt (mdlmzb): New option.
11127         (msched-prolog, msched-epilog): Use Var not Mask.
11128         * doc/invoke.texi (-mdlmzb): Document.
11129         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
11130         MASK_SCHED_PROLOG.
11131         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
11132         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
11133
11134 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
11135
11136         PR rtl-optimization/25739
11137         * bt-load.c (augment_live_range): Free tos pointer.
11138
11139         * gensupport.c (identify_predicable_attribute): Free
11140         p_false pointer.
11141         * gcov.c (create_file_names): Free name pointer.
11142
11143 2006-03-13  Roger Sayle  <roger@eyesopen.com>
11144
11145         PR middle-end/26557
11146         * stmt.c (emit_case_nodes): Handle the case where the index is a
11147         CONST_INT, where the comparison mode is specified by the index type.
11148
11149 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11150
11151         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
11152         is defined.
11153
11154 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
11155
11156         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
11157         (*branch_fp_inverted): Likewise.
11158
11159 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
11160
11161         PR middle-end/25989
11162         * omp-low.c (expand_omp_for_generic): Mark istart0
11163         and iend0 as addressable.
11164
11165 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
11166
11167         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
11168
11169 2006-03-13  Jeff Law  <law@redhat.com>
11170
11171         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
11172         virtual operands are interesting.
11173         (vrp_visit_stmt): Corresponding changes.
11174
11175 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
11176
11177         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
11178         of RETS.
11179         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
11180         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
11181         * config/bfin/crti.S: Use it instead of __PIC__.
11182         * config/bfin/crtn.S: Likewise.
11183
11184         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
11185         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
11186         not if flag_pic.
11187         Lose 'G' modifier for call operand.
11188         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
11189         recognize 'G' modifier.
11190
11191 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
11192
11193         PR middle-end/18859
11194         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
11195         * stmt.c (expand_case): Likewise.
11196
11197 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
11198
11199         PR rtl-optimization/26254
11200         * loop-invariant.c (seq_insns_valid_p): New function.
11201         (move_invariant_reg): Only emit new code if it is valid.
11202
11203 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
11204
11205         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
11206         Removed.
11207         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
11208         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
11209         (commit_one_edge_insertion): Do not look for loop notes.
11210
11211 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
11212
11213         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
11214         flag_test_coverage out of loop.
11215
11216 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
11217
11218         * final.c (shorten_branches): Remove outdated comment, and turn
11219         the if branch that guards it to continue.
11220
11221 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
11222
11223         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
11224         * cfgloop.h (struct loop): Remove unused fields.
11225
11226 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
11227
11228         * doc/invoke.texi (-fdump-rtl-loop): Remove.
11229         (-dL, -fdump-rtl-loop2): Update the dump file names
11230
11231         * doc/invoke.texi: Update dump file names.
11232
11233 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
11234
11235         * predict.c (estimate_probability): Remove.
11236         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
11237         * basic-block.h (estimate_probability): Remove prototype.
11238         * passes.c (finish_optimization_passes): Dump branch prediction or
11239         profiling heuristics to the .profile tree dump.
11240         (init_optimization_passes): Unqueue pass_branch_prob.
11241
11242         * doc/invoke.texi (-fdump-rtl-bp): Remove.
11243
11244 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11245
11246         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
11247         * rtl.h (LABEL_NEXTREF): Remove field accessor.
11248
11249 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
11250
11251         * function.h (frame_offset_overflow): Declare.
11252         * function.c (frame_offset_overflow): New function.
11253         (assign_stack_local_1): Call it to detect that the offset overflows.
11254         * cfgexpand.c (alloc_stack_frame_space): Likewise.
11255
11256 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11257
11258         * config/sh/sh.c: Include alloc-pool.h.
11259         (label_ref_list_pool): New alloc pool.
11260         (label_ref_list_t): New type for lists of labels.
11261         (struct pool_node): Make wend a label_ref_list_t.
11262         (add_constant): Use the new type, eradicate LABEL_NEXTREF
11263         references.
11264         (dump_table): Likewise.
11265         (sh_reorg): Set up the alloc pool before using add_constant and
11266         dump_table, and destroy it when finishing.
11267
11268 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
11269
11270         * config/mips/mips.c: Remove redundant comment.
11271
11272 2006-03-10  Jason Merrill  <jason@redhat.com>
11273
11274         PR c/26004
11275         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
11276         the target was declared 'register'.
11277
11278 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
11279
11280         * genpreds.c (write_insn_constraint_len): Change definition of
11281         insn_constraint_len to return size_t to match the declaration.
11282
11283 2006-03-10  DJ Delorie  <dj@redhat.com>
11284
11285         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
11286         start at zero.
11287         (m32c_expand_insv): Fix test for an AND mask.
11288
11289 2006-03-10  Richard Guenther  <rguenther@suse.de>
11290
11291         PR middle-end/26565
11292         * builtins.c (get_pointer_alignment): Handle component
11293         references for field alignment.
11294
11295 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
11296
11297         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
11298         when building with libgloss.
11299         (sh*elf): Implement --without-fp option.
11300         (sh64-superh-linux*): Don't multilib.
11301
11302 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
11303
11304         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
11305
11306 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
11307
11308         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
11309         Set it when one of the replacement functions returned true.
11310         Return TODO_cleanup_cfg if cfgchanged is true.
11311         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
11312
11313 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
11314
11315         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
11316         instead of gen_lowpart.
11317
11318 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
11319
11320         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
11321         interface.
11322         (mips_output_order_conditional_branch): Declare.
11323         * config/mips/mips.h (MIPS_BRANCH): New macro.
11324         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
11325         for the comparison.  Use gen_condjump.
11326         (mips_output_conditional_branch): Rework interface to take the
11327         asm templates for a direct branch and the inverse of a direct branch.
11328         (mips_output_order_conditional_branch): New function.
11329         (mips_builtin_branch_and_move): New function.
11330         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
11331         branch condition.  Use gen_single_cc as the condition for
11332         __builtin_mips_upper_* or __builtin_mips_lower_*.
11333         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
11334         Use VOIDmode for the branch condition.
11335         * config/mips/predicates.md (order_operator): New predicate.
11336         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
11337         (branch_fp): Rename to...
11338         (*branch_fp): ...this.  Remove mode from comparison operator.
11339         Use new mips_output_conditional_branch interface.
11340         (branch_fp_inverted): Rename to...
11341         (*branch_fp_inverted): ...this and update as for *branch_fp.
11342         (*branch_zero<mode>): Rename to...
11343         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
11344         Use mips_output_order_conditional_branch.  Only accept ordered
11345         comparisons.
11346         (*branch_zero<mode>_inverted): Rename to...
11347         (*branch_order<mode>_inverted): ...this and update as for
11348         *branch_order<mode>.
11349         (*branch_equality<mode>): Accept zero as the second operand to
11350         the equality operator.  Use the new mips_output_conditional_branch
11351         interface.
11352         (*branch_equality<mode>_inverted): Likewise.
11353         (condjump): New expander.
11354         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
11355         operator.
11356         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
11357         (bc1any2t, bc1any2f): Likewise.
11358         (single_cc): New expander.
11359         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
11360
11361 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
11362
11363         * doc/md.texi: Update documentation of MIPS constraints.
11364         * config/mips/constraints.md: New file.
11365         * config/mips/mips.md: Include it.
11366         * config/mips/mips.c (mips_char_to_class): Delete.
11367         (override_options): Don't initialize mips_char_to_class.
11368         * config/mips/mips.h (mips_char_to_class): Delete.
11369         (REG_CLASS_FROM_LETTER): Delete.
11370         (CONST_OK_FOR_LETTER_P): Delete.
11371         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11372         (EXTRA_CONSTRAINT_Y): Delete.
11373         (EXTRA_CONSTRAINT_STR): Delete.
11374         (CONSTRAINT_LEN): Delete.
11375         (EXTRA_MEMORY_CONSTRAINT): Delete.
11376
11377 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
11378
11379         * tree-cfg.c (move_block_to_fn): Remove the statements from the
11380         original fn's eh regions.
11381
11382 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
11383
11384         * fold-const.c (build_range_check): Make sure to use a valid type to
11385         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
11386         transformation.
11387
11388         (range_predecessor): New static function.
11389         (range_successor): Likewise.
11390         (merge_ranges): Use them to compute predecessors and successors of
11391         range bounds.
11392
11393 2006-03-09  Roger Sayle  <roger@eyesopen.com>
11394
11395         PR middle-end/26561
11396         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
11397         X op C3, consider whether C3 overflows towards +Inf or -Inf.
11398
11399 2006-03-08  DJ Delorie  <dj@redhat.com>
11400
11401         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
11402         (addpsi3): Expand to include memory operands.  Remove
11403         reload-specific splits.
11404         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
11405         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
11406         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
11407         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
11408         (shift1_qi, shift1_hi, insv): New.
11409         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
11410         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
11411         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
11412         cond_to_int): New.
11413         * config/m32c/m32c-protos.h: Update as needed.
11414         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
11415         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
11416         Fail for unrecognized R* constraints.
11417         (m32c_cannot_change_mode_class): Be more picky about pseudos.
11418         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
11419         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
11420         Add Sp constraint.
11421         (m32c_init_libfuncs): New.
11422         (m32c_legitimate_address_p): Add debug wrapper.
11423         (m32c_rtx_costs): New.
11424         (m32c_address_cost): New.
11425         (conversions): Add 'B' prefix.
11426         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
11427         operands, or word regnames for QI operands.  'B' prints bit
11428         position.
11429         (m32c_expand_setmemhi): New.
11430         (m32c_expand_movmemhi): New.
11431         (m32c_expand_movstr): New.
11432         (m32c_expand_cmpstr): New.
11433         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
11434         (m32c_expand_neg_mulpsi3): Handle non-ints.
11435         (m32c_cmp_flg_0): New.
11436         (m32c_expand_movcc): New.
11437         (m32c_expand_insv): New.
11438         (m32c_scc_pattern): New.
11439         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
11440         a0/a1 out of SIregs.
11441         (STORE_FLAG_VALUE): New.
11442         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
11443         code macros.
11444         (no_insn): New.
11445         * config/m32c/mov.md: Make constraints more liberal.
11446         (zero_extendqihi2): Optimize r0/r1 case.
11447         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
11448         * config/m32c/predicates.md (m32c_any_operand): New.
11449         (m32c_nonimmediate_operand): New.
11450         (m32c_hl_operand): New.
11451         (m32c_r3_operand): New.
11452         (ap_operand): New.
11453         (ma_operand): New.
11454         (memsym_operand): New.
11455         (memimmed_operand): New.
11456         (a_qi_operand): New.
11457         (m32c_eqne_operator): New.
11458         (m32c_1bit8_operand): New.
11459         (m32c_1bit16_operand): New.
11460         (m32c_1mask8_operand): New.
11461         (m32c_1mask16_operand): New.
11462         * config/m32c/blkmov.md: New file.
11463         * config/m32c/t-m32c (MD_FILES): Add blkmov.
11464
11465 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
11466
11467         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
11468         unsigned to fix signed/unsigned comparison issue in
11469         DWARF2_FRAME_REG_OUT.
11470         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
11471         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
11472
11473         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
11474         of ptr into the ENABLE_CHECKING section.
11475
11476 2006-03-08  Jeff Law  <law@redhat.com>
11477
11478         * tree-vrp.c (infer_value_range): Only count pointer uses
11479         and dereferences if -fdelete-null-pointer-checks is enabled.
11480
11481         * tree-vrp.c (find_assert_locations): Infer value ranges for
11482         single use pointers, but do not create ASSERT_EXPRs for them.
11483         When a non-null range is inferred for a pointer, backwards
11484         propagate that range to other equivalent pointers through the
11485         use-def chain.
11486
11487 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
11488
11489         PR bootstrap/26500
11490         * Makefile.in (dvi, html, install-info): Invoke the corresponding
11491         language hook targets.
11492         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
11493         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
11494         if language hook targets were missing.
11495
11496 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
11497
11498         * tree-ssa-opfinalize.h: Removed.
11499         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
11500         dependency.
11501         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
11502         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
11503         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
11504         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
11505         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
11506         finalize_ssa_v_must_def_ops): New.
11507
11508 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
11509
11510         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
11511         block as parameter.
11512
11513 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
11514
11515         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
11516
11517         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
11518         addresses with offsets; reorganize.
11519
11520         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
11521         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
11522         (expand_builtin_init_dwarf_reg_sizes): Likewise.
11523
11524 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
11525
11526         PR target/26588
11527         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
11528
11529 2006-03-08  Ben Elliston  <bje@au.ibm.com>
11530
11531         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
11532
11533 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
11534
11535         PR gomp/26238
11536         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
11537         expansion.
11538
11539 2006-03-07  Richard Guenther  <rguenther@suse.de>
11540
11541         PR tree-optimization/26587
11542         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
11543
11544 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
11545
11546         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
11547
11548 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
11549
11550         * hooks.c (hook_bool_mode_rtx_true): New function.
11551         * hooks.h (hook_bool_mode_rtx_true): Declare.
11552         * toplev.c (compile_file): Call output_shared_constant_pool.
11553         * varasm.c (shared_constant_pool): New variable.
11554         (assemble_start_function, assemble_end_function): Remove arguments
11555         from call to output_constant_pool.
11556         (create_constant_pool): New function, split out from...
11557         (init_varasm_status): ...here.
11558         (force_const_mem): Choose between the shared and per-function constant
11559         pools.  Set current_function_uses_const_pool when reusing old entries
11560         as well as when creating new ones.
11561         (mark_constant): Ignore data argument.
11562         (mark_constants): Remove pool argument.
11563         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
11564         to decide whether the function uses a constant pool.
11565         (output_constant_pool_contents): New function, split out from...
11566         (output_constant_pool): ...here.
11567         (output_shared_constant_pool): New function.
11568         (init_varasm_once): Initialize shared_constant_pool.
11569         * output.h (output_constant_pool): Delete.
11570         (output_shared_constant_pool): Declare.
11571         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
11572         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
11573
11574 2006-03-06  Nick Clifton  <nickc@redhat.com>
11575
11576         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
11577         flag_strength_reduce.
11578
11579 2006-03-06  Ben Elliston  <bje@au.ibm.com>
11580
11581         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
11582         x86_64-*-linux* configurations.
11583
11584         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
11585         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
11586
11587 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
11588
11589         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
11590         Remove.
11591         * basic-block.h: Remove the extern for
11592         rediscover_loops_after_threading.
11593
11594         * cfgloop.c (cancel_loop): Make it static.
11595         * cfgloop.h: Remove the prototype for cancel_loop.
11596
11597         * flow.c (recompute_reg_usage): Make it static.
11598         * rtl.h: Remove the prototype for recompute_reg_usage.
11599
11600         * function.c (use_return_register): Make it static.
11601         * function.h: Remove the prototype.
11602
11603 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
11604
11605         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
11606         Remove.
11607         * recog.h: Remove the prototype for
11608         validate_change_maybe_volatile.
11609
11610 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
11611
11612         * rtlanal.c (replace_reg): Remove.
11613         * rtl.h: Remove the prototype for replace_reg.
11614
11615 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
11616
11617         * regclass.c (reg_scan_update): Remove.
11618         (reg_scan_mark_refs): Remove the last argument.
11619         * rtl.h: Remove the prototype for reg_scan_update.
11620
11621 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
11622
11623         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
11624         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
11625         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
11626         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
11627         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
11628         loop-invariant.c, omp-low.c, opts.c, passes.c,
11629         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
11630         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
11631         tree-ssa-structalias.c, tree-ssa-threadedge.c,
11632         tree-ssa-threadupdate.c, tree-vect-patterns.c,
11633         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
11634         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
11635
11636 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
11637
11638         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
11639         * dwarf2out.h: Remove the prototype for
11640         dwarf2out_add_library_unit_info.
11641
11642 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
11643
11644         * tree.c (add_var_to_bind_expr): Remove.
11645         * tree.h: Remove the prototype for add_var_to_bind_expr.
11646
11647 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
11648
11649         * regclass.c (n_non_fixed_regs): Remove.
11650         (init_reg_sets_1, globalize_reg): Remove all uses of
11651         n_non_fixed_regs.
11652         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
11653
11654 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
11655
11656         * rtlanal.c (insns_safe_to_move_p): Remove.
11657         * rtl.h: Remove the prototype for insns_safe_to_move_p.
11658
11659 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
11660
11661         * expmed.c (expand_mult_add): Remove.
11662         * expr.h: Remove the prototype for expand_mult_add.
11663
11664 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
11665
11666         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
11667         and REG_SAVED_VAL_EXP constants.
11668         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
11669         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
11670         Handle regs stored by value.
11671         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
11672         (execute_cfa_program): Handle DW_CFA_val_offset,
11673         DW_CFA_val_offset_sf and DW_CFA_val_expression.
11674         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
11675         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
11676         (uw_install_context_1): Handle target regs stored by value.
11677
11678 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
11679
11680         * tree-sra.c (tree_sra): Return todoflags;
11681         (generate_one_element): Set TODO_update_smt_usage if needed.
11682         (pass_sra): Remove TODO_update_smt_usage.
11683         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
11684         parameter.
11685         (tree_ssa_forward_propagate_single_use_vars): Return
11686         TODO_update_smt_usage if we need to update SMT usage.
11687         (pass_forwprop): Remove TODO_update_smt_usage.
11688
11689 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
11690
11691         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
11692         (correct_use_link): Remove reference to get_stmt_operands.
11693         (update_stmt_operands): Likewise.
11694         (get_modify_expr_operands): New function factored out of
11695         parse_ssa_operands and get_expr_operands.
11696         Try to create V_MUST_DEFs for LHS by default.
11697         (get_expr_operands) <case MODIFY_EXPR>: Call
11698         get_modify_expr_operands.
11699         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
11700         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
11701         (parse_ssa_operands) <case MODIFY_EXPR>: Call
11702         get_modify_expr_operands.
11703
11704 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
11705
11706         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
11707         * tree-flow.h: Remove the prototype for
11708         referenced_var_lookup_if_exists.
11709
11710 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
11711
11712         PR rtl-optimization/26345
11713         PR target/19061
11714         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
11715
11716 2006-03-03  Roger Sayle  <roger@eyesopen.com>
11717
11718         PR tree-optimization/26524
11719         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
11720         fold_convert to create a constant of the appropriate type.
11721
11722 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
11723
11724         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
11725         SYMBOL_REF_IN_BLOCK_P.
11726         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
11727         of SYMBOL_FLAG_IN_BLOCK.
11728         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
11729         instead of SYMBOL_REF_IN_BLOCK_P.
11730         * explow.c (use_anchored_address): Likewise.
11731         * rtl.c (rtx_size): Likewise.
11732         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
11733         instead of SYMBOL_FLAG_IN_BLOCK.
11734         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
11735         SYMBOL_REF_IN_BLOCK_P.
11736         (assemble_variable): Likewise.
11737         (output_constant_def_contents): Likewise.
11738         (output_constant_pool): Likewise.
11739         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
11740         instead of SYMBOL_FLAG_IN_BLOCK.
11741         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
11742         SYMBOL_REF_IN_BLOCK_P.
11743         (SYMBOL_REF_BLOCK): Likewise.
11744         (SYMBOL_REF_OFFSET): Likewise.
11745         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
11746         SYMBOL_REF_IN_BLOCK_P.
11747         (SYMBOL_FLAG_IN_BLOCK): Replace with...
11748         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
11749         (SYMBOL_REF_IN_BLOCK_P): Replace with...
11750         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
11751
11752 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
11753
11754         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
11755
11756 2006-03-02  Roger Sayle  <roger@eyesopen.com>
11757
11758         * simplify-rtx.c (simplify_unary_operation): When simplifying
11759         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
11760         that we perform the right shift in the appropriate mode, and
11761         then extend or truncate the result to requested mode.
11762
11763 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
11764
11765         * gengtype.c (main): Handle double_int type.
11766         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
11767         * double-int.c: New file.
11768         * double-int.h: New file.
11769         * system.h: Include doubleint.h.
11770         * Makefile.in (SYSTEM_H): Include double-int.h.
11771         (double-int.o): Add.
11772
11773 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
11774
11775         PR bootstrap/26478
11776         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
11777         copying over it.
11778
11779 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
11780
11781         * tree-vrp.c (remove_range_assertions): Do not update statements
11782         unnecessarily.
11783
11784 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
11785
11786         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
11787         cleanup.
11788         * gcse.c (rest_of_handle_gcse): Ditto.
11789         * except.c (gate_handle_eh): Ditto.
11790         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
11791         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
11792
11793 2006-03-02  Eric Christopher  <echristo@apple.com>
11794
11795         * config/i386/i386.c (machopic_output_stub): Add indirection to
11796         jump.
11797
11798 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
11799
11800         * loop.c: Removed.
11801
11802 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
11803
11804         Sun Niagara specific optimizations.
11805         * config.gcc: Recognize niagara as target.
11806         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
11807         (TARGET_CPU_niagara): Define.
11808         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
11809         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
11810         (CPP_CPU_SPEC): Handle -mcpu=niagara.
11811         (ASM_CPU_SPEC): Likewise.
11812         (PROCESSOR_NIAGARA): New enum entry.
11813         (REGISTER_MOVE_COST): Handle Niagara.
11814         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
11815         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
11816         (sparc_override_options): Recognize "niagara", set appropriate
11817         default MASK_* values for it, and align functions to 32-bytes
11818         by default just like ULTRASPARC/ULTRASPARC3.
11819         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
11820         (sparc64_initialize_trampoline): Likewise.
11821         (sparc_use_sched_lookahead): Use zero for niagara.
11822         (sparc_issue_rate): Use one for niagara.
11823         * config/sparc/niagara.md: New file.
11824         * config/sparc/sparc.md: Include it.
11825         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
11826         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
11827         when default cpu is niagara.
11828         (CPP_CPU_SPEC): Handle -mcpu=niagara.
11829         (ASM_CPU_SPEC): Likewise.
11830         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
11831         when default cpu is niagara.
11832         (ASM_CPU_SPEC): Handle -mcpu=niagara.
11833         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
11834         just like v9/ultrasparc/ultrasparc3.
11835         * doc/invoke.texi: Add documentation for "niagara" and improve
11836         existing documentation for ultrasparc variants.
11837
11838 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
11839
11840         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
11841
11842 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
11843
11844         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
11845         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
11846         and say that only one is needed.
11847         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
11848         * target.h (have_switchable_bss_sections): New hook.
11849         * explow.c (use_anchored_address): Check that the symbol is in a block.
11850         * varasm.c (tls_comm_section, comm_section, lcomm_section)
11851         (bss_noswitch_section): New variables.
11852         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
11853         (get_noswitch_section): New function.
11854         (get_block_for_section): Allow SECT to be null.
11855         (unlikely_text_section_p): Use SECTION_STYLE.
11856         (bss_initializer_p): New function.
11857         (get_variable_section): Move earlier in file.  Take a new argument,
11858         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
11859         Return one of the new *_sections in such cases.
11860         (get_block_for_decl): New function, extracting some logic from
11861         use_blocks_for_decl_p.
11862         (change_symbol_section): Remove in favor of...
11863         (change_symbol_block): ...this new function.
11864         (use_blocks_for_decl_p): Remove checks now performed by
11865         get_block_for_decl.
11866         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
11867         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
11868         (emit_local, emit_bss, emit_common): ...these new functions.
11869         Return true if the alignment was honored.
11870         (emit_tls_common): New function.
11871         (asm_emit_uninitialised): Delete.
11872         (assemble_variable_noswitch): New function, split out from...
11873         (assemble_variable): ...here.  Don't make decisions about common
11874         variables here.  Globalize all public decls that go into non-common
11875         sections.  Check whether SYMBOL_REF_BLOCK is null.
11876         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
11877         (output_constant_pool): Likewise.
11878         (init_varasm_once): Initialize the new section variables.
11879         (have_global_bss_p): New function.
11880         (categorize_decl_for_section): Use bss_initializer_p.
11881         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
11882         (place_block_symbol): Assert that the symbol must be in a block.
11883         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
11884         (TARGET_INITIALIZER): Include it.
11885         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
11886         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
11887         (SECTION_MACH_DEP): Bump by two.
11888         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
11889         (unnamed_section): Mention SECTION_UNNAMED in comment.
11890         (named_section): Likewise SECTION_NAMED.
11891         (noswitch_section_callback): New type.
11892         (noswitch_section): New structure.
11893         (section): Add a noswitch_section alternative.
11894         (SECTION_STYLE): New macro.
11895         (tls_comm_section, comm_section, lcomm_section): Declare.
11896         (bss_noswitch_section, have_global_bss_p): Declare.
11897         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
11898         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
11899         Override.
11900         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
11901         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
11902         Override.
11903
11904 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
11905
11906         * tree-vrp.c (execute_vrp): Return value.
11907         * regrename.c (rest_of_handle_regrename): Ditto.
11908         * tree-into-ssa.c (rewrite_into_ssa): Ditto.
11909         * tree-complex.c (tree_lower_complex): Ditto.
11910         (tree_lower_complex_O0): Ditto.
11911         * tracer.c (rest_of_handle_tracer): Ditto.
11912         * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
11913         * postreload.c (rest_of_handle_postreload): Ditto.
11914         * tree-tailcall.c (execute_tail_recursion): Ditto.
11915         (execute_tail_calls): Ditto.
11916         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
11917         * tree.h (init_function_for_compilation): Ditto.
11918         * ipa-cp.c (ipcp_driver): Ditto.
11919         * tree-scalar-evolution.c (scev_const_prop): Ditto.
11920         * tree-scalar-evolution.h (scev_const_prop): Ditto.
11921         * final.c (compute_alignments): Ditto.
11922         (rest_of_handle_final): Ditto.
11923         (rest_of_handle_shorten_branches): Ditto.
11924         (rest_of_clean_state): Ditto.
11925         * omp-low.c (execute_expand_omp): Ditto.
11926         (execute_lower_omp): Ditto.
11927         * tree-ssa-dse.c (tree_ssa_dse): Ditto.
11928         * ipa-reference.c (static_execute): Ditto.
11929         * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
11930         * reorg.c (rest_of_handle_delay_slots): Ditto.
11931         (rest_of_handle_machine_reorg): Ditto.
11932         * cgraphunit.c (rebuild_cgraph_edges): Ditto.
11933         * flow.c (recompute_reg_usage): Ditto.
11934         (rest_of_handle_remove_death_notes): Ditto.
11935         (rest_of_handle_life): Ditto.
11936         (rest_of_handle_flow2): Ditto.
11937         * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
11938         * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
11939         (do_ssa_store_ccp): Ditto.
11940         (execute_fold_all_builtins): Ditto.
11941         * mode-switching.c (rest_of_handle_mode_switching): Ditto.
11942         * modulo-sched.c (rest_of_handle_sms): Ditto.
11943         * ipa-pure-const.c (static_execute): Ditto.
11944         * cse.c (rest_of_handle_cse): Ditto.
11945         (rest_of_handle_cse2): Ditto.
11946         * web.c (rest_of_handle_web): Ditto.
11947         * tree-stdarg.c (execute_optimize_stdarg): Ditto.
11948         * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
11949         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
11950         * tree-nrv.c (tree_nrv): Ditto.
11951         (execute_return_slot_opt): Ditto.
11952         * tree-ssa-alias.c (compute_may_aliases): Ditto.
11953         (create_structure_vars): Ditto.
11954         * loop-init.c (rtl_loop_init): Ditto.
11955         (rtl_loop_done): Ditto.
11956         (rtl_move_loop_invariants): Ditto.
11957         (rtl_unswitch): Ditto.
11958         (rtl_unroll_and_peel_loops): Ditto.
11959         (rtl_doloop): Ditto.
11960         * gimple-low.c (lower_function_body): Ditto.
11961         (mark_used_blocks): Ditto.
11962         * tree-ssa-sink.c (execute_sink_code): Ditto.
11963         * ipa-inline.c (cgraph_decide_inlining): Ditto.
11964         (cgraph_early_inlining): Ditto.
11965         * global.c (rest_of_handle_global_alloc): Ditto.
11966         * jump.c (cleanup_barriers): Ditto.
11967         (purge_line_number_notes): Ditto.
11968         * ifcvt.c (rest_of_handle_if_conversion): Ditto.
11969         (rest_of_handle_if_after_reload): Ditto.
11970         * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
11971         (tree_ssa_loop_im): Ditto.
11972         (tree_ssa_loop_unswitch): Ditto.
11973         (tree_vectorize): Ditto.
11974         (tree_linear_transform): Ditto.
11975         (tree_ssa_loop_ivcanon): Ditto.
11976         (tree_ssa_empty_loop): Ditto.
11977         (tree_ssa_loop_bounds): Ditto.
11978         (tree_complete_unroll): Ditto.
11979         (tree_ssa_loop_prefetch): Ditto.
11980         (tree_ssa_loop_ivopts): Ditto.
11981         (tree_ssa_loop_done): Ditto.
11982         * predict.c (tree_estimate_probability): Ditto.
11983         * recog.c (split_all_insns_noflow): Ditto.
11984         (rest_of_handle_peephole2): Ditto.
11985         (rest_of_handle_split_all_insns): Ditto.
11986         * tree-eh.c (lower_eh_constructs): Ditto.
11987         * regmove.c (rest_of_handle_regmove): Ditto.
11988         (rest_of_handle_stack_adjustments): Ditto.
11989         * local-alloc.c (rest_of_handle_local_alloc): Ditto.
11990         * function.c (instantiate_virtual_regs): Ditto.
11991         (init_function_for_compilation): Ditto.
11992         (rest_of_handle_check_leaf_regs): Ditto.
11993         * gcse.c (rest_of_handle_jump_bypass): Ditto.
11994         (rest_of_handle_gcse): Ditto.
11995         * ipa-type-escape.c (type_escape_execute): Ditto.
11996         * alias.c (rest_of_handle_cfg): Ditto.
11997         * tree-if-conv.c (main_tree_if_conversion): Ditto.
11998         * profile.c (rest_of_handle_branch_prob): Ditto.
11999         * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
12000         * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
12001         * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
12002         * tree-dfa.c (find_referenced_vars): Ditto.
12003         * except.c (set_nothrow_function_flags): Ditto.
12004         (convert_to_eh_region_ranges): Ditto.
12005         (rest_of_handle_eh): Ditto.
12006         * emit-rtl.c (unshare_all_rtl): Ditto.
12007         (remove_unnecessary_notes): Ditto.
12008         * except.h (set_nothrow_function_flags): Ditto.
12009         (convert_to_eh_region_ranges): Ditto.
12010         * cfgexpand.c (tree_expand_cfg): Ditto.
12011         * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
12012         * tree-ssa-pre.c (do_pre): Ditto.
12013         (execute_fre): Ditto.
12014         * cfgcleanup.c (rest_of_handle_jump): Ditto.
12015         (rest_of_handle_jump2): Ditto.
12016         * tree-sra.c (tree_sra): Ditto.
12017         * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
12018         (execute_mudflap_function_decls): Ditto.
12019         * tree-ssa-copy.c (do_copy_prop): Ditto.
12020         (do_store_copy_prop): Ditto.
12021         * ipa-prop.h (ipcp_driver): Ditto.
12022         * cfglayout.c (insn_locators_initialize): Ditto.
12023         * tree-ssa-forwprop.c
12024         (tree_ssa_forward_propagate_single_use_vars): Ditto.
12025         * cfglayout.h (insn_locators_initialize): Ditto.
12026         * tree-ssa-dce.c (tree_ssa_dce): Ditto.
12027         * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
12028         (execute_late_warn_uninitialized): Ditto.
12029         * rtl.h (cleanup_barriers): Ditto.
12030         (split_all_insns_noflow): Ditto.
12031         (purge_line_number_notes): Ditto.
12032         (unshare_all_rtl): Ditto.
12033         (remove_unnecessary_notes): Ditto.
12034         (recompute_reg_usage): Ditto.
12035         (variable_tracking_main): Ditto.
12036         * integrate.c (emit_initial_value_sets): Ditto.
12037         * integrate.h (emit_initial_value_sets): Ditto.
12038         * tree-optimize.c (execute_free_datastructures): Ditto
12039         (execute_free_cfg_annotations): Ditto.
12040         (execute_fixup_cfg): Ditto.
12041         (execute_cleanup_cfg_pre_ipa): Ditto.
12042         (execute_cleanup_cfg_post_optimizing): Ditto.
12043         (execute_init_datastructures): Ditto.
12044         * tree-object-size.c (compute_object_sizes): Ditto.
12045         * combine.c (rest_of_handle_combine): Ditto.
12046         * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
12047         * bb-reorder.c (duplicate_computed_gotos): Ditto.
12048         (rest_of_handle_reorder_blocks): Ditto.
12049         (rest_of_handle_partition_blocks): Ditto.
12050         * var-tracking.c (variable_tracking_main): Ditto.
12051         * tree-profile.c (tree_profiling): Ditto.
12052         * tree-vect-generic.c (expand_vector_operations): Ditto.
12053         * reg-stack.c (rest_of_handle_stack_regs): Ditto.
12054         * sched-rgn.c (rest_of_handle_sched): Ditto.
12055         (rest_of_handle_sched2): Ditto.
12056         * basic-block.h (free_bb_insn): Ditto.
12057         * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
12058         * tree-cfg.c (execute_build_cfg): Ditto.
12059         (remove_useless_stmts): Ditto.
12060         (split_critical_edges): Ditto.
12061         (execute_warn_function_return): Ditto.
12062         (execute_warn_function_noreturn): Ditto.
12063         * tree-ssa-reassoc.c (execute_reassoc): Ditto.
12064         * cfgrtl.c (free_bb_for_insn): Ditto.
12065         * passes.c (execute_one_pass): Run additional
12066         todos returned by execute function.
12067         * tree-pass.h (struct tree_opt_pass): Make execute
12068         return a value.
12069
12070 2006-03-02  Richard Guenther  <rguenther@suse.de>
12071
12072         * tree-ssa-alias.c (find_used_portions): Consider taking
12073         the address as making the variable not write-only.
12074
12075 2006-03-02  Nick Clifton  <nickc@redhat.com>
12076
12077         * config.gcc (default_use_cxa_atexit): Extend the description of
12078         this configure variable.  Set its default value to "yes" for
12079         Linux, NetBSD and ELF targets on the assumption that they will
12080         use C libraries with the __cxa_atexit function.
12081
12082 2006-03-02  Ben Elliston  <bje@au.ibm.com>
12083
12084         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
12085         parameter as unused to suppress a build warning.
12086
12087 2006-03-02  Ben Elliston  <bje@au.ibm.com>
12088
12089         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
12090         config/dfp-bit.c.
12091
12092 2006-03-01  Roger Sayle  <roger@eyesopen.com>
12093
12094         PR other/26489
12095         * gthr-posix.h (__gthrw2): Define to take three parameters, the
12096         declared name, the weak reference name, and the typeof name.
12097         (__gthrw): Avoid expanding the declared name suffix.
12098         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
12099
12100 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
12101
12102         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
12103         from DWARF 3.
12104         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
12105         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
12106         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
12107         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
12108         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
12109         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
12110         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
12111         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
12112         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
12113         DW_DS_leading_separate, DW_DS_trailing_separate): New.
12114         (DW_END_default, DW_END_big, DW_END_little): New.
12115         (DW_END_lo_user, DW_END_hi_user): Define.
12116         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
12117         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
12118         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
12119         DW_LANG_D): New.
12120
12121 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
12122
12123         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
12124         Update all users.
12125         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
12126         Update all users.
12127         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
12128         Update all users.
12129         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
12130         Update all users.
12131         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
12132         to 'symbol_mem_tag'.
12133         Update all users.
12134         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
12135         rename.
12136
12137 2006-03-01  Roger Sayle  <roger@eyesopen.com>
12138
12139         * builtins.c (fold_builtin_copysign): Delete unreachable code.
12140
12141 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
12142
12143         PR target/25761
12144         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
12145         MACHO_DYNAMIC_NO_PIC_P.
12146         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
12147
12148 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
12149
12150         PR target/26389
12151         * config/darwin-protos.h (darwin_asm_output_anchor):
12152         Declare.
12153         * config/darwin-sections.def (cstring_section):
12154         Add SECTION_MERGE to the flags.
12155         (literal4_section): Likewise.
12156         (literal8_section): Likewise.
12157         (objc_selector_refs_section): Likewise.
12158         (objc_cls_refs_section): Likewise.
12159         * config/darwin.c (darwin_asm_output_anchor): New
12160         function.
12161         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
12162
12163 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
12164
12165         Fix PR tree-optimization/26443
12166         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
12167         to todo and PROP_tmt_usage to properties_destroyed.
12168         * tree-ssa-ccp.c (pass_ccp): Ditto.
12169         (pass_store_ccp): Ditto.
12170         * tree-ssa-dom.c (pass_dominator): Ditto.
12171
12172 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
12173
12174         * tree-ssa-operands.c: Cleanup whitespace.
12175         (get_asm_expr_operands): Move before first invocation.
12176         (get_indirect_ref_operands): Likewise.
12177         (get_tmr_operands): Likewise.
12178         (get_call_expr_operands): Likewise.
12179         (append_def): Likewise.
12180         (append_use): Likewise.
12181         (append_v_may_def): Likewise.
12182         (append_v_must_def): Likewise.
12183         (add_call_clobber_ops): Likewise.
12184         (add_call_read_ops): Likewise.
12185         (add_stmt_operand): Likewise.
12186         (add_virtual_operand): Likewise.
12187         (build_ssa_operands): Likewise.
12188
12189 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
12190
12191         PR middle-end/26022
12192         Revert:
12193         PR middle-end/24437
12194         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
12195         with a call expr to ...
12196         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
12197
12198 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
12199
12200         * tree-vrp.c (extract_range_from_assert): Remove special
12201         handling for types with super-types.
12202
12203 2006-03-01  Ben Elliston  <bje@au.ibm.com>
12204
12205         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
12206         and powerpc64-*-linux* configurations.
12207         * config/t-dfprules: New file.
12208
12209         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
12210         Compile dfp-bit.c from the source directory using -DWIDTH and
12211         $DFP_CFLAGS to control the compilation of that file, rather than
12212         generating width-specific versions in the build directory.
12213         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
12214         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
12215
12216 2006-02-28  Zack Weinberg  <zackw@panix.com>
12217
12218         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
12219         continues to work.
12220
12221 2006-02-28  Eric Christopher  <echristo@apple.com>
12222
12223         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
12224         Set up IN_LIBGCC definition of TARGET_64BIT.
12225         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
12226
12227 2006-02-28  Roger Sayle  <roger@eyesopen.com>
12228
12229         PR middle-end/14752
12230         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
12231         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
12232         cases via the construction of "expr != 0".
12233
12234 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
12235
12236         * alias.c (alias_invariant, alias_invariant_size): Remove.
12237         (record_base_value): Remove.
12238         (memrefs_conflict_p): Don't look at alias_invariant.
12239         (end_alias_analysis): Don't free it.
12240         * alias.h (record_base_value): Remove prototype.
12241
12242 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
12243             Adam Nemet  <anemet@caviumnetworks.com>
12244
12245         * rtl.h (truncated_to_mode): Declare it.
12246         (struct rtl_hooks): Add reg_truncated_to_mode hook.
12247         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
12248         (RTL_HOOKS_INITIALIZER): Include it.
12249         * rtlhooks.c (reg_truncated_to_mode_general): New function.
12250         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
12251         reg_truncated_to_mode.
12252         * rtlanal.c (truncated_to_mode): Define it.
12253         * simplify-rtx.c (simplify_unary_operation_1): Use it.
12254
12255 2006-02-28  Jeff Law  <law@redhat.com>
12256
12257         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
12258         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
12259         the range allowed by TYPE_PRECISION.
12260
12261         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
12262
12263 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
12264
12265         PR tree-optimization/26419
12266         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
12267         values of n.
12268
12269 2006-02-27  Zack Weinberg  <zackw@panix.com>
12270
12271         * doc/md.texi: Fix typo in previous change.
12272
12273 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
12274
12275         * df.c: Remove.
12276
12277 2006-02-27  Zack Weinberg  <zackw@panix.com>
12278
12279         * rtl.def (define_constraint, define_register_constraint)
12280         (define_memory_constraint, define_address_constraint): New MD forms.
12281         * gensupport.c (process_rtx): Put define_constraint etc on the
12282         predicate queue.
12283         * genpreds.c (process_define_predicate): Adjust comment.  Validate
12284         the name, and call validate_exp to validate the expression.
12285         (mark_mode_tests, write_extract_subexp): Can assume correct input.
12286         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
12287         all callers changed.
12288         (validate_exp, needs_variable, struct constraint_data)
12289         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
12290         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
12291         (const_dbl_constraints, constraint_max_namelen)
12292         (have_register_constraints, have_memory_constraints)
12293         (have_address_constraints, have_address_constraints)
12294         (have_extra_constraints, have_const_int_constraints)
12295         (have_const_dbl_constraints, mangle, add_constraint)
12296         (process_define_constraint, process_define_register_constraint)
12297         (write_enum_constraint_num, write_lookup_constraint)
12298         (write_insn_constraint_len, write_regclass_for_constraint)
12299         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
12300         (write_insn_extra_memory_constraint)
12301         (write_insn_extra_address_constraint)
12302         (write_satisfies_constraint_fns): New.
12303         (write_tm_preds_h): If we have new-style constraint definitions,
12304         prototype the functions generated from them, and define the
12305         old constraint interface (still used by generic code) in terms of
12306         those functions.
12307         (write_insn_preds_c): If we have new-style constraint definitions,
12308         generate all relevant functions from those definitions.
12309         (main): Handle define_constraint etc.
12310         * genoutput.c (struct constraint_data, indep_constraints)
12311         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
12312         (mdep_constraint_len): New data structures and functions, defined
12313         #ifdef USE_MD_CONSTRAINTS.
12314         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
12315         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
12316         use new logic to validate operand constraints against constraint
12317         definitions.
12318         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
12319         defined.
12320         * defaults.h: If none of the old-style constraint macros are
12321         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
12322         old-style macros; and poison REG_CLASS_FROM_LETTER,
12323         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
12324         EXTRA_CONSTRAINT.
12325         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
12326         * doc/md.texi: Document new constraint-definition mechanism and the
12327         C interface it provides.  Remove references to old mechanism
12328         elsewhere in the document.
12329         (Machine Constraints): Use pathnames relative to gcc directory,
12330         i.e. config/ARCH/FILE.  Change i386 section to refer to
12331         config/i386/predicates.md; update that section to match docstrings.
12332         * doc/tm.texi: Move all documentation of the old constraint-
12333         definition macros to their own section, clearly mark as obsolete.
12334
12335         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
12336         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
12337         definitions.
12338         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
12339         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
12340         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
12341         constraint strings.
12342         (splits and peepholes): Use satisfies_constraint_*.
12343         * config/i386/i386.c (memory_address_length)
12344         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
12345
12346 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
12347
12348         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
12349         scalar operation to be put back into the loop.
12350
12351 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
12352
12353         PR other/26208
12354         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
12355         (extract_cie_info): Handle S flag in augmentation string.
12356         (execute_cfa_program): If context->signal_frame, execute also
12357         fs->pc == context->ra instructions.
12358         (uw_frame_state_for): If context->signal_frame, don't subtract one
12359         from context->ra to find FDE.
12360         (uw_update_context_1): Set context->signal_frame to
12361         fs->signal_frame.
12362         (_Unwind_GetIPInfo): New function.
12363         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
12364         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
12365         of _Unwind_GetIP.
12366         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
12367         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
12368         * unwind-compat.c (_Unwind_GetIPInfo): New function.
12369         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
12370         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
12371         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
12372         * config/i386/linux-unwind.h (x86_fallback_frame_state,
12373         x86_64_fallback_frame_state): Set fs->signal_frame.
12374         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
12375         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
12376         (frob_update_context): Likewise.  Workaround missing S flag in
12377         Linux 2.6.12 - 2.6.16 kernel vDSOs.
12378         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
12379         Remove the psw_addr + 1 hack.
12380
12381 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
12382
12383         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
12384         with aggregates here.
12385         (find_func_aliases): Remove code for &<aggregate> from here.
12386
12387 2006-02-26  Roger Sayle  <roger@eyesopen.com>
12388
12389         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
12390         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
12391         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
12392         as (X & C) ne/eq 0.
12393
12394 2006-02-26  Roger Sayle  <roger@eyesopen.com>
12395
12396         PR middle-end/19983
12397         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
12398
12399 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
12400
12401         * opts.c (decode_options): Do not handle flag_strength_reduce.
12402         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
12403         and OPT_fstrength_reduce.
12404         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
12405         flag_prefetch_loop_arrays for being nonzero.
12406         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
12407         no-ops.
12408         (fprefetch-loop-arrays-rtl): Removed.
12409         (flag_prefetch_loop_arrays): Do not specify the value.
12410
12411         * doc/passes.texi: Update documentation of loop optimizer
12412         passes.
12413         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
12414         -frerun-loop-opt): Remove.
12415
12416 2006-02-26  Richard Guenther  <rguenther@suse.de>
12417
12418         PR tree-optimization/26421
12419         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
12420         in function calls that are ADDR_EXPRs as using the whole structure.
12421
12422 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
12423
12424         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
12425         * tree-pass.h (pass_loop_optimize): Remove.
12426         * passes.c (pass_loop_optimize): Never run it.
12427         * toplev.c (backend_init): Don't call init_loop.
12428         * opts.c (flag_loop_optimize_set): Remove.
12429         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
12430         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
12431         the old RTL loop optimizer when profiling enabled.
12432         * predict.c (tree_estimate_probability): Always strip builtin_expect.
12433         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
12434         pre-headers for the sake of the old RTL loop optimizer.
12435         * Makefile.in: Remove all references to loop.o.
12436
12437         * doc/invoke.texi: Remove all references to -floop-optimize
12438         and -frerun-loop-opt.
12439
12440 2006-02-26  Zack Weinberg  <zackw@panix.com>
12441
12442         * doc/md.texi (Machine Constraints): Refer to all files with paths
12443         relative to gcc directory (i.e. config/CPU/file).  Add missing
12444         @table @code ... @end table to M32C subsection.
12445
12446 2006-02-26  Roger Sayle  <roger@eyesopen.com>
12447
12448         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
12449         (X & 1) == 0.
12450         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
12451
12452 2006-02-26  Roger Sayle  <roger@eyesopen.com>
12453             James A. Morrison  <phython@gcc.gnu.org>
12454
12455         PR middle-end/21137
12456         * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
12457         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
12458         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
12459         signedness of the shift operation.
12460
12461 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
12462
12463         PR tree-optimization/26359
12464         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
12465
12466 2006-02-25  Roger Sayle  <roger@eyesopen.com>
12467
12468         * simplify-rtx.c (simplify_relational_operation_1): Simplify
12469         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
12470         as X == 0, and some symmetry related transformations.
12471         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
12472
12473 2006-02-25  Roger Sayle  <roger@eyesopen.com>
12474
12475         PR middle-end/23673
12476         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
12477         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
12478         symmetry related transformations.  Fold (X^C1) == C2 as
12479         X == (C1^C2).
12480
12481 2006-02-25  Juergen Weigert  <jw@suse.de>
12482         Richard Guenther  <rguenther@suse.de>
12483
12484         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
12485
12486 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
12487
12488         * combine.c (gen_lowpart_or_truncate): Call
12489         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
12490
12491 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
12492
12493         * doc/invoke.texi: Move -fopenmp description to "Options for
12494         Code Generation".
12495         Remove reference to -lgomp.
12496
12497 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
12498
12499         * doc/install.texi: Require GNU tar version 1.14.
12500
12501 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
12502
12503         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
12504         * doc/invoke.texi (C++ Dialect Options): Document
12505         -fno-use-cxa-get-exception-ptr.
12506         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
12507         * configure: Regenerate.
12508         * c.opt (fuse-cxa-get-exception-ptr): New.
12509         * c-opts.c (c_common_handle_option): Handle
12510         OPT_fuse_cxa_get_exception_ptr.
12511         * c-common.c (flag_use_cxa_atexit): Update documentation.
12512         (flag_use_cxa_get_exception_ptr): New.
12513         * c-common.h (flag_use_cxa_get_exception_ptr): New.
12514         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
12515         documentation.
12516         (C_COMMON_OVERRIDE_OPTIONS): New.
12517
12518 2006-02-24  Roger Sayle  <roger@eyesopen.com>
12519
12520         PR middle-end/24952
12521         * combine.c (try_combine): Explicitly check whether GET_CODE is
12522         a SET or a CLOBBER, instead on checking that it isn't a USE.
12523
12524 2006-02-24  Roger Sayle  <roger@eyesopen.com>
12525
12526         * fold-const.c (fold_comparison): New subroutine of fold_binary
12527         containing transformations common to both the equality and
12528         ordering relational operators, factored out of fold_binary.
12529         (fold_binary): Separate out the equality operators (EQ_EXPR
12530         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
12531         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
12532         transformations common to both.
12533         (fold_div_compare): Fix latent bugs in the previously unreachable
12534         LT_EXPR and GE_EXPR cases.
12535
12536 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
12537
12538         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
12539         decl libname for clog to __clog on AIX.
12540
12541         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
12542
12543 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
12544
12545         PR target/26453
12546         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
12547         output traceback table for thunks.  Localise rs6000_stack_info call.
12548
12549 2006-02-23  Roger Sayle  <roger@eyesopen.com>
12550             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12551
12552         * gthr-posix.h (__gthrw): Fix typo in comment.
12553
12554 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
12555
12556         * doc/cpp.texi (Character sets): Document that we do support
12557         input files to be in any character set.
12558
12559 2006-02-23  Jeff Law  <law@redhat.com>
12560
12561         * tree.h (PHI_ARG_NONZERO): Remove.
12562         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
12563         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
12564         node to the new node.
12565
12566         PR tree-optimization/26425
12567         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
12568         min/max, then assume its varying.
12569
12570 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
12571
12572         PR rtl-optimization/26316
12573         * rtlanal.c (enum may_trap_p_flags): New.
12574         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
12575         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
12576         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
12577         (may_trap_after_code_motion_p): New function.
12578         * loop-invariant.c (find_identical_invariants): Fix dump formating.
12579         (find_invariant_insn): Use may_trap_after_code_motion_p.
12580         * rtl.h (may_trap_after_code_motion_p): Declare.
12581
12582 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
12583
12584         * emit-rtl.c (immed_double_const): Cleanup.
12585
12586 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
12587
12588         Fix PR tree-optimization/26376
12589         * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
12590         remove assert.
12591
12592 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
12593
12594         PR middle-end/26412
12595         * gimplify.c (omp_add_variable): Guard variable size decl test with
12596         DECL_SIZE (decl) check.
12597
12598 2006-02-23  Richard Guenther  <rguenther@suse.de>
12599
12600         PR middle-end/26439
12601         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
12602         like aggregate types.
12603
12604 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
12605
12606         * configure.ac: Add --with{,out}-long-double-128 configure option.
12607         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
12608         * configure: Rebuilt.
12609         * config.in: Rebuilt.
12610         * doc/install.texi (Options specification): Document
12611         --with-long-double-128.
12612
12613         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
12614         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
12615         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
12616         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
12617
12618 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
12619
12620         * config/s390/s390.c (override_options): Handle
12621         TARGET_DEFAULT_LONG_DOUBLE_128.
12622
12623         * config/alpha/alpha.c (override_options): Handle
12624         TARGET_DEFAULT_LONG_DOUBLE_128.
12625
12626         * config/sparc/sparc.c (sparc_override_options): Handle
12627         TARGET_DEFAULT_LONG_DOUBLE_128.
12628
12629 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
12630
12631         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
12632         (real-install-headers-tar, real-install-headers-cpio)
12633         (real-install-headers-cp): New targets.
12634
12635 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
12636
12637         * tree.h (variable_section): Delete.
12638         * varasm.c (variable_section): Delete.
12639
12640 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
12641
12642         * install.texi: Add notes on install.texi2html.
12643         (Building in parallel): Do not use footnotes.
12644
12645 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
12646
12647         PR libgomp/26234
12648         * doc/install.texi (Configuration): Document --disable-libgomp.
12649
12650 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
12651
12652         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
12653
12654 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
12655
12656         * config/i386/sse.md (vec_extractv2df_1_sse): New.
12657         (vec_extractv2df_0_sse): New.
12658
12659 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
12660
12661         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
12662         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
12663         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
12664         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
12665         to the result of the expression.
12666         (def_cfa_1): Adjust.
12667         (frame_pointer_cfa_offset): Rename to...
12668         (frame_pointer_fb_offset): ... this.  Adjust all uses.
12669         (convert_cfa_to_loc_list): Rename to...
12670         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
12671         Pass it on to build_cfa_loc.
12672         (compute_frame_pointer_to_cfa_displacement): Rename to...
12673         (compute_frame_pointer_to_fb_displacement): ... this.  New
12674         offset parameter.  Use it in computation.
12675         (gen_subprogram_die): Compute cfa_fb_offset with the new
12676         macro, and use it to compute the fb loc list and the
12677         displacement.
12678
12679 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
12680
12681         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
12682         replaced with register_operand.
12683         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
12684         non-DREG is expensive.
12685         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
12686         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
12687         involving memory.
12688
12689 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
12690
12691         * doc/install.texi2html: Use set -e.
12692
12693 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
12694
12695         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
12696         (ASM_OUTPUT_SHARED_LOCAL): Delete.
12697         * doc/invoke.texi (-fshared-data): Delete.
12698         * common.opt (fshared-data): Delete.
12699         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
12700         (assemble_static_space): Remove #if 0 code.
12701         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
12702         (ASM_OUTPUT_SHARED_LOCAL): Poison.
12703         * config/cris/cris.h: Remove FIXME.
12704
12705 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
12706
12707         * doc/sourcebuild.texi (Front End Directory): No more double-colon
12708         hooks.
12709
12710 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
12711
12712         PR middle-end/26379
12713         * combine.c (simplify_shift_const_1): Disable nested shifts
12714         optimization for vector shifts.
12715
12716 2006-02-20  Roger Sayle  <roger@eyesopen.com>
12717
12718         PR tree-optimization/26361
12719         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
12720         of unsigned integer types.
12721
12722 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
12723
12724         * tree-chrec.c (eq_evolutions_p): New.
12725         * tree-chrec.h (eq_evolutions_p): Declared.
12726         * tree-data-ref.c: Fix formatting.
12727         (datadep_stats, dependence_stats): New.
12728         (gcd): Moved...
12729         (print_direction_vector): New.
12730         (dump_data_dependence_relation): Use print_direction_vector.
12731         (object_analysis, create_data_ref): Handle COMPONENT_REF.
12732         (compute_subscript_distance): Static.
12733         (initialize_data_dependence_relation): Static.  Get the number
12734         of loops surrounding the references from the callers, and initialize
12735         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
12736         base_object_differ_p analyzers.
12737         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
12738         compute_overlap_steps_for_affine_1_2,
12739         analyze_subscript_affine_affine): Count the classified dependences.
12740         Print a message when a test failed.
12741         (can_use_analyze_subscript_affine_affine): New.
12742         (analyze_siv_subscript): Compute the data dependences on symbolic
12743         scevs that verify can_use_analyze_subscript_affine_affine.
12744         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
12745         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
12746         Handle symbolic scevs.
12747         (analyze_overlapping_iterations): Let symbolic affine scevs to be
12748         analyzed.
12749         (subscript_dependence_tester): Moved...
12750         (build_classic_dist_vector, build_classic_dir_vector): Don't use
12751         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
12752         DDR_SIZE_VECT instead of getting it in parameter.
12753         (subscript_dependence_tester): ... here.  Take as a parameter
12754         loop_nest_depth.  Call build_classic_dist_vector and
12755         build_classic_dir_vector.
12756         (compute_affine_dependence): Update subscript_dependence_tester
12757         parameters.  Update datadep_stats counters.  Call
12758         compute_subscript_distance.
12759         (compute_self_dependence): Save the dist and dir vectors.  Call
12760         compute_subscript_distance.
12761         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
12762         (compute_all_dependences): Reorder parameters as they were before
12763         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
12764         compute_subscript_distance.  Update the use of
12765         compute_affine_dependence and initialize_data_dependence_relation.
12766         (find_data_references_in_loop): Handle COMPONENT_REF.
12767         (compute_data_dependences_for_loop): Initialize dependence_stats.
12768         Don't call build_classic_dist_vector and build_classic_dir_vector.
12769         Update the parameters of initialize_data_dependence_relation and
12770         compute_all_dependences.  Print the statistics from datadep_stats.
12771         (analyze_all_data_dependences): Static.  Not used until the pass for
12772         checking the data dependences is contributed.
12773         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
12774         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
12775         (initialize_data_dependence_relation, compute_affine_dependence,
12776         analyze_all_data_dependences, compute_subscript_distance): Removed.
12777         (print_direction_vector): New.
12778         * lambda.h (gcd): ... here.
12779         (lambda_vector_gcd): Moved here from gcd_vector.
12780         * lambda-code.c (gcd, gcd_vector): Removed.
12781         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
12782         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
12783
12784 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
12785
12786         * ipa-type-escape.c: Tidy some comments and white space.
12787         * tree-ssa-operands.c: Likewise.
12788
12789 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
12790
12791         PR tree-opt/25879
12792         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
12793         (dump_decl_name): Do not walk the decl tree chains.
12794         * tree-pass.h (TDF_CHAIN): Remove.
12795
12796 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
12797
12798         * Makefile.in (C): Remove
12799         (PROTO): Remove
12800         (.PHONY): Remove C and PROTO
12801
12802 2006-02-20  Roger Sayle  <roger@eyesopen.com>
12803
12804         PR middle-end/26236
12805         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
12806         deprecated CHAR_TYPE tree code.
12807
12808 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
12809
12810         * configure.ac (target_list): Add install-info, dvi, html.
12811         * configure: Regenerate.
12812
12813         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
12814         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
12815         treelang/Make-lang.in: Do not use double-colon rules.
12816
12817 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
12818
12819         * tree.h (struct tree_memory_tag): Add is_used_alone member.
12820         (TMT_USED_ALONE): New macro.
12821         * tree-pass.h (PROP_tmt_usage): New property.
12822         (TODO_update_tmt_usage): New todo.
12823         * tree-ssa-alias.c (updating_used_alone): New variable.
12824         (recalculate_used_alone): New function.
12825         (compute_may_aliases): Set updating_used_alone, call
12826         recalculate_used_alone.
12827         * tree-sra.c (pass_sra): Note that this pass destroys
12828         PROP_tmt_usage, and add TODO_update_tmt_usage.
12829         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
12830         * tree-flow.h (updating_used_alone): Prototype.
12831         (recalculate_used_alone): Ditto.
12832         * passes.c (execute_todo): Add code to set updating_used_alone,
12833         and call recalculate.
12834         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
12835         for clobber if used alone, and add assert to verify used_alone
12836         status.
12837
12838 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
12839
12840         * config/s390/s390.c (legitimize_pic_address): Assertions checking
12841         for non tls symbols added.
12842         (legitimize_address): Do nothing for PLUS expressions if one of the
12843         addends is a tls symbol reference.
12844
12845 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
12846
12847         PR bootstrap/25476
12848
12849         * Makefile.in (LDFLAGS): Define from autoconf substitution.
12850
12851         * Makefile.in (BOOTSTRAPPING): New.
12852         (quickstrap): New definition if BOOTSTRAPPING=yes.
12853
12854         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
12855         * configure.ac: Substitute all_selected_languages with the languages
12856         that were configured.  For all the other variables except
12857         lang_specs_files, include all the languages in the tree.
12858         * configure: Regenerate.
12859
12860         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
12861         if there is one.  Run the commands to run fixincludes in the same
12862         subshell.
12863
12864         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
12865         * doc/install.texi: Document exact conventions for searching target tools.
12866         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
12867         something more about building an Ada cross-compiler.  Don't list GNU Make
12868         requirements which affect all platforms.
12869
12870 2006-02-19  Roger Sayle  <roger@eyesopen.com>
12871
12872         PR middle-end/19543
12873         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
12874         only equivalent if the have both the same mode and precision.
12875
12876 2006-02-20  Ben Elliston  <bje@au.ibm.com>
12877
12878         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
12879
12880 2006-02-19  Roger Sayle  <roger@eyesopen.com>
12881             Steven Bosscher  <stevenb.gcc@gmail.com>
12882
12883         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
12884         constant pool references to identify stack mode constants.
12885         * rtlanal.c (constant_pool_constant_p): New predicate to check
12886         whether operand is a floating point constant in the pool.
12887         * rtl.h (constant_pool_constant_p): Prototype here.
12888         * loop.c (scan_loop): Avoid hoisting constants from the constant
12889         pool on STACK_REGS targets.
12890         (load_mems): Likewise.
12891         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
12892         loads into x87 registers expensive in terms of register pressure.
12893
12894 2006-02-19  Roger Sayle  <roger@eyesopen.com>
12895
12896         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
12897         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
12898
12899 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
12900
12901         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
12902         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
12903
12904 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
12905
12906         * doc/invoke.texi: Document -fipa-pta.
12907         * common.opt: Add ipa-pta option.
12908         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
12909         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
12910         (do_ds_constraint): Ditto.
12911         (get_constraint_for): Only add to referenced_vars if
12912         referenced_vars exists.
12913         (insert_into_field_list): Rewrite to do this unsorted.
12914         (insert_into_field_list_sorted): Rename old insert_into_field_list
12915         to this.
12916         (create_function_info_for): Use insert_into_field_list_sorted.
12917         (create_variable_info_for): Rewrite so it uses unsorted version,
12918         since the field list is sorted.
12919         (intra_create_variable_infos): Only add to referenced_vars if
12920         referenced_vars exists.
12921         (ipa_pta_execute): Init heapvars, and delete when done.
12922         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
12923
12924 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12925
12926         * doc/install.texi: Add missing `@samp'.
12927
12928 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
12929
12930         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
12931         Use the arguments.
12932
12933 2006-02-18  Mark Wielaard  <mark@klomp.org>
12934
12935         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
12936         who added new 4.1 features, bug fixes and integration support.
12937
12938 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
12939
12940         PR target/26350
12941         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
12942         MEM for ABI_V4 pic.
12943
12944 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
12945
12946         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
12947         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
12948         (copy_insn_1): Likewise.  Don't copy each field individually.
12949         Reindent.
12950         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
12951         of RTX_SIZE.
12952         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
12953         * rtl.c (rtx_size): Rename variable to...
12954         (rtx_code_size): ...this.
12955         (rtx_size): New function.
12956         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
12957         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
12958         Reindent.
12959         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
12960         * rtl.h (rtx_code_size): New variable.
12961         (rtx_size): Change from a variable to a function.
12962         (RTX_SIZE): Rename to...
12963         (RTX_CODE_SIZE): ...this.
12964
12965         PR target/9703
12966         PR tree-optimization/17106
12967         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
12968         (Anchored Addresses): New section.
12969         * doc/invoke.texi (-fsection-anchors): Document.
12970         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
12971         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
12972         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
12973         * hooks.c (hook_bool_mode_rtx_false): New function.
12974         * hooks.h (hook_bool_mode_rtx_false): Declare.
12975         * gengtype.c (create_optional_field): New function.
12976         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
12977         SYMBOL_REF_IN_BLOCK_P is true.
12978         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
12979         (min_anchor_offset, max_anchor_offset): Likewise.
12980         (use_anchors_for_symbol_p): New hook.
12981         * toplev.c (compile_file): Call output_object_blocks.
12982         (target_supports_section_anchors_p): New function.
12983         (process_options): Check that -fsection-anchors is only used on
12984         targets that support it and when -funit-at-a-time is in effect.
12985         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
12986         if the decl doesn't have one.
12987         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
12988         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
12989         of force_const_mem through use_anchored_address.
12990         (expand_expr_constant): New function.
12991         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
12992         calling expand_expr for INDIRECT_REF.
12993         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
12994         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
12995         * expr.h (use_anchored_address): Declare.
12996         * loop-unroll.c: Don't declare rtx vectors here.
12997         * explow.c: Include output.h.
12998         (validize_mem): Call use_anchored_address.
12999         (use_anchored_address): New function.
13000         * common.opt (-fsection-anchors): New switch.
13001         * varasm.c (object_block_htab, anchor_labelno): New variables.
13002         (hash_section, object_block_entry_eq, object_block_entry_hash)
13003         (use_object_blocks_p, get_block_for_section, create_block_symbol)
13004         (use_blocks_for_decl_p, change_symbol_section): New functions.
13005         (get_variable_section): New function, split out from assemble_variable.
13006         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
13007         use_blocks_for_decl_p say so.  Use change_symbol_section if the
13008         symbol has already been created.
13009         (assemble_variable_contents): New function, split out from...
13010         (assemble_variable): ...here.  Don't output any code for
13011         block symbols; just pass them to place_block_symbol.
13012         Use get_variable_section and assemble_variable_contents.
13013         (get_constant_alignment, get_constant_section, get_constant_size): New
13014         functions, split from output_constant_def_contents.
13015         (build_constant_desc): Create a block symbol if use_object_blocks_p
13016         says so.  Or into SYMBOL_REF_FLAGS.
13017         (assemble_constant_contents): New function, split from...
13018         (output_constant_def_contents): ...here.  Don't output any code
13019         for block symbols; just pass them to place_section_symbol.
13020         Use get_constant_section and get_constant_alignment.
13021         (force_const_mem): Create a block symbol if use_object_blocks_p and
13022         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
13023         (output_constant_pool_1): Add an explicit alignment argument.
13024         Don't switch sections here.
13025         (output_constant_pool): Adjust call to output_constant_pool_1.
13026         Switch sections here instead.  Don't output anything for block symbols;
13027         just pass them to place_block_symbol.
13028         (init_varasm_once): Initialize object_block_htab.
13029         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
13030         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
13031         (place_block_symbol, get_section_anchor, output_object_block)
13032         (output_object_block_htab, output_object_blocks): New functions.
13033         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
13034         (TARGET_ASM_OUT): Include it.
13035         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
13036         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
13037         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
13038         (TARGET_INITIALIZER): Include them.
13039         * rtl.c (rtl_check_failed_block_symbol): New function.
13040         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
13041         (block_symbol, object_block): New structures.
13042         (rtx_def): Add a block_symbol field to the union.
13043         (BLOCK_SYMBOL_CHECK): New macro.
13044         (rtl_check_failed_block_symbol): Declare.
13045         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
13046         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
13047         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
13048         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
13049         * output.h (output_section_symbols): Declare.
13050         (object_block): Name structure.
13051         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
13052         (default_use_anchors_for_symbol_p): Declare.
13053         * Makefile.in (RTL_BASE_H): Add vec.h.
13054         (explow.o): Depend on output.h.
13055         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
13056         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
13057         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
13058         (rs6000_use_blocks_for_constant_p): New function.
13059
13060 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13061
13062         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
13063
13064 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
13065
13066         PR tree-opt/25680
13067         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
13068         IMAGPART_EXPR.
13069
13070 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
13071
13072         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
13073         is_aliased.
13074         Update all users.
13075
13076 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
13077
13078         PR middle-end/26334
13079         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
13080         instead of DECL_REGISTER.
13081
13082 2006-02-18  Olivier Hainque  <hainque@adacore.com>
13083
13084         PR ada/13408
13085         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
13086
13087 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
13088
13089         PR target/24837
13090         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
13091         * opth-gen.awk: Handle Var and InverseMask together.
13092         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
13093         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
13094         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
13095         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
13096         used together.
13097         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
13098         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
13099         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
13100         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
13101         LINUX_DYNAMIC_LINKER): Define.
13102         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
13103         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
13104         TARGET_GLIBC.
13105         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13106         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
13107         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13108         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13109         (TARGET_C99_FUNCTIONS): Don't define.
13110         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
13111         GLIBC_DYNAMIC_LINKER.
13112         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
13113         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
13114         GLIBC_DYNAMIC_LINKER64): Define.
13115         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
13116         LINUX_DYNAMIC_LINKER64.
13117         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13118         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13119         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
13120         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13121         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13122         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13123         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
13124         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
13125         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
13126         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
13127         and LINUX_DYNAMIC_LINKER32.
13128         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13129         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13130         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
13131         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13132         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
13133         TARGET_GLIBC.
13134         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
13135         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
13136         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
13137         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
13138         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
13139         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
13140         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
13141         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
13142         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
13143         LINUX_DYNAMIC_LINKER): Define.
13144         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
13145         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
13146         GLIBC_DYNAMIC_LINKER64): Define.
13147         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
13148         LINUX_DYNAMIC_LINKER64.
13149         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13150         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13151         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
13152         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
13153         LINUX_DYNAMIC_LINKER): Define.
13154         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13155         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
13156         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
13157         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
13158         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
13159         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
13160         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
13161         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
13162         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
13163         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13164         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13165         * doc/invoke.texi (-muclibc): Remove caveat about supported
13166         targets.
13167
13168 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
13169
13170         * doc/cpp.texi (__TIMESTAMP__): Document.
13171
13172 2006-02-17  Roger Sayle  <roger@eyesopen.com>
13173
13174         PR middle-end/25600
13175         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
13176         C is one less than the width of X (and related transformations).
13177         * simplify-rtx.c (simplify_unary_operation_1): Transform
13178         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
13179         depending on STORE_FLAG_VALUE, were C is one less then the
13180         width of X.
13181
13182 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
13183
13184         Fix PR tree-optimization/26341
13185         * tree-ssa-operands.c (add_virtual_operand): Remove assert
13186         about NAME_MEMORY_TAG's.
13187
13188 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13189
13190         PR target/26255
13191         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
13192         with hardware float support, and software float support.  Add fcpy
13193         alternative to hardware patterns.  Add alternatives to copy between
13194         general and floating-point registers to the 32-bit pattern.
13195         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
13196         secondary reload to load a QI or HI mode constant into a floating
13197         point register.
13198         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
13199         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
13200
13201 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
13202
13203         PR target/26272
13204         * config/rs6000/darwin.md (load_macho_picbase_si): Add
13205         pc to the pattern.
13206         (load_macho_picbase_di): Likewise.
13207
13208 2006-02-16  Jeff Law  <law@redhat.com>
13209
13210         * tree-vrp.c (set_value_range_to_nonnegative): New function.
13211         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
13212         (ssa_name_nonzero_p): Likewise.
13213         (get_value_range): Return NULL if VRP is not running.
13214         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
13215         VRP routines do not discover a range.
13216         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
13217         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
13218         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
13219         (tree_expr_nonnegative_p): Similarly.
13220         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
13221         (restore_nonzero_vars_to_original_value): Remove.
13222         (unsafe_associative_fp_binop): Remove.
13223         (tree_ssa_dominator_optimize): Remove initialization and
13224         finalization of nonzero_vars and nonzero_vars_stack.
13225         (dom_opt_initialize_block): No longer push marker on
13226         nonzero_vars_stack.
13227         (dom_opt_finalize_block): No longer call
13228         restore_nonzero_vars_to_original_value.
13229         (record_equivalences_from_phis): No longer look for
13230         nonzero PHI arguments.
13231         (cprop_into_successor_phis): No longer propagate nonzero
13232         property into PHI arguments.  Lose unused argument.  Caller
13233         updated.
13234         (record_equivalences_from_stmt): No longer record nonzero
13235         values for SSA_NAMEs.
13236         (lookup_avail_expr): No longer use nonzero_vars.
13237
13238         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
13239         for sizetype when sizetype is unsigned.
13240
13241 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
13242
13243         PR rtl-optimization/25603
13244         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
13245         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
13246         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
13247         with new meaning of SETS.
13248
13249 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
13250
13251         PR target/20353
13252         PR target/24578
13253         PR target/24837
13254         * config/linux.opt: New file.
13255         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
13256         LINUX_DYNAMIC_LINKER): Define.
13257         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
13258         * config.gcc (*-*-linux*): Define extra_options.
13259         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
13260         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
13261         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
13262         GLIBC_DYNAMIC_LINKER.
13263         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
13264         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13265         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13266         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
13267         * doc/invoke.texi (GNU/Linux Options): New section.
13268
13269 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
13270
13271         * config/sparc/sparc.md (setjmp): Rewrite.
13272         (setjmp_32): Delete.
13273         (setjmp_64): Likewise.
13274
13275 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
13276
13277         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
13278          previous change.
13279
13280 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
13281
13282         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
13283         read-write uses.
13284
13285 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
13286
13287         PR rtl-optimization/26296
13288         * Makefile.in (loop-invariant.c): Add except.h dependency.
13289         * loop-invariant.c: Include except.h.
13290         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
13291
13292 2005-02-16  Paul Brook  <paul@codesourcery.com>
13293
13294         * reload1.c (emit_reload_insns): Invalidate dead input registers used
13295         for reloads.
13296
13297 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
13298
13299         PR rtl-optimization/25636
13300         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
13301         when deciding whether an insn is an initializing insn.
13302
13303 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
13304
13305         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
13306         (tree_code_size): Ditto.
13307         * tree.h (struct tree_memory_tag): Remove parent_var.
13308         (struct tree_struct_field_tag): New.
13309         (SFT_OFFSET): New.
13310         (SFT_SIZE): New.
13311         (union tree_node): Add sft member.
13312         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
13313         specially here.
13314         (create_sft): Add size and offset argument, set SFT_OFFSET and
13315         SFT_SIZE.
13316         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
13317         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
13318         * tree-flow-inline.h (get_subvar_at): Update for
13319         SFT_OFFSET/SFT_SIZE.
13320         (var_can_have_subvars): Ditto.
13321         (overlap_subvar): Ditto.
13322         * print-tree.c (print_node): Print out interesting things for
13323         SFT's.
13324         * tree-flow.h (struct subvar): Remove offset and size members.
13325         * tree-ssa-operands.c (get_expr_operands): Update for
13326         get_indirect_ref_operands changes.
13327         (get_indirect_ref_operands): Call add_virtual_operand instead of
13328         add_stmt_operand.  Only recurse on base var if requested.
13329         (access_can_touch_variable): New function.
13330         (add_stmt_operand): Split virtual operand handling into ...
13331         (add_virtual_operand): Here.  Add offset, size, and for_clobber
13332         arguments.  Prune alias sets.
13333         (add_call_clobber_ops): Call add_virtual_operand.
13334
13335 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
13336
13337         PR middle-end/26300
13338         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
13339
13340         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
13341         than TREE_CODE as index into omp_clause_num_ops array.
13342
13343 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
13344
13345         PR rtl-optimization/26184
13346         * modulo-sched.c (generate_reg_moves): Free bitmap vector
13347         uses_of_defs.
13348         * modulo-sched.c (sms_schedule): Free g_arr pointer.
13349         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
13350         must_precede, must_follow and tobe_scheduled.
13351
13352         PR other/26147
13353         * opts.c (common_handle_option): Free new_option pointer.
13354         * df-core.c (df_analyze): Free postorder pointer.
13355
13356 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
13357
13358         * Makefile.in: Fix the examples about the use of stamps
13359
13360 2006-02-15  Michael Matz  <matz@suse.de>
13361
13362         PR middle-end/22275
13363
13364         * stor-layout.c (layout_decl): Zero-width bitfields aren't
13365         influenced by maximum_field_alignment or DECL_PACKED.
13366         (update_alignment_for_field): Ditto.
13367         (place_field): Ditto.
13368         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
13369         this behaviour.
13370
13371 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
13372
13373         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
13374         (debug_flow_info): Pass it.
13375         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
13376         * bb-reorder.c (reorder_basic_blocks): Likewise.
13377         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
13378         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
13379         * flow.c (life_analysis, recompute_reg_usage): Likewise.
13380         * gcse.c (gcse_main, bypass_jumps): Likewise.
13381         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
13382         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
13383         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
13384         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
13385         * rtl.h (dump_flow_info): Adjust prototype.
13386         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
13387         * var-tracking.c (variable_tracking_main): Likewise.
13388         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
13389         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
13390         options.
13391
13392 2006-02-15  Marcin Dalecki <martin@dalecki.de>
13393
13394         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
13395         construction.
13396
13397 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
13398
13399         PR tree-optimization/26209
13400         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
13401         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
13402         eh edges.
13403         * tree-cfg.c (replace_uses_by): Do not alter cfg.
13404
13405 2006-02-14  Roger Sayle  <roger@eyesopen.com>
13406
13407         PR middle-end/23670
13408         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
13409         (X,Y) and the corresponding symmetry related transformations.
13410         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
13411         (X,Y) and its symmetry related transformations.
13412
13413 2006-02-14  Roger Sayle  <roger@eyesopen.com>
13414
13415         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
13416         and GEU.
13417
13418 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
13419
13420         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
13421
13422 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13423
13424         PR bootstrap/26053
13425         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
13426         support COMDAT group.
13427         * configure: Regenerate.
13428
13429 2006-02-14  Roger Sayle  <roger@eyesopen.com>
13430
13431         PR middle-end/26279
13432         PR middle-end/26280
13433         PR middle-end/26283
13434         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
13435
13436 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
13437
13438         Fix PR tree-optimization/26260
13439
13440         * doc/invoke.texi (max-fields-for-field-sensitive): Document
13441         param.
13442         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
13443         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
13444         * tree-ssa-structalias.c (create_variable_info_for): Use
13445         MAX_FIELDS_FOR_FIELD_SENSITIVE.
13446
13447 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
13448
13449         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
13450         Document.
13451         * tree-ssa-loop-niter.c (number_of_iterations_ne,
13452         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
13453         of the ending condition.
13454         * tree-ssa-loop-manip.c: Include params.h.
13455         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
13456         tree_unroll_loop): New functions.
13457         * tree-pass.h (pass_loop_prefetch): Declare.
13458         * loop.c (rest_of_handle_loop_optimize): Test for
13459         -fprefetch-loop-arrays-rtl.
13460         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
13461         * timevar.def (TV_TREE_PREFETCH): New timevar.
13462         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
13463         pass_loop_prefetch): New.
13464         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
13465         (cleanup_tree_cfg_loop): Call scev_reset.
13466         * common.opt (fprefetch-loop-arrays-rtl): Add.
13467         * tree-ssa-loop-prefetch.c: New file.
13468         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
13469         (new_temp_expr_table): Initialize expr_vars.
13470         (free_temp_expr_table): Cleanup expr_vars.
13471         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
13472         expressions from being merged into one.
13473         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
13474         (struct tree_niter_desc): Add control, bound and cmp fields.
13475         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
13476         Declare.
13477         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
13478         (tree-cfgcleanup.o): Add SCEV_H dependency.
13479         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
13480         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
13481
13482 2006-02-14  Richard Guenther  <rguenther@suse.de>
13483
13484         PR tree-optimization/26258
13485         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
13486         in PHI argument processing.
13487
13488 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
13489
13490         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
13491         new expression in the requested machine mode.
13492
13493 2006-02-13  Roger Sayle  <roger@eyesopen.com>
13494
13495         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
13496         directly, instead let do_compare_rtx_and_jump handle this for us.
13497         * expr.c (expand_expr_real_1): Likewise.
13498         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
13499         before do_jump_by_parts_greater.
13500         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
13501         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
13502
13503 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13504
13505         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
13506
13507 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
13508
13509         PR rtl-optimization/26235
13510         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
13511         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
13512         format.
13513
13514 2006-02-13  Jeff Law  <law@redhat.com>
13515
13516         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
13517         TRUTH_XOR_EPR.
13518
13519 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
13520
13521         PR middle-end/26092
13522         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
13523         twice if decl is a builtin.  When trying again, call get_callee_fndecl
13524         first to verify it is still a builtin.
13525
13526 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
13527
13528         * dwarf2out.c (base_type_die): Don't add AT_name here.
13529         (subrange_type_die): Don't add AT_name here.
13530         (modified_type_die): Rearrange code flow.  Do add AT_name here.
13531
13532 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
13533
13534         PR rtl-optimization/26247
13535         PR rtl-optimization/26248
13536         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
13537
13538 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
13539
13540         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
13541         * config/fixtfdi.c: Likewise.
13542         * config/fixunstfdi.c: Likewise.
13543         * config/floatditf.c: Likewise.
13544
13545 2006-02-13  Roger Sayle  <roger@eyesopen.com>
13546
13547         PR middle-end/24427
13548         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
13549         into (X,C2) if C1 is a subset of the bits of C2.  Transform
13550         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
13551         (X&(C1&~C2))|C2.
13552         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
13553
13554 2006-02-13  Josh Conner  <jconner@apple.com>
13555
13556         PR target/25376
13557         * varasm.c (function_section): Check for section name before
13558         calling select_section on targets that define
13559         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
13560         unlikely_text_section instead of hot_function_section if
13561         first_function_block_is_cold.
13562
13563 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
13564
13565         PR middle-end/25335
13566         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
13567
13568 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
13569
13570         PR rtl-optimization/26222
13571         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
13572         after tree->rtl expansion.
13573         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
13574         before passing it to emit_move_insn.
13575
13576 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13577
13578         * doc/invoke.texi (-Write-strings): Document that it is enabled by
13579         default.
13580         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
13581         Clarify documentation.
13582         * c-common.h (warn_write_strings): Remove.
13583         * c-common.c (warn_write_strings): Likewise.
13584         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
13585         default for C++.
13586
13587 2006-02-12  Roger Sayle  <roger@eyesopen.com>
13588
13589         PR middle-end/25724
13590         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
13591         (do_jump_parts_zero_rtx): New function renamed from
13592         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
13593         (do_jump_parts_equality_rtx): New function split out from
13594         do_jump_parts_equality.  Old implementation renamed as above.
13595         Call do_jump_parts_zero_rtx if either operand is zero.
13596         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
13597         do all of the heavy lifting.
13598         (do_compare_rtx_and_jump): Handle multi-word comparisons by
13599         calling either do_jump_by_parts_greater_rtx or
13600         do_jump_by_parts_equality_rtx.
13601         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
13602         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
13603         moved to do_compare_rtx_and_jump, call it directly.
13604         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
13605         mode argument.  Call do_compare_rtx_and_jump.
13606         (emit_case_nodes): Update calls to do_jump_if_equal.
13607
13608 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
13609
13610         PR rtl-optimization/26225
13611         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
13612
13613 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
13614
13615         PR rtl-optimization/26232
13616         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
13617
13618 2006-02-11  Jason Merrill  <jason@redhat.com>
13619
13620         PR tree-opt/24365
13621         * tree-inline.c (declare_return_variable): Just don't use the
13622         modify target if it's a gimple complex reg and the return slot
13623         isn't.
13624
13625 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13626
13627         * doc/contrib.texi: Update my entry.
13628
13629 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
13630
13631         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
13632
13633 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
13634
13635         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
13636         expensive.
13637
13638 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
13639
13640         * doc/invoke.texi (-floop-optimize2): Removed.
13641         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
13642         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
13643         Test flag_branch_on_count_reg only if HAVE_doloop_end.
13644         * common.opt (floop-optimize2): Removed.
13645         (fmove-loop-invariants): Enabled by default.
13646
13647 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
13648
13649         * tree-if-conv.c (combine_blocks): Free the result of
13650         get_loop_exit_edges.
13651
13652 2006-02-10  Jeff Law  <law@redhat.com>
13653
13654         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
13655
13656         PR tree-optimization/26213
13657         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
13658         loop trying to follow SSA_NAME_VALUE chains.
13659
13660 2006-02-10  Richard Guenther  <rguenther@suse.de>
13661
13662         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
13663         deal with structures that end in implicitly variable sized arrays.
13664
13665 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
13666
13667         PR rtl-optimization/24762
13668         * df-scan.c (df_bb_refs_record): Record correct registers defined on
13669         eh edges.
13670
13671 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
13672
13673         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
13674         (struct ivopts_data): Add regs_used field.
13675         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
13676         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
13677         instead of loop_data->regs_used;
13678         (free_loop_data): Do not free aux fields for loops.
13679         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
13680         and tree_ssa_iv_optimize_finalize.
13681
13682 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
13683
13684         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
13685
13686 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
13687
13688         PR target/26141
13689         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
13690         computing the effective result type.
13691
13692 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
13693
13694         PR inline-asm/16194
13695         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
13696         (tree_overlaps_hard_reg_set): Declare.
13697         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
13698         type and signature to match function type expected by walk_tree.
13699         (tree_overlaps_hard_reg_set): New function.
13700         (decl_conflicts_with_clobbers_p): Rename to:
13701         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
13702         Use tree_overlaps_hard_reg_set.  Changed caller.
13703         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
13704         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
13705         * cris.c (cris_md_asm_clobbers): Likewise.
13706
13707 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
13708
13709         * reload1.c (emit_input_reload_insns): Delete code that tries to
13710         inherit using find_equiv_reg.
13711
13712 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13713
13714         * c-common.h (flag_const_strings): Don't declare.
13715         * c-common.c (flag_const_strings): Remove.
13716         * c.opt (fconst_strings): Remove.
13717         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
13718         <OPT_Wwrite_strings>: Don't set flag_const_strings.
13719         (c_common_init_options): Don't set flag_const_strings.
13720         * doc/invoke.texi (-fno-const-strings): Remove documentation.
13721
13722 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
13723
13724         * arm.md (tlobits_cbranch): New pattern.
13725         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
13726         testing a single bit.
13727
13728 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
13729
13730         PR tree-opt/26179
13731         * tree-ssa-pre.c (create_component_ref_by_pieces):
13732         Handle RETURN_DECL like VAR_DECL.
13733
13734 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
13735
13736         PR middle-end/26134
13737         * fold-const.c (fold_indirect_ref_1): Fold
13738         "*(foo *)&complexfoo" to "__real__ complexfoo"
13739         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
13740
13741 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
13742
13743         * tree-flow-inline.h (var_can_have_subvars):
13744         Volatile variables should not have subvariables.
13745
13746 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
13747
13748         PR 26180
13749         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
13750         multiplying unsigned values.
13751         Tidy comments.
13752
13753 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13754
13755         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
13756
13757 2006-02-08  Jason Merrill  <jason@redhat.com>
13758
13759         PR c++/25979
13760         * tree.def: Elaborate on difference from MODIFY_EXPR.
13761         * doc/c-tree.texi (INIT_EXPR): Likewise.
13762         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
13763         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
13764         (gimplify_target_expr): Likewise.
13765         (gimplify_cond_expr): Remove target handling.
13766         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
13767         (gimplify_expr): Clobber it here.
13768         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
13769         Do return slot optimization if we have an INIT_EXPR.
13770
13771         PR tree-opt/24365
13772         * tree-inline.c (declare_return_variable): Also clear
13773         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
13774
13775         PR c++/16405
13776         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
13777
13778         PR middle-end/22439
13779         * gimplify.c (gimplify_one_sizepos): Fix typo.
13780
13781 2006-02-08  Jeff Law  <law@redhat.com>
13782
13783         PR tree-optimization/21417
13784         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
13785         across a backedge if the control statement at the end of the
13786         block is data dependent on other statements in the same block.
13787         (record_temporary_equivalences_from_stmts): Remove over-conservative
13788         test for threading across backedges.
13789
13790         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
13791         control statement, handle all three special cases in the same
13792         manner as they all have the same desired solution.  No longer
13793         special case edge flag updating when the post dominator is
13794         the exit block.
13795
13796 2006-02-08  Roger Sayle  <roger@eyesopen.com>
13797
13798         * tree.def (CHAR_TYPE): Remove.
13799         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
13800         * dwarf2out.c (base_type_die, is_base_type): Likewise.
13801         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
13802         (gen_string_type_die): Delete unreachable function.
13803
13804         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
13805         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
13806         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
13807         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
13808         * builtins.c (type_to_class): Likewise.
13809         * fold-const.c (fold_convert, build_range_check,
13810         merge_ranges): Likewise.
13811         * expr.c (count_type_elements): Likewise.
13812         * c-pretty-print.c (pp_c_type_specifier): Likewise.
13813         * stor-layout.c (layout_type): Likewise.
13814         * ipa-type-escape.c (type_to_consider): Likewise.
13815         * gimplify.c (omp_firstprivatize_type_sizes,
13816         gimplify_type_sizes): Likewise.
13817         * explow.c (promote_mode): Likewise.
13818         * tree-sra.c (is_sra_scalar_type): Likewise.
13819         * varasm.c (output_constant): Likewise.
13820         * tree-inline.c (remap_type_1): Likewise.
13821         * convert.c (convert_to_pointer, convert_to_real,
13822         convert_to_integer, convert_to_complex): Likewise.
13823
13824 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
13825
13826         * df-scan.c (df_def_record_1): A set destination may
13827         be a parallel regardless of mode.
13828
13829 2006-02-08  Roger Sayle  <roger@eyesopen.com>
13830
13831         PR target/22209
13832         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
13833         * config/mips/_tilib.c: Remove.
13834         * config/fixtfdi.c: New libgcc source file.
13835         * config/fixunstfdi.c: New source file.
13836         * config/floatditf.c: New source file.
13837         * config/floatunditf.c: New souce file.
13838         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
13839         files above instead of config/mips/_tilib.c.
13840         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
13841
13842 2006-02-08  Jeff Law  <law@redhat.com>
13843
13844         PR tree-optimization/26169
13845         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
13846         threading jumps.
13847
13848 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
13849
13850         * df.h (DF_REG_SIZE): Return the length of the initialized
13851         part of the array.
13852
13853 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
13854
13855         * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
13856         __muldf3): Return a correctly signed zero.
13857
13858 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
13859
13860         * passes.c (register_one_dump_file): Accept the current properties
13861         instead of pass number.  Adjust call to dump_register.  Remove
13862         duplicated code.
13863         (register_dump_files): Now a wrapper around...
13864         (register_dump_files_1): ... this one.  Do not modify the pass
13865         structure.
13866         (next_pass_1): Cosmetic fix.
13867         (execute_todo): Keep second parameter only.  Use curr_properties
13868         instead of fetching it from the pass structure.  Check and set
13869         last_verified.
13870         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
13871         instead of fetching it from the pass structure.  Fix calls to
13872         execute_todo.  Update curr_properties and initialize .vcg RTL dump
13873         after running the pass.  Reset last_verified.
13874         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
13875         at the beginning.
13876         (FIRST_AUTO_NUMBERED_DUMP): New.
13877         (dump_register): Remove "num" parameter, assign it within the
13878         function.
13879         (get_dump_file_name): Modify template for dumps.
13880         * tree-dump.h (dump_register): Adjust prototype.
13881         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
13882         (PROP_trees): Add PROP_gimple_lomp.
13883         (TODO_set_props): New.
13884         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
13885         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
13886         * cfgexpand.c (pass_expand): Destroy PROP_trees.
13887
13888 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
13889
13890         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
13891         (sparc64-*-linux*): Likewise.
13892         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
13893         * config/sparc/t-linux: New file.
13894         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
13895         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
13896         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
13897         -m32 -mlong-double-128.
13898
13899         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
13900         * config/alpha/t-linux: New file.
13901         * config/alpha/libgcc-alpha-ldbl.ver: New file.
13902
13903         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
13904         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
13905         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
13906         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
13907         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
13908         (CPP_ARCH32_SPEC): Remove.
13909
13910 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
13911
13912         PR tree-optimization/26145
13913         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
13914         bbs pointer.
13915
13916 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13917
13918         PR target/26109
13919         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
13920         >= 240000 when generating code for SOM runtime.
13921         (output_indirect_call): Don't use "b,l" instruction for indirect calls
13922         to $$dyncall when generating code for SOM runtime..
13923
13924 2006-02-07  Dirk Mueller  <dmueller@suse.com>
13925
13926         PR c++/18150
13927         * doc/invoke.texi (-Wsequence-point): Update documentation
13928         that -Wsequence-point is implemented for C++ as well.
13929
13930 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
13931
13932         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
13933         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
13934         (LIB_SPEC): Likewise.
13935         * doc/invoke.texi (SPARC options): Document -pthread.
13936
13937 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
13938
13939         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
13940         PIC addresses.
13941
13942 2006-02-07  Roger Sayle  <roger@eyesopen.com>
13943
13944         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
13945         Correct comment describing BOOLEAN_TYPE.
13946
13947 2006-02-07  Dirk Mueller  <dmueller@suse.com>
13948
13949         * c.opt: C++ frontend supports -Wdiv-by-zero.
13950         * c-opts.c (c_common_handle_option): Remove dead case.
13951
13952 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
13953
13954         * configure.ac (TLS assembler check): Do not enable TLS by
13955         default on SPARC/Solaris before version 10.
13956         * configure: Regenerate.
13957
13958 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
13959
13960         * doc/invoke.texi (xl-compat): Document conversion and support
13961         routine names.
13962
13963 2006-02-07  Jeff Law  <law@redhat.com>
13964
13965         * tree-vrp.c (find_conditional_asserts): Update comments.
13966         (simplify_stmt_for_jump_threading): New.
13967         (identify_jump_threads, finalize_jump_threads): New.
13968         (vrp_finalize): Call identify_jump_threads.
13969         (execute_vrp): Call finalize_jump_threads.
13970         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
13971         (vrp_element, vrp_data, vrp_element_p): Remove.
13972         (vrp_hash_elt, vrp_variables_stack): Remove.
13973         (vrp_hash, vrp_eq, record_range): Remove.
13974         (simplify_cond_and_lookup_avail_expr): Remove.
13975         (extract_range_from_cond): Remove.
13976         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
13977         (simplify_stmt_for_jump_threading): New.
13978         (dom_thread_across_edge): New wrapper.
13979         (tree_ssa_dominator_optimize): No longer initialize or
13980         finalize any of the VRP datastructures.  Remove iteration
13981         step and simplify as a result of removal of iteration step.
13982         (pass_dominator): Perform a cfg cleanup after DOM.
13983         (dom_opt_finalize_block): Use the new common routines
13984         for threading jumps.  Simplify stack management slightly.
13985         No longer need to unwind VRP state.
13986         (record_equivalences_from_incoming_edge): No longer record
13987         VRP information.
13988         (eliminate_redundant_computations): No longer call
13989         simplify_cond_and_lookup_avail_expr.
13990         * tree-flow.h (potentially_threadable_block): Prototype.
13991         (thread_across_edge): Likewise.
13992         * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
13993         (tree-ssa-threadedge.o): Add dependencies.
13994         * tree-ssa-threadedge.c: New file.
13995         * passes.c (init_optimization_passes): Merge PHIs before
13996         calling VRP.  Run VRP again late in the SSA optimization pipeline.
13997
13998 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
13999
14000         * df-core.c (df_set_blocks): Do not dereference function pointers.
14001         (df_finish1): Likewise.
14002         (df_hybrid_search_forward): Likewise.
14003         (df_hybrid_search_backward): Likewise.
14004         (df_iterative_dataflow): Likewise.
14005         (df_analyze_problem): Likewise.
14006         (df_compact_blocks): Likewise.
14007         (df_dump): Likewise.
14008         * df-scan.c (df_rescan_blocks): Likewise.
14009         (df_record_entry_block_defs): Likewise.
14010
14011         * genconditions.c (write_conditions): Guard the definition of
14012         'insn_conditions' with the check on GCC version.
14013         (write_writer): Guard the traversal 'insn_conditions' with
14014         the check on GCC version.
14015
14016 2006-02-07  Richard Guenther  <rguenther@suse.de>
14017
14018         PR c++/26140
14019         Revert
14020         2006-01-30  Richard Guenther  <rguenther@suse.de>
14021         PR c++/23372
14022         * gimplify.c (gimplify_target_expr): Handle easy cases
14023         without creating a temporary.
14024
14025 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
14026
14027         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
14028         use of float in probability computations.  Use edge probabilities
14029         in place of statically computed probabilities.
14030         (min_spec_prob): New static variable.
14031         (schedule_insns): Initialize it.
14032         (GET_SRC_PROB): Removed.
14033         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
14034
14035 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
14036
14037         PR debug/24444
14038         * config/ia64/unwind-ia64.c: Revert last change.
14039         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
14040         (INCOMING_FRAME_SP_OFFSET): Define.
14041
14042 2006-02-06  Roger Sayle  <roger@eyesopen.com>
14043
14044         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
14045
14046 2006-02-07  Ben Elliston  <bje@au.ibm.com>
14047
14048         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
14049         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
14050         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
14051         (ix86_return_in_memory): Handle TDmode.
14052         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
14053         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
14054
14055 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
14056
14057         * reorg.c (dbr_schedule): Use dump_file instead of file.
14058
14059 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
14060
14061         PR target/25917
14062         * config/ia64/predicates.md (extr_len_operand): New predicate.
14063         * config/ia64/ia64.md (extv): Tighten constraints.
14064         (extzv): Ditto.
14065         (*tbit_and_2): Ditto.
14066         (*tbit_and_3): Ditto.
14067         (*tbit_or_2): Ditto.
14068         (*tbit_or_3): Ditto.
14069         (*bit_zero): Ditto.
14070         (*bit_one): Ditto.
14071
14072 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
14073
14074         PR target/23359
14075         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
14076
14077 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
14078
14079         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
14080         loop_optimizer_init and loop_optimizer_finalize
14081         * tree-ssa-sink.c (execute_sink_code): Ditto.
14082         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
14083         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
14084         tree_ssa_loop_done): Ditto.
14085         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
14086         * sched-ebb.c: Include output.h.
14087         (schedule_ebbs): Do not use dump argument.
14088         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
14089         * loop.c (loop_dump_stream): Removed.
14090         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
14091         argument.
14092         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
14093         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
14094         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
14095         loop_iterations, strength_reduce, record_biv, record_giv,
14096         final_giv_value, check_final_value, check_ext_dependent_givs,
14097         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
14098         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
14099         dump_file instead of loop_dump_stream.
14100         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
14101         argument dump_file.
14102         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
14103         dump argument.
14104         * flow.c (life_analysis, rest_of_handle_life): Ditto.
14105         * haifa-sched.c: Include output.h
14106         (schedule_insns, sched_init): Do not use dump argument.
14107         * mode-switching.c (optimize_mode_switching): Ditto.
14108         * modulo-sched.c (stats_file): Removed.
14109         (print_node_sched_params): Do not call argument dump_file.
14110         (sms_schedule_by_order, loop_canon_p, sms_schedule,
14111         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
14112         of stats_file.
14113         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
14114         use dump argument.
14115         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
14116         rtl_loop_init, rtl_loop_done): Ditto.
14117         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
14118         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
14119         Ditto.
14120         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
14121         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
14122         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
14123         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
14124         * emit-rtl.c (renumber_insns): Ditto.
14125         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
14126         expand_gimple_basic_block, tree_expand_cfg): Ditto.
14127         * regclass.c (regclass): Ditto.
14128         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
14129         remove_ssa_form, rewrite_out_of_ssa): Ditto.
14130         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
14131         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
14132         Ditto.
14133         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
14134         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
14135         to regclass.
14136         * gcse.c (gcse_file, debug_stderr): Removed.
14137         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
14138         rest_of_handle_gcse): Do not use dump argument.
14139         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
14140         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
14141         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
14142         compute_code_hoist_vbeinout, compute_code_hoist_data,
14143         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
14144         compute_store_table, build_store_vectors, insert_insn_start_bb,
14145         insert_store, remove_reachable_equiv_notes, replace_store_insn,
14146         store_motion): Use dump_file instead of gcse_file.
14147         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
14148         * profile.c (profile_dump_file): Removed.
14149         (branch_prob): Use dump_file instead of profile_dump_file.
14150         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
14151         dump_file.
14152         * tree-ssa-copy.c (dump_copy_of): Ditto.
14153         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
14154         dump file to life_analysis.
14155         * bt-load.c (branch_target_load_optimize): Ditto.
14156         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
14157         renumber_insns.
14158         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
14159         regclass, dbr_schedule): Declaration changed.
14160         * sched-int.h (sched_init): Declaration changed.
14161         * tree-profile.c (tree_profile_dump_file): Removed.
14162         (tree_profile_hooks): Removed profile_dump_file hook.
14163         * rtl-profile (rtl_profile_dump_file): Removed.
14164         (rtl_profile_hooks): emoved profile_dump_file hook.
14165         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
14166         changed.
14167         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
14168         * tree-cfg.c (build_tree_cfg): Ditto.
14169         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
14170         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
14171         Declaration changed.
14172         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
14173         life_analysis and schedule_insns.
14174         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
14175         life_analysis.
14176         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
14177         dbr_schedule.
14178         * config/mips/mips.c (mips_reorg): Ditto.
14179         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
14180         schedule_ebbs.
14181
14182 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
14183
14184         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
14185         (s390_mangle_fundamental_type): New.
14186         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
14187         Define.
14188
14189         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
14190         (alpha_mangle_fundamental_type): New.
14191         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
14192         Define.
14193
14194         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
14195         Define.
14196         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
14197         Define.
14198         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
14199         (sparc_mangle_fundamental_type): New.
14200
14201 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
14202
14203         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
14204         (s390x-*-linux*): Likewise.
14205         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
14206         * config/s390/t-linux: New file.
14207
14208 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
14209
14210         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
14211         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
14212
14213 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
14214
14215         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
14216         (ANTIC_SAFE_LOADS): New macro.
14217         (find_or_generate_expression): Add prototype.
14218         (set_contains_value): Allow null set for sake of not always having
14219         to allocate ANTIC_SAFE_LOADS.
14220         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
14221         Allow COMPONENT_REF too.
14222         (valid_in_set): Allow COMPONENT_REF.
14223         Check ANTIC_SAFE_LOADS too.
14224         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
14225         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
14226         rename.
14227         (can_PRE_operation): Add COMPONENT_REF.
14228         (create_component_ref_by_pieces): New function.
14229         (create_expression_by_pieces): Use create_component_ref_by_pieces.
14230         (insert_aux): Move AGGREGATE_TYPE_P check here.
14231         (compute_avail): Set bb local stmt uids.
14232         (pass_pre): Use TODO_update_ssa_only_virtuals.
14233
14234 2006-02-06  Ben Elliston  <bje@au.ibm.com>
14235
14236         * configure.ac: Unconditionally disable decimal float by default.
14237         * configure: Regenerate.
14238
14239 2006-02-06  Ben Elliston  <bje@au.ibm.com>
14240
14241         * read-rtl.c (read_name): Terminate reading on EOF.
14242
14243 2006-02-06  Ben Elliston  <bje@au.ibm.com>
14244
14245         * dfp.c (decimal_real_arithmetic): Change second argument type
14246         from int to enum tree_code. Do not always return true, but now
14247         return result of any call to decimal_do helper functions.
14248         * dfp.h (decimal_real_arithmetic): Update prototype.
14249
14250 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
14251
14252         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
14253
14254 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
14255
14256         PR tree-opt/25251
14257         * tree-cfg.c (cleanup_dead_labels): Also don't remove
14258         forced labels.
14259
14260 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
14261
14262         * tree-vrp.c (cfg_loops): Removed.
14263         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
14264         Use current_loops instead of cfg_loops.  Pass flags to
14265         loop_optimizer_init.
14266         * cfgloopmanip.c (fix_loop_structure): Update only available
14267         information.
14268         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
14269         loop_optimizer_init.
14270         * modulo-sched.c (build_loops_structure): Removed.
14271         (sms_schedule): Use loop_optimizer_init.
14272         * loop-init.c (loop_optimizer_init): Use flags to determine
14273         which properties of loops to prepare.
14274         (rtl_loop_init): Pass flags to loop_optimizer_init.
14275         * tree-ssa-sink.c (execute_sink_code): Ditto.
14276         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
14277         * tree-ssa-pre.c (init_pre): Ditto.
14278         * cfgloop.h (LOOPS_NORMAL): New.
14279         (loop_optimizer_init): Declaration changed.
14280
14281 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14282
14283         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
14284         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
14285         pa/t-pa.
14286         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
14287         pa/t-pa.
14288         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
14289         pa/x-ada.
14290         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
14291         * pa/t-pa64: Delete quadlib.c rule.
14292         * pa/x-ada: Revert last change.
14293         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
14294
14295 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
14296
14297         PR rtl-optimization/26087
14298         * rtlanal.c (canonicalize_condition): Do not cross basic block
14299         boundaries.
14300
14301 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
14302
14303         PR debug/24444
14304         * config/ia64/ia64.c: Include debug.h.
14305         (MAX_ARTIFICIAL_LABEL_BYTES): New.
14306         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
14307         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
14308         (process_epilogue, process_set, process_for_unwind_directive):
14309         Output unwind info only if requested.  Add CFA info if requested.
14310         Add new arguments as needed.  Adjust callers.
14311         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
14312         incorrect default.
14313         (DWARF2_FRAME_INFO): Define to zero.
14314         * config/ia64/unwind-ia64.c: Remove code that compensated for
14315         the CFA offset error fixed above.
14316         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
14317         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
14318         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
14319         -funwind-tables and -fexceptions to enable frame info.
14320         (dwarf2out_frame_init): Define initial CFA even if
14321         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
14322         DWARF2_UNWIND_INFO is nonzero, not just defined.
14323         (dwarf2out_frame_finish): Output non-EH call frame info only
14324         if DWARF2_FRAME_INFO is nonzero.
14325         (convert_cfa_to_loc_list,
14326         compute_frame_pointer_to_cfa_displacement): Define even if
14327         unwind info is not supported.
14328         (gen_subprogram_die): Use the above unconditionally.  Remove
14329         legacy alternate code.
14330         * toplev.c (compile_file): Compile in call to
14331         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
14332         (lang_dependent_init): Ditto for dwarf2out_frame_init.
14333
14334 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
14335             Jakub Jelinek  <jakub@redhat.com>
14336
14337         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
14338         IBM extended float format long double as "g" on powerpc*-linux.
14339
14340 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14341
14342         PR target/25926
14343         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
14344         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
14345
14346 2006-02-03  Jason Merrill  <jason@redhat.com>
14347
14348         PR c++/25979
14349         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
14350
14351         PR middle-end/25977
14352         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
14353         on the return slot if it's an NRV.
14354
14355 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
14356
14357         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
14358         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
14359         rewrite_use): Do not handle USE_OUTER.
14360         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
14361         add_iv_outer_candidates, may_replace_final_value,
14362         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
14363         (find_interesting_uses_op): Functionality of
14364         find_interesting_uses_outer_or_nonlin moved here.
14365         (find_interesting_uses_outside): Use find_interesting_uses_op.
14366
14367 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
14368
14369         PR target/25960
14370         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
14371
14372 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
14373             Ulrich Weigand  <uweigand@de.ibm.com>
14374
14375         PR target/25864
14376         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
14377         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
14378         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
14379         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
14380         and dxr fields.
14381         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
14382         (s390_rtx_costs): Use the new fields to calculate rtx costs.
14383         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
14384         Define secondary reloads for TFmode moves.
14385         (constant_modes): Add TFmode.
14386         (NR_C_MODES): Set to 8.
14387         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
14388         builtin define.
14389         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
14390         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
14391         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
14392         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
14393         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
14394         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
14395         (FPR mode macro): Add TFmode.
14396         (DSF mode macro): New.
14397         (<de>, <dee> mode attributes): Removed.
14398         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
14399         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
14400         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
14401         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
14402         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
14403         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
14404         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
14405         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
14406         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
14407         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
14408         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
14409         "*negabs<mode>2", "sqrt<mode>2"):
14410         Changed <de> to <xde>. R constraint replaced by <Rf>.
14411         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
14412         <Rf>.
14413         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
14414         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
14415         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
14416         splitters.
14417         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
14418         "extenddftf2", "extendsftf2"): New expanders.
14419         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
14420         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
14421         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
14422         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
14423         New options.
14424         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
14425         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
14426         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
14427         __floatditf): Add a GCC_4.1.0 symbol version tag.
14428         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
14429         the new options.
14430
14431 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
14432
14433         PR target/25377
14434         * config/i386/i386.c (ix86_function_ok_for_sibcall):
14435         Use targetm.binds_local_p instead of TREE_PUBLIC.
14436
14437 2006-02-02  Roger Sayle  <roger@eyesopen.com>
14438
14439         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
14440         on INTEGER_TYPEs to indicate that it denotes a character type.
14441         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
14442         signed_char_type_node, unsigned_char_type_node and char_type_node.
14443         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
14444         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
14445         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
14446
14447 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
14448             Daniel Berlin  <dberlin@dberlin.org>
14449
14450         * tree-tailcall.c (arg_needs_copy_p): New function.
14451         (eliminate_tail_call): Use arg_needs_copy_p.
14452         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
14453         (add_virtual_phis): New function.
14454
14455 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
14456
14457         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
14458         #ignore instead of #scratch for %g7 .register directive.
14459
14460 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
14461
14462         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
14463         object files.
14464
14465 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
14466
14467         * flow.c (calculate_global_regs_live): Assert that there aren't any
14468         EDGE_FAKE edges.
14469
14470 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
14471
14472         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
14473         what its name says.
14474         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
14475         bsi_after_labels iterator.
14476         * tree-if-conv.c (find_phi_replacement_condition,
14477         replace_phi_with_cond_modify_expr): Likewise.
14478         * tree-scalar-evolution.c (scev_const_prop): Likewise.
14479         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
14480
14481 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
14482
14483         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
14484
14485 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
14486
14487         PR 25990
14488         * tree-cfg.c (move_block_to_fn): Clear out the basic block
14489         array after growing it.
14490
14491 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
14492
14493         PR middle-end/24901
14494         * fold-const.c (fold_checksum_tree): Change type of buf.
14495
14496 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
14497
14498         * reload.c (push_secondary_reload): Initialize t_icode.
14499
14500 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
14501
14502         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
14503         -msoft-float -mlong-double-128 only issue a warning, but don't
14504         swich to DFmode long double.
14505
14506 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
14507
14508         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
14509         has a constant equivalent, iterate over equivalents for arg0,
14510         calling simplify_relational_operation and if there's a result
14511         cheaper than X, apply fold_rtx and return the result.
14512
14513 2006-02-01  Jan Hubicka  <jh@suse.cz>
14514
14515         * opts.c (no_unit_at_a_time_default): New global variable.
14516         (decode_options): Use it.
14517         * opts.h (no_unit_at_a_time_default): Declare.
14518
14519 2006-02-01  Paul Brook  <paul@codesourcery.com>
14520
14521         * function.c (assign_parm_setup_reg): Use function argument promotion
14522         rules.
14523         * expr.c (expand_expr_real_1): Use function argument promotion rules
14524         for PARM_DECLs.
14525
14526 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
14527
14528         * gcc.c (process_command): Change j to 'unsigned int'.
14529
14530 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
14531
14532         PR middle-end/26001
14533         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
14534         Use the corrected index for the character
14535         out of the string constant.
14536
14537 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
14538
14539         * mode-switching.c (optimize_mode_switching): Fix size
14540         allocated for bb_info[n_entities].
14541
14542 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
14543
14544         * gcc.c (main): Correct type that is allocated for
14545         explicit_link_files.
14546
14547 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
14548
14549         * config/s390/s390.c (init_alignment_context): Set
14550         ALIAS_SET_MEMORY_BARRIER on the MEM.
14551         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
14552
14553 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
14554
14555         PR middle-end/25933
14556         * loop-unroll.c (unroll_loop_runtime_iterations): Free
14557         dom_bbs pointer.
14558         * tree-ssa-live.c (type_var_init): Allocate bitmap after
14559         call to tpa_init.
14560
14561 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
14562
14563         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
14564         * regrename.c: Ditto.
14565         * tree-ssa-loop-im.c: Ditto.
14566         * tree-dump.c: Ditto.
14567         * tree-complex.c: Ditto.
14568         * genrecog.c: Ditto.
14569         * tree-ssa-threadupdate.c: Ditto.
14570         * tracer.c: Ditto.
14571         * java/class.c: Ditto.
14572         * java/jcf-parse.c: Ditto.
14573         * java/resource.c: Ditto.
14574         * java/except.c: Ditto.
14575         * java/jvspec.c: Ditto.
14576         * java/jcf-write.c: Ditto.
14577         * java/jcf-path.c: Ditto.
14578         * java/gjavah.c: Ditto.
14579         * java/zextract.c: Ditto.
14580         * java/jcf-io.c: Ditto.
14581         * java/jcf.h: Ditto.
14582         * java/buffer.c: Ditto.
14583         * java/lang.c: Ditto.
14584         * java/parse-scan.y: Ditto.
14585         * java/lex.c: Ditto.
14586         * java/lex.h: Ditto.
14587         * cfgloopmanip.c: Ditto.
14588         * postreload-gcse.c: Ditto.
14589         * tree-ssa-loop-manip.c: Ditto.
14590         * postreload.c: Ditto.
14591         * tree-ssa-loop-ch.c: Ditto.
14592         * loop.c: Ditto.
14593         * ipa-cp.c: Ditto.
14594         * cppspec.c: Ditto.
14595         * diagnostic.c: Ditto.
14596         * final.c: Ditto.
14597         * genoutput.c: Ditto.
14598         * gcc.c: Ditto.
14599         * cfghooks.c: Ditto.
14600         * cfgloopanal.c: Ditto.
14601         * objc/objc-act.c: Ditto.
14602         * gcov.c: Ditto.
14603         * genextract.c: Ditto.
14604         * genautomata.c: Ditto.
14605         * pretty-print.c: Ditto.
14606         * genemit.c: Ditto.
14607         * cgraphunit.c: Ditto.
14608         * flow.c: Ditto.
14609         * df-scan.c: Ditto.
14610         * haifa-sched.c: Ditto.
14611         * dominance.c: Ditto.
14612         * dbxout.c: Ditto.
14613         * tree-ssa-loop-ivopts.c: Ditto.
14614         * df-core.c: Ditto.
14615         * mode-switching.c: Ditto.
14616         * modulo-sched.c: Ditto.
14617         * graph.c: Ditto.
14618         * ipa-pure-const.c: Ditto.
14619         * cse.c: Ditto.
14620         * fix-header.c: Ditto.
14621         * web.c: Ditto.
14622         * tree-stdarg.c: Ditto.
14623         * ipa-utils.c: Ditto.
14624         * loop-init.c: Ditto.
14625         * ipa-inline.c: Ditto.
14626         * cfganal.c: Ditto.
14627         * global.c: Ditto.
14628         * alloc-pool.c: Ditto.
14629         * dwarf2out.c: Ditto.
14630         * opts.c: Ditto.
14631         * genattrtab.c: Ditto.
14632         * tree-ssa-loop-ivcanon.c: Ditto.
14633         * predict.c: Ditto.
14634         * timevar.c: Ditto.
14635         * lcm.c: Ditto.
14636         * fortran/gfortranspec.c: Ditto.
14637         * regmove.c: Ditto.
14638         * local-alloc.c: Ditto.
14639         * langhooks.c: Ditto.
14640         * function.c: Ditto.
14641         * tree-vectorizer.c: Ditto.
14642         * gcse.c: Ditto.
14643         * ipa-type-escape.c: Ditto.
14644         * alias.c: Ditto.
14645         * tree-if-conv.c: Ditto.
14646         * profile.c: Ditto.
14647         * ipa.c: Ditto.
14648         * tree-data-ref.c: Ditto.
14649         * loop-unroll.c: Ditto.
14650         * treelang/treetree.c: Ditto.
14651         * calls.c: Ditto.
14652         * bt-load.c: Ditto.
14653         * ggc-common.c: Ditto.
14654         * except.c: Ditto.
14655         * coverage.c: Ditto.
14656         * cselib.c: Ditto.
14657         * tree-cfgcleanup.c: Ditto.
14658         * tree-ssa-pre.c: Ditto.
14659         * cfgcleanup.c: Ditto.
14660         * loop-invariant.c: Ditto.
14661         * loop-iv.c: Ditto.
14662         * ipa-prop.c: Ditto.
14663         * print-tree.c: Ditto.
14664         * conflict.c: Ditto.
14665         * ggc-page.c: Ditto.
14666         * sched-deps.c: Ditto.
14667         * regclass.c: Ditto.
14668         * tree-object-size.c: Ditto.
14669         * combine.c: Ditto.
14670         * bb-reorder.c: Ditto.
14671         * resource.c: Ditto.
14672         * var-tracking.c: Ditto.
14673         * cfgloop.c: Ditto.
14674         * df-problems.c: Ditto.
14675         * reg-stack.c: Ditto.
14676         * tlink.c: Ditto.
14677         * gccspec.c: Ditto.
14678         * sched-rgn.c: Ditto.
14679         * tree-ssa-structalias.c: Ditto.
14680         * tree-ssa-reassoc.c: Ditto.
14681         * config/darwin-c.c: Ditto.
14682         * config/darwin.c: Ditto.
14683         * config/arm/arm.c: Ditto.
14684         * cfgrtl.c: Ditto.
14685         * collect2.c: Ditto.
14686         * reload1.c: Ditto.
14687
14688 2006-01-31  Nicolas Pitre  <nico@cam.org>
14689
14690         * arm.md (smaxsi3): Make aware of smax_m1.
14691         (smax_m1): New.
14692
14693 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
14694
14695         * config/m68k/lb1sf68.asm: Use moveq to load small constants.
14696
14697 2006-01-31  Richard Guenther  <rguenther@suse.de>
14698
14699         * doc/invoke.texi (-msselibm): Document.
14700         * target.h (expand_library_builtin): New target hook.
14701         * builtins.c (expand_builtin): Use expand_library_builtin.
14702         (default_expand_library_builtin): New function.
14703         * gcc.c (LINK_GCC_MATH_SPEC): Define.
14704         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
14705         (link_gcc_math_spec): Declare.
14706         (static_specs): Add link_gcc_math_spec.
14707         * expr.h (default_expand_library_builtin): Declare.
14708         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
14709         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
14710         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
14711         * config/i386/i386.opt (msselibm): New target option.
14712         * config/i386/i386.c (ix86_builtin_function_variants): New array.
14713         (ix86_init_sse_abi_builtins): New function.
14714         (ix86_expand_library_builtin): Likewise.
14715         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
14716         (override_options): Handle error conditions wrt -msselibm.
14717         (ix86_builtins): Add function codes for SSE2 ABI builtins.
14718         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
14719         * doc/extend.texi (__builtin_sse2_*): Document new target specific
14720         builtins.
14721
14722 2006-01-31  Richard Guenther  <rguenther@suse.de>
14723         Paolo Bonzini  <bonzini@gnu.org>
14724
14725         * doc/install.texi (--disable-libgcc-math): Document.
14726
14727 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
14728
14729         * expr.h (expand_normal): new inline function.
14730         * builtins.c: use it, use EXPAND_NORMAL explicitely.
14731         * dojump.c: use it.
14732         * dwarf2out.c: use it.
14733         * expr.c: use it.
14734         * calls.c: use it.
14735         * expmed.c: use it.
14736         * except.c: use it.
14737         * config/sparc/sparc.c: use it.
14738         * config/i386/i386.c: use it.
14739         * config/rs6000/rs6000.c: use it.
14740         * config/arm/arm.c: use it.
14741         * config/mips/mips.c: use it.
14742         * stmt.c: use it, use EXPAND_NORMAL explicitely.
14743
14744 2006-01-30  Roger Sayle  <roger@eyesopen.com>
14745
14746         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
14747         argv to the appropriate type.
14748
14749 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
14750
14751         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
14752         unreachable code.
14753
14754 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14755
14756         PR target/26018
14757         * config/s390/s390.c (struct machine_function): New flag
14758         decomposed_literal_pool_addresses_ok_p.
14759         (s390_reorg): Set it before final stage of literal pool transforms.
14760         (s390_decompose_address): Only accept displacements of the form
14761         (minus (label_ref ...) (label_ref ...)) if that flag is set.
14762
14763 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
14764
14765         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
14766         the comparison routine return.
14767
14768 2006-01-30  Michael Matz  <matz@suse.de>
14769
14770         * global.c (find_reg): Only evict for global regs.
14771         Take n_refs into account and dump more info.
14772
14773 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
14774
14775         PR target/14798:
14776         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
14777         (pragma_trap, pragma_nosave_low_regs): Likewise.
14778         (current_function_anonymous_args): Likewise.
14779         (sh_deferred_function_attributes): New variable.
14780         (sh_deferred_function_attributes_tail): Likewise.
14781         (print_operand): For '@', look up trap_exit attribute.
14782         (calc_live_regs): Look up trapa_handler attribute.  For trapa
14783         handlers, save/restore fpscr, but don't do any other
14784         interrupt-specific saves.
14785         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
14786         Fix check for partially saved registers to check for SHmedia.
14787         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
14788         (sh_output_function_epilogue): Don't clear any of the removed
14789         variables.
14790         (sh_insert_attributes): Don't check pragma_interrupt.
14791         Insert deferred attributes.  Check that interrupt attribute is
14792         present for other attributes that require its presence.
14793         (sh_attribute_table): Add new attributes trapa_handler and
14794         nosave_low_regs.
14795         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
14796         Don't check for pragma_interrupt.  Don't store argument.
14797         * sh.h (pragma_interrupt, sp_switch): Don't declare.
14798         (sh_deferred_function_attributes): Declare.
14799         (sh_deferred_function_attributes_tail): Likewise.
14800         * sh.md (sp_switch_1): Add operand.  Change generator caller.
14801         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
14802         (*return_i): Don't use when trap_exit attribute is in effect.
14803         (*return_trapa): New insn pattern.
14804         * sh-c.c: New file.
14805         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
14806         setting c_target_objs and cxx_target_objs.
14807         * t-sh: Add rule for sh-c.o.
14808
14809 2006-01-30  Richard Guenther  <rguenther@suse.de>
14810
14811         PR c++/23372
14812         * gimplify.c (gimplify_target_expr): Handle easy cases
14813         without creating a temporary.
14814
14815 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
14816
14817         * vec.h (safe_grow): Remove duplicated line.
14818
14819 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
14820
14821         PR 25874
14822         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
14823         (expand_omp): ... here.
14824         (expand_omp_parallel): Only remove barriers for combined
14825         parallel+workshare constructs.
14826
14827 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
14828
14829         Revert
14830
14831         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
14832         * tree.c (build_qualified_type): Chain the new type to the original
14833         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
14834         a POINTER_TYPE or a REFERENCE_TYPE respectively.
14835         (build_pointer_type_for_mode): Only return unqualified types.
14836         (build_reference_type_for_mode): Likewise.
14837
14838 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
14839
14840         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
14841         * Makefile.in (CXX_COMPAT_WARN): Define.
14842         * configure: Regenerate.
14843
14844 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
14845
14846         PR tree-opt/25911
14847         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
14848         to an if check.
14849
14850 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14851
14852         * toplev.c: Fix thinko.
14853
14854 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14855             Marcin Dalecki  <martin@dalecki.de>
14856
14857         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
14858         (push_srcloc): Use XNEW.
14859         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
14860
14861 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
14862
14863         * df-core.c (df_set_blocks): Deleted all variable.
14864
14865 2006-01-28  Ian Lance Taylor  <ian@airs.com>
14866
14867         * cgraphunit.c (cgraph_assemble_pending_functions): Call
14868         cgraph_output_pending_asms.
14869
14870 2006-01-28  Zack Weinberg  <zackw@panix.com>
14871
14872         * c.opt: Add -W(no-)overlength-strings.
14873         * doc/invoke.texi: Document it.
14874         * c-opts.c (c_common_handle_option): -pedantic implies
14875         -Woverlength-strings, if not explicitly disabled already.
14876         (c_common_post_options): -Woverlength-strings defaults to off, and
14877         is always off for C++.
14878         * c-common.c (fix_string_type): Issue warning about strings longer
14879         than is portable only if warn_overlength_strings.  Rearrange code
14880         a little for clarity.
14881         * configure.in: Check for -Wno-overlength-strings as well before
14882         enabling -pedantic in stage 1.
14883         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
14884         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
14885
14886         * genconditions.c (write_header, write_one_condition)
14887         (write_conditions, write_writer): Consolidate very long strings
14888         that were broken up to fit in C89 portable limit.  Don't use
14889         printf when fputs will do.
14890
14891 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
14892
14893         * combine.c (simplify_comparison <AND>): Check
14894         TRULY_NOOP_TRUNCATION before start using a subreg.
14895
14896         * config/mips/mips.md (*branch_zero<mode>,
14897         *branch_zero<mode>_inverted, *branch_equality<mode>,
14898         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
14899         Remove mode check from comparisons.
14900
14901 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
14902
14903         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
14904
14905 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
14906
14907         * expmed.c (const_mult_add_overflow_p): Remove.
14908         * expr.h: Remove the prototype for const_mult_add_overflow_p.
14909
14910         * recog.c (validate_replace_rtx_subexp): Remove.
14911         * recog.h: Remove the prototype for
14912         validate_replace_rtx_subexp.
14913
14914         * integrate.h: Remove the prototype for
14915         copy_decl_for_inlining.
14916         * rtl.h: Remove the prototype for mark_constant_function.
14917         * tree-vectorizer.h: Remove the prototype for
14918         vect_strip_conversion.
14919
14920         * modulo-sched.c (create_partial_schedule,
14921         free_partial_schedule, reset_partial_schedule): Make them
14922         static.
14923
14924         * hooks.c (hook_bool_rtx_int_false): Remove.
14925         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
14926
14927 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
14928
14929         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
14930         and -mlong-double-128 are incompatible.
14931         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
14932         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
14933         (TARGET_LIBGCC2_CFLAGS): Define.
14934         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
14935         (TARGET_LIBGCC2_CFLAGS): Same.
14936         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
14937
14938 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
14939
14940         PR c/19606.
14941         * c-typeck.c (build_binary_op): Perform implicit casts of
14942         operands before shortening them.
14943
14944         * cfgloopmanip.c (split_loop_bb): Remove.
14945         * cfgloop.h: Remove the prototype for split_loop_bb.
14946
14947         * cfgloop.c (flow_loop_outside_edge_p): Remove.
14948         * cfgloop.h: Remove the prototype for
14949         flow_loop_outside_edge_p.
14950
14951         * emit-rtl.c (init_virtual_regs): Make it static.
14952         * function.h: Remove the prototype for init_virtual_regs.
14953
14954         * recog.c (peephole2_optimize): Make it static.
14955         * recog.h: Remove the prototype for peephole2_optimize.
14956
14957 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
14958
14959         * df-scan.c (df_record_entry_block_defs): Check if
14960         INCOMING_RETURN_ADDR_RTX is defined.
14961
14962 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
14963             Kenneth Zadeck <zadeck@naturalbridge.com>
14964
14965         PR rtl-optimization/24762
14966         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
14967         * targhooks.c (hook_void_bitmap): New hook prototype.
14968         * targhoohs.h (hook_void_bitmap): Ditto.
14969         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
14970         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
14971         * target.h (live_on_entry): New function pointer.
14972         * df-scan.c (df_all_hard_regs): Removed.
14973         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
14974         (df_scan_free_internal): Added df->entry_block_defs.
14975         (df_scan_alloc): Ditto.
14976         (df_scan_dump): Ditto.
14977         (df_uses_record): Plumbed flag field properly thru calls.
14978         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
14979         This part fixes PR24762.
14980         (df_bb_refs_record): Added code to make the frame and arg
14981         pointers live in EH blocks.
14982         (df_refs_record): Added call to df_record_entry_block_defs.
14983         (df_record_entry_block_defs): New function.
14984         * df-core.c: Added comments to describe new artifical defs.
14985         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
14986         (entry_block_defs): New field in struct df.
14987         (df_all_hard_regs): Deleted.
14988         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
14989         * df-problems.c (df_ru_bb_local_compute_process_def):
14990         Added code to handle artifical defs in the entry to a function.
14991         (df_ru_bb_local_compute): Ditto.
14992         (df_rd_bb_local_compute_process_def): Ditto.
14993         (df_rd_bb_local_compute): Ditto.
14994         (df_lr_bb_local_compute): Ditto.
14995         (df_ur_bb_local_compute): Ditto.
14996         (df_urec_bb_local_compute): Ditto.
14997         (df_chain_create_bb): Ditto.
14998         (df_ur_local_finalize): Removed entry.
14999         (df_urec_init): Ditto.
15000         (df_urec_local_finalize): Ditto.
15001         (df_ri_bb_compute): Added detection of last use of pseudos.
15002         * Makefile.in (df-scan.o): Updated dependencies.
15003         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
15004         * config/mips/mips.c (mips_set_live_on_entry): Added.
15005         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
15006         for target hook.
15007         * dce.c (marked_insn_p): Added code to handle artifical defs.
15008
15009 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
15010
15011         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
15012         intrinsic.
15013         (_mm_cvtsi128_si64): Likewise.
15014         (_mm_cvtsd_si64): Likewise.
15015         (_mm_cvttsd_si64): Likewise.
15016         (_mm_cvtsi64_sd): Likewise.
15017         (_mm_cvtsi64_si128): Likewise.
15018         * config/i386/mmintrin.h (_m_from_int64): Likewise.
15019         (_mm_cvtsi64_m64): Likewise.
15020         (_m_to_int64): Likewise.
15021         (_mm_cvtm64_si64): Likewise.
15022         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
15023         (_mm_cvttss_si64): Likewise.
15024         (_mm_cvtsi64_ss): Likewise.
15025         (_mm_cvtss_f32): Likewise.
15026
15027 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
15028
15029         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
15030         for pragma redefine_extname.
15031
15032 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
15033
15034         PR target/25864
15035         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
15036         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
15037         -mno-minimal-toc to previous content.
15038         (bispecs): Remove goal.
15039         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
15040         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
15041         compatibility aliases on powerpc-*-*gnu*.
15042         * config/rs6000/libgcc-ppc-glibc.ver: New file.
15043         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
15044         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
15045         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
15046         (ldblspecs): New goal.
15047         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
15048         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
15049         _df_to_tf.
15050         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
15051         L_sf_to_tf or L_df_to_tf is defined.
15052
15053 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
15054             Alan Modra  <amodra@bigpond.net.au>
15055
15056         PR target/25864
15057         * config/rs6000/linux.h (POWERPC_LINUX): Define.
15058         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
15059         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
15060         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
15061         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
15062         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
15063         (rs6000_override_options): Initialize rs6000_ieeequad.
15064         Initialize TFmode format to ibm_extended_format if not
15065         TARGET_IEEEQUAD.
15066         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
15067         ieeelongdouble.
15068         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
15069         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
15070         (function_arg_advance): IBM long double passed in two FPRs, not
15071         split.
15072         (function_arg): IBM long double passed in FPRs.
15073         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
15074         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
15075         Only multireg GPR aligned.
15076         (rs6000_init_libfuncs): Enable IBM long double functions if not
15077         IEEEQUAD.
15078         (rs6000_generate_compare): Use IBM long double compare if not
15079         TARGET_IEEEQUAD.
15080         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
15081         (TARGET_IEEEQUAD): Define.
15082         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
15083         not TARGET_IEEEQUAD.
15084         * config/rs6000/rs6000.md: Enable TFmode patterns if
15085         !TARGET_IEEEQUAD.
15086         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
15087         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
15088         and -mlong-double-128 are incompatible.
15089         * doc/invoke.texi (-mabi): Collect options together.  Add
15090         ibmlongdouble and ieeelongdouble.
15091
15092 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
15093
15094         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
15095         opaque type.
15096         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
15097         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
15098         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
15099         * rtl.h (rtunion_def): Remove rt_ptr.
15100         (X0PTR): Delete.
15101         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
15102         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
15103         * config/i386/winnt.c (i386_pe_mark_dllexport)
15104         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
15105
15106 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
15107
15108         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
15109
15110 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
15111
15112         PR other/24829
15113         PR target/24831
15114         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
15115         pthread_key_delete.  From John David Anglin.  gthrw-ify
15116         pthread_getunique_np only if it it's not a macro.  Delete
15117         UNUSED macro.
15118         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
15119         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
15120         __gthread_objc_condition_signal, __gthread_key_delete): Add
15121         "__attribute__ ((__unused__))" to unused arguments.
15122         (__gthread_recursive_mutex_init_function): Add missing return.
15123         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
15124         gthr-posix95.h: Use macro-based approach for name redirection
15125         on targets missing weakref.
15126
15127 2006-01-26  Zack Weinberg  <zackw@panix.com>
15128
15129         * genconditions.c (write_header): In generated code, #ifdef out
15130         all includes and fake declarations, except includes of bconfig.h
15131         and system.h, unless GCC_VERSION >= 3001.  Do not include
15132         gensupport.h in any case.
15133         (write_conditions): Generate a definition of struct c_test.  Add
15134         a comment to the generated #endif.
15135         (write_one_condition): Escape backslashes in string too.
15136         (write_writer): Generated code must escape backslashes and quote
15137         marks (but not newlines) in the strings it writes.
15138         * Makefile.in (build/gencondmd.o): Update dependencies.
15139
15140 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
15141
15142         PR target/25961
15143         * Makefile.in (insn-automata.o): Add header file dependencies.
15144         * genautomata.c: Add includes.
15145
15146 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
15147
15148         PR target/25961
15149         * Makefile.in (insn-automata.o): Add -Wno-error flag.
15150
15151 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
15152
15153         * configure.ac: Expect target tools paths to be passed from the toplevel
15154         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
15155         AS_SET_VAR_IF.
15156         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
15157
15158 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
15159
15160         PR c/25892
15161         * c.opt (Wpointer-sign): Init to -1.
15162         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
15163         OPT_pedantic, to 0 otherwise.
15164         * doc/invoke.texi: Update.
15165
15166 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
15167
15168         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
15169         constants provided by 80387 instructions in the destination mode.
15170
15171 2006-01-26  Richard Guenther  <rguenther@suse.de>
15172             Andrew Pinski  <pinskia@physics.uc.edu>
15173
15174         PR tree-opt/21470
15175         partial PR tree-opt/17064
15176         * tree-ssa-structalias.c (intra_create_variable_infos):
15177         Create heap variables for incoming parameters if
15178         flag_argument_noalias > 1.
15179         (find_what_p_points_to): Look through default defs of
15180         parameter decls.
15181
15182 2006-01-26  Jeff Law  <law@redhat.com>
15183
15184         PR ada/25900
15185         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
15186         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
15187         within the VR_RANGE, use the VR_RANGE as the result, not the
15188         VR_ANTI_RANGE.
15189         (adjust_range_with_scev): Reject ranges from SCEV which are out of
15190         bounds for the type.
15191
15192 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
15193
15194         * tree-ssa-alias.c (maybe_create_global_var): Change
15195         subvar walking to an assertion that we don't have subvar'd variables.
15196
15197 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
15198
15199         PR C/25861
15200         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
15201         Use a new variable, inner.  PARM_DECLs are always non-weak.
15202
15203 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
15204
15205         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
15206         --disable-checking.
15207
15208 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
15209
15210         * config/mips/mips.md (*clear_upper32): New combiner pattern.
15211
15212 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
15213
15214         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
15215         (smax_insn, smin_insn, smax_0, smin_0): New.
15216
15217 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
15218
15219         PR target/25947
15220         * config/cris/cris.c (cris_order_for_addsi3): New function.
15221         * config/cris/cris-protos.h: Prototype it.
15222         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
15223         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
15224         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
15225         (split for "op.S1 [rx=rx+i],ry (swapped)")
15226         (split for "op(s|u).S1 [rx=rx+i],ry")
15227         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
15228         Apply cris_order_for_addsi3 when generating addsi3 insns.
15229
15230 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
15231
15232         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
15233         (TREE_BLOCK): Add call to EXPR_CHECK.
15234
15235 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
15236
15237         PR 25886
15238         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
15239         * tree-pretty-print.c (dump_omp_clause): Extract from ...
15240         (dump_omp_clauses): ... here.
15241         (dump_generic_node): Handle OMP_CLAUSE.
15242         * tree.c (omp_clause_num_ops): New.
15243         (omp_clause_code_name): New.
15244         (tree_code_size): Handle OMP_CLAUSE.
15245         (tree_size): Likewise.
15246         (make_node): Document handling of OMP_CLAUSE.
15247         (tree_node_structure): Handle OMP_CLAUSE.
15248         (omp_clause_check_failed): New.
15249         (omp_clause_range_check_failed): New.
15250         (omp_clause_operand_check_failed): New.
15251         (build_omp_clause): New.
15252         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
15253         * tree.h (enum omp_clause_code): Declare.
15254         (OMP_CLAUSE_SUBCODE_CHECK): Define.
15255         (OMP_CLAUSE_RANGE_CHECK): Define.
15256         (OMP_CLAUSE_ELT_CHECK): Define.
15257         (omp_clause_check_failed): Declare.
15258         (omp_clause_operand_check_failed): Declare.
15259         (omp_clause_range_check_failed): Declare.
15260         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
15261         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
15262         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
15263         (OMP_CLAUSE_LASTPRIVATE): Likewise.
15264         (OMP_CLAUSE_IF_EXPR): Likewise.
15265         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
15266         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
15267         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
15268         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
15269         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
15270         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
15271         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
15272         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
15273         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
15274         (OMP_CLAUSE_CODE): Define.
15275         (OMP_CLAUSE_SET_CODE): Define.
15276         (OMP_CLAUSE_CODE): Define.
15277         (OMP_CLAUSE_OPERAND): Define.
15278         (struct tree_omp_clause): Declare.
15279         (union tree_node): Add field 'omp_clause'.
15280         * treestruct.def (TS_OMP_CLAUSE): Define.
15281         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
15282         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
15283         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
15284         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
15285         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
15286         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
15287         (OMP_CLAUSE): Define.
15288         * print-tree.c (print_node): Handle OMP_CLAUSE.
15289         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
15290         * c-typeck.c: Likewise.
15291         * gimplify.c: Likewise.
15292         * c-omp.c: Likewise.
15293         * tree-nested.c: Likewise.
15294         * tree-inline.c: Likewise.
15295         * c-parser.c: Likewise.
15296         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
15297         clauses.
15298
15299 2006-01-25  Roger Sayle  <roger@eyesopen.com>
15300
15301         PR rtl-optimization/25703
15302         * combine.c (try_combine): Handle zero_extract and strict_low_part
15303         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
15304
15305 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
15306
15307         * global.c: Fix comment typos.
15308
15309 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
15310
15311         PR target/25758
15312         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
15313         Use output_addr_const instead of assemble_name.
15314
15315 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
15316
15317         * Makefile.in (sched-vis.o): Update dependencies.
15318         * haifa-sched.c (sched_finish): Clear current_sched_info.
15319         * cfg.c (dump_bb_info): New, split from dump_flow_info.
15320         (dump_flow_info): Call it.
15321         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
15322         a slim RTL dump.
15323         * basic-block.h (dump_bb_info): Declare.
15324         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
15325         option, and apply options only for dump files whose TDF_RTL,
15326         TDF_TREE, or TDF_IPA bits match.
15327         * rtl.h: Declare new functions exported from sched-vis.c.
15328         * sched-vis.c: Enable also if scheduling is not used.
15329         (print_value): Print the mode of registers if not inside scheduling.
15330         (print_insn): Make it work outside the scheduler.  Beautify the output
15331         a bit.
15332         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
15333
15334 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
15335
15336         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
15337         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
15338         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
15339         depending on the value of CONSTANT_POOL_ADDRESS_P.
15340         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
15341         SYMBOL_REF_DECL.
15342         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
15343         rather than SYMBOL_REF_DECL.
15344         (rtx_constant_pool): Remove const_rtx_sym_htab.
15345         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
15346         (init_varasm_status): Don't initialize const_rtx_sym_htab.
15347         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
15348         Remove handling of const_rtx_sym_htab.
15349         (find_pool_constant): Delete.
15350         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
15351         rather than find_pool_constant.
15352         (get_pool_constant_for_function): Delete.
15353         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
15354         find_pool_constant.
15355         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
15356         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
15357         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
15358         (SYMBOL_REF_CONSTANT): New macro.
15359         (get_pool_constant_for_function): Delete.
15360         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
15361         rather than SYMBOL_REF_DECL.
15362         (i386_pe_mark_dllimport): Likewise.
15363         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
15364         rather than SYMBOL_REF_DECL.
15365         * config/darwin.c (machopic_indirect_data_reference): Likewise.
15366         (machopic_indirect_call_target): Likewise.
15367
15368 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
15369
15370         * flow.c (delete_noop_moves): Add missing EOL to dump message.
15371
15372 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
15373
15374         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
15375
15376 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
15377
15378         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
15379
15380 2006-01-24  David Daney  <ddaney@avtrex.com>
15381
15382         PR java/25816
15383         * configure.ac (enable_tls): New enable option.
15384         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
15385         * configure: Regenerate.
15386         * doc/install.texi (--enable-tls): Document new option.
15387         (--disable-tls): Ditto.
15388
15389 2006-01-24  Richard Henderson  <rth@redehat.com>
15390
15391         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
15392         * alias.c (true_dependence): Respect it.
15393         (canon_true_dependence, write_dependence_p): Likewise.
15394         * builtins.c (get_builtin_sync_mem): Set it.
15395
15396 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
15397
15398         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
15399         efficient way.
15400
15401 2006-01-24  DJ Delorie  <dj@redhat.com>
15402
15403         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
15404         for storing constants in single-bit bitfields.
15405
15406 2006-01-25  Ben Elliston  <bje@au.ibm.com>
15407
15408         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
15409
15410 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
15411
15412         PR tree-opt/25860
15413         * tree-ssa-pre.c (phi_translate): Return NULL
15414         for AGGREGATE_TYPE's.
15415
15416 2006-01-24  Zack Weinberg  <zackw@panix.com>
15417
15418         * genautomata.c (process_state_for_insn_equiv_partition):
15419         Use xcalloc for insn_arcs_array.
15420         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
15421         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
15422
15423 2006-01-24  Richard Henderson  <rth@redhat.com>
15424
15425         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
15426         update all callers.
15427
15428 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
15429
15430         PR rtl-optimization/25890
15431         PR rtl-optimization/25905
15432         * combine.c (expand_compound_operation, expand_field_assignment):
15433         Fail if the bitfield's final position is out of bounds.
15434
15435 2006-01-24  Ian Lance Taylor  <ian@airs.com>
15436
15437         PR middle-end/25930
15438         * cgraphunit.c (cgraph_output_in_order): Don't clear
15439         cgraph_asm_nodes until after asm strings have been output.
15440
15441 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
15442
15443         * fix-header.c (read_scan_file): Add new parameter imultilib when
15444         calling register_include_chains.
15445
15446 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
15447
15448         * omp-low.c: Update documentation.
15449
15450 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
15451             Daniel Berlin  <dberlin@dberlin.org>
15452
15453         PR tree-opt/25315
15454         PR tree-opt/25857
15455         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
15456         return from the function.
15457
15458 2006-01-22  Zack Weinberg  <zackw@panix.com>
15459
15460         * rtl.def (match_code): Add second argument.
15461         * genpreds.c (write_extract_subexp): New function.
15462         (write_match_code): Add path argument.  Use write_extract_subexp.
15463         (write_predicate_expr): Pass path to write_match_code.
15464         (mark_mode_tests): MATCH_CODE applied to a subexpression does
15465         not perform a mode test.
15466         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
15467         a subexpression does not constrain the top-level code set.
15468         * read-rtl.c (read_rtx_variadic): New function.
15469         (read_rtx_1): Use it; allow AND and IOR to be variadic.
15470         * doc/md.texi: Document new notation.
15471         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
15472         (cmpsi_operand): ... here, using new notation.
15473
15474 2006-01-22  Zack Weinberg  <zackw@panix.com>
15475
15476         * varray.c: Remove GENERATOR_FILE #ifdefs.
15477
15478 2006-01-22  Zack Weinberg  <zackw@panix.com>
15479
15480         * genautomata.c (output_reserved_units_table): Emit nothing if
15481         description->query_units_num is zero.  Remove extra blank line.
15482         (output_cpu_unit_reservation_p): Short circuit
15483         if description->query_units_num is zero.
15484
15485 2006-01-22  Zack Weinberg  <zackw@panix.com>
15486
15487         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
15488         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
15489         nor any of the random handful of variables that used to be necessary
15490         when this program was linked with rtlanal.o.  Prune set of forward
15491         function declarations.
15492         (struct attr_desc): Remove static_p field.
15493         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
15494         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
15495         (attr_string): Do not read the character one past the length of
15496         the string.
15497         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
15498         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
15499         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
15500         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
15501         (make_automaton_attrs): New.
15502         (main): Do not call into genautomata.  Call local gen_bypass
15503         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
15504         Remove special case for insn_alts.
15505         * genautomata.c: Include gensupport.h; not genattrtab.h nor
15506         varray.h (leftover from previous change).  Prune set of forward
15507         function declarations.  Remove state_alts fields from all
15508         structures.  Remove state_alts_table from struct automaton.
15509         Make everything except main static.  Do not maintain num_dfa_decls.
15510         Do not maintain state_alts fields of various structures.
15511         (process_decls): Don't validate condexp for dm_insn_reserv decls.
15512         (add_arc): Remove state_alts argument.  All callers updated.
15513         (output_reserved_units_table): Emit #ifdef here...
15514         (output_tables): ...not here.  Don't generate state_alts tables.
15515         (expand_automata): Don't generate attributes.
15516         (write_automata): Don't generate state_alts functions.
15517         (main): New function.
15518         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
15519         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
15520         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
15521         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
15522         (BYPASS_P_FUNC_NAME, output_state_alts_table)
15523         (output_automata_list_state_alts_code, output_internal_state_alts_func)
15524         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
15525         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
15526         Delete.
15527         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
15528         * genattrtab.h: Delete file.
15529         * Makefile.in (OBJS-common): Add insn-automata.o.
15530         (insn-automata.o): New rule.
15531         (simple_generated_c): Add insn-automata.c.
15532         (build/genattrtab.o, build/genautomata.o): Update dependencies.
15533         (genprogmd): Add automata.
15534         (build/genattrtab): Needs no extra objects nor libraries.
15535         (build/genautomata): Needs build/vec.o and -lm.
15536
15537 2006-01-22  Zack Weinberg  <zackw@panix.com>
15538
15539         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
15540         (output_dfa_max_issue_rate, locked_states_num): Delete.
15541         (struct automaton): Add locked_states field.
15542         (output_dead_lock_vect): Save number of locked states in
15543         automaton->locked_states.  If it is zero, don't print anything.
15544         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
15545         (output_internal_dead_lock_func): Only test the dead_lock_vect
15546         for automata that have locked states.
15547         (output_statistics): Always print the number of locked states for
15548         each automaton.  Calculate total number of locked states here.
15549         (write_automata): Don't call output_dfa_max_issue_rate.
15550         * genattrtab.c: Define length_unit_log as a const variable.
15551         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
15552         max_insn_queue_index const.
15553         * final.c (length_unit_log): Declare const.
15554         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
15555
15556 2006-01-22  Zack Weinberg  <zackw@panix.com>
15557
15558         * genautomata.c: Include vec.h, not varray.h.
15559         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
15560         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
15561         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
15562         VEC_* macros operating on appropriately typed vectors, or to
15563         malloced arrays when the size is known in advance.  Const-ify
15564         many char* variables and function arguments.  No functional changes.
15565         * Makefile.in (build/varray.o): Delete rule.
15566         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
15567         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
15568
15569 2006-01-22  Zack Weinberg  <zackw@panix.com>
15570
15571         * gensupport.c: Define get_insn_name and record_insn_name here.
15572         (read_md_rtx): Call record_insn_name as appropriate.
15573         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
15574         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
15575         * genpreds.c, genrecog.c: Don't define get_insn_name nor
15576         record_insn_name.
15577         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
15578         (BUILD_VARRAY): Delete.
15579         (genprognormal): Rename genprogmd.  Fold in all programs from
15580         genprognoprint; also attrtab.
15581         (build/genattrtab): Just mention genautomata.o and varray.o.
15582         Reorganize a bit, add comments to make the categories clearer.
15583
15584 2006-01-22  Zack Weinberg  <zackw@panix.com>
15585
15586         * genconditions.c (condition_table, add_condition): Delete.
15587         (write_conditions): Don't emit n_insn_conditions nor
15588         insn_elision_unavailable.  Issue the gcc version #ifdef here,
15589         inside the table, with no #else clause ...
15590         (write_header): ...not here.
15591         (write_writer): New function.
15592         (main): Don't initialize condition_table.  Use add_c_test.
15593         Call write_writer.
15594         * gensupport.c (init_md_reader_args_cb): Handle multiple input
15595         files on the command line.
15596         (maybe_eval_c_test): Don't check insn_elision_unavailable.
15597         Return -1 if there is no entry in the table, don't abort.
15598         (add_c_test, traverse_c_tests): New functions.
15599         * gensupport.h (insn_elision_unavailable, insn_conditions)
15600         (n_insn_conditions): Delete declarations.
15601         (add_c_test, traverse_c_tests): Declare.
15602         * read-rtl.c: Include gensupport.h.
15603         (read_conditions): New function.
15604         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
15605         (read_rtx_1): If we get EOF when we were looking for an initial
15606         open paren, return 0.  Call read_conditions when appropriate.
15607         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
15608         dummy-conditions.o.  Eliminate references to insn-conditions.o,
15609         or change them to build/gencondmd.o, as appropriate.  Remove
15610         insn-constants.h from $(simple_generated_h) and insn-conditions.c
15611         from $(simple_generated_c).  For all files remaining in those
15612         two lists, add insn-conditions.md to the generator command line.
15613         Give insn-constants.h/s-constants their own rules.  Add rules
15614         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
15615         (build/read-rtl.o): Depend on gensupport.h.
15616         (genprognormal): Include preds.
15617         (genprogearly): Rename genprognoprint; only difference is now that
15618         they don't link with $(BUILD_PRINT).
15619         * dummy-conditions.c: Delete.
15620
15621 2006-01-22  Zack Weinberg  <zackw@panix.com>
15622
15623         * genextract.c: Don't include insn-config.h.  Do include vec.h.
15624         Declare vectors of int, char, and locstr.
15625         (locstr): New typedef.
15626         (struct extraction): Make all array fields into bare pointers.
15627         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
15628         (insn_code_number): Delete.
15629         (accum_extract): New struct.
15630         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
15631         (gen_insn): Take insn_code_number as an argument.  Use an
15632         accum_extract structure instead of loading data directly into
15633         a struct extraction, and having to know how big it might get.
15634         (walk_rtx): Operate entirely on an accum_extract structure.
15635         (print_path): Avoid unnecessary use of printf.
15636         (print_header): New function, split out of main.  Distinguish
15637         more carefully between an unrecognizable insn and an insn that
15638         has the code number of a define_expand.
15639         (main): Pass insn_code_number to gen_insn.  Call print_header
15640         only after parsing.  Avoid unnecessary use of printf.
15641         * Makefile.in (build/vec.o): New rule.
15642         (build/genextract): Depend on build/vec.o.
15643         (build/genextract.o): Don't depend on insn-config.h.
15644
15645 2006-01-22  Zack Weinberg  <zackw@panix.com>
15646
15647         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
15648         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
15649         practical.  Eliminate per-generator-program link rules.
15650
15651 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
15652
15653         PR middle-end/24437
15654         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
15655         with a call expr to ...
15656         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
15657
15658 2006-01-23  Richard Guenther  <rguenther@suse.de>
15659
15660         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
15661         before make_edge with conditional EDGE_TRUE_VALUE.
15662
15663 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
15664         Jan Hubicka  <jh@suse.cz>
15665         Richard Guenther  <rguenther@suse.de>
15666
15667         PR rtl-optimization/25654
15668         * cfgexpand.c (aggregate_contains_union_type): New function.
15669         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
15670         for structure variables that contain a union type.
15671
15672 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
15673
15674         * gengtype.c (new_structure): Return the structure.
15675         (create_option): Add an extra "next" argument.
15676         (create_field): New function.
15677         (adjust_field_rtx_def): Use create_option and create_field.
15678         Remove a now-unnecessary call to find_structure.
15679         (adjust_field_tree_def): Likewise.
15680         (note_yacc_type): Remove an unnecessary call to find_structure.
15681         * gengtype.h (new_structure): Return the structure.
15682         (create_option): Add an extra argument.
15683         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
15684         (option): Adjust calls to create_option.
15685
15686 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
15687
15688         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
15689
15690 2006-01-22  Paul Brook  <paul@codesourcery.com>
15691         Peter Barada  <peter@the-baradas.com>
15692
15693         * config/m68k/m68k.md: Add Coldfire FPU support.
15694         Define FP mode macro and associated attributes.
15695         Use it for float mode patterns.
15696         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
15697         (LIBCALL_VALUE): Use m68k_libcall_value.
15698         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
15699         (m68k_function_value): Ditto.
15700         (emit_move_sequence): Ditto.
15701         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
15702         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
15703         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
15704         (MULTILIB_EXCEPTIONS): Ditto.
15705         * config/m68k/m68k.opt: Add mcfv4e.
15706         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
15707         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
15708         (m68k_output_function_prologue): Save ColdFire FPU registers.
15709         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
15710         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
15711         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
15712         ColdFire FPU registers.
15713         (m68k_libcall_value, m68k_function_value): New functions.
15714         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
15715         (LIBCALL_VALUE): Use m68k_libcall_value.
15716         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
15717         (MASK_COLDFIRE): Add MASK_CFV4E.
15718         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
15719         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
15720         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
15721         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
15722         (GO_IF_LEGITIMATE_ADDRESS): Use it.
15723         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
15724         * doc/invoke.tex: Document -mcfv4e on m68k.
15725
15726 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
15727
15728         * doc/contribute.texi: Change CVS to SVN and update the corresponding
15729         URL.
15730
15731 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15732
15733         PR c++/16190
15734         * c-opts.c (c_common_handle_option): Don't include
15735         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
15736         * doc/invoke.texi (C++ Dialect Options): Document that
15737         -Wnon-virtual-dtor is no longer included in -Wall.
15738
15739 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
15740
15741         * gcov.c (print_version), gcov-dump.c (print_version),
15742         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
15743         dates.
15744
15745 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
15746
15747         * df-scan.c (problem_SCAN): Added NULL reset function.
15748         (df_scan_reset_blocks): Added code to call reset block function
15749         (df_bb_refs_delete) Fixed comment.
15750         (df_insn_refs_delete): Made tolerant of deleting non existent info
15751         for dataflow problems that need to be reset.
15752         * df-core.c (df_set_blocks): Ditto.
15753         * df.h (struct df_problem): Added reset_fun.
15754         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
15755         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
15756         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
15757         functions to clear out all references to def-use or use-def chains.
15758
15759 2006-01-21  Ben Elliston  <bje@au.ibm.com>
15760
15761         * varasm.c (assemble_real): Initialise data array.
15762
15763 2006-01-20  Paul Brook  <paul@codesourcery.com>
15764
15765         Merge from csl-arm-branch.
15766         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
15767         * config/arm/arm.md (movdi): Force operands[1] to a register
15768         if we have a non-register source.
15769         (*arm_movdi, *movdf_soft_insn): Require that one of the
15770         operands be a register.
15771         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
15772         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
15773
15774 2006-01-20  DJ Delorie  <dj@redhat.com>
15775
15776         * varasm.c (initializer_constant_valid_p): Allow pointers
15777         initialized from integer constants of lesser precision.
15778         (output_constant): Allow non-int-sized pointer modes to be
15779         initialized from integer constants.
15780
15781 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
15782
15783         PR libstdc++/25524
15784         * cppdefault.h (struct default_include): Add multilib flag.
15785         * cppdefault.c (cpp_include_defaults): Set it.
15786         * c.opt (-imultilib): New option.
15787         * c-opts.c (imultilib): New.
15788         (c_common_handle_option): Handle -imultilib.
15789         (c_common_post_options): Likewise.
15790         * c-incpath.c (add_standard_paths, register_include_chains):
15791         Likewise.
15792         * c-incpath.h (register_include_chains): Add extra parameter.
15793         * gcc.c (do_spec_1): Generate -imultilib option.
15794         (The Specs Language): Update %I description.
15795         (process_command): Update copyright notice.
15796         * doc/cppopts.texi (-imultilib): Document.
15797         * doc/invoke.texi (-imultilib): Include in option summary.
15798         (%I): Update specs documentation.
15799
15800 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
15801
15802         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
15803
15804 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
15805
15806         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
15807         label numbers.
15808
15809 2006-01-20  Richard Guenther  <rguenther@suse.de>
15810         Steven Bosscher <stevenb.gcc@gmail.com>
15811
15812         PR rtl-optimization/24626
15813         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
15814         EDGE_TRUE_VALUE if in RTL mode.
15815
15816         Revert
15817         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
15818         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
15819
15820 2006-01-20  Dirk Mueller  <dmueller@suse.com>
15821
15822         PR c++/5520
15823         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
15824         instead of a special NOP marker.
15825         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
15826         NOP marker handling.
15827         * c-common.h (empty_body_warning): Add forward declaration.
15828         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
15829         Now uses IS_EMPTY_STMT() instead of special NOP markers.
15830
15831 2006-01-20  Paul Brook  <paul@codesourcery.com>
15832
15833         * Makefile.in (lang_checks): Keep going if mkdir fails.
15834
15835 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
15836
15837         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
15838         be able to clean out basic block when not necessary.
15839         (df_scan_free): Fixed to properly delete information if df is
15840         unused before calling df_finish.
15841         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
15842         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
15843         or comment typos.
15844         (df_bb_refs_delete): New function.
15845         (df_refs_delete): Moved per block code to df_bb_refs_delete.
15846         * df-core.c (df_set_blocks): Added code to properly clean out
15847         unused blocks if they are not part of the blocks to consider.
15848         Added additional null check.
15849         (df_compact_blocks): Added basic block parameter to free_bb_fun to
15850         be able to clean out basic block when not necessary
15851         * df.h (df_free_bb_function): Ditto.
15852         (df_bb_refs_delete): New function.
15853         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
15854         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
15855         basic block parameter to be able to clean out basic block when not
15856         necessary.
15857         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
15858         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
15859         Fixed to properly delete information if df is unused before
15860         calling df_finish.
15861
15862 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
15863
15864         PR rtl-optimization/25799
15865         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
15866         Corrected confluence operator to remove bits from op2 before oring
15867         with op1 rather than removing bits from op1.
15868         (df_ru_transfer_function): Corrected test on wrong bitmap which
15869         caused infinite loop.  Both of these problems were introduced in
15870         the dataflow rewrite.
15871
15872 2006-01-19  DJ Delorie  <dj@redhat.com>
15873
15874         * reload1.c (find_reload_regs): Note the details of reload
15875         failures in the dump file.
15876         (spill_failure): Likewise.
15877
15878 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
15879
15880         * loop-iv.c: Include df.h and hashtab.h.
15881         (enum iv_grd_result): New enum.
15882         (DF_REF_IV, DF_REF_IV_SET): New macros.
15883         (struct biv_entry): New.
15884         (df, bivs): New global variables.
15885         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
15886         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
15887         Removed.
15888         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
15889         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
15890         analyzed_for_bivness_p, record_biv): New functions.
15891         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
15892         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
15893         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
15894         UD chains.
15895         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
15896         analysed.
15897         (iv_number_of_iterations): Use new interface to iv analysis.
15898         * loop-unroll.c: Do not include varray.h.
15899         (analyze_iv_to_split_insn): Use new interface to iv
15900         analysis.
15901         * loop-unswitch.c (may_unswitch_on): Ditto.
15902         * df.c (df_bitmaps_free): Only work for bbs for that structures are
15903         allocated.
15904         (df_bb_modify): Realloc tables to the new index.
15905         (df_find_use): New function.
15906         * df.h (df_find_use): Declare.
15907         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
15908         outmode.
15909         * cfgloop.h (struct rtx_iv): Remove analysed field.
15910         (iv_get_reaching_def): Removed.
15911         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
15912         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
15913         (loop-iv.o): Add df.h and hashtab.h dependency.
15914         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
15915
15916 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
15917
15918         PR target/25668
15919         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
15920         Double TFmode.
15921         (__floatundisf, __floatundidf): Likewise.
15922         * libgcc2.h (IS_IBM_EXTENDED): Define.
15923
15924 2006-01-19  DJ Delorie  <dj@redhat.com>
15925
15926         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
15927
15928 2006-01-19  Paul Brook  <paul@codesourcery.com>
15929
15930         * config/arm/arm.c (arm_compute_func_type): Treat all functions
15931         as nothrow when unwinding tables are disabled.
15932
15933 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15934
15935         PR testsuite/25171
15936         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
15937         of bit-field" when in system header.
15938
15939 2006-01-19  DJ Delorie  <dj@redhat.com>
15940
15941         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
15942         the 16 bit shift limit of the m16c.
15943
15944 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
15945
15946         PR target/22099
15947         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
15948         * config/i386/i386.c (output_set_got): Output the label if we have one
15949         for the TARGET_DEEP_BRANCH_PREDICTION case.
15950
15951 2006-01-19  Jan Hubicka  <jh@suse.cz>
15952             H.J. Lu  <hongjiu.lu@intel.com>
15953             Evandro Menezes <evandro.menezes@amd.com>
15954
15955         * invoke.texi (generic): Document
15956         (i686) Update.
15957         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
15958         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
15959         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
15960         (x86_use_incdec, x86_pad_returns): New variables
15961         (TARGET_CPU_DEFAULT_generic): New constant
15962         (TARGET_CPU_DEFAULT_NAMES): Add generic.
15963         (enum processor_type): Add generic32 and generic64.
15964         * i386.md (cpu attribute): Add generic32/generic64
15965         (movhi splitter): Behave sanely when both partial_reg_dependency and
15966         partial_reg_stall are set.
15967         (K8 splitters): Enable for generic as well.
15968         * predicates.md (incdec_operand): Use TARGET_INCDEC
15969         (aligned_operand): Avoid memory mismatch stalls.
15970         * athlon.md: Enable for generic64, new patterns for 128bit moves.
15971         * ppro.md: Enable for generic32
15972         * i386.c (generic64_cost, generic32_cost): New.
15973         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
15974         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
15975         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
15976         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
15977         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
15978         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
15979         x86_partial_reg_dependency, x86_memory_mismatch_stall,
15980         x86_accumulate_outgoing_args, x86_prologue_using_move,
15981         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
15982         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
15983         Enable for generic.
15984         (x86_use_incdec, x86_pad_returns): New.
15985         (override_options): Add generic32 and generic64, translate "generic"
15986         to generic32/generic64 and "i686" to "generic32", refuse
15987         "generic32"/"generic64" as arch target.
15988         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
15989         (ix86_reorg): Honor PAD_RETURNS.
15990
15991 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
15992
15993         * tree-pretty-print.c (dump_generic_node): Handle
15994         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
15995         * cgraph.c (cgraph_expand_queue): Rename from
15996         cgraph_analyze_queue.  Update all users.
15997         * cgraphunit.c (cgraph_assemble_pending_functions): Process
15998         cgraph_expand_queue.
15999         (cgraph_expand_all_functions): Likewise.
16000         (cgraph_finalize_pending_functions): Remove.  Update callers.
16001
16002         * tree.h (OMP_DIRECTIVE_P): Define.
16003         (OMP_PARALLEL_FN): Define.
16004         (OMP_PARALLEL_DATA_ARG): Define.
16005         (OMP_SECTIONS_SECTIONS): Define.
16006         * tree-pass.h (pass_expand_omp): Declare.
16007         * omp-low.c (struct omp_region): Declare.
16008         (struct omp_context): Remove fields 'parallel_type',
16009         'parallel_start_ix' and 'parallel_start_additional_args'.
16010         Update all users.
16011         (struct omp_for_data): Rename from struct expand_omp_for_data.
16012         (omp_regions): New static variable.
16013         (root_omp_region): New static variable.
16014         (find_omp_clause): Make static.
16015         (is_in_combined_parallel_ctx): Remove.
16016         (is_combined_parallel): New.
16017         (extract_omp_for_data): Move earlier in the file.
16018         (workshare_safe_to_combine_p): New.
16019         (get_ws_args_for): New.
16020         (determine_parallel_type): Move earlier in the file.
16021         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
16022         child function.
16023         (omp_copy_decl): Likewise.
16024         (create_omp_child_function): Likewise.
16025         (lookup_omp_region): New.
16026         (dump_omp_region): New.
16027         (debug_omp_region): New.
16028         (debug_all_omp_regions): New.
16029         (new_omp_region): New.
16030         (scan_omp_parallel): If parallel_nesting_level > 1, the
16031         directive is nested within another parallel directive.
16032         Set OMP_PARALLEL_FN.
16033         (scan_omp_for): Do not try to handle combined parallel+for
16034         cases.
16035         Remove FIXME comment.
16036         (scan_omp_nested): Remove.
16037         (scan_omp_1): Do not call scan_omp_nested when
16038         parallel_nesting_level is > 1.
16039         Do not change the DECL_CONTEXT of local variables found.
16040         (lookup_decl_in_outer_ctx): New.
16041         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
16042         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
16043         (lower_reduction_clauses): Rename from expand_reduction_clauses.
16044         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
16045         If CTX is nested, lookup VAR in the outer context when
16046         building copy assignment.
16047         (lower_send_clauses): Rename from expand_send_clauses.
16048         If CTX is nested, lookup VAR in the outer context when
16049         building copy assignments.
16050         (lower_send_shared_vars): Rename from expand_send_shared_vars.
16051         If CTX is nested, lookup VAR in the outer context when
16052         building copy assignments.
16053         (expand_parallel_call): Rename from build_parallel_call.
16054         Handle combined parallel+workshare cases.
16055         Re-implement to emit code into the CFG.
16056         (list2chain): New.
16057         (expand_omp_parallel): Re-implement to emit code into the CFG.
16058         Call move_sese_region_to_fn to outline the sub-graph
16059         containing the parallel region.
16060         (expand_omp_for_1): Remove.
16061         (expand_omp_for_generic): Re-implement to emit code into the
16062         CFG.
16063         (expand_omp_for_static_nochunk): Likewise.
16064         (expand_omp_for_static_chunk): Likewise.
16065         (expand_omp_for): Likewise.
16066         (expand_omp_sections): Likewise.
16067         (remove_exit_barriers): New.
16068         (expand_omp_synch): New.
16069         (expand_omp): New.
16070         (build_omp_regions_1): New.
16071         (build_omp_regions): New.
16072         (execute_expand_omp): New.
16073         (gate_expand_omp): New.
16074         (pass_expand_omp): Define.
16075         (lower_omp_sections): Rename from expand_omp_sections.
16076         Set OMP_SECTIONS_SECTIONS.
16077         (lower_omp_single_simple): Rename from expand_omp_single_simple.
16078         (lower_omp_single_copy): Rename from expand_omp_single_copy.
16079         (lower_omp_single): Rename from expand_omp_simple.
16080         (lower_omp_master): Rename from expand_omp_master.
16081         (lower_omp_ordered): Rename from expand_omp_ordered.
16082         (lower_omp_critical): Rename from expand_omp_critical.
16083         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
16084         (lower_omp_for): Re-implement.
16085         (lower_omp_parallel): Re-implement.
16086         (lower_regimplify): Rename from expand_regimplify.
16087         (lower_omp_1): Rename from expand_omp_1.
16088         If there are syntax errors in the program, replace every
16089         OpenMP directive with NOP.
16090         Call lower_omp_* instead of expand_omp_*.
16091         (lower_omp): Rename from expand_omp.
16092
16093         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
16094         * tree-gimple.h (enum omp_parallel_type): Remove.
16095         (gimple_boolify): Declare extern.
16096         (find_omp_clause, determine_parallel_type): Remove.
16097
16098         * gimple-low.c (lower_omp_directive): New.
16099         (lower_stmt): Call it.
16100         (record_vars_into): Move from ...
16101         (record_vars): ... here.
16102         Call record_vars_into with current_function_decl.
16103
16104         * gimplify.c (struct gimplify_ctx): Remove fields
16105         combined_pre_p and combined_ctxp.  Update users.
16106         (get_formal_tmp_var): Add documentation.
16107         (gimple_boolify): Make extern.
16108         (gimplify_expr_in_ctx): Remove.  Update callers.
16109         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
16110         will always be a BIND_EXPR.
16111         (gimplify_expr): Handle OMP_RETURN_EXPR.
16112         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
16113         (OMP_PARALLEL): Add 3 operands.
16114         (OMP_SECTIONS): Add 1 operand.
16115         (OMP_RETURN_EXPR): Define.
16116
16117         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
16118         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
16119         * tree-iterator.c (alloc_stmt_list): Assert that we are not
16120         creating a circular free list.
16121         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
16122
16123         * tree-flow.h (move_sese_region_to_fn): Declare.
16124         (record_vars_into): Declare.
16125         * tree-cfg.c (make_omp_sections_edges): New.
16126         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
16127         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
16128         OMP_SECTIONS and OMP_SECTION.
16129         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
16130         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
16131         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
16132         (gather_blocks_in_sese_region): New.
16133         (struct move_stmt_d): Declare.
16134         (move_stmt_r): New.
16135         (move_block_to_fn): New.
16136         (move_sese_region_to_fn): New.
16137
16138         * passes.c (init_optimization_passes): Schedule
16139         pass_expand_omp after pass_init_datastructures.
16140
16141         * tree-ssa-operands.c (get_expr_operands): Handle
16142         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
16143         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
16144
16145 2006-01-19  Jeff Law  <law@redhat.com>
16146
16147         * tree-vrp.c (extract_range_from_assert): Refine the result range
16148         if the variable referenced by the ASSERT_EXPR has a range and
16149         either the tentative result range or the previous range is a
16150         VR_ANTI_RANGE.
16151
16152 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
16153
16154         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
16155
16156 2006-01-19  Jan Hubicka  <jh@suse.cz>
16157
16158         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
16159
16160 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
16161
16162         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
16163         (expand_compound_operation, expand_field_assignment): Fail if the
16164         bit lengths of an extract operation are out of range.
16165         (make_extraction): Compute wanted_inner_mode based on the position
16166         and length of the extraction.  Make it extraction_mode for non-constant
16167         positions, and do not modify offset in that case.  When generating a
16168         new MEM, use a mode that can hold the extraction while keeping correct
16169         alignment.  Remove code that supported MEMs wrapped by USEs.
16170         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
16171
16172 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
16173
16174         * config/s390/s390.md ("Y", "y"): New mode attribute.
16175         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
16176         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
16177         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
16178         "*addsi3_imm_cc", "*addsi3_carry1_cc",
16179         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
16180         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
16181         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
16182         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
16183         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
16184         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
16185         "addsi3", "subsi3"): Insn patterns removed.
16186         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
16187         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
16188         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
16189         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
16190         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
16191         "*sub<mode>3_cconly2"): New insn patterns.
16192         ("addsi3", "subsi3"): New expanders.
16193
16194 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
16195
16196         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
16197         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
16198         existing STMT_VINFO_VECTYPE if available.
16199         (vect_mark_relevant): Add special handling for stmts that are
16200         marked as STMT_VINFO_IN_PATTERN_P.
16201         (vect_analyze_loop): Call vect_pattern_recog.
16202         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
16203         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
16204         stmt_info.
16205         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
16206         (vect_recog_func_ptr): New function-pointer type.
16207         * tree-vect-patterns.c: New file.
16208         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
16209         (vect_recog_dot_prod_pattern, vect_pattern_recog):
16210         (vect_pattern_recog_1): New functions.
16211         (vect_pattern_recog_funcs): New array of function pointers.
16212
16213         * tree-vectorizer.h (ternary_op): New enum value.
16214         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
16215         declaration. Revised documentation. Removed redundant dump prints.
16216         Removed redundant argument. Added support for reduction patterns.
16217         (vectorizable_reduction): Added support for reduction patterns.
16218         (vect_transform_stmt): Added support for patterns.
16219
16220         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
16221         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
16222         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
16223         (expand_widen_pattern_expr): New function.
16224         (init_optabs): Initialize new optabs udot_prod_optab,
16225         sdot_prod_optab.
16226         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
16227         (sdot_prod_optab, udot_prod_optab): Define new optabs.
16228         (expand_widen_pattern_expr): New function declaration.
16229         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
16230         tree-codes.
16231         * tree-inline.c (estimate_num_insns_1): Added cases for new
16232         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
16233         * tree-pretty-print.c (dump_generic_node): Likewise.
16234         (op_prio): Likewise.
16235         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
16236         * tree-ssa-operands.c (get_expr_operands): Added case for
16237         DOT_PROD_EXPR.
16238         * tree-vect-patterns.c (widened_name_p): New function.
16239         (vect_recog_dot_prod_pattern): Added function implementation.
16240         * tree-vect-transform.c (get_initial_def_for_reduction): Added
16241         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
16242         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
16243         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
16244
16245         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
16246         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
16247         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
16248         (init_optabs): Initialize new optabs widen_ssum_optab,
16249         widen_usum_optab.
16250         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
16251         (widen_ssum_optab, widen_usum_optab): Define new optabs.
16252         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
16253         use instead of type of def.
16254         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
16255         function implementation.
16256         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
16257         widen_ssumv8hi): New.
16258
16259         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
16260         patterns.
16261
16262 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
16263
16264         PR c/25805
16265         * c-decl.c (add_flexible_array_elts_to_size): New function.
16266         (finish_decl): Use it.
16267
16268 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16269
16270         * diagnostic.h: Include options.h.
16271         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
16272         dependancies for diagnostic.h.
16273         * Makefile.in (DIAGNOSTIC_H): Add options.h.
16274
16275 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
16276
16277         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
16278         (ssa_ro_call_cache_valid): Ditto.
16279         * tree-ssa-alias.c (sort_tags_by_id): New function.
16280         (init_transitive_clobber_worklist): Ditto.
16281         (add_to_worklist): Ditto.
16282         (mark_aliases_call_clobbered): Ditto.
16283         (compute_tag_properties): Ditto.
16284         (set_initial_properties): Ditto.
16285         (compute_call_clobbered): Ditto.
16286         (compute_may_aliases):  Call compute_call_clobbered and grouping.
16287         (compute_flow_sensitive_aliasing): Remove clobbering related code.
16288         (compute_flow_insensitive_aliasing): Grouping now happens in our
16289         caller.
16290         (setup_pointers_and_addressables): Remove clobbering related code.
16291         (add_may_alias): Ditto.
16292         (replace_may_alias): Ditto.
16293         (get_nmt_for): Ditto.
16294         (create_global_var):
16295         (is_escape_site): Return an escape_type enumeration.
16296         * tree-flow-inline.h (is_call_clobbered): Global var does not
16297         imply call clobbered.
16298         (mark_call_clobbered): Take a reason for marking this. Remove
16299         marking of globalness, and cache invalidation.
16300         (clear_call_clobbered): Remove cache invalidation code.
16301         * tree-dfa.c (dump_variable): If details is on, dump the reason
16302         for escaping.
16303         * tree-outof-ssa.c (create_temp): Copy escape mask from original
16304         variable.
16305         * tree-flow.h (struct ptr_info_def): Add escape mask member.
16306         (struct var_ann_d): Ditto.
16307         (enum escape_type): New.
16308         (mark_call_clobbered): Adjust prototype.
16309         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
16310         are never call clobbered.
16311         Record reasons for escaping.
16312         * tree-ssa-structalias.h (is_escape_site): Update prototype.
16313         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
16314         (ssa_ro_call_cache_valid): Ditto.
16315         (clobbered_v_may_defs): Ditto.
16316         (clobbered_vuses): Ditto.
16317         (ro_call_vuses): Ditto.
16318         (clobber_stats): New.
16319         (init_ssa_operands): Zero out clobber stats.
16320         (fini_ssa_operands): Print out clobber stats.
16321         (get_call_expr_operands): Pass callee fndecl to
16322         add_call_read_ops).
16323         (add_call_clobber_ops): Remove use of cache.
16324         Add use of PURE_CONST information.
16325         (add_call_read_ops): Remove use of cache.
16326         Add use of static not_read information.
16327
16328 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
16329
16330         Introduce TLS descriptors for i386 and x86_64.
16331         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
16332         (TARGET_ANY_GNU_TLS): New macro.
16333         (enum tls_dialect): Added TLS_DIALECT_GNU2.
16334         (struct machine_function): Add tls_descriptor_call_expanded_p.
16335         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
16336         (ix86_current_function_calls_tls_descriptor): Likewise.
16337         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
16338         (override_options): Introduce gnu2 tls dialect.
16339         (ix86_frame_pointer_required): Functions containing TLSCALLs are
16340         not leaves.
16341         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
16342         Likewise.
16343         (legitimize_tls_address): Adjust logic for GNU2 TLS.
16344         (ix86_init_machine_status): Initialize new field.
16345         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
16346         (ix86_tls_module_base): New.
16347         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
16348         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
16349         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
16350         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
16351         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
16352         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
16353         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
16354         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
16355         * config/i386/predicates.md (tls_modbase_operand): New.
16356         (tp_or_register_operand): New.
16357
16358 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
16359
16360         * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
16361         (look_for_address_of): Ditto.
16362         (ipa_init): Walk the function decls.
16363         (static_execute): Don't set readonly on FUNCTION_DECL's.
16364
16365 2006-01-18  Roger Sayle  <roger@eyesopen.com>
16366
16367         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
16368         for shifts where the source and destination registers are different.
16369
16370 2006-01-18  Paul Brook  <paul@codesourcery.com>
16371
16372         Merge from csl-arm-branch.
16373         2005-03-14  Julian Brown  <julian@codesourcery.com>
16374         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
16375         (aeabi_llsl): Likewise.
16376         (ashrdi3): Likewise.
16377         (aeabi_lasr): Likewise.
16378         (lshrdi3): Likewise.
16379         (aeabi_llsr): Likewise.
16380         2005-03-10  Julian Brown  <julian@codesourcery.com>
16381         * config.gcc: Disable shared libgcc for SymbianOS.
16382         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
16383
16384 2006-01-18  DJ Delorie  <dj@redhat.com>
16385
16386         * c-pragma.c (handle_pragma_diagnostic): New.
16387         (init_pragma): Register it.
16388         * doc/extend.texi: Document it.
16389
16390         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
16391         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
16392         (diagnostic_context): Add classify_diagnostic[].
16393         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
16394         as errors if they're overridden to DK_WARNING.
16395         (diagnostic_initialize): Initialize classify_diagnostic[].
16396         (diagnostic_set_kind_override): New.
16397         (diagnostic_report_diagnostic): Check for kind changes.
16398         * opts.c (common_handle_option): Take lang_mask.  Update callers.
16399         Handle OPT_Werror_.
16400         * common.opt (Werror=): New.
16401         * doc/invoke.texi: Document -Werror=*
16402
16403 2006-01-18  Jeff Law  <law@redhat.com>
16404
16405         * tree-vrp.c (test_for_singularity): Correct test for new
16406         min limit.  Use operand_equal_p rather than pointer equality
16407         for testing if new min/max values are equal.
16408
16409         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
16410         using range information until after propagation and folding.
16411
16412 2006-01-18  Richard Henderson  <rth@redhat.com>
16413             Aldy Hernandez  <aldyh@redhat.com>
16414             Jakub Jelinek  <jakub@redhat.com>
16415             Diego Novillo  <dnovillo@redhat.com>
16416
16417         * omp-low.c: New file.
16418         * c-omp.c: New file.
16419
16420 2006-01-18  Richard Henderson  <rth@redhat.com>
16421             Jakub Jelinek  <jakub@redhat.com>
16422             Diego Novillo  <dnovillo@redhat.com>
16423
16424         * doc/invoke.texi: Document -fopenmp.
16425         * tree-dump.h (debug_function): Declare.
16426         * hooks.c (hook_bool_tree_bool_false): New function.
16427         (hook_tree_tree_null): Remove.
16428         (hook_tree_tree_tree_null): New.
16429         * hooks.h: Update to match.
16430         * tree-pretty-print.c (debug_tree_chain): New.
16431         (print_generic_expr): Handle TDF_CHAIN.
16432         (dump_generic_node): Handle BLOCK.
16433         Do not abort with incomplete SWITCH_EXPRs.
16434         Do not dump body of an OpenMP directive if TDF_SLIM is given.
16435         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
16436         print space after directive name.
16437         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
16438         Handle OMP_MASTER and OMP_ORDERED.
16439         Handle printing of OMP_BODY just in one place, goto
16440         dump_omp_body in the rest of OMP_* nodes that have
16441         OMP_BODY.
16442         Don't handle clause nodes here.  Update omp statements to
16443         use dump_omp_clauses.
16444         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
16445         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
16446         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
16447         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
16448         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
16449         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
16450         Adjust output for GOMP_PARALLEL.
16451         (dump_omp_clauses): New.
16452         (print_declaration): Dump DECL_VALUE_EXPR.
16453         (op_symbol_1): Split out of op_symbol.
16454         (dumping_stmts): Remove.  Update all users.
16455         * cgraph.c (cgraph_analyze_queue): New.
16456         (cgraph_add_new_function): New.
16457         * cgraph.h (cgraph_analyze_queue): Declare.
16458         (cgraph_add_new_function): Declare.
16459         (cgraph_lower_function): Remove.
16460         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
16461         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
16462         and TYPE_P nodes in its default clause.
16463         (empty_body_p): New.
16464         (tree_range_check_failed): New.
16465         (build5_stat): New.
16466         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
16467         OMP_CLAUSE_REDUCTION_MERGE,
16468         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
16469         OMP_CLAUSE_PRIVATE_DEBUG,
16470         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
16471         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
16472         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
16473         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
16474         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
16475         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
16476         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
16477         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
16478         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
16479         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
16480         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
16481         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
16482         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
16483         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
16484         (TREE_RANGE_CHECK): New.
16485         (empty_body_p): Declare.
16486         (enum omp_clause_default_kind): New.
16487         (build_string_literal): Declare.
16488         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
16489         (build5_stat, build5): Declare.
16490         * tree-pass.h (TDF_CHAIN): Define.
16491         * tree-pass.h (PROP_gimple_lomp): Define.
16492         (pass_lower_omp): Declare.
16493         * diagnostic.h (debug_tree_chain): Declare.
16494         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
16495         mode_for_size.
16496         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
16497         * builtins.c (build_string_literal): Make extern.
16498         * gcc.c (include_spec_function): New.
16499         (static_spec_functions): Add it.
16500         (main): Move load of libgomp.spec ...
16501         (LINK_COMMAND_SPEC): ... here.
16502         (link_gomp_spec): New.
16503         (static_specs): Include it.
16504         (LINK_COMMAND_SPEC): Add link_gomp.
16505         (GOMP_SELF_SPECS): New.
16506         (driver_self_specs): Include it.
16507         (switch_matches): Don't mark inline.
16508         (main): Load libgomp.spec.
16509         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
16510         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
16511         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
16512         * tree-gimple.h (enum omp_parallel): Declare.
16513         (determine_parallel_type): Declare.
16514         (omp_firstprivatize_variable): Declare.
16515         (omp_reduction_init): Declare.
16516         (diagnose_omp_structured_block_errors): Declare.
16517         (struct walk_stmt_info): Add want_return_expr.
16518         (struct walk_stmt_info): Add want_bind_expr, want_locations.
16519         (find_omp_clause): Declare.
16520         (insert_field_into_struct): Declare.
16521         (struct walk_stmt_info): Move from tree-nested.c
16522         (walk_stmts): Declare.
16523         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
16524         to 200505.
16525         * cgraphunit.c (cgraph_lower_function): Make static.
16526         (cgraph_finalize_pending_functions): New.
16527         (cgraph_finalize_function): Call it.
16528         (cgraph_finalize_compilation_unit): Likewise.
16529         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
16530         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
16531         (BT_FN_UINT_UINT): New.
16532         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
16533         DEF_FUNCTION_TYPE_VAR_4): Document.
16534         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
16535         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
16536         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
16537         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
16538         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
16539         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
16540         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
16541         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
16542         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
16543         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
16544         into separate files.
16545         (DEF_GOMP_BUILTIN): New.
16546         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
16547         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
16548         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
16549         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
16550         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
16551         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
16552         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
16553         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
16554         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
16555         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
16556         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
16557         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
16558         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
16559         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
16560         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
16561         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
16562         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
16563         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
16564         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
16565         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
16566         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
16567         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
16568         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
16569         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
16570         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
16571         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
16572         * sync-builtins.def: New file, moved from builtins.def.
16573         * omp-builtins.def: New file, moved from builtins.def.
16574         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
16575         * gimple-low.c (lower_function_body): Clear data.
16576         (lower_stmt): Do not handle COMPOUND_EXPR.
16577         Remove call to print_node_brief.
16578         * c-tree.h (c_finish_omp_clauses): New prototype.
16579         (C_DECL_THREADPRIVATE_P): Define.
16580         (lookup_name_no_remap, c_omp_remap_private): Remove
16581         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
16582         (check_for_loop_decls): Update decl.
16583         (lookup_name_no_remap, c_omp_remap_private): Declare.
16584         (build_indirect_ref, build_modify_expr, pushdecl,
16585         pushdecl_top_level): Move to c-common.h.
16586         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
16587         before the switch, but just in the 2 places that need it.
16588         * c-decl.c (diagnose_mismatched_decls): Do not check for
16589         mismatched thread-local attributes when OLDDECL is marked
16590         threadprivate and NEWDECL has no thread-local attributes.
16591         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
16592         (c_gimple_diagnostics_recursively): Rename from
16593         c_warn_unused_result_recursively.  Invoke
16594         diagnose_omp_structured_block_errors.
16595         (check_for_loop_decls): Return a singular decl found.
16596         * langhooks.c (lhd_omp_predetermined_sharing): Return
16597         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
16598         (lhd_omp_firstprivatize_type_sizes): New.
16599         (lhd_omp_assignment): New.
16600         (lhd_omp_predetermined_sharing): New.
16601         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
16602         (struct lang_hooks_for_types): Add
16603         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
16604         omp_predetermined_sharing, omp_disregard_value_expr,
16605         omp_private_debug_clause, omp_clause_default_ctor,
16606         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
16607         (c_finish_omp_clauses): New.
16608         (c_finish_bc_stmt): Diagnose break within omp for.
16609         (c_begin_omp_parallel, c_finish_omp_parallel): New.
16610         (build_unary_op): Return error_mark after reporting
16611         a readonly_error.
16612         (build_modify_expr): Likewise.
16613         * gimplify.c: Include optabs.h and pointer-set.h.
16614         (enum gimplify_omp_var_data): Declare.
16615         (struct gimplify_omp_ctx): Declare.
16616         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
16617         and combined_ctxp.
16618         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
16619         (push_gimplify_context, pop_gimplify_context): Allow nesting.
16620         (splay_tree_compare_decl_uid): New.
16621         (new_omp_context): New.
16622         (delete_omp_context): New.
16623         (gimple_add_tmp_var): Call omp_add_variable.
16624         (gimplify_bind_expr): Likewise.
16625         (gimplify_var_or_parm_decl): If omp_notice_variable returned
16626         true, disregard DECL_VALUE_EXPR on the decl if any.
16627         (gimplify_expr_in_ctx): New.
16628         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
16629         omp_add_variable, omp_notice_variable, omp_is_private
16630         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
16631         gimplify_adjust_omp_clauses, gimplify_omp_parallel
16632         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
16633         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
16634         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
16635         gimplify_omp_atomic): New.
16636         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
16637         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
16638         OMP_CRITICAL and OMP_ATOMIC.
16639         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
16640         * c-pragma.h (enum pragma_kind): Add
16641         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
16642         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
16643         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
16644         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
16645         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
16646         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
16647         PRAGMA_OMP_THREADPRIVATE.
16648         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
16649         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
16650         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
16651         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
16652         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
16653         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
16654         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
16655         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
16656         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
16657         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
16658         * tree-ssa-dce.c (find_control_dependence): Do not assume that
16659         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
16660         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
16661         OpenMP directives.
16662         (struct nesting_info): Add field_map,
16663         suppress_expansion, debug_var_chain.
16664         (create_nesting_tree): Initialize them.
16665         (lookup_field_for_decl): Use field_map.
16666         (get_nonlocal_debug_decl, get_local_debug_decl): New.
16667         (convert_local_omp_clauses): New.
16668         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
16669         (walk_body): Split out of walk_function.
16670         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
16671         (convert_nonlocal_reference): Handle omp statements.
16672         (convert_local_reference): Likewise.
16673         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
16674         (unnest_nesting_tree): New.
16675         (lower_nested_functions): Call it.
16676         (insert_field_into_struct): Make extern.
16677         (struct walk_stmt_info): Move to tree-gimple.h.
16678         (walk_stmts): Make extern.
16679         * omp-builtins.def: New file.
16680         * tree-iterator.c (expr_only): Clarify comment.
16681         * c-common.h (pushdecl_top_level, pushdecl,
16682         build_modify_expr, build_indirect_ref,
16683         c_finish_omp_master, c_finish_omp_critical,
16684         c_finish_omp_ordered, c_finish_omp_barrier,
16685         c_finish_omp_atomic, c_finish_omp_flush,
16686         c_finish_omp_for, c_split_parallel_clauses,
16687         omp_clause_default_kind, c_omp_sharing_predetermined,
16688         c_omp_remap_decl): Declare.
16689         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
16690         (OBJS-common): Add omp-low.o.
16691         (c-omp.o, omp-low.o): Add.
16692         (gimplify.o): Add dependency on $(OPTABS_H).
16693         (GTFILES): Add omp-low.c.
16694         (gt-stringpool.h): Add.
16695         * tree-cfg.c (set_bb_for_stmt): Do not update the
16696         block-to-labels map if we are currently expanding to RTL.
16697         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
16698         checks.
16699         Handle IDENTIFIER_NODE.
16700         (tree_verify_flow_info): Do not ICE when emitting error
16701         messages about invalid labels.
16702         (dump_function_to_file): Reset CFUN before emitting the body
16703         of the function.
16704         (debug_function): New.
16705         * passes.c (init_optimization_passes): Schedule
16706         pass_lower_omp.
16707         * langhooks-def.h (lhd_omp_predetermined_sharing,
16708         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
16709         Declare.
16710         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
16711         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
16712         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
16713         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
16714         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
16715         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
16716         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
16717         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
16718         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
16719         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
16720         (LANG_HOOK_DECLS): Use them.
16721
16722 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
16723             Richard Henderson  <rth@redhat.com>
16724             Jakub Jelinek  <jakub@redhat.com>
16725             Diego Novillo  <dnovillo@redhat.com>
16726
16727         * c-parser.c (pragma_omp_clause): Define.
16728         (c_parser_declaration_or_fndef): Document OpenMP syntax.
16729         (c_parser_compound_statement): Likewise.
16730         (c_parser_statement): Likewise.
16731         (c_parser_pragma): Handle omp pragmas.
16732         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
16733         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
16734         (c_parser_omp_clause_name, check_no_duplicate_clause,
16735         c_parser_omp_variable_list,
16736         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
16737         c_parser_omp_clause_copyprivate,
16738         c_parser_omp_clause_default,
16739         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
16740         c_parser_omp_clause_lastprivate,
16741         c_parser_omp_clause_nowait,
16742         c_parser_omp_clause_num_threads,
16743         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
16744         c_parser_omp_clause_reduction,
16745         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
16746         c_parser_omp_all_clauses, c_parser_omp_structured_block,
16747         c_parser_omp_atomic, c_parser_omp_barrier,
16748         c_parser_omp_critical, c_parser_omp_flush,
16749         c_parser_omp_for_loop, c_parser_omp_for,
16750         c_parser_omp_master, c_parser_omp_ordered,
16751         c_parser_omp_sections_scope, c_parser_omp_sections,
16752         c_parser_omp_parallel, c_parser_omp_single,
16753         c_parser_omp_construct, c_parser_omp_threadprivate): New.
16754         * c-pragma.c (init_pragma): Do omp pragma registration here.
16755         * c.opt (fopenmp): New flag.
16756
16757 2006-01-18  Eric Christopher  <echristo@apple.com>
16758
16759         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
16760         * config/darwin.h (GOMP_SELF_SPECS): Define.
16761
16762 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
16763
16764         * rtl.h: Remove the prototype for reg_alloc.
16765
16766 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16767
16768         PR target/25731
16769         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
16770         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
16771         sjlj and dwarf2 exception handling.
16772         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
16773         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
16774         * pa/pa.c (function_value): Treat complex and vector types as
16775         aggregates.
16776         (function_arg): Likewise.  Only pass scalar floats in the floating
16777         point argument registers.
16778         * pa/t-slibgcc-dwarf-ver: New file.
16779         * pa/t-slibgcc-sjlj-ver: New file.
16780         * pa/t-slibgcc-elf-ver: Delete file.
16781
16782 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
16783
16784         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
16785         unlikely_test_section_p test.
16786
16787 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
16788
16789         * mode-switching.c (optimize_mode_switching): Make it static.
16790         * basic-block.h: Remove the prototype for
16791         optimize_mode_switching.
16792
16793         * modulo-sched.c (sms_schedule): Make it static.
16794         * rtl.h: Remove the prototype for sms_schedule.
16795
16796         * postreload-gcse.c (gcse_after_reload_main): Make it static.
16797         * rtl.h: Remove the prototype for gcse_after_reload_main.
16798
16799         * reg-stack.c (reg_to_stack): Make it static.
16800         * rtl.h: Remove the prototype for reg_to_stack.
16801
16802         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
16803         Make them static.
16804         * rtl.h: Remove the prototypes for regrename_optimize and
16805         copyprop_hardreg_forward.
16806
16807 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
16808
16809         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
16810         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
16811         Test against the appropriate null constant for the mode.
16812         If 'fixup_overlap' is true, swap the operands if they overlap.
16813         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
16814         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
16815         alpha_split_tmode_pair and adjust for above change.
16816         * config/alpha/alpha.md (movtf_internal): Adjust call to
16817         alpha_split_tfmode_pair and rely on it to swap the operands.
16818         (movti_internal): New insn and post-reload splitter.
16819         (movti): New expander.
16820
16821 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
16822
16823         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
16824         operands.
16825
16826 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
16827
16828         * rtlanal.c (global_reg_mentioned_p_1,
16829         global_reg_mentioned_p): Remove.
16830         * rtl.h: Remove the prototype for global_reg_mentioned_p.
16831
16832         * flow.c (initialize_uninitialized_subregs): Make it static.
16833         * rtl.h: Remove the prototype for
16834         initialize_uninitialized_subregs.
16835
16836         * function.c (instantiate_virtual_regs): Make it static.
16837         * function.h: Remove the prototype for
16838         instantiate_virtual_regs.
16839
16840         * regmove.c (regmove_optimize, combine_stack_adjustments):
16841         Make them static.
16842         * rtl.h: Remove the prototypes for regmove_optimize and
16843         combine_stack_adjustments.
16844
16845 2006-01-17  Roger Sayle  <roger@eyesopen.com>
16846
16847         * config/i386/i386.c (COSTS_N_BYTES): New macro.
16848         (size_cost): Encode costs in bytes so that a reg-reg addition is
16849         equivalent to COSTS_N_INSNS(1).
16850         (override_options): Use the size_cost.branch_cost as the default
16851         ix86_branch_cost when optimizing for size.
16852
16853 2006-01-18  Ben Elliston  <bje@au.ibm.com>
16854
16855         * Makefile.in (D32PBIT_FUNCS): New.
16856         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
16857         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
16858         D64PBIT_FUNCS and D128PBIT_FUNCS.
16859         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
16860         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
16861         D128PBIT are set.
16862         (decnumber_dep): Define.
16863         * doc/libgcc.texi (Decimal float library routines): New node.
16864         * config/dfp-bit.h, config/dfp-bit.c: New files.
16865
16866 2006-01-18  Ben Elliston  <bje@au.ibm.com>
16867
16868         * expr.c (emit_move_change_mode): Always adjust addresses, not
16869         just during reload.  Copy replacements only during reload.
16870         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
16871         emit_move_via_integer.
16872
16873 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
16874
16875         * Makefile.in (check-%, check-consistency): Use $${srcdir}
16876         instead of $(srcdir) and ${srcdir}.
16877
16878 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
16879
16880         PR target/592
16881         PR middle-end/11135
16882         * arm.h (struct machine_function): Add pic_reg.
16883         * arm.c (arm_pic_register): Make unsigned.
16884         (arm_override_options): Only set arm_pic_register if
16885         TARGET_SINGLE_PIC_BASE.
16886         (use_return_insn): Only test for a pic register if it is fixed.
16887         (arm_compute_save_reg0_reg12_mask): Likewise.
16888         (thumb_compute_save_reg_mask): Likewise.
16889         (legitimate_pic_operand): Factor out some known invariants.
16890         (legitimize_pic_address): If we don't have a fixed pic register,
16891         then set up a pseudo in the function entry sequence.  Handle the
16892         pic base being in a pseudo.
16893         (arm_load_pic_register): Handle the pic register being in a pseudo.
16894         (arm_expand_prologue): Only set up the pic register if it is fixed.
16895         (thumb_expand_prologue): Likewise.
16896         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
16897         (pic_load_addr_based_insn): Likewise.
16898         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
16899         fixed.
16900
16901 2006-01-18  Ben Elliston  <bje@au.ibm.com>
16902
16903         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
16904         decimal float modes for all floating point registers.
16905
16906         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
16907         match_code "mem" with match_test "macho_lo_sum_memory_operand".
16908
16909 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
16910
16911         PR c/25682
16912         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
16913         even when the pointer is not NULL.
16914
16915 2006-01-16  Ian Lance Taylor  <ian@airs.com>
16916
16917         * common.opt (ftoplevel-reorder): New option.
16918         * cgraph.c (cgraph_asm_nodes): New global variable.
16919         (cgraph_asm_last_node): New static variable.
16920         (cgraph_order): New global variable.
16921         (cgraph_create_node): Set new order field.
16922         (cgraph_varpool_node): Likewise.
16923         (decide_is_variable_needed): Return true if not
16924         flag_toplevel_reorder.
16925         (cgraph_add_asm_node): New function.
16926         * cgraph.h (struct cgraph_node): Add order field.
16927         (struct cgraph_varpool_node): Add order field.
16928         (struct cgraph_asm_node): Define.
16929         (cgraph_asm_nodes, cgraph_order): Declare.
16930         (cgraph_add_asm_node): Declare.
16931         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
16932         function.
16933         (cgraph_varpool_assemble_pending_decls): Call it.
16934         (cgraph_output_pending_asms): New static function.
16935         (cgraph_finalize_compilation_unit): Call it.
16936         (struct cgraph_order_sort): Define.
16937         (cgraph_output_in_order): New static function.
16938         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
16939         !flag_toplevel_reorder case.
16940         * c-parser.c: Include "cgraph.h".
16941         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
16942         assemble_asm.
16943         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
16944         than -fno-unit-at-a-time.
16945         * doc/invoke.texi (Option Summary): Mention
16946         -fno-toplevel-reorder.
16947         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
16948         -funit-at-a-time documentation.
16949
16950 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
16951             Kazu Hirata  <kazu@codesourcery.com>
16952
16953         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
16954
16955 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
16956
16957         * Makefile.in (FUNCTION_H): New.  Use it instead of
16958         function.h throughout the file.
16959         * function.h: Include tree.h.
16960
16961 2006-01-17  Ben Elliston  <bje@au.ibm.com>
16962
16963         * recog.c: Separate some functions with whitespace.
16964
16965 2006-01-16  Richard Henderson  <rth@redhat.com>
16966
16967         Merge from gomp branch:
16968         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
16969         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
16970         and rename from struct inline_data.  Rename callee* to dst*;
16971         caller* to src*; add copy_decl hook, transform_call_graph_edges,
16972         transform_new_cfg, transform_return_to_modify, and
16973         transform_lang_insert_block flags; remove cloning_p, versioning_p,
16974         update_clones_p.
16975         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
16976         (copy_decl_for_dup): Remove.
16977         * tree-inline.c (struct inline_data): Move to header.
16978         (insert_decl_map): Export.
16979         (remap_decl): Update for member name changes.  Use copy_decl hook.
16980         Allow for replacement to be a non-decl.  Remove dead code.
16981         (remap_type_1): Check for existing mapping.
16982         (remap_type): Export.
16983         (remap_decls): Update for member name changes.
16984         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
16985         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
16986         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
16987         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
16988         (tree_function_versioning, build_duplicate_type): Likewise.
16989         (copy_body_r): Likewise.  Export.
16990         (copy_decl_for_dup): Split into ...
16991         (copy_decl_for_dup_finish, copy_decl_to_var,
16992         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
16993         (replace_ref_tree, inlining_p): Remove.
16994
16995 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
16996
16997         * ifcvt.c (if_convert): Make it static.
16998         * rtl.h: Remove the prototype for if_convert.
16999
17000         * local-alloc.c (local_alloc): Make it static.
17001         * rtl.h: Remove the prototype for local_alloc.
17002
17003         * loop.c (loop_optimize): Make it static.
17004         * cfgloop.h: Remove the prototype for loop_optimize.
17005         * rtl.h: Likewise.
17006
17007 2006-01-16  DJ Delorie  <dj@redhat.com>
17008
17009         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
17010         mems.
17011
17012 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17013
17014         * pa.md: Disparage copies between general and floating-point registers
17015         in 32-bit move patterns.
17016
17017 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
17018
17019         PR testsuite/25741
17020         * Makefile.in (check-%): Depend on site.exp instead of
17021         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
17022         directories.
17023
17024 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
17025
17026         * global.c (global_alloc): Make it static.
17027         * rtl.h: Remove the prototype for global_alloc.
17028
17029 2006-01-16  Richard Guenther  <rguenther@suse.de>
17030
17031         * tree-ssa-alias.c (struct used_part): Add write_only field.
17032         (get_or_create_used_part_for): Initialize it to true.
17033         (create_overlap_variables_for): Don't create structure variables
17034         for structures that only are written to.
17035         (find_used_portions): Handle MODIFY_EXPR to track whether a
17036         structure is only written to.
17037
17038 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
17039
17040         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
17041         static.
17042         * basic-block.h: Remove the prototype for
17043         partition_hot_cold_basic_blocks.
17044
17045 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
17046
17047         * cppspec.c (lang_specific_spec_functions): Remove.
17048         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
17049         * gcc.h (lang_specific_spec_functions): Remove.
17050         * gccspec.c (lang_specific_spec_functions): Remove.
17051
17052 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
17053
17054         * combine.c (record_value_for_reg): Invalidate registers
17055         if INSN is null.
17056         (record_dead_and_set_regs_1): Likewise, by passing them to
17057         record_value_for_reg.
17058         (record_dead_and_set_regs): Invalidate stores made by a
17059         call.  We do not combine across a call, but we still
17060         relied on equivalences.
17061
17062 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
17063
17064         * tree-vrp.c (extract_range_from_binary_expr): Cope with
17065         vrp_int_const_binop returning non-constant nodes.
17066
17067 2006-01-16  Paul Brook  <paul@codesourcery.com>
17068
17069         * config/m68k/m68k.c (output_move_const_into_data_reg):
17070         Output correct mnemonic for mvz and mvs.
17071
17072 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
17073
17074         * rtl-factoring.c: Add sequence abstraction algorithm.
17075         * cfgcleanup.c (outgoing_edges_match): Extra checks.
17076         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
17077         ABNORMAL edges.
17078         (block_has_preserve_label): New function.
17079         * common.opt: Register new pass.
17080         * Makefile.in: Ditto.
17081         * passes.c: Ditto.
17082         * timevar.def: Ditto.
17083         * tree-pass.h: Ditto.
17084         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
17085         * rtl.h (make_jump_insn_raw): Add forward decl.
17086         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
17087
17088 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
17089             Roger Sayle  <roger@eyesopen.com>
17090
17091         * fold-const.c (fold_minmax): New static function.
17092         (fold_binary) <MIN_EXPR>: Call it.
17093         <MAX_EXPR>: Likewise.
17094         * stor-layout.c (place_field): Use DECL_SIZE consistently
17095         in the computation of the new record size.
17096
17097 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
17098
17099         * cse.c (cse_condition_code_reg): Make it static.
17100         * rtl.h: Remove the prototype for cse_condition_code_reg.
17101
17102         * combine.c (combine_instructions): Make it static.
17103         * rtl.h: Remove the prototype for combine_instructions.
17104
17105 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17106
17107         PR target/25168
17108         * tree.c (get_file_function_name_long): Concatenate the first global
17109         object name with a string derived from the input filename of the object
17110         for type "F".
17111
17112 2006-01-16  Ben Elliston  <bje@au.ibm.com>
17113
17114         * config/i386/winnt-stubs.c: Update FSF address.
17115         * config/xtensa/ieee754-df.S: Ditto.
17116         * config/xtensa/ieee754-sf.S: Ditto.
17117
17118 2006-01-14  Ian Lance Taylor  <ian@airs.com>
17119
17120         * ifcvt.c (noce_init_if_info): New static function, broken out of
17121         noce_process_if_block.
17122         (noce_process_if_block): Call noce_init_if_info.
17123         (check_cond_move_block): New static function.
17124         (cond_move_process_if_block): New static function.
17125         (process_if_block): Call cond_move_process_if_block.
17126
17127 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
17128
17129         * cselib.c (hash_table): Rename to cselib_hash_table.
17130         (cselib_clear_table, discard_useless_values,
17131         remove_useless_values, cselib_lookup_mem, cselib_lookup,
17132         cselib_init, cselib_finish): Adjust uses of hash_table.
17133
17134 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
17135
17136         PR tree-optimization/25485
17137         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
17138         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
17139         is known to be false and true, respectively.
17140
17141 2006-01-14  Richard Guenther  <rguenther@suse.de>
17142
17143         PR tree-optimization/22548
17144         PR tree-optimization/22555
17145         PR tree-optimization/22501
17146         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
17147         * params.def (salias-max-array-elements): New parameter.
17148         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
17149         * doc/invoke.texi (salias-max-array-elements): Document.
17150         * tree-flow-inline.h (var_can_have_subvars): We also handle
17151         arrays now.
17152         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
17153         COMPONENT_REF.
17154         * tree-ssa-structalias.c (params.h): Include.
17155         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
17156         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
17157         (get_constraint_for): For ADDR_EXPR operating on something
17158         containing an ARRAY_REF, add all subvars to the solution.
17159         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
17160         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
17161         for creating MUST_DEFs.
17162         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
17163
17164 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
17165
17166         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
17167         functions.
17168         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
17169         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
17170         number_of_iterations_le): New functions.
17171         (number_of_iterations_special): Removed.
17172         (number_of_iterations_exit): Do not use number_of_iterations_special.
17173         * tree.c (unsigned_type_for): Always return integer type.
17174
17175 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
17176         Richard Guenther  <rguenther@suse.de>
17177
17178         PR rtl-optimization/24257
17179         * gcse.c (find_moveable_store): Only consider a store movable
17180         when the SET_SRC of the insn can be assigned to a register.
17181
17182 2006-01-14  Ian Lance Taylor  <ian@airs.com>
17183
17184         * tree.c (tree_not_class_check_failed): New function.
17185         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
17186         (tree_not_class_check_failed): Declare.
17187
17188 2006-01-13  Ian Lance Taylor  <ian@airs.com>
17189
17190         * reload1.c (do_output_reload): Add assertion rejecting a
17191         CALL_INSN.
17192
17193 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
17194
17195         * combine.c (struct reg_stat): Add new fields truncation_label and
17196         truncated_to_mode.
17197         (record_value_for_reg): Reset truncated_to_mode.
17198         (record_truncated_value): New function.
17199         (check_promoted_subreg): Call it.  Rename to check_conversions.
17200         (combine_instructions): Rename check_promoted_subreg to
17201         check_conversions.
17202         (reg_truncated_to_mode): New function.
17203         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
17204         (gen_lowpart_or_truncate): New function.
17205         (force_to_mode): Use it instead of gen_lowpart.
17206
17207 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
17208
17209         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
17210         VAR is a tag, not its type tag.
17211
17212 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
17213
17214         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
17215         alternatives to match style of other entries.
17216         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
17217
17218 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
17219
17220         PR tree-optimization/25771
17221         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
17222         SSA_NAMES.
17223
17224 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17225
17226         PR tree-opt/24365
17227         * tree-inline.c (declare_return_variable): If the return variable
17228         was marked as a non gimple complex, set the return slot variable
17229         to be a non gimple comple variable.
17230
17231 2006-01-13  Richard Guenther  <rguenther@suse.de>
17232
17233         * builtins.c (expand_builtin_sincos): New function.
17234         (expand_builtin_mathfn_3): Remove dead code, sin and cos
17235         do not set errno.
17236         (expand_builtin): Expand sincos using expand_builtin_sincos.
17237
17238 2006-01-12  DJ Delorie  <dj@redhat.com>
17239
17240         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
17241         shift counts, separate SI shifts for m32c vs m16c, pass shift type
17242         so that constant shifts can be split.
17243         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
17244         (m32c_valid_pointer_mode): Make static.
17245         (shift_gen_func_for): New.
17246         (m32c_prepare_shift): Use it.  Split large const shifts into
17247         multiple shifts.
17248         * config/m32c/predicates.md (shiftcount_operand): Allow more
17249         general operands.
17250         (longshiftcount_operand): New.
17251         * doc/md.texi (Machine Constraints): Document In6.
17252
17253 2006-01-13  Ben Elliston  <bje@au.ibm.com>
17254
17255         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
17256         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
17257         documentation.
17258
17259 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
17260
17261         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
17262         to try to avoid clobbering pieces of structures when we know
17263         something about the whole structure.
17264         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
17265
17266 2006-01-13  Ben Elliston  <bje@au.ibm.com>
17267
17268         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
17269         return in memory, as this is no limitation is no longer present.
17270
17271 2006-01-12  DJ Delorie  <dj@redhat.com>
17272
17273         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
17274         mova with fb, and for fb+0 -> An.
17275
17276         * config/m32c/mov.md (peephole2): Fix enabling logic.
17277
17278         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
17279         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
17280         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
17281         FINI_ARRAY_SECTION_ASM_OP): Define.
17282
17283         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
17284         variable.
17285         (m32c_legitimize_reload_address): New logic to reload FB to An.
17286         (m32c_output_reg_push): Add newline.
17287         (m32c_output_reg_pop): Likewise.
17288
17289 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
17290
17291         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
17292
17293 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
17294
17295         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
17296
17297 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
17298
17299         * config/sh/predicates.md (sh_rep_vec): Add parallel to
17300         match_code.
17301
17302 2006-01-11  Ben Elliston  <bje@au.ibm.com>
17303
17304         * rtlanal.c (find_reg_note): Assert insn is not null.
17305
17306 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
17307
17308         * df-scan.c (df_hard_reg_init): Move declaration of i outside
17309         ifdef.
17310
17311 2006-01-11  Jeff Law  <law@redhat.com>
17312
17313         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
17314         hold edge pairs.
17315         (mark_threaded_blocks, register_jump_thread): New functions.
17316         (thread_through_all_blocks): Remove unwanted argument.  No
17317         longer rely on e->aux to communicate thread target info.
17318         Call mark_threaded_blocks.  Release the threaded_blocks
17319         bitmap and threaded_edges vector when complete.
17320         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
17321         (threaded_blocks): Remove.
17322         (tree_ssa_dominator_optimize): Remove initialization and
17323         finalization of threaded_blocks.  Simplify call to
17324         thread_through_all_blocks.
17325         (thread_across_edge): Call register_jump_thread rather than
17326         storing thread information into e->aux.
17327         (free_all_edge_infos): Simplify now that e->aux is no longer
17328         used to communicate with thread_through_all_blocks.
17329         * tree-flow.h (thread_through_all_blocks): Update prototype.
17330         (register_jump_thread): Prototype.
17331
17332 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
17333
17334         * df-core.c (df_compact_blocks, df_bb_replace): Use
17335         SET_BASIC_BLOCK instead of BASIC_BLOCK.
17336
17337 2006-01-11  Richard Guenther  <rguenther@suse.de>
17338
17339         PR tree-optimization/25734
17340         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
17341         stop propagation after successful propagation to the LHS.
17342
17343 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
17344
17345         * basic-block.h (control_flow_graph): Change the type of
17346         x_basic_block_info to VEC(basic_block,gc) *.
17347         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
17348         basic_block_info.
17349         (SET_BASIC_BLOCK): New.
17350         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
17351         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
17352         * cfgbuild.c (find_basic_blocks): Likewise.
17353         * cfglayout.c (fixup_reorder_chain): Likewise.
17354         * cfgrtl.c (create_basic_block_structure,
17355         rtl_create_basic_block): Likewise.
17356         * ifcvt.c (find_if_case_1): Likewise.
17357         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
17358         Likewise.
17359
17360 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
17361
17362         * Makefile.in: Removed rotted odf.c entry.
17363
17364 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
17365
17366         PR target/25706
17367         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
17368         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
17369         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
17370         output pattern modifier, not %e.
17371         * config/cris/cris.c (cris_op_str): Update comment about pattern
17372         modifier.
17373         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
17374         before falling through into...
17375         <case 'E'>: Redefined from old 'e' case.
17376
17377 2006-01-11  Jan Hubicka  <jh@suse.cz>
17378
17379         PR target/25042
17380         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
17381
17382 2006-01-11  Jan Hubicka  <jh@suse.cz>
17383
17384         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
17385         * i386.c (x86_decompose_lea): Kill.
17386         (ix86_rtx_costs): Kill.
17387
17388 2006-01-11  Jan Hubicka  <jh@suse.cz>
17389
17390         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
17391         * cgraph.h (cgraph_node): Add inline_decl.
17392         (cgraph_insert_node_to_hashtable): Declare.
17393         (save_inline_function_body): Declare.
17394         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
17395         clones.
17396         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
17397         (cgraph_function_versioning): Update call of tree_function_versioning.
17398         (save_inline_function_body): New function.
17399         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
17400         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
17401         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
17402         (cgraph_default_inline_p): Likewise.
17403         (cgraph_decide_inlining_incrementally): Likewise.
17404         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
17405         (copy_bb): Kill saving; do updating of clones.
17406         (copy_cfg_body): Kill saving.
17407         (initialize_inlined-parameters): Likewise.
17408         (expand_call_inline): Likewise.
17409         (save_body): Kill.
17410         (tree_function_versioning): New parameter "update_clones".
17411         (inlining_p): Kill saving.
17412         * tree-inline.h (tree_function_versioning): Update prototype.
17413         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
17414         saving.
17415
17416 2006-01-11  Ian Lance Taylor <ian@airs.com>
17417
17418         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
17419         Allow undoing set of machine mode.
17420         (do_SUBST): Use enums instead of is_int.
17421         (do_SUBST_MODE): New function.
17422         (SUBST_MODE): New macro.
17423         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
17424         reg and trying to replace reg_regno_rtx with a new register.
17425         (undo_all): Use new enums, handle undoing a PUT_MODE change.
17426         (simplify_set): Use SUBST_MODE.
17427         (distribute_notes): Remove code that tried to update reg notes
17428         for regno_reg_rtx changes.
17429
17430 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
17431
17432         PR tree-optimization/23109
17433         PR tree-optimization/23948
17434         PR tree-optimization/24123
17435
17436         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
17437         * tree-cfg.c (single_noncomplex_succ): New.
17438         * tree-flow.h (single_noncomplex_succ): Declare it.
17439         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
17440         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
17441         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
17442         insert_bb, register_division_in, insert_reciprocals,
17443         replace_reciprocal, free_bb): New.
17444         (execute_cse_reciprocals_1): Rewritten.
17445         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
17446         Do not commit any edge insertion.  Always compute dominators and
17447         create the allocation pool.
17448         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
17449         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
17450         * targhooks.c (default_min_divistions_for_recip_mul): New.
17451         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
17452         * passes.c (init_optimization_passes): Run recip after tree loop
17453         optimizations.
17454         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
17455
17456 2006-01-11  Danny Berlin <dberlin@dberlin.org>
17457             Kenneth Zadeck <zadeck@naturalbridge.com>
17458
17459         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
17460         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
17461         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
17462         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
17463         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
17464         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
17465         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
17466         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
17467         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
17468         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
17469         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
17470         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
17471         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
17472         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
17473         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
17474         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
17475         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
17476         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
17477         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
17478         DF_SCAN_POST_ALLOC): New macros.
17479         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
17480         df_free_bb_function, df_local_compute_function, df_init_function,
17481         df_dataflow_function, df_confluence_function_0,
17482         df_confluence_function_n, df_transfer_function,
17483         df_finalizer_function, df_free_function, df_dump_problem_function,
17484         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
17485         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
17486         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
17487         df_urec_bb_info, ) New types.
17488         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
17489         variables.
17490         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
17491         df_analyze_simple_change_some_blocks,
17492         df_analyze_simple_change_one_block, df_compact_blocks,
17493         df_bb_replace, df_bb_regno_last_use_find,
17494         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
17495         df_insn_regno_def_p, df_find_def, df_find_use,
17496         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
17497         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
17498         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
17499         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
17500         debug_df_chain, df_get_dependent_problem, df_chain_create,
17501         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
17502         df_grow_bb_info, df_chain_dump, df_print_bb_index,
17503         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
17504         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
17505         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
17506         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
17507         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
17508         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
17509         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
17510         df_ref_remove, df_insn_refs_delete, df_refs_delete,
17511         df_reorganize_refs, df_set_state, df_hard_reg_init,
17512         df_read_modify_subreg_p) New public functions.
17513         * df-core.c: The core dataflow solver and glue routines for rtl
17514         dataflow.
17515         (df_init, df_add_problem, df_set_blocks, df_finish,
17516         df_hybrid_search_forward, df_hybrid_search_backward,
17517         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
17518         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
17519         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
17520         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
17521         df_reg_defined, df_find_use, df_reg_used, df_dump,
17522         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
17523         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
17524         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
17525         debug_df_useno, reset_df_after_reload): New functions.
17526         * df-scan.c: The scanning fuctions, once in df.c, completely
17527         rewritten so that they now fully model the functionality of
17528         register usage at the backend.
17529         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
17530         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
17531         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
17532         df_grow_insn_info, df_rescan_blocks, df_ref_create,
17533         df_get_artificial_defs, df_get_artificial_uses,
17534         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
17535         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
17536         df_refs_delete, df_reorganize_refs, df_set_state,
17537         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
17538         df_def_record_1, df_defs_record, df_uses_record,
17539         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
17540         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
17541         df_record_exit_block_uses, df_hard_reg_init): New functions.
17542
17543         * df-problems.c: Seven concrete dataflow problems that use the
17544         scanning in df-scan.c and are solved by the engine in df-core.c.
17545         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
17546         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
17547         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
17548         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
17549         df_ru_free_bb_info, df_ru_alloc,
17550         df_ru_bb_local_compute_process_def,
17551         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
17552         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
17553         df_ru_transfer_function, df_ru_free, df_ru_dump,
17554         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
17555         df_rd_free_bb_info, df_rd_alloc,
17556         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
17557         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
17558         df_rd_transfer_function, df_rd_free, df_rd_dump,
17559         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
17560         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
17561         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
17562         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
17563         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
17564         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
17565         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
17566         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
17567         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
17568         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
17569         df_urec_mark_reg_change, df_urec_check_earlyclobber,
17570         df_urec_mark_reg_use_for_earlyclobber,
17571         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
17572         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
17573         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
17574         df_urec_dump, df_urec_add_problem, df_chain_alloc,
17575         df_chain_create_bb_process_use, df_chain_create_bb,
17576         df_chain_finalize, df_chain_free, df_chains_dump,
17577         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
17578         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
17579         df_reg_lifetime): New functions.
17580         * df.c: Deleted file.
17581         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
17582         consistent with new df api.
17583         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
17584         rest_of_handle_sms): Ditto.
17585         * web.c (unionfind_union, union_defs, entry_register, web_main):
17586         Ditto.
17587         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
17588         invariant_expr_equal_p, find_defs, check_dependencies,
17589         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
17590         free_inv_motion_data, move_loop_invariants): Ditto.
17591         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
17592         Update dependencies.
17593         (odf.c): Added defective entry that was deleted later in day.
17594         * sched-deps.c (sched_analyze_1): Ditto.
17595
17596 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
17597
17598         * tree-ssa-operands.c (get_expr_operands): Record addressable
17599         variables directly.  Do not call add_stmt_operands for CONST_DECLs
17600         and ARRAY_DECLs.
17601         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
17602         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
17603
17604 2006-01-11  Ben Elliston  <bje@au.ibm.com>
17605
17606         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
17607         function returns true in the positive case.
17608
17609 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17610
17611         PR target/20754
17612         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
17613         for SI, DI, SF and DF modes.  Add alternatives to copy between
17614         general and floating point registers to the 32-bit patterns.
17615         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
17616         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
17617         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
17618         generating 64-bit code.
17619         * config/pa/pa.c (output_move_double): Handle copies between general
17620         and floating registers.
17621
17622 2006-01-10  Stuart Hastings  <stuart@apple.com>
17623
17624         * config/i386/i386.md (set_got): Update.
17625         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
17626         (builtin_setjmp_receiver): Mach-O support.
17627         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
17628         (GOT_SYMBOL_NAME): Define.
17629         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
17630         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
17631         * config/i386/i386.c (override_options): Revise for Darwin.
17632         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
17633         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
17634         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
17635         * config/i386/i386-protos.h (output_set_got): Likewise.
17636         * config/darwin.c (machopic_legitimize_pic_address): Update
17637         regs_ever_live[].
17638
17639 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
17640
17641         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
17642         when MODE isn't BLKmode.
17643
17644 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
17645
17646         PR rtl-optimization/25367
17647         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
17648
17649 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
17650
17651         PR target/25718
17652         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
17653         for a negative bound.
17654
17655 2006-01-10  Richard Guenther  <rguenther@suse.de>
17656
17657         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17658         Never override with anything constraint.
17659
17660 2006-01-10  Jan Beulich  <jbeulich@novell.com>
17661
17662         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
17663         256 bits when optimize_size.
17664
17665 2006-01-10  Jan Beulich  <jbeulich@novell.com>
17666
17667         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
17668         MASK_ALIGN_DOUBLE.
17669         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
17670         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
17671         arguments.
17672
17673 2006-01-10  Ben Elliston  <bje@au.ibm.com>
17674
17675         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
17676         float modes.
17677         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
17678         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
17679         (USE_FP_FOR_ARG): Reject decimal float modes.
17680         (function_arg_advance): Likewise.
17681         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
17682         (rs6000_handle_altivec_attribute): Do not permit decimal floating
17683         point types in AltiVec vectors.
17684         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
17685         (rs6000_libcall_value): Likewise.
17686
17687 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
17688
17689         * config/xtensa/ieee754-df.S: New file.
17690         * config/xtensa/ieee754-sf.S: New file.
17691         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
17692         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
17693         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
17694
17695 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
17696
17697         * config/sh/predicates.md (binary_float_operator,
17698         binary_logical_operator, commutative_float_operator,
17699         equality_comparison_operator, greater_comparison_operator,
17700         less_comparison_operator, logical_operator,
17701         noncommutative_float_operator, shift_operator,
17702         symbol_ref_operand, unary_float_operator): Remove redundant
17703         conditionals.
17704
17705 2006-01-09  Jeff Law  <law@redhat.com>
17706
17707         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
17708         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
17709         now unused arguments.  Callers updated.
17710         (eliminate_redundant_computations): Remove now unused arguments,
17711         callers updated.
17712         (local_fold): Remove, no longer used.
17713         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
17714         and moved to...
17715         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
17716         (simplify_cond): New function.
17717         (forward_propagate_into_cond): Call simplify_cond.
17718
17719 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
17720
17721         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
17722         (*vec_extractv2di_1_sse): New.
17723
17724 2006-01-09  Ben Elliston  <bje@au.ibm.com>
17725
17726         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
17727
17728 2006-01-08  Richard Guenther  <rguenther@suse.de>
17729
17730         * tree-ssa-structalias.c (get_constraint_for): Remove
17731         anyoffset argument.
17732         (get_constraint_for_component_ref): Likewise.
17733         (do_deref): Likewise.
17734         (get_constraint_for): Likewise.
17735         (do_structure_copy): Likewise.
17736         (handle_ptr_arith): Likewise.
17737         (find_func_aliases): Likewise.  Remove unused need_anyoffset
17738         variable.
17739
17740 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
17741             Kaz Kojima  <kkojima@gcc.gnu.org>
17742
17743         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
17744         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
17745         (EXTRA_CONSTRAINT_C16): Remove.
17746         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
17747         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
17748         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
17749         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
17750         constants of SHmedia.  Handle nested constant expressions of
17751         SHmedia correctly.
17752         (andcosts): Fix the costs for SHmedia constants.
17753         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
17754         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
17755         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
17756         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
17757         (movv4hi_i, movv2si_i): Likewise.
17758         (movsi_const): Adjust the second operand of ior so to match with
17759         the Csu constraint.
17760         (movdi_const, movdi_const_32bit): Likewise.
17761         (movdi_const_16bit+1): Don't sign-extend LOW.
17762         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
17763         step.
17764         (*double_shori): Fix the split condition.  Use GEN_INT instead
17765         of get_int_mode calls.  Mask lower 16-bit of the argument of
17766         the last GEN_INT.
17767         (sym2GOTPLT): Remove.
17768         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
17769         gen_rtx_UNSPEC.
17770         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
17771         instead of EXTRA_CONSTRAINT_C16.
17772
17773 2006-01-07  Ian Lance Taylor  <ian@airs.com>
17774             David Edelsohn  <edelsohn@gnu.org>
17775
17776         PR rtl-optimization/25662
17777         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
17778         for constant operands instead of simplify_gen_binary.
17779         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
17780         after trying simplify_binary_operation
17781
17782 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
17783
17784         * tree.c (iterative_hash_expr): Hash decls based on UID.
17785
17786 2006-01-06  Eric Christopher  <echristo@apple.com>
17787
17788         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
17789         (TARGET_UNWIND_EMIT): Fix spelling.
17790         * target.h (gcc_target): Add except_table_label.
17791         * except.c (output_function_exception_table): Use.
17792         * varasm.c (default_emit_except_table_label): New.
17793         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
17794         define.
17795         (asm_out): Add here.
17796         * output.h (default_emit_except_table_label): Prototype.
17797         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
17798         * config/darwin.c (darwin_emit_except_table_label): Define.
17799         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
17800
17801 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
17802
17803         PR tree-optimization/18527
17804         * tree-ssa-loop-niter.c (number_of_iterations_cond,
17805         number_of_iterations_special, number_of_iterations_exit):
17806         Move base and step of an iv to a single structure.  Add
17807         no_overflow flag, and use it in # of iterations analysis.
17808         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
17809         folded_casts argument.
17810         (simple_iv): Pass base and step in a structure.  Set no_overflow
17811         flag.
17812         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
17813         Evaluate expensiveness of computing # of iterations instead of
17814         the final expression.
17815         * tree-scalar-evolution.h (affine_iv): New structure.
17816         (simple_iv): Declaration changed.
17817         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
17818         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
17819         find_givs_in_stmt): Changed due to simple_iv change.
17820
17821 2006-01-06  Jeff Law  <law@redhat.com>
17822
17823         PR ada/24994
17824         * tree-cfg.c (bsi_replace): Rename final argument from
17825         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
17826         change (stmt -> orig_stmt).
17827         * tree-eh.c (verify_eh_throw_stmt_node): New function.
17828         (bsi_remove): Add new argument.  Remove EH information
17829         if requested.
17830         (verify_eh_throw_table_statements): New function.
17831         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
17832         updated.
17833         * tree-optimize.c (execute_free_cfg_annotations): Verify
17834         the EH throw statement table after removing annotations.
17835         * except.h (verify_eh_throw_table_statements): Prototype.
17836         * tree-flow.h (bsi_remove): Update prototype.
17837         * tree-vrp.c (remove_range_assertions): Add new argument to
17838         bsi_remove call.
17839         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
17840         * tree-complex.c (expand_complex_div_wide): Likewise.
17841         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
17842         * tree-tailcall.c (eliminate_tailcall): Likewise.
17843         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
17844         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
17845         * tree-nrv.c (tree_nrv): Likewise.
17846         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
17847         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
17848         (combine_blocks): Likewise.
17849         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
17850         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
17851         (cleanup_control_flow): Likewise.
17852         (remove_forwarder_block): Likewise.
17853         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
17854         * tree-sra.c (sra_replace): Likewise.
17855         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
17856         (forward_propagate_single_use_vars): Likewise.
17857         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
17858         * tree-inline.c (expand_call_inline): Likewise.
17859         * tree-vect-transform.c (vect_transform_loop): Likewise.
17860         * tree-outof-ssa.c (rewrite_trees): Likewise.
17861         * tree-cfg.c (make_goto_expr_edges): Likewise.
17862         (cleanup_dead_labels): Likewise.
17863         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
17864         (bsi_move_before, bsi_move_after): Likewise.
17865         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
17866         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
17867
17868 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
17869
17870         PR tree-opt/25528
17871         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
17872         and IMAGPART_EXPR.
17873         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
17874         on non gimple variables.  Also add checks at the top for decls and
17875         mtags.
17876         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
17877         complex types.
17878         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
17879         and IMAGPART_EXPR for creating MUST_DEFs.
17880         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
17881         and NAME_MEMORY_TAG separately from the DECLs.
17882
17883 2006-01-06  Richard Guenther  <rguenther@suse.de>
17884
17885         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
17886         annotation, if necessary.
17887         * tree-ssa-pre.c (create_expression_by_pieces): Remove
17888         redundant calls to update_stmt.
17889         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
17890         Likewise.
17891
17892 2006-01-05  Richard Henderson  <rth@redhat.com>
17893
17894         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
17895
17896 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
17897
17898         * c-typeck.c: Update copyright date.
17899
17900 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
17901
17902         * c-typeck.c (build_c_cast): Always warn when casting
17903         from a pointer to an integer of different size, even if
17904         the node was constant.
17905
17906 2006-01-05  Richard Guenther  <rguenther@suse.de>
17907
17908         PR tree-optimization/22555
17909         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
17910         if one structure field is an array.
17911         * tree-ssa-operands.c (get_expr_operands): Continue scanning
17912         operands even if we found a subvar, but ignore VOPs in this
17913         case.
17914         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
17915         for renaming.
17916         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
17917
17918 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
17919
17920         PR middle-end/24998
17921         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
17922
17923 2006-01-05  Richard Guenther  <rguenther@suse.de>
17924             Diego Novillo  <dnovillo@redhat.com>
17925
17926         * tree-pass.h (TODO_remove_unused_locals): Define.
17927         * gimple-low.c (expand_var_p, remove_useless_vars,
17928         pass_remove_useless_vars): Remove.  Update all users.
17929         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
17930         (remove_unused_locals): New function.
17931         * tree-flow.h (remove_unused_locals): Declare.
17932         * passes.c (execute_todo): Call remove_unused_locals if
17933         TODO_remove_unused_locals is set.
17934         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
17935         * tree-ssa-dce.c (pass_dce): Likewise.
17936         * tree-outof-ssa.c (pass_del_ssa): Likewise.
17937
17938 2006-01-05  Richard Guenther  <rguenther@suse.de>
17939
17940         * tree-flow.h (struct fieldoff): Decompose field to
17941         type, size and decl.
17942         * tree-ssa-alias.c (create_sft): Take type as parameter.
17943         (create_overlap_variables_for): Store type, size and decl
17944         in the fieldoff structure.
17945         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
17946         of struct fieldoff.
17947         (push_fields_onto_fieldstack): Likewise.
17948         (create_variable_info_for): Likewise.  Use offset for the
17949         SFT name if the decl is not available.
17950
17951 2006-01-04  Paul Brook  <paul@codesourcery.com>
17952
17953         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
17954
17955 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
17956
17957         * lambda-code.c (can_put_in_inner_loop): Relax
17958         restrictions.
17959         (can_put_after_inner_loop): New function.
17960         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
17961         (perfect_nestify): Change to make copies and modify uses.
17962
17963 2006-01-04  Richard Henderson  <rth@redhat.com>
17964
17965         Merge from gomp branch:
17966         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
17967         via integer constant.
17968         (pragma_lex): Remove.
17969         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
17970         rather than parsing it.
17971         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
17972         handle_pragma_extern_prefix): Add %< %> quotes.
17973         (registered_pragmas): New.
17974         (c_register_pragma_1): New.
17975         (c_register_pragma): Use it.
17976         (c_register_pragma_with_expansion): Likewise.
17977         (c_invoke_pragma_handler): New.
17978         (init_pragma): Use cpp_register_deferred_pragma directly for
17979         pch_preprocess.
17980         * c-pragma.h (enum pragma_kind): New.
17981         (pragma_handler): New.
17982         (c_invoke_pragma_handler): Declare.
17983         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
17984         CPP_PRAGMA_EOL.
17985         * c-common.h (c_common_pch_pragma): Update decl.
17986         * Makefile.in (c-parser.o): Update dependencies.
17987         (GTFILES): Add c-pragma.h.
17988         * c-parser.c (struct c_token): Add pragma_kind.
17989         (struct c_parser): Add in_pragma.
17990         (c_lex_one_token): Always initialize keyword and pragma_kind.
17991         Extract data for CPP_PRAGMA.
17992         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
17993         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
17994         Don't allow CPP_PRAGMA_EOL if in_pragma.
17995         (c_parser_consume_pragma): New.
17996         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
17997         (c_parser_skip_to_end_of_parameter): Likewise.
17998         (c_parser_skip_to_end_of_block_or_statement): Likewise.
17999         (c_parser_skip_to_pragma_eol): New.
18000         (c_parser_external_declaration): Handle CPP_PRAGMA.
18001         (c_parser_compound_statement_nostart): Likewise.
18002         (c_parser_statement_after_labels): Likewise.
18003         (c_parser_pragma): New.
18004         (pragma_lex): Likewise.
18005         (c_parser_pragma_pch_preprocess): New.
18006         (c_parser_new): Merge into ...
18007         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
18008
18009 2006-01-04  Jeff Law  <law@redhat.com>
18010
18011         PR ada/24994
18012         * tree-cfg.c (bsi_replace): Remove the original statement
18013         from the EH throw statement table.
18014
18015 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
18016
18017         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
18018         make the prototype extern "C" and add throw ().
18019
18020         PR target/25554
18021         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
18022         and pos non-negative and pos + len <= 32.
18023         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
18024         drop pos + len < HOST_BITS_PER_WIDE_INT test.
18025         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
18026
18027         PR c/25559
18028         * c-common.c (handle_vector_size_attribute): Reject zero vector size
18029         as well as sizes not multiple of component size.
18030
18031         PR debug/25562
18032         * function.c (instantiate_expr): New function.
18033         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
18034         walk its DECL_VALUE_EXPR with instantiate_expr.
18035
18036         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
18037         DW_OP_deref{,_size} if address isn't going to be added.
18038
18039 2006-01-04  Ben Elliston  <bje@au.ibm.com>
18040
18041         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
18042         * config/fp-bit.c: Likewise.
18043
18044 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
18045
18046         * dominance.c: Add comment about why we use DFS numbering
18047         of dominance tree.
18048
18049 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
18050             Richard Henderson  <rth@redhat.com>
18051
18052         Merge from gomp-branch:
18053         * varasm.c (assemble_variable): Handle thread-local COMMON data.
18054         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
18055
18056 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
18057
18058         PR rtl-optimization/25578
18059         * combine.c (combine_simplify_rtx, force_to_mode): Don't
18060         pass a parameter to simplify_shift_const if changing ASHIFTRT
18061         to LSHIFTRT.
18062
18063 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
18064
18065         * builtins.c (get_builtin_sync_mem): New function.
18066         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
18067         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
18068         Call get_builtin_sync_mem to generate mem rtx.
18069
18070 2006-01-03  Richard Guenther  <rguenther@suse.de>
18071
18072         PR c/25183
18073         * stmt.c (add_case_node): Make sure to clear overflow flags
18074         from ranges.
18075
18076 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
18077
18078         Merge from gomp-branch.
18079         * config/sparc/sync.md: New file.
18080         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
18081         UNSPECV_LDSTUB): New constants.
18082         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
18083         * config/sparc/predicates.md (memory_reg_operand): New predicate.
18084         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
18085         prototype.
18086
18087 2006-01-03  Roger Sayle  <roger@eyesopen.com>
18088
18089         * combine.c (reg_subword_p): New predicate to test whether the
18090         destination of a set refers to a subword/piece of a register.
18091         (try_combine): Generalize the code to merge the setting of a
18092         pseudo to a constant followed by a set of a subword of that
18093         register to a constant.
18094
18095 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
18096
18097         * basic-block.h (control_flow_graph): Change the type of
18098         x_label_to_block_map to VEC(basic_block,gc) *.
18099         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
18100         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
18101
18102         * tree-ssa-propagate.c (cfg_blocks): Change the type to
18103         VEC(basic_block,heap) *.
18104         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
18105         ssa_prop_fini): Adjust the uses of cfg_blocks.
18106
18107 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
18108
18109         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
18110         COMPONENT_REFs.
18111         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
18112         hashing trees instead of a pointer hash.
18113         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
18114         compare for MEM_EXPR.
18115
18116         PR rtl-optimization/25130
18117         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
18118         when comparing MEMs for GCSE
18119
18120 2006-01-03  Ben Elliston  <bje@au.ibm.com>
18121
18122         * targhooks.h (default_decimal_float_supported_p): Declare.
18123         * targhooks.c (default_decimal_float_supported_p): Define.
18124         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
18125         `default_decimal_float_supported_p'.
18126         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
18127
18128 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
18129
18130         * combine.c (apply_distributive_law <SUBREG>): Check
18131         TRULY_NOOP_TRUNCATION.
18132
18133 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
18134
18135         * dwarf2out.c (have_switched_text_section): Delete.
18136         (have_multiple_function_sections): New.
18137         (have_location_lists): Make 'bool'.
18138         (add_AT_loc_list): Use 'true' not '1'.
18139         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
18140         (output_loc_list): Use have_multiple_function_sections.
18141         (output_ranges): Likewise.
18142         (dwarf2out_begin_function): Set have_multiple_function_sections if
18143         necessary.
18144         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
18145         Check function_section rather than DECL_SECTION_NAME.
18146         (dwarf2out_finish): Use have_multiple_function_sections.
18147         Don't clear have_location_lists.
18148
18149 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
18150             Jan Hubicka  <jh@suse.cz>
18151
18152         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
18153         case of conditional jump jumping to the next instruction.
18154         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
18155         cases of conditional jump jumping to the next instruction.
18156
18157 2006-01-02  Jan Hubicka  <jh@suse.cz>
18158
18159         * i386.c (*_cost): Add COSTS_N_INSNS.
18160         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
18161
18162 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
18163
18164         PR target/25259
18165         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
18166
18167 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
18168
18169         * config/arm/arm.c (all_fpus): Fix comment typo.
18170         * config/darwin.c: Likewise.
18171         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
18172         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
18173         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
18174
18175 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
18176
18177         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
18178         (rs6000_split_compare_and_swapqhi): New.
18179         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
18180         (sync_compare_and_swapqhi_internal): New.
18181         * config/rs6000/rs6000-protos.h: Declare.