OSDN Git Service

2006-12-05 Eric Christopher <echristo@apple.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-12-05  Eric Christopher  <echristo@apple.com>
2
3         * config/i386/i386.c (x86_output_aligned_bss): Move out
4         of COMMON_ASM_OP ifdef.
5
6 2006-12-05  Eric Christopher  <echristo@apple.com>
7
8         * config/darwin.h (DARWIN_EXTRA_SPECS): New.
9         (STARTFILE_SPEC): Use.
10         (DARWIN_DYLIB1_SPEC): New.
11         (DARWIN_CRT1_SPEC): New.
12         * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use
13         DARWIN_EXTRA_SPECS.
14         * config/i386/darwin.h: Ditto.
15         * config/rs6000/darwin.h: Ditto.
16
17 2006-12-05  Daniel Berlin  <dberlin@dberlin.org>
18
19         * tree-vrp.c (pass_vrp): Remove PROP_smt_usage.
20         * tree-complex.c (pass_lower_complex): Ditto.
21         * tree-ssa-ccp.c (pass_ccp): Ditto.
22         (pass_store_ccp): Ditto.
23         * tree-ssa-dom.c (pass_dominator): Ditto.
24         (pass_phi_only_cprop): Ditto.
25         * tree-sra.c (pass_sra): Ditto.
26         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
27         * tree-flow.h (updating_used_alone): Remove.
28         (updating_used_alone): Ditto.
29         * tree-ssa-alias.c (updating_used_alone): Remove variable.
30         (lhs_may_store_to): Remove function.
31         (recalculate_used_alone): Ditto.
32         (compute_may_aliases): Remove used_alone calculation.
33         * tree.h (struct tree_memory_tag): Remove is_used_alone and
34         old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE.
35         * tree-pass.h (PROP_smt_usage): Remove.
36         * passes.c (execute_todo): Remove used alone recalculation.
37         (execute_one_pass): Ditto.
38         * tree-ssa-operands.c (add_virtual_operand): Remove used_alone
39         stuff.
40
41 2006-12-05  Brooks Moses  <brooks.moses@codesourcery.com>
42
43         * doc/include/texinfo.tex: Update to version 2006-11-08.17.
44
45 2006-12-05  Zdenek Dvorak <dvorakz@suse.cz>
46
47         PR tree-optimization/14784
48         * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix.
49
50 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
51
52         Merge from gimple-tuples-branch.
53
54         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
55
56         * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with
57         GIMPLE_MODIFY_STMT.
58         (s390_gimplify_va_arg): Same.
59         * config/sparc/sparc.c (sparc_gimplify_va_arg): Same.
60         * config/sh/sh.c (sh_va_start): Same.
61         (sh_gimplify_va_arg_expr): Same.
62         * config/xtensa/xtensa.c (xtensa_va_start): Same.
63         (xtensa_gimplify_va_arg_expr): Same.
64         * config/ia64/ia64.c (ia64_gimplify_va_arg): Same.
65         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same.
66         * config/mips/mips.c (mips_va_start): Same.
67         (mips_gimplify_va_arg_expr): Same.
68
69         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
70
71         * Merge from mainline at revision 119445.
72
73         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
74
75         * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to
76         GIMPLE_MODIFY_STMT.
77         (spu_gimplify_va_arg_expr): Same.
78
79         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
80
81         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
82         Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
83         (xstormy16_expand_builtin_va_arg): Same.
84
85         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
86
87         * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR
88         to GIMPLE_MODIFY_STMT.
89
90         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
91
92         * config/alpha/alpha.c (va_list_skip_additions): Change all
93         occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
94         (alpha_va_start): Same.
95         (alpha_gimplify_va_arg_1): Same.
96         (alpha_gimplify_va_arg): Same.
97
98         2006-12-01  Aldy Hernandez  <aldyh@redhat.com>
99
100         * gimplify.c (gimplify_modify_expr): Remove FIXME comment.
101
102         2006-12-01  Aldy Hernandez  <aldyh@redhat.com>
103
104         * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to
105         GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to
106         GENERIC_TREE_TYPE.
107         * tree-complex.c: Same.
108         * tree-pretty-print.c: Same.
109         * tree.c: Same.
110         * tree.h: Same.
111         * builtins.c: Same.
112         * fold-const.c: Same.
113         * tree-ssa-dom.c: Same.
114         * tree-ssa-propagate.c: Same.
115         * tree-ssa-alias.c: Same.
116         * gimple-low.c: Same.
117         * dwarf2out.c: Same.
118         * c-pretty-print.c: Same.
119         * gimplify.c: Same.
120         * tree-inline.c: Same.
121         * tree-outof-ssa.c: Same.
122         * tree-ssa-structalias.c: Same.
123         * tree-ssa-reassoc.c: Same.
124         * stmt.c: Same.
125
126         2006-11-16  Aldy Hernandez  <aldyh@redhat.com>
127
128         * tree.c (build2_stat): Fix comment.
129
130         2006-11-13  Aldy Hernandez  <aldyh@redhat.com>
131
132         * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and
133         TREE_OPERAND when appropriate.
134
135         2006-11-04  Aldy Hernandez  <aldyh@redhat.com>
136
137         * java/java-tree.h (lang_tree_node): Handle gimple tuples.
138         (EXPR_WFL_EMIT_LINE_NOTE): Look inside base.
139         (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus.
140         * java/java-gimplify.c (java_gimplify_expr): Comment on why we do
141         not handle GIMPLE_MODIFY_STMT in the switch statement.
142         (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT.
143         (java_gimplify_new_array_init): Same.
144
145         2006-11-03  Aldy Hernandez  <aldyh@redhat.com>
146
147         * gimplify.c (gimplify_omp_for): Allow gimple statements.
148         * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND.
149         * fold-const.c (fold_binary): Allow gimple statements.
150         (fold): Same.
151         * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal):
152         Rename from gfc_conv_descriptor_data_set.
153         Call gfc_add_modify instead of gfc_add_modify_expr.
154         * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal):
155         Rename from gfc_conv_descriptor_data_set.
156         (gfc_conv_descriptor_data_set): New macro.
157         (gfc_conv_descriptor_data_set_tuples): New macros.
158         * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call
159         gfc_conv_descriptor_data_set_tuples.
160         * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr.
161         Generate GIMPLE_MODIFY_STMT when appropriate.
162         * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr.
163         (gfc_add_modify_expr): New macro.
164         (gfc_add_modify_stmt): New macro.
165         * fortran/f95-lang.c (lang_tree_node): Handle gimple statements.
166
167         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
168
169         * ada/ada-tree.h (lang_tree_node): Handle gimple tuples.
170         * ada/trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
171         GIMPLE_MODIFY_STMT.
172
173         2006-11-01  Aldy Hernandez  <aldyh@redhat.com>
174
175         * Merge from mainline at revision 118200.
176
177         2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
178
179         * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust
180         accordingly.
181
182         2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
183
184         * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not
185         enable checking.
186         Also, add __extension__ to GCC versions.
187         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
188         * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning
189         patrol.
190
191         2006-10-05  Aldy Hernandez  <aldyh@redhat.com>
192
193         * tree-complex.c (expand_complex_libcall): Adjust for
194         GIMPLE_MODIFY_STMT.
195         (expand_complex_comparison): Same.
196         * tree-pretty-print.c (dump_generic_node): Is_expr should include
197         GIMPLE_STMT_P statements.
198         * value-prof.c (tree_divmod_fixed_value_transform): Adjust for
199         GIMPLE_MODIFY_STMT.
200         (tree_mod_pow2_value_transform): Same.
201         (tree_mod_subtract_transform): Same.
202         * tree.c (build2_stat): Check for gimplified function in cfun.
203         * tree.h (DECL_GIMPLIFIED): Delete.
204         (struct tree_function_decl): Remove gimplified_flag.
205         * omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT.
206         * cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
207         (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
208         (cxx_omp_clause_copy_ctor): Same.
209         (cxx_omp_clause_assign_op): Same.
210         * c-pretty-print.c (pp_c_conditional_expression): Same.
211         (pp_c_expression): Same.
212         * langhooks.c (lhd_omp_predetermined_sharing): Same.
213         * function.h (struct function): Add gimplified field.
214         * tree-if-conv.c (add_to_dst_predicate_list): Adjust for
215         GIMPLE_MODIFY_STMT.
216         (find_phi_replacement_condition): Same.
217         * gimplify.c (gimplify_modify_expr_to_memcpy): Same.
218         (gimplify_modify_expr_to_memset): Same.
219         (gimplify_init_ctor_eval_range): Same.
220         (gimplify_modify_expr_complex_part): Same.
221         (tree_to_gimple_tuple): Same.
222         (gimplify_modify_expr): Same.
223         (gimple_push_cleanup): Same.
224         (gimplify_omp_for): Same.
225         (gimplify_omp_atomic_pipeline): Same.
226         (gimplify_omp_atomic_mutex): Same.
227         (gimplify_expr): Same.
228         (gimplify_one_sizepos): Same.
229         (gimplify_function_tree): Same.
230         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same.
231         (vect_recog_widen_sum_pattern): Same.
232         * tree-vect-transform.c (get_initial_def_for_reduction): Same.
233         (vect_create_epilog_for_reduction): Same.
234         (vectorizable_reduction): Same.
235
236         2006-09-28  Aldy Hernandez  <aldyh@redhat.com>
237
238         * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND.
239         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same.
240         (ifc_temp_var): Same.
241         * tree-vect-analyze.c (vect_determine_vectorization_factor): Check
242         for gimple statements.
243         (vect_analyze_operations): Same.
244         (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND.
245         * gimplify.c (gimplify_return_expr): Handle gimple statements.
246         * lambda-code.c (can_put_in_inner_loop): Same.
247         (can_put_after_inner_loop): Same.
248         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
249         (vect_create_data_ref_ptr): Same.
250         (vect_init_vector): Same.
251         (vect_get_vec_def_for_operand): Same.
252         (vect_create_epilog_for_reduction): Same.
253         (vectorizable_reduction): Same.
254         (vectorizable_assignment): Same.
255         (vectorizable_operation): Same.
256         (vectorizable_load): Same.
257         (vectorizable_condition): Same.
258         * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs.
259         (rs6000_gimplify_va_arg): Same.
260
261         2006-09-25  Aldy Hernandez  <aldyh@redhat.com>
262
263         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use
264         GIMPLE_STMT_OPERAND.
265         (simplify_abs_using_ranges): Same.
266         * tree-complex.c (expand_complex_operations_1): Use
267         PROTECTED_TREE_OPERAND.
268         * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple
269         stmt.
270         (get_val_for): Use GIMPLE_STMT_OPERAND.
271         * tree-tailcall.c (adjust_accumulator_values): Same.
272         (adjust_return_value): Same.
273         * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default
274         case.  Remove special case for tcc_gimple_stmt.
275         * tree.h (CAN_HAVE_LOCATION_P): New.
276         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for
277         GIMPLE_STMT_P.
278         * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND.
279         * tree-ssa-dom.c (propagate_rhs_into_lhs): Same.
280         * tree-nrv.c (execute_return_slot_opt): Same.
281         * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P.
282         * tree-vn.c (set_value_handle): Same.
283         (get_value_handle): Same.
284         * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P.
285         * tree-vectorizer.c (find_loop_location): Same.
286         * c-typeck.c (c_process_expr_stmt): Same.
287         (c_finish_stmt_expr): Same.
288         * gimplify.c (should_carry_locus_p): Same.
289         (tree_to_gimple_tuple): Delete definition and use of unecessary
290         variable save_tree_block.
291         * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P.
292         (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND.
293         (realify_fake_stores): Same.
294         * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr):
295         Use TREE_OPERAND.
296         * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P.
297         (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS.
298         * tree-cfg.c (move_stmt_r): Use EXPR_P.  Check for GIMPLE_STMT_P.
299         * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P.
300         (c_parser_statement_after_labels): Same.
301         (c_parser_paren_condition): Same.
302         (c_parser_for_statement): Same.
303         (c_parser_omp_for_loop): Same.
304         * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND.
305         (linearize_expr_tree): Same.
306         * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P.
307         * function.c (instantiate_expr): Same.
308
309         2006-09-22  Aldy Hernandez  <aldyh@redhat.com>
310
311         * tree.c (expr_location): Use GIMPLE_STMT_LOCUS.
312         (set_expr_location): Same.
313         (expr_locus): Same.
314         (set_expr_locus): Same.
315         (expr_filename): Same.
316         (expr_lineno): Same.
317         (tree_block): Use GIMPLE_STMT_BLOCK.
318         (protected_tree_operand): Use GIMPLE_STMT_OPERAND.
319         * tree.h (struct gimple_stmt): Remove prev and next.
320         (GIMPLE_STMT_OPERAND_CHECK): New.
321         (TREE_TO_GIMPLE_STMT): Delete.
322         (GIMPLE_STMT_TO_TREE): Delete.
323         (GIMPLE_STMT_OPERAND): Use union, not cast.
324         (GIMPLE_STMT_LOCUS): New.
325         (GIMPLE_STMT_BLOCK): New.
326         * gimplify.c (tree_to_gimple_tuple): Use union.  Do not cast
327         to tree_base.
328         * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable.
329
330         2006-09-21  Aldy Hernandez  <aldyh@redhat.com>
331
332         * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base
333         to base.
334         * tree-tailcall.c (adjust_return_value): Same.
335         * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case.
336         (copy_node_stat): Change common.base to base.
337         (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt.
338         Remove GIMPLE_STATEMENT_LIST case.
339         * tree.h (struct gimple_stmt): Make operands of type tree.
340         (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
341         CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
342         TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
343         TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
344         TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL,
345         TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
346         TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
347         BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED,
348         TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE,
349         CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED,
350         TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
351         TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI,
352         SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P):
353         Change common.base to base.
354         (GIMPLE_STATEMENT_LIST*): Remove.
355         (union tree_node): Add base.  Remove gimple_statement_list.
356         Remove pointer from gstmt.
357         * tree-ssa-propagate.c (set_rhs): Change common.base to base.
358         * treestruct.def: Add TS_BASE.  Remove TS_GIMPLE_STATEMENT_LIST.
359         * tree-vn.c (vn_compute): Change common.base to base.
360         * tree-eh.c (verify_eh_throw_stmt_node): Same.
361         * tree-flow-inline.h (var_ann): Same.
362         (function_ann): Same.
363         (stmt_ann): Same.
364         (mark_non_addressable): Same.
365         * gimplify.c (tree_to_gimple_tuple): Same.
366         * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST.
367         * tree-dfa.c (create_var_ann): Change common.base to base.
368         (create_function_ann): Same.
369         (create_stmt_ann): Same.
370         (create_tree_ann): Same.
371         (collect_dfa_stats_r): Same.
372         * tree-ssa-pre.c (NECESSARY): Change common.base to base.
373         * tree-ssa-dce.c (NECESSARY): Same.
374         * tree-ssa.c (delete_tree_ssa): Same.
375         * tree-optimize.c (execute_free_cfg_annotations): Same.
376         * tree-flow.h: Same.
377
378         2006-09-19  Aldy Hernandez  <aldyh@redhat.com>
379
380         * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST.
381         (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and
382         GIMPLE_MODIFY_STMT.
383         * tree.h (struct gimple_stmt): Add prev and next fields.
384         (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK.
385         (GIMPLE_STATEMENT_LIST_HEAD): New.
386         (GIMPLE_STATEMENT_LIST_TAIL): New.
387         (struct gimple_statement_list): New.
388         (union tree_node): Add gimple_stmt_list and gstmt.
389         * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT.
390         * tree.def: Add GIMPLE_STATEMENT_LIST.
391
392         2006-09-06  Aldy Hernandez  <aldyh@redhat.com>
393
394         * tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT.
395         * tree-vrp.c (build_assert_expr_for): Change uses of
396         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
397         (find_assert_locations): Same.
398         (remove_range_assertions): Same.
399         (stmt_interesting_for_vrp): Same.
400         (vrp_visit_assignment): Same.
401         (vrp_visit_stmt): Same.
402         (simplify_cond_using_ranges): Same.
403         * tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new
404         tree structure.
405         * tree-ssa-loop-im.c (movement_possibility): Change uses of
406         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
407         (stmt_cost): Same.
408         (determine_invariantness_stmt): Same.
409         (schedule_sm): Same.
410         (gather_mem_refs_stmt): Same.
411         * tree-complex.c (init_dont_simulate_again): Same.
412         (complex_visit_stmt): Same.
413         (set_component_ssa_name): Same.
414         (expand_complex_move): Same.
415         (expand_complex_div_wide): Same.
416         (expand_complex_comparison): Same.
417         (expand_complex_operations_1): Same.
418         * tree-ssa-loop-niter.c (expand_simple_operations): Same.
419         (chain_of_csts_start): Same.
420         (infer_loop_bounds_from_undefined): Same.
421         * tree-pretty-print.c (dump_generic_node): Same.
422         (op_prio): Same.
423         (op_symbol_1): Same.
424         * tree-ssa-loop-manip.c (create_iv): Same.
425         * value-prof.c (tree_divmod_fixed_value): Same.
426         (tree_divmod_fixed_value_transform): Same.
427         (tree_mod_pow2): Same.
428         (tree_mod_pow2_value_transform): Same.
429         (tree_mod_subtract): Same.
430         (tree_mod_subtract_transform): Same.
431         (tree_divmod_values_to_profile): Same.
432         * tree-tailcall.c (process_assignment): Same.
433         (find_tail_calls): Same.
434         (adjust_accumulator_values): Same.
435         (adjust_return_value): Same.
436         (eliminate_tail_call): Same.
437         * tree.c (tree_code_size): Handle tcc_gimple_stmt.
438         (make_node_stat): Same.
439         (copy_node_stat): Handle gimple tuples.
440         (expr_align): Handle GIMPLE_MODIFY_STMT.  Abort on MODIFY_EXPR.
441         (tree_node_structure): Handle tcc_gimple_stmt.
442         (build2_stat): Abort on MODIFY_EXPR after gimplification.  Handle
443         tcc_gimple_stmt.
444         (build2_gimple_stat): New.
445         (expr_location): New.
446         (set_expr_location): New.
447         (expr_has_location): New.
448         (expr_locus): New.
449         (set_expr_locus): New.
450         (expr_filename): New.
451         (expr_lineno): New.
452         (walk_tree): Handle tcc_gimple_stmt.
453         (tree_block): New.
454         (protected_tree_operand): New.
455         (protected_tree_type): New.
456         (tree_code_kind): Add gimple statements.
457         * tree.h (tree_code_class): Add tcc_gimple_stmt.
458         (IS_GIMPLE_STMT_CODE_CLASS): New.
459         (struct tree_base): New.
460         (struct tree_common): Shrink.
461         (struct gimple_stmt): New.
462         (struct gimple_expr): New.
463         (TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
464         CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
465         TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
466         TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
467         TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS,
468         FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
469         TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
470         BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN,
471         TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT,
472         DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK,
473         TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED,
474         IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
475         TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST,
476         TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P):
477         Adjust for new `common' layout.
478         (struct tree_function_decl): Add gimplified_flag.
479         (DECL_GIMPLIFIED): NEW.
480         (EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS,
481         SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO,
482         EXPR_HAS_LOCATION): Call corresponding function.
483         (GIMPLE_STMT_CHECK): New.
484         (TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples.
485         (TREE_BLOCK): Call tree_block.
486         (GIMPLE_STMT_P): New.
487         (GIMPLE_TUPLE_P): New.
488         (TREE_TO_GIMPLE_STMT): New.
489         (GIMPLE_STMT_TO_TREE): New.
490         (GIMPLE_STMT_OPERAND): New.
491         (GIMPLE_TUPLE_HAS_LOCUS_P): New.
492         (PROTECTED_TREE_OPERAND): New.
493         (PROTECTED_TREE_TYPE): New.
494         (build2_gimple_stat): Protoize.
495         (build2_gimple): New.
496         (expr_location): Protoize.
497         (set_expr_location): Protoize.
498         (expr_has_location): Protoize.
499         (expr_locus): Protoize.
500         (set_expr_locus): Protoize.
501         (expr_filename): Protoize.
502         (expr_lineno): Protoize.
503         (tree_block): Protoize.
504         (protected_tree_operand): Protoize.
505         (protected_tree_type): Protoize.
506         (enum tree_node_kind): Add gimple_stmt_kind.
507         * c-decl.c (union lang_tree_node): Tuples do not have a
508         TREE_CHAIN.
509         * ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to
510         GIMPLE_MODIFY_STMT and adjust accordingly.
511         * tree-scalar-evolution.c (follow_ssa_edge): Same.
512         (interpret_condition_phi): Same.
513         (pointer_used_p): Same.
514         (analyze_scalar_evolution_1): Same.
515         (scev_const_prop): Same.
516         (interpret_rhs_modify_stmt): Rename from
517         interpret_rhs_modify_expr.
518         * builtins.c (std_expand_builtin_va_start): Change uses of
519         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
520         (std_gimplify_va_arg_expr): Same.
521         (expand_builtin_va_copy): Same.
522         (integer_valued_real_p): Same.
523         * fold-const.c (maybe_lvalue_p): Same.
524         (fold_unary): Same.
525         (tree_expr_nonnegative_p): Same.
526         (tree_expr_nonzero_p): Same.
527         * omp-low.c (extract_omp_for_data): Same.
528         (lower_rec_input_clauses): Same.
529         (lower_reduction_clauses): Same.
530         (lower_copyprivate_clauses): Same.
531         (lower_send_clauses): Same.
532         (lower_send_shared_vars): Same.
533         (expand_parallel_call): Same.
534         (expand_omp_parallel): Same.
535         (expand_omp_for_generic): Same.
536         (expand_omp_for_static_nochunk): Same.
537         (expand_omp_for_static_chunk): Same.
538         (expand_omp_sections): Same.
539         (lower_omp_single_copy): Same.
540         (lower_omp_parallel): Same.
541         * tree-ssa-dse.c (memory_address_same): Same.
542         (dse_optimize_stmt): Same.
543         * ipa-reference.c (scan_for_static_refs): Same.
544         * tree-gimple.c (is_gimple_reg_rhs): Same.
545         (get_call_expr_in): Same.
546         (recalculate_side_effects): Same.
547         * cgraphunit.c (cgraph_create_edges): Same.
548         * tree-ssa-copyrename.c (rename_ssa_copies): Same.
549         * tree-ssa-ccp.c (get_default_value): Same.
550         (likely_value): Same.
551         (visit_assignment): Same.
552         (ccp_visit_stmt): Same.
553         (get_maxval_strlen): Same.
554         (ccp_fold_builtin): Same.
555         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same.
556         (find_givs_in_stmt): Same.
557         (find_interesting_uses_op): Same.
558         (find_interesting_uses_stmt): Same.
559         (rewrite_use_nonlinear_expr): Same.
560         * ipa-pure-const.c (scan_function): Same.
561         * tree-stdarg.c (va_list_counter_bump): Same.
562         (check_all_va_list_escapes): Same.
563         (execute_optimize_stdarg): Same.
564         * tree-ssa-math-opts.c (compute_merit): Same.
565         (insert_reciprocals): Same.
566         (execute_cse_reciprocals): Same.
567         * tree-ssa-dom.c (initialize_hash_element): Same.
568         (simple_iv_increment_p): Same.
569         (record_equivalences_from_stmt): Same.
570         (optimize_stmt): Same.
571         (remove_stmt_or_phi): Same.
572         (get_rhs_or_phi_arg): Same.
573         (get_lhs_or_phi_result): Same.
574         (propagate_rhs_into_lhs): Same.
575         * tree-nrv.c (tree_nrv): Same.
576         (execute_return_slot_opt): Same.
577         * tree-ssa-propagate.c (get_rhs): Same.
578         (set_rhs): Same.
579         (stmt_makes_single_load): Same.
580         (stmt_makes_single_store): Same.
581         (replace_vuses_in): Same.
582         (fold_predicate_in): Same.
583         (substitute_and_fold): Same.
584         * tree-ssa-alias.c (compute_call_clobbered): Same.
585         (recalculate_used_alone): Same.
586         (count_uses_and_derefs): Same.
587         (is_escape_site): Same.
588         (find_used_portions): Same.
589         * gimple-low.c (lower_stmt): Same.
590         (block_may_fallthru): Same.
591         (lower_return_expr): Same.
592         * tree-ssa-sink.c (is_hidden_global_store): Same.
593         (statement_sink_location): Same.
594         * dwarf2out.c (loc_descriptor_from_tree_1): Same.
595         * expr.c (safe_from_p): Same.
596         (expand_expr_real): Same.
597         (expand_expr_real_1): Same.
598         * tree-ssa-loop-ivcanon.c (empty_loop_p): Same.
599         * predict.c (expr_expected_value): Same.
600         (strip_builtin_expect): Same.
601         (apply_return_prediction): Same.
602         (tree_bb_level_predictions): Same.
603         (tree_estimate_probability): Same.
604         * tree-vn.c (vn_compute): Same.
605         * tree-eh.c (add_stmt_to_eh_region_fn): Same.
606         (remove_stmt_from_eh_region_fn): Same.
607         (do_return_redirection): Same.
608         (honor_protect_cleanup_actions): Same.
609         (lower_try_finally_switch): Same.
610         (lower_eh_constructs_1): Same.
611         (tree_could_throw_p): Same.
612         (verify_eh_throw_stmt_node): Same.
613         * function.c (gimplify_parameters): Same.
614         * tree-vectorizer.c (vect_is_simple_use): Same.
615         (vect_is_simple_reduction): Same.
616         * ipa-type-escape.c (scan_for_refs): Same.
617         * tree-if-conv.c (tree_if_conversion): Same.
618         (tree_if_convert_stmt): Same.
619         (if_convertible_gimplify_modify_stmt_p): Rename from
620         if_convertible_modify_expr_p.
621         (if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT.
622         (ifc_temp_var): Same.
623         (replace_phi_with_cond_modify_stmt): Rename from
624         replace_phi_with_cond_modify_expr.
625         (process_phi_nodes): Call replace_phi_with_cond_modify_stmt.
626         * tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT.
627         * tree-data-ref.c (find_data_references_in_loop): Adjust for
628         GIMPLE_MODIFY_STMT.
629         * tree-flow-inline.h (var_ann): Same.
630         (function_ann): Same.
631         (stmt_ann): Same.
632         (mark_non_addressable): Same.
633         * tree-vect-analyze.c (vect_determine_vectorization_factor): Same.
634         * gimplify.c (tree_to_gimple_tuple): New.
635         (build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT.
636         (gimplify_return_expr): Same.
637         (gimplify_decl_expr): Same.
638         (gimplify_self_mod_expr): Same.
639         (gimplify_cond_expr): Same.
640         (gimplify_init_constructor): Same.
641         (gimplify_modify_expr): Same.
642         (gimplify_expr): Same.
643         (gimplify_function_tree): Same.
644         (force_gimple_operand): Same.
645         * tree-ssa-phiopt.c (conditional_replacement): Same.
646         (minmax_replacement): Same.
647         (abs_replacement): Same.
648         * tree-dfa.c (create_var_ann): Same.
649         (create_function_ann): Same.
650         (create_stmt_ann): Same.
651         (create_tree_ann): Same.
652         (collect_dfa_stats_r): Same.
653         * tree-ssa-pre.c (find_or_generate_expression): Same.
654         (create_expression_by_pieces): Same.
655         (try_look_through_load): Same.
656         (insert_fake_stores): Same.
657         (realify_fake_stores): Same.
658         (compute_avail): Same.
659         (eliminate): Same.
660         (init_pre): Same.
661         (poolify_modify_stmt): Rename from poolify_modify_stmt.
662         Adjust for GIMPLE_MODIFY_STMT.
663         (NECESSARY): Adjust for new `common' layout.
664         * tree-ssa-live.c (build_tree_conflict_graph): Adjust for
665         GIMPLE_MODIFY_STMT.
666         * tree-sra.c (sra_walk_modify_stmt): Rename from
667         sra_walk_modify_expr.
668         (sra_walk_function): Adjust for GIMPLE_MODIFY_STMT.
669         (generate_copy_inout): Same.
670         (generate_element_copy): Same.
671         (generate_element_zero): Same.
672         (scalarize_copy): Same.
673         * tree-mudflap.c (mf_decl_cache_locals): Same.
674         (mf_build_check_statement_for): Same.
675         (mf_xform_derefs): Same.
676         * ipa-prop.c (ipa_method_modify_stmt): Same.
677         * print-tree.c (print_node): Handle gimple tuples.
678         Add case for tcc_gimple_stmt.
679         * tree-ssa-copy.c (stmt_may_generate_copy): Adjust for
680         GIMPLE_MODIFY_STMT.
681         (copy_prop_visit_assignment): Same.
682         (copy_prop_visit_stmt): Same.
683         (init_copy_prop): Same.
684         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same.
685         (forward_propagate_into_cond_1): Same.
686         (find_equivalent_equality_comparison): Same.
687         (tidy_after_forward_propagate_addr): Same.
688         (forward_propagate_addr_expr_1): Same.
689         (simplify_not_neg_expr): Same.
690         (simplify_switch_expr): Same.
691         * tree-ssa-dce.c (find_pdom): Same.
692         (mark_stmt_if_obviously_necessary): Same.
693         (NECESSARY): Adjust for new `common' layout.
694         * tree-flow.h: Same.
695         * tree-vect-patterns.c (widened_name_p): Adjust for
696         GIMPLE_MODIFY_STMT.
697         (vect_recog_dot_prod_pattern): Same.
698         (vect_recog_widen_sum_pattern): Same.
699         (vect_pattern_recog_1): Same.
700         * tree-nested.c (init_tmp_var): Same.
701         (save_tmp_var): Same.
702         (walk_stmts): Same.
703         (convert_call_expr): Same.
704         (finalize_nesting_tree_1): Same.
705         * tree-ssa.c (verify_ssa): Same.
706         (delete_tree_ssa): Same.
707         * lambda-code.c (lbv_to_gcc_expression): Same.
708         (lle_to_gcc_expression): Same.
709         (lambda_loopnest_to_gcc_loopnest): Same.
710         (can_put_in_inner_loop): Same.
711         (can_convert_to_perfect_nest): Same.
712         (perfect_nestify): Same.
713         * tree-ssa-loop-prefetch.c (gather_memory_references): Same.
714         * tree-inline.c (copy_body_r): Same.
715         (setup_one_parameter): Same.
716         (initialize_inlined_parameters): Same.
717         (estimate_num_insns_1): Same.
718         (expand_call_inline): Same.
719         (gimple_expand_calls_inline): Same.
720         (copy_tree_r): Same.
721         * tree-optimize.c (execute_free_cfg_annotations): Same.
722         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
723         (vect_align_data_ref): Same.
724         (vect_create_data_ref_ptr): Same.
725         (vect_init_vector): Same.
726         (vect_create_epilog_for_reduction): Same.
727         (vectorizable_reduction): Same.
728         (vectorizable_assignment): Same.
729         (vectorizable_operation): Same.
730         (vectorizable_store): Same.
731         (vectorizable_load): Same.
732         (vectorizable_live_operation): Same.
733         (vectorizable_condition): Same.
734         (vect_generate_tmps_on_preheader): Same.
735         (vect_create_cond_for_align_checks): Same.
736         * tree-object-size.c (collect_object_sizes_for): Same.
737         (check_for_plus_in_loops_1): Same.
738         (check_for_plus_in_loops): Same.
739         * tree-outof-ssa.c (insert_copy_on_edge): Same.
740         (replace_use_variable): Same.
741         (check_replaceable): Same.
742         (rewrite_trees): Same.
743         (identical_copies_p): Same.
744         (insert_backedge_copies): Same.
745         * tree-profile.c (tree_gen_edge_profiler): Same.
746         * tree-vect-generic.c (expand_vector_operations_1): Same.
747         * tree-ssa-structalias.c (update_alias_info): Same.
748         (find_func_aliases): Same.
749         * tree-cfg.c (factor_computed_gotos): Same.
750         (make_edges): Same.
751         (make_goto_expr_edges): Same.
752         (tree_merge_blocks): Same.
753         (remove_useless_stmts_cond): Same.
754         (remove_useless_stmts_1): Same.
755         (tree_find_edge_insert_loc): Same.
756         (verify_expr): Same.
757         (gimplify_val): Same.
758         (verify_gimple_tuples_1): New.
759         (verify_gimple_tuples): New.
760         (verify_stmts): Call verify_gimple_tuples.
761         * tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT.
762         (get_unary_op): Same.
763         (linearize_expr): Same.
764         (get_single_immediate_use): Same.
765         (negate_value): Same.
766         (should_break_up_subtract): Same.
767         (break_up_subtract): Same.
768         (repropagate_negates): Same.
769         (break_up_subtract_bb): Same.
770         (reassociate_bb): Same.
771         * config/i386/i386.c (ix86_va_start): Same.
772         (ix86_gimplify_va_arg): Same.
773         * stmt.c (expand_expr_stmt): Same.
774         (warn_if_unused_value): Same.
775         (expand_return): Same.
776         * tree-ssanames.c (make_ssa_name): Same.
777         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Same.
778         * tree-ssa-operands.c (finalize_ssa_defs): Same.
779         (add_virtual_operand): Same.
780         (get_expr_operands): Same.
781         (parse_ssa_operands): Same.
782         (get_modify_stmt_operands): Rename from get_modify_expr_operands.
783
784 2006-12-05  H.J. Lu  <hongjiu.lu@intel.com>
785
786         * config.host: Remove extra blank line.
787
788 2006-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
789
790         * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if
791         target is also an x86 variant.
792
793 2006-12-05  Richard Guenther  <rguenther@suse.de>
794
795         * config/i386/i386.c (ix86_builtin_vectorized_function): Declare.
796         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
797         (ix86_builtin_vectorized_function): New function to vectorize
798         sqrt.
799
800 2006-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
801
802         * config/bfin/bfin.c (output_file_start): Fix comment which referred to
803         ia64_override_options.
804
805 2006-12-04  Jan Hubicka  <jh@suse.cz>
806
807         * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by
808         really_expand.
809
810 2006-12-04  Bernd Schmidt  <bernd.schmidt@analog.com>
811
812         * rtlanal.c (note_uses): Deal with SEQUENCEs.
813         * config/bfin/bfin.c: Include "timevar.h".
814         (bfin_flag_schedule_insns2, splitting_for_sched,
815         bfin_flag_var_tracking): New variables.
816         (print_operand): Handle '%!'.
817         (override_options): Disable normal sched2 pass, instead set
818         bfin_flag_schedule_insns2 for reorg to handle it.
819         (output_file_start): Likewise for var-tracking.
820         (bfin_optimize_loop): Take some care not to stumble over SEQUENCEs.
821         (gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p):
822         New functions.
823         (bfin_reorg): Do second scheduling pass here, and call
824         bfin_gen_bundles.  Use type_for_anomaly and trapping_loads_p instead
825         of examining insns directly.  If bfin_flag_var_tracking, call
826         var-tracking pass when done with everything else.
827         * config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid.
828         * config/bfin/bfin.md (UNSPEC_32BIT): New constant.
829         (movsi_insn32): New pattern, with two new splits to create it
830         before the final scheduling pass.
831         (neghi2): Not a dsp32 insn, rather alu0.
832         (movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn,
833         movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2,
834         extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2,
835         mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2,
836         ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2,
837         movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low,
838         movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
839         ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3,
840         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3,
841         subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3,
842         addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3,
843         flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi,
844         flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3,
845         flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts,
846         flag_macv2hi_parts_acconly, flag_macinitv2hi_parts,
847         flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl,
848         mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3,
849         lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store
850         variants instead of ';'.
851         (ror_one, rol_one): Likewise.  Make them dsp32 insns.
852         (ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants.
853         (align8, align16, align24): Now named patterns; also using '%!'.
854         (mnop): New insn.
855
856 2006-12-05  Kazu Hirata  <kazu@codesourcery.com>
857
858         * config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c,
859         tree-vect-generic.c, tree-vect-transform.c: Fix comment typos.
860
861 2006-12-04  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
862
863         * config/spu/spu-protos.c (spu_split_address): Add.
864         * config/spu/spu.c (spu_split_address): Add.
865         (print_operand): Handle HIGH.
866         (spu_legitimate_address):  Don't test for aligned CONST.
867         (spu_expand_mov):  Don't split addresses here.
868         * config/spu/constraints.md (A): Don't test legitimate_const.
869         * config/spu/spu.md: Add split of movsi patterns for PIC mode.
870         (ceq_di): Use correct predicates.
871
872 2006-12-04  Eric Christopher  <echristo@apple.com>
873
874         * config/darwin.h: Update copyright notice.
875         * config/i386/darwin.h: Ditto.
876
877 2006-12-04  Jan Hubicka  <jh@suse.cz>
878
879         * builtins.c (fold_builtin_memory_op): Check that expr_size match.
880         * explow.c (expr_size, int_expr_size): Assert that size is non_NULL.
881
882 2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
883
884         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call
885         set_used_smts.
886         * tree-ssa-structalias.c (set_used_smts): Export.
887         (find_what_p_points_to): Don't call set_used_smts here.
888         * tree-ssa-structalias.h (set_used_smts): Add prototype.
889
890 2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
891
892         * tree-ssa-alias.c (compute_may_aliases):
893         Compute flow sensitive before flow insensitive.
894         (compute_flow_sensitive_aliasing): Don't try to add
895         a symbol memory tag to itself.
896
897         * alias.h (alias_set_subset_of): New prototype.
898
899         * alias.c (alias_set_subset_of): New function.
900
901         * tree-ssa-structalias.c: Update comments.
902         (struct variable_info): Add finished_solution.
903         (new_varinfo): Set finished solution to NULL.
904         (var_escaped_vars): Remove.
905         (escaped_vars_tree): Remove.
906         (escaped_vars_id): Remove.
907         (nonlocal_vars_id): Remove.
908         (constraint_expr_type): Add INCLUDES.
909         (graph_size): Removed.
910         (dump_constraint): Support INCLUDES.
911         (build_constraint_graph): Ditto.
912         (collapse_nodes): Add merge_solutions argument.
913         Don't merge attributes.
914         (process_unification_queue): Just use collapse_nodes.
915         (perform_var_substitution): Update call to collapse_nodes.
916         (get_constraint_exp_from_ssa_var): Use INCLUDES.
917         (process_constraint): Fix non-field sensitive handling
918         Handle includes.
919         (get_constraint_for): Use INCLUDES.
920         (make_constraint_from_anything): Renamed from
921         make_constraint_from_escaped.
922         (make_constraint_to_escaped): Removed.
923         (find_global_initializers): Removed.
924         (create_variable_info_for): Do not make constraints to escaped
925         vars anymore.
926         (dump_solution_for_var): Don't print out the equivalent points-to
927         sets, just use the name of the variable it shares it with.
928         (intra_create_variable_infos): Use INCLUDES.
929         Change nonlocal variable sets to anything sets.
930         (init_base_vars): Remove escaped_vars and nonlocal_var
931         initialization.
932         (find_escape_constraints): Removed.
933         (delete_points_to_sets): Remove dead code.
934         (used_smt_calculated): New variable.
935         (set_used_smts): New function.
936         (merge_smts_into): New function.
937         (find_what_p_points_to): Modify to use SMTs.
938         (create_nonlocal_var): Remove.
939
940         * tree-ssa-operands.c (access_can_touch_variable): Remove
941         reference to nonlocal_all.
942
943         * tree-ssa.c (verify_name_tags): Remove.
944
945 2006-12-04  Carlos O'Donell  <carlos@codesourcery.com>
946
947         * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration.
948         (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match.
949
950 2006-12-04  Andrew MacLeod  <amacleod@redhat.com>
951
952         * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges.
953         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update.
954         (add_livein_if_notdef): Delete.
955         (loe_visit_block): New.  Propogate live on entry info for a block into
956         each predecessor.  If it changes, make sure it is visited again.
957         (live_worklist): Visit every block and update the live on entry info
958         for preds.  Iterate over any that changed.
959         (set_var_live_on_entry): Populate the live on entry blocks with bits
960         based on the immediate uses of a var.
961         (calculate_live_on_entry): Remove.
962         (calculate_live_on_exit): Calculate live on exit based on the newly
963         oriented live on entry bits.
964         (calculate_live_ranges): Build live on entry and exit vectors.
965         (dump_live_info): Use new orientation of live on entry bitmaps.
966         (verify_live_on_entry): New.  Split out verification code from old
967         calculate_live_on_entry routine.
968         * tree-ssa-live.h (struct tree_live_info_d): Add Working stack.
969         (live_entry_blocks): Rename to live_on_entry and return bitmap for a
970         basic_block instead of for a partition.
971         (live_merge_and_clear): Add asserts.
972         (make_live_on_entry): Set partition bit in basic block vector.
973
974 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
975
976         PR libgomp/29947
977         * omp-low.c (expand_omp_for_static_nochunk,
978         expand_omp_for_static_chunk): Do all arithmetics in signed rather than
979         unsigned type.
980
981         PR middle-end/29965
982         * omp-low.c (determine_parallel_type): Don't try to optimize combined
983         parallels if region->exit or region->inner->exit is NULL.
984         (expand_omp_parallel): Handle NULL region->exit even if cfg is already
985         built.
986         (expand_omp_for_generic): Handle NULL region->cond and region->exit.
987         (expand_omp_for): Use expand_omp_for_generic if either region->cond
988         or region->exit is NULL.
989         (expand_omp_sections): Handle NULL region->cond or region->exit.
990         (expand_omp_synch):
991
992 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
993
994         * config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete.
995         * config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
996
997 2006-12-04  Eric Botcazou  <ebotcazou@adacore.com>
998
999         * tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and
1000         TYPE_MAX_VALUE for scalar types here but...
1001         (walk_tree): ...there instead.  Return NULL_TREE if the TYPE_DECL
1002         is attached an error mark, and the return value of the callback
1003         if it is not NULL_TREE.
1004
1005 2006-12-04  Ben Elliston  <bje@au.ibm.com>
1006
1007         * config/spu/spu.md (_mulv4si3): Remove unused local variables.
1008
1009 2006-12-03  Eric Christopher  <echristo@apple.com>
1010
1011         PR target/24598
1012         * config/t-slibgcc-darwin: Pass -install_name.
1013         * config/darwin.h (LINK_COMMAND_SPEC): Remove use of
1014         libtool. Only pass through options that the linker recognizes.
1015         (LINK_SPEC): Update comment. Translate options.
1016         (STARTFILE_SPEC): Add dylib1.o for shared libraries.
1017         * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above.
1018
1019 2006-12-03  Dorit Nuzman  <dorit@il.ibm.com>
1020
1021         * config/spu/spu.md (smaxv4sf3, sminv4sf3): New.
1022
1023 2006-12-03  Uros Bizjak  <ubizjak@gmail.com>
1024
1025         PR target/30041
1026         * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
1027         operands[1] in insn constraint.  Correct type attribute to sselog1.
1028
1029 2006-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1030
1031         PR target/30040
1032         * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
1033         (bit_SSSE3): New.
1034         (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
1035         processor detection.
1036
1037         * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
1038         -march=native if there is no -mtune=*.
1039
1040         * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
1041         coretypes.h.
1042
1043 2006-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1044
1045         * doc/install.texi: Update recommended MPFR version.  Remove
1046         obsolete reference to cumulative patch.
1047
1048 2006-12-02  Lee Millward  <lee.millward@codesourcery.com>
1049
1050         PR c/27953
1051         * c-decl.c (store_parm_decls_oldstyle): Robustify.
1052
1053 2006-11-30  Jan Hubicka  <jh@suse.cz>
1054             Uros Bizjak  <ubizjak@gmail.com>
1055
1056         * config/i386/i386.c (pentium4_cost, nocona_cost): Update
1057         32bit memcpy/memset decriptors.
1058         (decide_alg): With -minline-all-stringops and sizes that are best
1059         to be copied via libcall still work hard enough to pick non-libcall
1060         strategy.
1061
1062 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
1063
1064         * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos.
1065
1066         * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c,
1067         config/i386/i386.c, config/i386/i386.h, config/mips/mips.h,
1068         config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c,
1069         config/sh/sh4-300.md, config/spu/spu-builtins.def,
1070         config/spu/spu-c.c, config/spu/spu-modes.def,
1071         config/spu/spu.c, config/spu/spu.md,
1072         config/spu/spu_internals.h, config/spu/vmx2spu.h,
1073         fold-const.c, fwprop.c, predict.c, tree-data-ref.h,
1074         tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
1075         tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c,
1076         tree-vectorizer.c, tree-vrp.c: Fix comment typos.  Follow
1077         spelling conventions.
1078
1079         * config/i386/i386.c: Fix a comment typo.
1080
1081 2006-12-01  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1082
1083         * config/spu/spu.c (spu_immediate): Remove trailing comma.
1084         (reloc_diagnostic): Call warning when -mwarn-reloc is specified.
1085         * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for
1086         better optimization.
1087         (floatv4siv4sf2): New.
1088         (fix_truncv4sfv4si2): New.
1089         (floatunsv4siv4sf2): New.
1090         (fixuns_truncv4sfv4si2): New.
1091         (addv16qi3): New.
1092         (subv16qi3): New.
1093         (negv16qi2): New.
1094         (mulv8hi3): New.
1095         (mulsi3): Remove.
1096         (mul<mode>3): New.
1097         (_mulv4si3): New.
1098         (cmp<mode>): Don't accept constant arguments for DI, TI and SF.
1099         * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with
1100         spu_resolve_overloaded_builtin instead of static inline functions.
1101
1102 2006-12-01  Eric Botcazou  <ebotcazou@adacore.com>
1103
1104         * fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the
1105         type instead of the size of its mode to compute the highest and
1106         lowest possible values.  Still check the size of the mode before
1107         flipping the signedness of the comparison.
1108
1109 2006-12-01  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1110
1111         * config/spu/predicates.md (spu_mov_operand): Add.
1112         * config/spu/spu.c (spu_expand_extv): Remove unused code.
1113         (print_operand_address, print_operand): Handle addresses containing AND.
1114         (spu_split_load, spu_split_store): Use updated movti pattern.
1115         * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and
1116         stores in mov patterns for correct operation of reload.
1117         (lq, lq_<mode>, stq, stq_<mode>): Remove.
1118
1119 2006-12-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1120
1121         PR c++/30021
1122         * c-common.c (check_main_parameter_types): Check for error_mark_node.
1123
1124 2006-12-01  Andrew MacLeod  <amacleod@redhat.com>
1125
1126         * common.opt (ftree-combine-temps): Remove.
1127         * tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
1128         (coalesce_ssa_name): Don't check for combine-temps.
1129         (coalesce_vars): Remove.
1130         (check_replaceable): Use num_imm_uses.
1131         (remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't
1132         check for combine-temps.
1133         (rewrite_out_of_ssa): Never create a ref_count in the var_map.
1134         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
1135         to register_ssa_partition calls.
1136         * tree-ssa-live.c (register_ssa_partition): Remove prototype.
1137         (init_var_map, delete_var_map): remove refernces to ref_count.
1138         (create_ssa_var_map): Never calculate a ref count.
1139         (type_var_init): Remove.
1140         * tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
1141         (SSA_VAR_MAP_REF_COUNT): Delete.
1142         (create_ssa_var_map): Change Prototype to have no parameters.
1143         (version_ref_count): Delete.
1144         (register_ssa_partition): Remove 'is_use' paramater and don't set the
1145         ref_count vector.
1146         (type_var_num, type_var, type_var_first_partition,
1147         type_var_next_partition, type_var_dump, type_var_delete,
1148         type_var_remove_partition, type_var_find, type_var_compact,
1149         type_var_decompact): Remove.
1150
1151 2006-12-01  Bernd Schmidt  <bernd.schmidt@analog.com>
1152
1153         * config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype
1154         attribute.
1155
1156 2006-12-01  Richard Guenther  <rguenther@suse.de>
1157
1158         PR c++/29433
1159         * dwarf2out.c (struct pubname_struct): Make name const.
1160         (add_pubtype): Do not xstrdup identifiers.
1161
1162 2006-12-01  Bernd Schmidt  <bernd.schmidt@analog.com>
1163
1164         * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures
1165         multiword accesses are in range.
1166
1167 2006-12-01  Zdenek Dvorak <dvorakz@suse.cz>
1168
1169         PR tree-optimization/29921
1170         * tree-ssa-ccp.c (canonicalize_float_value): New function.
1171         (set_lattice_value): Use canonicalize_float_value.
1172
1173 2006-11-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1174
1175         * config/spu/spu.c (spu_builtin_range): Move from spu-c.c
1176         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete.
1177         (spu_cpu_cpp_builtins): Remove.
1178         (spu_override_options): Don't set warn_main.
1179         (spu_force_reg): Move from spu-c.c.
1180         (spu_check_builtin_parm): Likewise.
1181         (expand_builtin_args): Likewise.
1182         (spu_expand_builtin_1): Likewise.
1183         (spu_expand_builtin): Likewise.
1184         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set
1185         warn_main and targetm.resolve_overloaded_builtin.
1186         * config/spu/spu-c.c (spu_builtin_range): Remove.
1187         (spu_check_builtin_parm): Remove.
1188         (expand_builtin_args): Remove.
1189         (spu_expand_builtin_1): Remove.
1190         (spu_expand_builtin): Remove.
1191         (spu_cpu_cpp_builtins): Moved from spu.c
1192         (spu_force_reg): Remove.
1193
1194 2006-12-01  Joseph Myers  <joseph@codesourcery.com>
1195             David Edelsohn  <edelsohn@gnu.org>
1196
1197         PR target/24036
1198         * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
1199         HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
1200         * defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
1201         HARD_REGNO_NREGS_WITH_PADDING): Define.
1202         * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
1203         HARD_REGNO_NREGS_WITH_PADDING): Define.
1204         * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
1205         Use new macros to detect modes with holes; do not look at integer
1206         units.
1207         (subreg_offset_representable_p): Check for and disallow cases
1208         where the modes use different numbers of bits from registers.
1209         * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
1210         constant for soft-float.
1211         (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
1212         containing doubles.
1213         (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
1214         in E500 double case.
1215         * config/rs6000/rs6000.md (movtf): Allow soft-float.
1216         (movtf_softfloat): New.
1217
1218 2006-11-30  Richard Sandiford  <richard@codesourcery.com>
1219
1220         * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than
1221         simplify_gen_subreg.
1222
1223 2006-11-30  Andrew Macleod  <amacleod@redhat.com>
1224
1225         * tree-ssa-live.c (create_coalesce_list): Create a hash table.
1226         (COALESCE_HASH_FN): New.  Define hash function.
1227         (partition_pair_map_hash): New.  Hash value for a partition pair.
1228         (partition_pair_map_eq): New.  Equality for hash pairs.
1229         (create_coalesce_list): Create hash table.
1230         (delete_coalesce_list): Free hash table.
1231         (find_partition_pair): Find/create pairs in hash table.
1232         (compare_pairs):  Sort pairs in ascending order now.
1233         (num_coalesce_pairs): New.  Number of pairs in hash table.
1234         (struct partition_pair_iterator): Iterator struct for pair table.
1235         (first_partition_pair): Iterator function for first pair.
1236         (end_partition_pair_p): Iterator function for end of iteration.
1237         (next_partition_pair): Iterator function for next pair.
1238         (FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs.
1239         (sort_coalesce_list): Sort pairs from hash table into an array.
1240         (pop_best_coalesce): Take pairs from the array.
1241         (dump_coalesce_list): Update to use hash table or sorted array.
1242         * tree-ssa-live.h (struct partition_pair_d): Remove next field.
1243         (struct coalesce_list_d): Add hash table related fields.
1244
1245 2006-11-30  Jan Hubicka  <jh@suse.cz>
1246
1247         PR middle-end/30028
1248         * builtins.c (fold_builtin_memory_op): Fix typo in the check for
1249         memmove/bcopy->memcpy conversion.
1250
1251 2006-11-30  Carlos O'Donell  <carlos@codesourcery.com>
1252
1253         * doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default.
1254         * config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT):
1255         Default is the largest alignment supported for 32-bit ELF and
1256         representable on a 32-bit host.
1257
1258 2006-11-30  Janis Johnson  <janis187@us.ibm.com>
1259
1260         * config/dfp-bit.c (DFP_TO_INT): Use wider precision.
1261
1262 2006-11-30  Jan Hubicka  <jh@suse.cz>
1263
1264         * tree-ssa-operands.h (struct ssa_operands): New.
1265         * tree-flow-inline.h (gimple_ssa_operands): New function.
1266         * tree-flow.h: (struct gimple_df): Add ssa_operands.
1267         * Makefile.in: Remove gt-tree-ssa-operands.h
1268         * tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h
1269         (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs,
1270         operand_memory, operand_memory_index, ops_active): Remove statics.
1271         (ALLOC_OPTYPE): Update.
1272         (operand_build_sort_virtual): Update.
1273         (ssa_operands_active): Update.
1274         (init_ssa_operands): Update.
1275         (fini_ssa_operands): Update.
1276         (ssa_operand_alloc): Update.
1277         (INITIALIZE_USE): Update.
1278         (finalize_ssa_use_ops): Update.
1279         (finalize_ssa_v_may_def_ops): Update.
1280         (finalize_ssa_vuse_ops): Update.
1281         (finalize_ssa_v_must_def_ops): Update.
1282
1283 2006-11-30  Richard Guenther  <rguenther@suse.de>
1284
1285         * tree-vectorizer.h (vectorizable_function): Export.
1286         * tree-vect-transform.c (vectorizable_function): Likewise.
1287         * tree-vect-patterns.c (vect_recog_pow_pattern): Set
1288         type_in to scalar type in recognition of squaring.
1289         Make sure the target can vectorize sqrt in recognition
1290         of sqrt, set type_in to vector type in this case.
1291
1292 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
1293
1294         * config/i386/i386.md (R10_REG): New constant.
1295         * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG.
1296         (ix86_emit_restore_regs_using_mov): Ditto.
1297         (ix86_expand_call): Ditto.
1298         (x86_output_mi_thunk): Ditto. Also use R10_REG.
1299
1300 2006-11-30  Steven Bosscher  <steven@gcc.gnu.org>
1301
1302         * cselib.c (cselib_init): Use special MEM rtx form for callmem.
1303         * alias.c (canon_true_dependence): Update comment.
1304
1305 2006-11-30  Steven Bosscher  <steven@gcc.gnu.org>
1306
1307         * cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline
1308         at the end of a diagnostics message.
1309
1310         * alloc-pool.c (pool_free): Postpone clearing the pool entry
1311         until after asserting that it was allocated in the right pool.
1312
1313         * cfgrtl.c (print_rtl_with_bb): Print predecessor and
1314         successor edge information as well.  Make output of live regs
1315         on exit consistent with live regs on entry.
1316
1317 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
1318
1319         PR target/29852
1320         * config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable
1321         insn patterns for TARGET_80387.
1322         (*truncxfsf2_i387, *truncxfdf2_i387): Remove.
1323         (*truncxfsf2_i387_1): Rename to *truncxfsf2_i387.
1324         (*truncxfdf2_i387_1): Rename to *truncxfdf2_i387.
1325         (fmod<mode>3, remainder<mode>3): Enable expaders for SSE math.
1326         Generate truncxf<mode>2 insn patterns for strict SSE math.
1327
1328 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
1329
1330         * config/i386/i386.md (movsf_1): Enable pattern for standard
1331         80387 constants before reload when optimizing for size.
1332         (*movdf_nointeger, *movdf_integer): Ditto.
1333         (*movxf_nointeger, *movxf_integer): Disable patterns for standard
1334         80387 constants before reload when not optimizing for size.
1335
1336         (*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
1337         extension of XFmode input operands.
1338
1339 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1340
1341         * config/spu/crt0.c (__dso_handle): Define.
1342
1343 2006-11-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1344
1345         * emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially
1346         when clearing the used flags.
1347
1348 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1349
1350         * config/spu/spu.md (extend_compare): Fix whitespace formatting.
1351
1352 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1353
1354         PR target/29945
1355         * config/spu/spu.md  (extend_compare<mode>): New pattern.
1356         (extend_compare): Change to expand and use the above pattern.
1357
1358 2006-11-29  Janis Johnson  <janis187@us.ibm.com>
1359
1360         * config/dfp-bit.c (DFP_TO_INT): Fix rounding mode.
1361
1362         * config/dfp-bit.h (CONTEXT_ROUND): Delete.
1363         (DFP_INIT_ROUNDMODE): Define.
1364         * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE.
1365         * mklibgcc.in: Fix dependencies for dfp-bit.c.
1366
1367 2006-11-29  Tehila Meyzels  <tehila@il.ibm.com>
1368
1369         * haifa-sched.c: Remove define LINE_NOTE(INSN).  Remove line_note_head.
1370         Update documentation.
1371         (associate_line_notes_with_blocks): Kill.
1372         (extend_bb): Remove basic block argument, put void instead.
1373         Remove line number handling for each bb.
1374         (save_line_notes): Kill.
1375         (restore_line_notes): Kill.
1376         (sched_init): Remove line_note_head initialization.
1377         Change extend_bb call.
1378         (sched_finish): Remove free of line_note_head.
1379         (add_block): Change extend_bb call.
1380         * sched-ebb.c (schedule_ebb): Remove save_line_notes,
1381         rm_line_notes and restore_line_notes calls.
1382         (schedule_ebbs): Remove rm_redundant_line_notes.
1383         * sched-int.h (struct haifa_insn_data): Remove line_note.
1384         (save_line_notes): Remove declaration.
1385         (restore_line_notes): Remove declaration.
1386         * modulo-sched.c (loop_canon_p): Update debug info printing
1387         by using insn locators instead of line note.
1388         (sms_schedule): Update debug info printing, by using insn
1389         locators instead of line note.
1390         * sched-rgn.c (debug_dependencies): Remove handling of case
1391         n>0 (line number), since it's a dead code.
1392         (schedule_region): Remove save_line_notes and
1393         restore_line_notes calls.
1394
1395 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
1396
1397         * config/rs6000/predicates.md (gpc_reg_operand): Check
1398         invalid_e500_subreg.
1399         * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
1400         SImode subregs of SPE vectors.
1401         * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
1402         * jump.c (true_regnum): Require subregs to satisfy
1403         subreg_offset_representable_p.
1404
1405 2006-11-29  Daniel Berlin  <dberlin@dberlin.org>
1406             Steven Bosscher <stevenb.gcc@gmail.com>
1407
1408         * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h,
1409         since it no longer exists.
1410
1411 2006-11-29  Duncan Sands  <baldrick@free.fr>
1412
1413         PR tree-optimization/23744
1414         * tree-vrp.c (vrp_meet): do not require ranges to intersect.
1415
1416 2006-11-29  Duncan Sands  <baldrick@free.fr>
1417
1418         PR tree-optimization/23744
1419         * testsuite/gcc.dg/tree-ssa/pr23744.c: new test.
1420
1421 2006-11-29  Duncan Sands  <baldrick@free.fr>
1422
1423         PR tree-optimization/23744
1424         * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail.
1425
1426 2006-11-29  Jie Zhang  <jie.zhang@analog.com>
1427
1428         * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
1429
1430 2006-11-29  J"orn Rennecke  <joern.rennecke@st.com>
1431
1432         * sh.opt (minline-ic_invalidate): New option.
1433         (musermode): Adjust comment.
1434         * sh.c (sh_initialize_trampoline): Emit library call unless
1435         is set; if it is set, don't emit library call if we can use icbi
1436         instead.
1437         * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use
1438         icbi for TARGET_SH4_300.
1439         * t-sh (LIB1ASMFUNCS_CACHE): Set.
1440         * doc/invoke.texi: Document -minline-ic_invalidate; Update
1441         -musermode documentation.
1442
1443 2006-11-29  Jim Tison  <jtison@us.ibm.com>
1444
1445         * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
1446         __gthread_recursive_mutex_init): Define.
1447
1448 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
1449
1450         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
1451         STRICT_ALIGNMENT and the type is more aligned than the saved
1452         registers, copy via a temporary.
1453
1454 2006-11-28  Andrew Pinski  <pinskia@gmail.com>
1455
1456         PR tree-opt/29984
1457         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
1458         and MIN_EXRP.
1459
1460 2006-11-28  Bob Wilson  <bob.wilson@acm.org>
1461
1462         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
1463
1464 2006-11-28  Jan Hubicka  <jh@suse.cz>
1465
1466         Privatize SSA variables into gimple_df.
1467         * tree-flow-inline.h
1468         (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
1469         gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
1470         gimple_nonlocal_all): New accessors.
1471         (first_referenced_var): Update.
1472         (mark_stmt_modified): Update.
1473         (is_call_clobbered): Update.
1474         (mark_call_clobbered): Update.
1475         (clear_call_clobbered): Update.
1476         (mark_non_addressable): Update.
1477         * tree-vrp.c (get_value_range): Update.
1478         * tree-into-ssa.c (in_ssa_p): Kill.
1479         (get_default_def_for): Update.
1480         (rewrite_into_ssa): Update.
1481         * tree-complex.c (init_parameter_lattice_values): Update.
1482         (update_complex_assignment): Update.
1483         (update_parameter_components): Update.
1484         (expand_complex_libcall): Update.
1485         (expand_complex_operations_1): Update.
1486         * tree-tailcall.c (arg_needs_copy_p): Update.
1487         (add_virtual_phis): Update.
1488         (tree_optimize_tail_calls_1): Update.
1489         * tree-ssa-dse.c (memory_ssa_name_same): Update.
1490         * tree-ssa-copyrename.c
1491         (copy_rename_partition_coalesce): Update.
1492         * tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
1493         * tree-ssa-propagate.c (set_rhs): Update.
1494         * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
1495         addressable_vars, global_var):Kill.
1496         (set_initial_properties): Update.
1497         (init_alias_info): Update.
1498         (finalize_ref_all_pointers): Update.
1499         (setup_pointers_and_addressables): Update.
1500         (maybe_create_global_var): Update.
1501         (create_global_var): Update.
1502         (dump_points_to_info): Update.
1503         * function.h (struct gimple_df): Forward declare.
1504         (struct function): Add GIMPLE_DF field.
1505         * gimplify.c (force_gimple_operand): Update.
1506         * tree-dfa.c (referenced_vars, default_defs): KIll.
1507         (make_rename_temp): Update.
1508         (dump_variable): Update.
1509         (referenced_var_lookup): Update.
1510         (referenced_var_check_and_insert): Update.
1511         (default_def): Rename to ...
1512         (gimple_default_def): ... this one; accept cfun argument.
1513         (set_default_def): Update.
1514         * tree-cfgcleanup.c (modified_noreturn_calls): Kill.
1515         (cleanup_control_flow): Update.
1516         * tree-ssa-pre.c (compute_avail): Update
1517         * tree-ssa-live.c (calculate_live_on_entry): Update.
1518         * tree-ssa.c (verify_use): Update.
1519         (verify_call_clobbering): Update.
1520         (verify_call_clobbering): Update.
1521         (init_tree_ssa): Update.
1522         (delete_tree_ssa): Update.
1523         * tree-outof-ssa.c (coalesce_ssa_name): Update.
1524         (rewrite_out_of_ssa): Update.
1525         * tree-flow.h (gimple_df): New structure collecting dataflow variables.
1526         (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
1527         private accessors.
1528         (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
1529         ssa_names, global_var, nonlocal_all, call_clobbered_vars,
1530         addressable_vars, aliases_computed_p): Kill.
1531         (default_def): Rename to...
1532         (gimple_default_def): ... this one.
1533         (defaule_def_fn): Kill.
1534         (num_referenced_vars, ssa_names, num_ssa_names): Update.
1535         * tree-ssa-structalias.c (nonlocal_all): Kill.
1536         (get_constraint_exp_from_ssa_var): Update.
1537         (create_nonlocal_var): Update.
1538         (get_constraint_for): Update.
1539         (update_alias_info): Update.
1540         (find_global_initializers): Update.
1541         (intra_create_variable_infos): Update.
1542         (intra_create_variable_infos):
1543         (find_what_p_points_to): Update.
1544         (init_alias_heapvars): Update.
1545         * tree-cfg.c (remove_bb): Update.
1546         (gimplify_val): Update.
1547         * tree-ssa-reassoc.c (get_rank): Update.
1548         (init_reassoc): Update.
1549         * tree-ssanames.c: Do not include gt-tree-ssanames.h
1550         (ssa_names, free_ssanames): Kill.
1551         (init_ssanames): Update.
1552         (make_ssa_name): Update.
1553         (release_ssa_name): Update.
1554         (release_defs): Update.
1555         (replace_ssa_name_symbol): Update.
1556         * tree-ssa-operands.c (access_can_touch_variable): Update.
1557         (add_virtual_operand): Update.
1558         (add_call_clobber_ops): Update.
1559         (add_call_read_ops): Update.
1560         (get_call_expr_operands): Update.
1561         (get_asm_expr_operands): Update.
1562
1563 2006-11-28  Jan Hubicka  <jh@suse.cz>
1564
1565         * builtins.c: Include tree-flow.h.
1566         (fold_builtin_memory_op): Be more aggressive on converting memcpy to
1567         assignment; convert memmove to memcpy for sizes greater than 1 where
1568         alignment of operands prohibit the partial overlap.
1569
1570 2006-11-28  Jan Hubicka  <jh@suse.cz>
1571
1572         * invoke.texi (large-stack-frame, large-stack-frame-growth): New params.
1573         * cgraph.c (dump_cgraph_node): Dump stack usage.
1574         * cgraph.h (cgraph_local_info): Add estimated_self_stack_size.
1575         (cgraph_global_info): Add estimated_stack_size and stack_frame_offset.
1576         * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes.
1577         * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage.
1578         (cgraph_check_inline_limits): Limit stack growth.
1579         * cfgexpand.c: Include tree-inline.h.
1580         (account_stack_vars): New function.
1581         (expand_one_var): New param to just account the stack; return estimated
1582         size.
1583         (expand_used_vars_for_block): Update call of expand_one_var.
1584         (account_used_vars_for_block): New function.
1585         (estimated_stack_frame_size): Likewise.
1586         (init_vars_expansion, fini_vars_expansion): Break out from..
1587         (expand_used_vars): ... here.
1588         * tree-inline.h (estimated_stack_frame_size): Declare.
1589         * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New.
1590
1591 2006-11-28  Richard Guenther  <rguenther@suse.de>
1592
1593         * ggc-page.c (ggc_print_statistics): Use %ul and a cast to
1594         unsigned long for printing OBJECT_SIZE.
1595
1596 2006-11-27  Steven Bosscher  <steven@gcc.gnu.org>
1597
1598         * alias.c (init_alias_analysis): Remove simplification loop
1599         after propagating pointers.
1600
1601 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
1602
1603         * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
1604         and m_GENERIC64.
1605
1606 2006-11-27  Bob Wilson  <bob.wilson@acm.org>
1607
1608         * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default.
1609
1610 2006-11-27  Roger Sayle  <roger@eyesopen.com>
1611             Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1612
1613         * c-common.c (constant_fits_type_p): Delete.
1614         (unsigned_conversion_warning): Delete.
1615         (conversion_warning): Integrate Wconversion warning from
1616         unsigned_conversion_warning.
1617         (convert_and_check): Integrate Woverflow warning from
1618         unsigned_conversion_warning.  Reorganize and simplify to avoid
1619         dependence upon the middle-end setting TREE_OVERFLOW on integral
1620         conversions, by using int_fits_type_p directly.
1621
1622 2006-11-27  Tobias Burnus  <burnus@net-b.de>
1623
1624         * doc/invoke.texi: Fixed typo.
1625
1626 2006-11-27  Michael Matz  <matz@suse.de>
1627             Andreas Krebbel  <krebbel1@de.ibm.com>
1628
1629         PR target/29319
1630         * config/s390/predicates.md (larl_operand): Check addend of larl
1631         operand to be in range of -/+2GB.
1632         * config/s390/s390.c (legitimize_pic_address): Likewise.
1633         Changed type of variable even to HOST_WIDE_INT.
1634
1635 2006-11-27  Jan Hubicka  <jh@suse.cz>
1636
1637         * expr.c (emit_block_move_via_libcall): Export.
1638         (clear_storage_via_libcall): Rename to ...
1639         (set_storage_via_libcall): ... this one; handle arbitrary value to set.
1640         (clear_storage): Update to set_storage_via_libcall.
1641         * expr.h (emit_block_move_via_libcall): Declare
1642         * config/i386/i386.h (stringop_alg): New enum.
1643         (MAX_STRINGOP_ALGS): New constant.
1644         (stringop_algs): New struct.
1645         (processor_costs): Add memcpy/memset descriptors.
1646         (TARGET_REP_MOVEL_OPTIMAL): Remove.
1647         * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
1648         (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
1649         for memset.
1650         * config/i386/i386.opt (minline-stringops-dynamically,
1651         mstringop-strategy): New
1652         parameters.
1653         * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
1654         (ix86_expand-clrmem): Rename to ...
1655         (ix86_expand_setmem): ... this one; update prototype.
1656         * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
1657         (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
1658         geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
1659         nocona_cost, core2_cost, generic_cost, generic64_cost,
1660         generic32_cost): Add memcpy/memset descriptors.
1661         (x86_rep_movl_optimal): Remove.
1662         (stringop_alg): New static variable.
1663         (ix86_expand_aligntest): Handle predictions.
1664         (override_options): Add strgop_alg handling.
1665         (predict_jump): New function.
1666         (scale_counter): New function.
1667         (expand_set_or_movmem_via_loop): New function.
1668         (expand_movmem_via_rep_mov): New function.
1669         (expand_setmem_via_rep_stots): New function.
1670         (emit_strmov): New function.
1671         (expand_movmem_epilogue): New function.
1672         (expand_setmem_epilogue_via_loop): New function.
1673         (expand_setmem_epilogue): New function.
1674         (expand_movmem_prologue): New function.
1675         (expand_setmem_prologue): New function.
1676         (decide_alg): New function.
1677         (decide_alignment): New function.
1678         (ix86_exand_movmem): Rewrite.
1679         (promote_duplicated_reg): New function.
1680         (ix86_expand_clrmem): Rename to ...
1681         (ix86_expand_setmem): ... this one. Rewrite.
1682
1683         * invoke.texi (minline-stringops-dynamically): New command line option.
1684         (mstringop-strategy): Likewise.
1685
1686 2006-11-27  Jan Hubicka  <jh@suse.cz>
1687
1688         * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
1689         * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
1690         * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
1691         * insn-notes.def (FUNCTION_END): Remove.
1692         * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
1693         (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
1694         note.
1695         * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
1696         * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
1697         * cfglayout.c (duplicate_insn_chain): Don't worry about
1698         NOTE_FUNCTION_END.
1699
1700 2006-11-27  Richard Guenther  <rguenther@suse.de>
1701             Zdenek Dvorak <dvorakz@suse.cz>
1702
1703         * target.h (struct gcc_target): Add builtin_vectorized_function
1704         target hook.
1705         * target-def.h (TARGET_VECTORIZE): Likewise.
1706         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
1707         Document new target hook.
1708         * targhooks.h (default_builtin_vectorized_function): Declare.
1709         * targhooks.c (default_builtin_vectorized_function): Define.
1710         * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
1711         (vectorizable_call): Declare.
1712         * tree-vect-analyze.c (vect_analyze_operations): Call
1713         vectorizable_call.
1714         * tree-vect-transform.c (vectorizable_function): New static function.
1715         (build_vectorized_function_call): Likewise.
1716         (vectorizable_call): New function.
1717         (vect_transform_stmt): Handle vectorizable calls.
1718
1719 2006-11-27  Richard Guenther  <rguenther@suse.de>
1720
1721         PR middle-end/25620
1722         * builtins.c (expand_builtin_pow): Optimize non integer valued
1723         constant exponents using sqrt or cbrt if possible.  Always fall back
1724         to expanding via optabs.
1725
1726 2006-11-27  Ira Rosen  <irar@il.ibm.com>
1727
1728         PR tree-optimization/22372
1729         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
1730         the type of the base address.
1731         (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
1732         it in the data-ref pointer creation.
1733         (vect_init_vector): Add an argument, type of the init vector. Use it in
1734         the stmt creation.
1735         (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
1736         (get_initial_def_for_reduction): Likewise.
1737         (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
1738         void_type_node.
1739         (vectorizable_assignment, vect_permute_store_chain): Likewise.
1740         (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
1741         correct type in stmt creation.
1742         (vect_setup_realignment): Use the correct type in stmt creation.
1743         (vect_permute_load_chain): Change type of MODIFY_EXPR to
1744         void_type_node.
1745         (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
1746         of MODIFY_EXPR to void_type_node.
1747         (vectorizable_condition): Change type of MODIFY_EXPR to
1748         void_type_node.
1749         (vect_update_ivs_after_vectorizer): Use the correct type in stmt
1750         creation.
1751
1752 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
1753
1754         Revert:
1755         2006-05-08  Uros Bizjak  <uros@kss-loka.si>
1756         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
1757         standard 80387 constants, raise the cost to prevent
1758         compress_float_constant() to generate load from memory.
1759
1760         * config/i386/i386.md: Add new splitter pattern to split
1761         float_extended load of constant from constant pool into
1762         pure constant load.
1763
1764 2006-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1765
1766         * doc/install.texi: Move GMP/MPFR configure options from Fortran
1767         section to general section.  Remove documentation for
1768         --with-mpfr-dir and --with-gmp-dir, add documentation for
1769         --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
1770         --with-gmp-lib.
1771
1772         * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
1773
1774 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
1775
1776         * testsuite/gcc.dg/ipa/ipa-6.c: New.
1777
1778 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
1779
1780         PR tree-optimization/29122
1781         * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME
1782         for the new version.  Assign NULL to DECL_RTL of the new version.
1783
1784 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
1785
1786         * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
1787
1788 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
1789
1790         * cse.c (cse_altered): Remove.
1791         (record_jump_equiv): Make true/false argument a bool instead
1792         of an int.
1793         (cse_insn): Don't set cse_altered.  Use delete_insn_and_edges
1794         where appropriate.  Emit a new jump before the existing one
1795         instead of after so that delete_insn_and_edges removes the
1796         dead edges properly.  Check any_condjump_p before calling
1797         record_jump_equiv.
1798         (cse_basic_block): Check any_condjump_p before calling
1799         record_jump_equiv.
1800         (cse_main): Don't set/check cse_altered.  Remove USE_C_ALLOCA.
1801
1802 2006-11-25  Brooks Moses  <brooks.moses@codesourcery.com>
1803
1804         * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
1805         -ffixed-line-length-* options.
1806
1807 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
1808
1809         * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
1810         (fprem1xf4): Rename to fprem1xf4_i387.
1811
1812         (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
1813         Rename patterns to fmod<mode>3.  Use general_operand operand
1814         constraint for operands 1 and 2.  Use SSE_FLOAT_MODE_P to disable
1815         patterns for SSE math.
1816         (remaindersf3, remainderdf3): Ditto.
1817
1818 2006-11-25  Joseph Myers  <joseph@codesourcery.com>
1819
1820         * function.c (instantiate_virtual_regs_in_insn): Call force_reg
1821         inside start_sequence / end_sequence pair.
1822
1823 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
1824
1825         * jump.c (mark_all_labels): Work in cfglayout mode.
1826         * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
1827         when in cfglayout mode, because there are no dead jumptables
1828         visible.
1829         * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
1830         in cfglayout mode.
1831         (commit_edge_insertions): Do not allow insertion of instructions
1832         with control flow insns when in cfglayout mode.
1833
1834 2006-11-25  Zdenek Dvorak <dvorakz@suse.cz>
1835
1836         * tree-vrp.c (execute_vrp): Do not pass loops structure through
1837         arguments.
1838         * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
1839         unswitch_loop): Ditto.
1840         * tree-loop-linear.c (linear_transform_loops): Ditto.
1841         * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
1842         tree_ssa_lim): Ditto.
1843         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
1844         free_numbers_of_iterations_estimates): Ditto.
1845         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
1846         tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
1847         * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
1848         remove_path, add_loop, loopify, unloop, fix_loop_placements,
1849         place_new_loop, duplicate_loop, duplicate_subloops,
1850         update_single_exit_for_duplicated_loops, copy_loops_to,
1851         duplicate_loop_to_header_edge, create_preheaders,
1852         force_single_succ_latches, loop_version, fix_loop_structure):
1853         Ditto.
1854         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
1855         tree_unroll_loop): Ditto.
1856         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1857         * tree-scalar-evolution.c (select_loops_exit_conditions,
1858         scev_initialize, scev_analysis): Ditto.
1859         * tree-scalar-evolution.h (scev_initialize): Ditto.
1860         * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
1861         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
1862         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
1863         * modulo-sched.c (sms_schedule): Ditto.
1864         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
1865         * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
1866         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
1867         * ifcvt.c (if_convert): Ditto.
1868         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
1869         canonicalize_loop_induction_variables,
1870         canonicalize_induction_variables,
1871         tree_unroll_loops_completely, remove_empty_loops): Ditto.
1872         * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
1873         tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
1874         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
1875         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
1876         tree_ssa_loop_done): Ditto.
1877         * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
1878         estimate_bb_frequencies): Ditto.
1879         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
1880         slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
1881         * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
1882         decide_unrolling_and_peeling, peel_loop_completely,
1883         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1884         peel_loop_simple, unroll_loop_stupid): Ditto.
1885         * loop-doloop.c (doloop_optimize_loops): Ditto.
1886         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
1887         * loop-invariant.c (move_loop_invariants): Ditto.
1888         * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
1889         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
1890         tree_ssa_prefetch_arrays): Ditto.
1891         * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
1892         Ditto.
1893         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1894         vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
1895         * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
1896         mark_single_exit_loops, cancel_loop, cancel_loop_tree,
1897         verify_loop_structure): Ditto.
1898         * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
1899         canonicalize_induction_variables, tree_unroll_loops_completely,
1900         tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
1901         estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
1902         tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
1903         tree_unroll_loop, linear_transform_loops): Declaration changed.
1904         * basic-block.h: Remove declaration of struct loops.
1905         * cfghooks.h (struct cfg_hooks): Change type of
1906         cfg_hook_duplicate_loop_to_header_edge.
1907         (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
1908         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
1909         vect_transform_loop): Declaration changed.
1910         * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
1911         * cfgloop.h (flow_loops_dump, fix_loop_structure,
1912         mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
1913         cancel_loop_tree, create_preheaders, force_single_succ_latches,
1914         verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
1915         loopify, loop_version, remove_path, unswitch_loops,
1916         unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
1917         Declaration changed.
1918
1919 2006-11-24  Uros Bizjak  <ubizjak@gmail.com>
1920
1921         * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
1922         (X87MODEF): New mode macro.
1923         (ssemodefsuffix): New mode attribute.
1924         (truncxf<mode>2_i387_noop_unspec): New insn pattern.
1925         (sqrt_extend<mode>xf2_i387): New insn pattern.
1926         (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
1927         insn and truncate result back to original mode using
1928         UNSPEC_TRUNC_NOOP truncation.
1929         (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
1930         ssemodefsuffix mode attribute.
1931         (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
1932         (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
1933         (*sqrtextenddfxf2_i387): Remove insn patterns.
1934
1935         (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
1936         truncation patterns.
1937
1938         * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
1939
1940 2006-11-24  Jakub Jelinek  <jakub@redhat.com>
1941
1942         PR c/29955
1943         * c-tree.h (c_maybe_initialize_eh): New prototype.
1944         * c-decl.c (finish_decl): Move EH initialization...
1945         (c_maybe_initialize_eh): ... here.  New function.
1946         * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
1947         if not #pragma omp atomic.
1948
1949         PR c/29736
1950         * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
1951         or UNION_TYPE inner types.
1952
1953 2006-11-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1954
1955         PR tree-opt/29964
1956         * ipa-pure-const.c (check_tree): If the original tree
1957         is volatile return early and say the function is not pure
1958         nor const.  Remove the volatile check for writes.
1959         (analyze_function): Print out the result of the local
1960         analysis pass.
1961
1962 2006-11-24  Joseph Myers  <joseph@codesourcery.com>
1963
1964         * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
1965         MASK_STRICT_ALIGN.
1966         * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
1967         * config/rs6000/rs6000.c (rs6000_override_options): Use
1968         MASK_STRICT_ALIGN for 8540 and 8548.  Add MASK_STRICT_ALIGN to
1969         POWERPC_MASKS.
1970
1971 2006-11-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1972
1973         * config/s390.c (s390_emit_compare_and_swap): New function.
1974         (s390_expand_cs_hqi, s390_expand_atomic): Call
1975         s390_emit_compare_and_swap.
1976
1977 2006-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1978
1979         * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
1980
1981 2006-11-24  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1982
1983         PR c/2707
1984         PR c++/26167
1985         * c-common.c (conversion_warning): New.
1986         (convert_and_check): Call conversion_warning unless there is an
1987         overflow warning.
1988         * doc/invoke.texi (-Wconversion): Update description.
1989
1990 2006-11-23  Daniel Berlin  <dberlin@dberlin.org>
1991
1992         * tree-ssa-alias.c (tree_pointer_compare): New function.
1993         (compact_name_tags): New function.
1994         (group_aliases): Call compact_name_tags.
1995
1996 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1997
1998         * real.h (real_isinteger): Declare.
1999         * real.c (real_isinteger): Define.
2000         * builtins.c (integer_valued_real_p): Use it.
2001
2002 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2003
2004         PR c/9072
2005         * c.opt (Wtraditional-conversion): New.
2006         (Wconversion): Update description.
2007         * c-typeck.c (convert_arguments): Warnings for prototypes causing
2008         type conversions different from what would happen in the absence
2009         of prototype are now handled by Wtraditional-conversion.
2010         * doc/invoke.texi (Wtraditional-conversion): New.
2011         (Wconversion): Update description.
2012         * doc/trouble.texi (Wconversion): Replace Wconversion by
2013         Wtraditional-conversion.
2014
2015 2006-11-23  Andrew Pinski  <pinskia@gmail.com>
2016
2017         * predict.c (tree_estimate_probability): Check to make
2018         sure current_loops is non null before calling flow_loops_dump.
2019
2020 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
2021
2022         * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
2023
2024 2006-11-23  David Ung  <davidu@mips.com>
2025
2026         * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
2027         combination.
2028         (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
2029         (ASM_SPEC): Pass along -mfp32 and -mfp64.
2030         * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
2031         high part of FP register when in 64-bit FP register mode.  Similarly
2032         use gen_mfhc1 to load high part of FP register.
2033         (override_options): Allow -mgp32 and -mfp64 combination if
2034         ISA_HAS_MXHC1 (currently for O32 only).
2035         (mips_cannot_change_mode_class): If floating-point registers are
2036         bigger than word size. disallow conversion of float register from a
2037         large integer mode to a float mode smaller than the float register
2038         size.
2039         (mips_class_max_nregs): Handle float registers case seperately.
2040         * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
2041         UNSPEC_MTHC1.
2042         (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
2043         (movdf_hardfloat_32bit): Similarly.
2044         (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
2045         support a full 64-bit fpu.
2046         (mthc1): New pattern to generate MTHC1 instruction.
2047         (mfhc1): New pattern to generate MFHC1 instruction.
2048         * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
2049         option for the MIPS32R2 and mention its use under O32 ABI.
2050
2051 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
2052
2053         * var-tracking.c (emit_note_insn_var_location): Take care not to
2054         cause verify_flow_info failures.
2055
2056 2006-11-22  Daniel Berlin  <dberlin@dberlin.org>
2057
2058         * tree-ssa-structalias.c: Remove edge weights in favor of just
2059         processing them as complex constraints.
2060         (struct constraint_graph): Remove weighted succs and preds. Rename
2061         nonweighted succs and preds.
2062         (constraint_edge): Removed.
2063         (constraint_edge_t): Ditto.
2064         (constraint_edge_pool): Ditto.
2065         (new_constraint_edge): Ditto.
2066         (constraint_edge_equal): Ditto.
2067         (constraint_edge_less): Ditto.
2068         (constraint_edge_vec_find): Ditto.
2069         (erase_self_graph_edge): Ditto.
2070         (add_graph_edge): Removed.
2071         (get_graph_weights): Ditto.
2072         (allocate_graph_weights): Ditto.
2073         (valid_weighted_graph_edge): Ditto
2074         (bitmap_other_than_zero_bit_set): Ditto.
2075         (int_add_graph_edge): Renamed to add_graph_edge.
2076         (clear_edges_for_node): Remove support for weighted edges.
2077         (merge_graph_nodes): Ditto.
2078         (valid_graph_edge): Ditto.
2079         (build_constraint_graph): Ditto.
2080         (scc_visit): Ditto.
2081         (collapse_nodes): Ditto.
2082         (process_unification_queue): Ditto.
2083         (topo_visit): Ditto.
2084         (do_ds_constraint): Ditto.
2085         (perform_var_subsitution): Ditto.
2086         (solve_graph): Ditto.
2087         (init_alias_vars): Ditto.
2088         (delete_points_to_sets): Ditto.
2089         (do_complex_constraint): Support offsetted copies here.
2090
2091 2006-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
2092
2093         * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
2094         SPU_RdEventMask.
2095         * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
2096
2097         * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
2098         of size bitfield.
2099
2100 2006-11-23  Ben Elliston  <bje@au.ibm.com>
2101
2102         * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
2103
2104 2006-11-23  Zdenek Dvorak <dvorakz@suse.cz>
2105
2106         PR tree-optimization/29921
2107         * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
2108         signed and unsigned zero equal.
2109
2110 2006-11-22  Peter Bergner  <bergner@vnet.ibm.com>
2111
2112         * config/rs6000/rs6000.c (get_store_dest): New.
2113         (adjacent_mem_locations): Use get_store_dest() to get
2114         the rtl of the store destination.
2115
2116 2006-11-22  Joseph Myers  <joseph@codesourcery.com>
2117
2118         * config/rs6000/spe.md (SPE64): New mode macro.
2119         (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0.  Add
2120         memory load.
2121         (mov_si<mode>_e500_subreg0_2): New.
2122         (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4.  Add
2123         memory load.
2124         (mov_si<mode>_e500_subreg4_2): New.
2125         * config/rs6000/predicates.md (input_operand): Do not allow
2126         invalid E500 subregs.
2127         (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
2128         if TARGET_SPE.
2129         * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
2130         involving DFmode if TARGET_E500_DOUBLE.  Check for subregs
2131         involving vector modes if TARGET_SPE.
2132
2133 2006-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2134
2135         Revert
2136         2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2137         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
2138
2139 2006-11-22  Bernd Schmidt  <bernd.schmidt@analog.com>
2140
2141         * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
2142         mem_i_address_operand): New predicates.
2143         * config/bfin/bfin.c (bfin_issue_rate): New function.
2144         (TARGET_SCHED_ISSUE_RATE): New macro.
2145         * config/bfin/bfin.md (addrtype): New attribute.
2146         (slot0, slot1, slot2, store, pregs): New cpu_units.
2147         (core): Now a define_reservation.
2148         (alu): Remove some insn types from this reservation.
2149         (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New
2150         insn reservations.
2151         (dummy reservation): Don't trigger for mcld insns.
2152         (absence_sets): Two new absence sets to enforce slot ordering.
2153         (popsi_insn): Set addrtype.
2154
2155 2006-11-22  Ira Rosen  <irar@il.ibm.com>
2156
2157         * doc/c-tree.texi: Document new tree codes.
2158         * doc/md.texi: Document new optabs.
2159         * tree-pretty-print.c (dump_generic_node): Handle print of new tree
2160         codes.
2161         * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
2162         * optabs.h (optab_index): Add new.
2163         (vec_extract_even_optab, vec_extract_odd_optab,
2164         vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
2165         * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
2166         vec_interleave_high_optab, vec_interleave_low_optab): Initialize
2167         new optabs.
2168         * expr.c (expand_expr_real_1): Add implementation for new tree codes.
2169         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
2170         * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
2171         along with macros for their access.
2172         * tree-data-ref.h (first_location_in_loop, data_reference): Update
2173         comment.
2174         * tree-vect-analyze.c (toplev.h): Include.
2175         (vect_determine_vectorization_factor): Fix indentation.
2176         (vect_insert_into_interleaving_chain,
2177         vect_update_interleaving_chain, vect_equal_offsets): New functions.
2178         (vect_analyze_data_ref_dependence): Add argument for interleaving
2179         check. Check for interleaving if it's true.
2180         (vect_check_dependences): New function.
2181         (vect_analyze_data_ref_dependences): Call vect_check_dependences for
2182         every ddr. Call vect_analyze_data_ref_dependence with new argument.
2183         (vect_update_misalignment_for_peel): Update for interleaving.
2184         (vect_verify_datarefs_alignment): Check only first data-ref for
2185         interleaving.
2186         (vect_enhance_data_refs_alignment): Update for interleaving. Check
2187         only first data-ref for interleaving.
2188         (vect_analyze_data_ref_access): Check interleaving, update
2189         interleaving data.
2190         (vect_analyze_data_refs): Call compute_data_dependences_for_loop
2191         with different parameters.
2192         * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
2193         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
2194         * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
2195         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2196         Update step in case of interleaving.
2197         (vect_strided_store_supported, vect_permute_store_chain): New
2198         functions.
2199         (vectorizable_store): Handle strided stores.
2200         (vect_strided_load_supported, vect_permute_load_chain,
2201         vect_transform_strided_load): New functions.
2202         (vectorizable_load): Handle strided loads.
2203         (vect_transform_stmt): Add argument. Handle strided stores. Check
2204         that vectorized stmt exists for patterns.
2205         (vect_gen_niters_for_prolog_loop): Update calculation for
2206         interleaving.
2207         (vect_transform_loop): Remove stmt_vec_info for strided stores after
2208         whole chain vectorization.
2209         * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD,
2210         UNSPEC_INTERHI, UNSPEC_INTERLO): New constants.
2211         (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>,
2212         vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf,
2213         vec_interleave_high<mode>, vec_interleave_low<mode>): Implement.
2214
2215 2006-11-22  Steven Bosscher  <steven@gcc.gnu.org>
2216
2217         * cse.c (enum taken): Remove PATH_AROUND.
2218         (addr_affects_sp_p, invalidate_skipped_set,
2219         invalidate_skipped_block): Remove.
2220         (cse_end_of_basic_block): Remove skip_blocks and related code.
2221         (cse_main): Don't test for flag_cse_skip_blocks.
2222         Update cse_end_of_basic_block call.
2223         (cse_basic_block): Likewise.  Remove PATH_AROUND case.  Remove
2224         code to lengthen the path if a jump was simplified.
2225
2226 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
2227
2228         PR rtl-optimization/29924
2229         * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
2230         (unroll_loop_runtime_iterations): Assert that the argument passed to
2231         split_edge_and_insert is not NULL.
2232         * loop-doloop.c (add_test): Ditto.
2233
2234 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
2235
2236         * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
2237         functions.
2238         * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
2239         * cfgloopmanip.c (update_single_exits_after_duplication,
2240         update_single_exit_for_duplicated_loop, loop_version): Ditto.
2241         * tree-scalar-evolution.c (get_loop_exit_condition,
2242         get_exit_conditions_rec, loop_closed_phi_def,
2243         number_of_iterations_in_loop, scev_const_prop): Ditto.
2244         * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
2245         * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
2246         Ditto.
2247         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
2248         Ditto.
2249         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
2250         slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
2251         slpeel_make_loop_iterate_ntimes,
2252         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
2253         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
2254         Ditto.
2255         * tree-if-conv.c (if_convertible_loop_p): Ditto.
2256         * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
2257         vect_analyze_loop_form): Ditto.
2258         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
2259         can_convert_to_perfect_nest, perfect_nestify): Ditto.
2260         * tree-vect-transform.c (vect_create_epilog_for_reduction,
2261         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
2262         vect_transform_loop): Ditto.
2263         * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
2264         (single_exit, set_single_exit): New functions.
2265         * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
2266         (single_exit, set_single_exit): Declare.
2267         * doc/loop.texi: Undocument single_exit field.  Document single_exit
2268         accessor function.
2269
2270 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
2271
2272         PR tree-optimization/29902
2273         * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
2274         any involved ssa name appears in abnormal phi node.
2275
2276 2006-11-21  Bob Wilson  <bob.wilson@acm.org>
2277
2278         * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
2279         (xtensa_const_ok_for_letter_p): Delete.
2280         (xtensa_extra_constraint): Delete.
2281         (override_options): Delete xtensa_char_to_class initialization.
2282         * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
2283         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2284         (EXTRA_CONSTRAINT): Delete.
2285         * config/xtensa/xtensa.md: Include constraints.md.
2286         (call_internal): Combine alternatives.
2287         (call_value_internal): Likewise, and remove invalid constraints.
2288         * config/xtensa/constraints.md: New file.
2289         * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
2290         (xtensa_extra_constraint): Delete.
2291         * doc/md.texi (Machine Constraints): Refer to constraints.md for
2292         Xtensa constraints.
2293
2294 2006-11-21  Janis Johnson  <janis187@us.ibm.com>
2295
2296         * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
2297         of conversion that doesn't fit.
2298
2299         * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
2300         * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
2301         DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
2302
2303         * config/dfp-bit.c (dfp_binary_func): Fix typedef.
2304
2305 2006-11-21  Douglas Gregor <doug.gregor@gmail.com>
2306
2307         * c-common.h (enum rid): Add RID_STATIC_ASSERT.
2308
2309 2006-11-21  Richard Guenther  <rguenther@suse.de>
2310
2311         * tree-vectorizer.h (NUM_PATTERNS): Increase.
2312         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
2313         vect_recog_pow_pattern.
2314         (vect_recog_pow_pattern): New function.
2315
2316 2006-11-21  Bernd Schmidt  <bernd.schmidt@analog.com>
2317
2318         * config/bfin/bfin.opt (mstack-check-l1): New.
2319         * doc/invoke.texi (Blackfin Options): Document it.
2320         * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
2321         stack bounds in L1 memory if the new option is enabled.
2322         (override_options): Don't allow combinations of -fstack-limit and
2323         -mstack-check-l1.
2324         (add_to_reg): Renamed from add_to_sp.  All callers changed.  Lose some
2325         dead code.
2326
2327         * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
2328         regs for DImode.
2329         (bfin_register_move_cost): Bump costs if trying to move plain
2330         integer values through accumulators.
2331
2332 2006-11-21  Ben Elliston  <bje@au.ibm.com>
2333
2334         * config/spu/spu.c (spu_expand_vector_init): Initialise x.
2335
2336 2006-11-20  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2337             Russell Olsen <Russell_Olsen@playstation.sony.com>
2338             Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
2339             Yukishige Shibata <shibata@rd.scei.sony.co.jp>
2340             Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
2341             Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
2342             Andrew Pinski <Andrew_Pinski@playstation.sony.com>
2343
2344         * config.gcc: Add target for SPU.
2345         * config/spu/constraints.md: New file.
2346         * config/spu/crt0.c: New file.
2347         * config/spu/crtend.c: New file.
2348         * config/spu/crti.asm: New file.
2349         * config/spu/crtn.asm: New file.
2350         * config/spu/float_unsdidf.c: New file.
2351         * config/spu/float_unssidf.c: New file.
2352         * config/spu/predicates.md: New file.
2353         * config/spu/spu-builtins.def: New file.
2354         * config/spu/spu-builtins.h: New file.
2355         * config/spu/spu-builtins.md: New file.
2356         * config/spu/spu-c.c: New file.
2357         * config/spu/spu-elf.h: New file.
2358         * config/spu/spu-modes.def: New file.
2359         * config/spu/spu-protos.h: New file.
2360         * config/spu/spu.c: New file.
2361         * config/spu/spu.h: New file.
2362         * config/spu/spu.md: New file.
2363         * config/spu/spu.opt: New file.
2364         * config/spu/spu_internals.h: New file.
2365         * config/spu/spu_intrinsics.h: New file.
2366         * config/spu/spu_mfcio.h: New file.
2367         * config/spu/t-spu-elf: New file.
2368         * config/spu/vec_types.h: New file.
2369         * config/spu/vmx2spu.h: New file.
2370         * doc/contrib.texi: Document SPU contributor.
2371         * doc/extend.texi: Document SPU extensions.
2372         * doc/invoke.texi: Document SPU options.
2373         * doc/md.texi: Document SPU constraints.
2374
2375 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
2376
2377         * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
2378         of the loop.
2379         * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
2380         Removed.
2381         (flow_loop_dump): Do not dump loop level.
2382         (flow_loops_find): Do not call flow_loops_level_compute.
2383         * cfgloop.h (struct loop): Remove level field.
2384
2385 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
2386
2387         * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
2388         hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
2389         Use vector of edges instead of array.
2390         * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
2391         estimate_numbers_of_iterations_loop): Ditto.
2392         * predict.c (predict_loops): Ditto.
2393         * loop-unroll.c (analyze_insns_in_loop): Ditto.
2394         * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
2395         edge vectors.
2396         * basic-block.h: Declare heap allocation for edge vectors.
2397         * tree-outof-ssa.c: Ditto.
2398         * cfgloop.c (get_loop_exit_edges): Return vector of edges.
2399         * cfgloop.h (get_loop_exit_edges): Declaration changed.
2400
2401 2006-11-20  Zack Weinberg  <zackw@panix.com>
2402
2403         * gengtype.c (process_gc_options): Remove unnecessary forward decl.
2404         Add another out parameter, "skip".
2405         (set_gc_used_type): Adjust calls to process_gc_options.  If a field
2406         is tagged "skip", do not mark its type used.
2407
2408 2006-11-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2409
2410         PR tree-opt/25500
2411         * tree-sra.c (single_scalar_field_in_record_p): New function.
2412         (decide_block_copy): Use it.
2413
2414 2006-11-20  David Daney  <ddaney@avtrex.com>
2415
2416         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
2417         PC to point to following instruction.
2418
2419 2006-11-20  Anatoly Sokolov <aesok@post.ru>
2420
2421         PR target/18553
2422         PR target/29449
2423         * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
2424
2425         * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
2426
2427 2006-11-20  J"orn Rennecke  <joern.rennecke@st.com>
2428
2429         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2430         Add sh/superh.h to tm_file.
2431
2432 2006-11-20  Carlos O'Donell  <carlos@codesourcery.com>
2433             Mark Mitchell  <mark@codesourcery.com>
2434
2435         * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and
2436         gcc_exec_prefix.
2437         (cpp_relocated): New function.
2438         * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix
2439         and cpp_relocated.
2440         * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
2441         * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
2442         replace configured prefix with gcc_exec_prefix.
2443
2444 2006-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
2445
2446         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
2447         bfin_legitimate_constant_p.
2448         * config/bfin/bfin.md (movsi expander): Check return value of
2449         expand_mvoe.
2450         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
2451         (expand_move): Adjust prototype.
2452         * config/bfin/bfin.c (expand_move): Now returns bool.  Handle
2453         invalid constants specially.
2454         (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
2455         functions.
2456         (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
2457
2458         * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
2459         sibcall_value_symbol): Allow these patterns if
2460         TARGET_LEAF_ID_SHARED_LIBRARY.
2461         * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
2462         (override_options): Turn on id shared library flags if -msep-data,
2463         but disallow the combination of these options on the command line.
2464         * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
2465         MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
2466         (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
2467         -mid-shared-library.
2468         (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
2469         * doc/invoke.texi (Blackfin Options): Document new switches.
2470
2471         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
2472         edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
2473
2474         * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
2475         inflate costs for addresses with an out-of-bounds address.
2476
2477 2006-11-19  Andrew Pinski  <pinskia@gmail.com>
2478
2479         PR rtl-opt/29879
2480         * fwprop.c (loops): Remove.
2481         (forward_propagate_into): Use current_loops instead of
2482         loops.
2483         (fwprop_init): Call loop_optimizer_init instead of
2484         flow_loops_find.
2485         (fwprop_done): Call loop_optimizer_finalize instead of
2486         flow_loops_free.
2487         (fwprop): Use current_loops instead of loops.
2488
2489 2006-11-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2490
2491         PR c++/8586
2492         * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall.
2493
2494 2006-11-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2495
2496         PR target/29114
2497         * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
2498         larger than BITS_PER_WORD.
2499
2500 2006-11-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2501
2502         PR fortran/27885
2503         PR middle-end/28176
2504         * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
2505         to MAX_FIXED_MODE_SIZE.
2506
2507 2006-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2508
2509         * builtins.c (integer_valued_real_p): Handle fmin/fmax.
2510         (fold_builtin_fmin_fmax): New.
2511         (fold_builtin_1): Use it.
2512
2513         * fold-const.c (fold_strip_sign_ops): Handle copysign.
2514
2515 2006-11-18  Richard Guenther  <rguenther@suse.de>
2516
2517         * config/i386/i386.c (ix86_builtins): New array for ix86
2518         builtin function decls.
2519         (def_builtin): New function.
2520         (def_builtin_const): Likewise.
2521         (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
2522
2523 2006-11-18  Vladimir Makarov  <vmakarov@redhat.com>
2524
2525         * doc/invoke.texi (core2): Add item.
2526
2527         * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
2528         macros.
2529         (TARGET_CPU_CPP_BUILTINS): Add code for core2.
2530         (TARGET_CPU_DEFAULT_generic): Change value.
2531         (TARGET_CPU_DEFAULT_NAMES): Add core2.
2532         (processor_type): Add new constant PROCESSOR_CORE2.
2533
2534         * config/i386/i386.md (cpu): Add core2.
2535
2536         * config/i386/i386.c (core2_cost): New initialized variable.
2537         (m_CORE2): New macro.
2538         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
2539         x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
2540         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
2541         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
2542         x86_partial_reg_dependency, x86_memory_mismatch_stall,
2543         x86_accumulate_outgoing_args, x86_prologue_using_move,
2544         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
2545         x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
2546         x86_use_incdec, x86_four_jump_limit, x86_schedule,
2547         x86_pad_returns): Add m_CORE2.
2548         (override_options): Add entries for Core2.
2549         (ix86_issue_rate): Add case for Core2.
2550
2551 2006-11-18  Aldy Hernandez  <aldyh@redhat.com>
2552
2553         * doc/invoke.texi: Fix mno-isel typo.
2554
2555 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
2556
2557         * config/rs6000/spe.md (movv4hi_internal): Add alternative for
2558         easy vector constant loads.
2559
2560 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
2561
2562         * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
2563         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2564         __NO_LWSYNC__ if TARGET_NO_LWSYNC.
2565         * config/rs6000/sync.md (lwsync): Emit plain sync if
2566         TARGET_NO_LWSYNC.
2567
2568 2006-11-17  DJ Delorie  <dj@redhat.com>
2569
2570         * reload1.c (reloads_unique_chain): New.
2571         (reloads_conflict): Call it.
2572
2573 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2574
2575         * config/xtensa/predicates.md (addsubx_operand): New.
2576         * config/xtensa/xtensa.c (xtensa_emit_branch): New.
2577         (xtensa_emit_bit_branch): New.
2578         (xtensa_emit_movcc): New.
2579         * config/xtensa/xtensa.md (any_minmax): New code macro.
2580         (minmax): New code attribute.
2581         (any_cond, any_scc, any_scc_sf): New code macros.
2582         (*addx2, *addx4, *addx8): Delete.
2583         (*addx): New.
2584         (*subx2, *subx4, *subx8): Delete.
2585         (*subx): New.
2586         (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
2587         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
2588         (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
2589         (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
2590         (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
2591         (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
2592         (movsfcc_internal0, movsfcc_internal1): Likewise.
2593         (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
2594         * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
2595         (xtensa_emit_bit_branch): New.
2596         (xtensa_emit_movcc): New.
2597         (function_arg_boundary): Add missing prototype.
2598
2599 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2600
2601         * config/xtensa/xtensa.md (tstsi): Delete
2602
2603 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2604
2605         * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
2606
2607 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2608
2609         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2610
2611 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2612
2613         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
2614
2615 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
2616
2617         * tree-vrp.c (execute_vrp): Do not update current_loops.
2618         * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
2619         * doc/loop.texi: Remove documentation for cancelled functions.
2620         * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
2621         (move_computations, determine_lsm): Use bsi_commit_edge_inserts
2622         instead.
2623         * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
2624         (remove_path): Ensure that in delete_basic_blocks, the loops
2625         are still allocated.
2626         (add_loop): Work on valid loop structures.
2627         (loopify): Modify call of add_loop.
2628         (mfb_update_loops): Removed.
2629         (create_preheader): Do not update loops explicitly.
2630         (force_single_succ_latches, loop_version): Do not use
2631         loop_split_edge_with.
2632         (loop_split_edge_with): Removed.
2633         * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
2634         Do not use bsi_insert_on_edge_immediate_loop.
2635         (split_loop_exit_edge, tree_unroll_loop): Do not use
2636         loop_split_edge_with.
2637         (bsi_insert_on_edge_immediate_loop): Removed.
2638         * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops.  Do not
2639         use loop_split_edge_with.
2640         * cfghooks.c: Include cfgloop.h.
2641         (verify_flow_info): Verify that loop_father is filled iff current_loops
2642         are available.
2643         (redirect_edge_and_branch_force, split_block, delete_basic_block,
2644         split_edge, merge_blocks, make_forwarder_block, duplicate_block):
2645         Update cfg.
2646         * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
2647         no loops.
2648         * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
2649         loop_split_edge_with.
2650         (sms_schedule): Use current_loops.
2651         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
2652         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
2653         current_loops.
2654         (rtl_loop_init, rtl_loop_done): Do not set current_loops.
2655         * tree-ssa-sink.c (execute_sink_code): Use current_loops.
2656         * ifcvt.c (if_convert): Ditto.
2657         * predict.c (predict_loops): Do not clear current_loops.
2658         (tree_estimate_probability): Use current_loops.
2659         (propagate_freq): Receive head of the region to propagate instead of
2660         loop.
2661         (estimate_loops_at_level): Do not use shared to_visit bitmap.
2662         (estimate_loops): New function.  Handle case current_loops == NULL.
2663         (estimate_bb_frequencies): Do not allocate tovisit.  Use
2664         estimate_loops.
2665         * tree-ssa-loop.c (current_loops): Removed.
2666         (tree_loop_optimizer_init): Do not return loops.
2667         (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
2668         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
2669         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
2670         Do not update loops explicitly.
2671         * function.h (struct function): Add x_current_loops field.
2672         (current_loops): New macro.
2673         * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
2674         * loop-unroll.c (split_edge_and_insert): New function.
2675         (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
2676         use loop_split_edge_with.
2677         * loop-doloop.c (add_test, doloop_modify): Ditto.
2678         * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
2679         * cfglayout.c (copy_bbs): Do not update loops explicitly.
2680         * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
2681         * tree-vect-transform.c (vect_transform_loop): Do not update loops
2682         explicitly.
2683         * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
2684         (flow_loops_free): Do not free dfs_order and rc_order.
2685         (flow_loops_find): Do not set dfs_order and rc_order in loops
2686         structure.  Do not call loops and flow info verification.
2687         (add_bb_to_loop, remove_bb_from_loops): Check whether the block
2688         already belongs to some loop.
2689         * cfgloop.h (struct loops): Remove struct cfg.
2690         (current_loops, loop_split_edge_with): Declaration removed.
2691         (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
2692         * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
2693         Declaration removed.
2694         * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
2695         * basic-block.h (split_edge_and_insert): Declare.
2696         * tree-cfg.c (remove_bb): Do not update loops explicitly.
2697
2698 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
2699
2700         PR tree-optimization/29801
2701         * tree-ssa-ccp.c (get_symbol_constant_value): New function.
2702         (get_default_value): Use get_symbol_constant_value.
2703         (set_lattice_value): ICE when the value of the constant is
2704         changed.
2705         (visit_assignment): Ignore VDEFs of read-only variables.
2706
2707 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
2708
2709         * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
2710         formating.
2711         (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
2712         vect_gen_niters_for_prolog_loop): Fold the emited expressions.
2713
2714 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
2715
2716         * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
2717         select subvars of var.
2718
2719 2006-11-17  Jakub Jelinek  <jakub@redhat.com>
2720
2721         PR middle-end/29584
2722         * tree-ssa-forwprop.c (simplify_switch_expr): Don't
2723         optimize if DEF doesn't have integral type.
2724
2725 2006-11-16  Mike Stump  <mrs@apple.com>
2726
2727         * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
2728         pre-darwin9 system, unless the user asks for it directly.
2729         (PREFERRED_DEBUGGING_TYPE): Likewise.
2730         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
2731         * config.gcc: Add suppport for darwin9.h.
2732         * config/darwin9.h: Add.
2733         * doc/install.texi (Specific): Clarify darwin documentation.
2734
2735 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
2736
2737         * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
2738         optimizing for size.
2739
2740 2006-11-16  Mike Stump  <mrs@apple.com>
2741
2742         * Makefile.in (targhooks.o): Add $(OPTABS_H).
2743
2744 2006-11-16  Dirk Mueller  <dmueller@suse.de>
2745
2746         * tree-vrp.c (get_value_range): Use XCNEW instead
2747         of XNEW and memset.
2748         (insert_range_assertions): Use XCNEWVEC instead
2749         of XNEWVEC and memset.
2750         (vrp_initialize): Same.
2751         (vrp_finalize): Same.
2752         * tree-ssa-ccp.c (ccp_initialize): Same.
2753         * predict.c (tree_bb_level_predictions): Same.
2754         * calls.c (expand_call): Same.
2755         * tree-ssa-copy.c (init_copy_prop): Same.
2756         (fini_copy_prop): Same.
2757         * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
2758         of GGC_NEW and memset.
2759
2760 2006-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2761
2762         PR middle-end/26306
2763         * gimplify.c (gimplify_expr): Only force a load for references to
2764         non-BLKmode volatile values.
2765         * doc/implement-c.texi (Qualifiers implementation): Document the
2766         interpretation of what a volatile access is.
2767         * doc/extend.texi (C++ Extensions): Rework same documentation.
2768
2769 2006-11-16  Joseph Myers  <joseph@codesourcery.com>
2770
2771         * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
2772         memory operand.
2773
2774 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
2775
2776         * arm.md (abssi2): Allow Thumb as well.  Use an SImode scratch for
2777         Thumb.
2778         (arm_neg_abssi2): Renamed from neg_abssi2.
2779         (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
2780
2781 2006-11-16  Uros Bizjak  <ubizjak@gmail.com>
2782
2783         * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
2784         number of arguments passed to local functions in SSE registers is 3.
2785
2786         * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
2787         number of arguments passed in SSE registers to 3.
2788
2789 2006-11-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2790
2791         PR target/29201
2792         * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
2793         bb to ...
2794         (get_last_bb_insn): ... new global function.
2795         (basic_block.h): Declare it.
2796         * haifa-sched.c (create_recovery_block): Use it.
2797
2798 2006-11-15  H.J. Lu  <hongjiu.lu@intel.com>
2799
2800         PR middle-end/29862
2801         * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
2802
2803 2006-11-15  Paul Brook  <paul@codesourcery.com>
2804
2805         * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
2806         _Unwind_GetTextRelBase): Move from here ...
2807         * config/arm/pr-support.c (_Unwind_GetDataRelBase,
2808         _Unwind_GetTextRelBase): ... To here.
2809
2810 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2811
2812         * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
2813         addresses we generate for testing are aligned.
2814
2815 2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2816
2817         PR tree-opt/29788
2818         * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
2819         to what is the const decl is a place holder for.
2820
2821 2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
2822
2823         * config/i386/i386.opt: New target option -mx87regparm.
2824
2825         * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
2826         and float_in_x87 variables. mmx_words, sse_words: Remove.
2827         (X87_REGPARM_MAX): Define.
2828
2829         * config/i386/i386.c (override_options): Error out for
2830         -mx87regparm but no 80387 support.
2831         (ix86_attribute_table): Add x87regparm.
2832         (ix86_handle_cconv_attribute): Update comments for x87regparm.
2833         (ix86_comp_type_attributes): Check for mismatched x87regparm types.
2834         (ix86_function_x87regparm): New function.
2835         (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
2836         point registers.
2837         (init_cumulative_args): Initialize x87_nregs and float_in_x87
2838         variables.
2839         (function_arg_advance): Process x87_nregs and x87_regno when
2840         floating point argument is to be passed in 80387 register.
2841         (function_arg): Pass XFmode arguments in 80387 registers for local
2842         functions.  Pass SFmode and DFmode arguments to local functions
2843         in 80387 registers when flag_unsafe_math_optimizations is set.
2844
2845         * reg-stack.c (convert_regs_entry): Disable NaN load for
2846         stack registers that are used for argument passing.
2847
2848         * doc/extend.texi: Document x87regparm function attribute.
2849         * doc/invoke.texi: Document -mx87regparm.
2850
2851 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2852
2853         * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
2854         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
2855         arg MODE; all callers changed.  Use it to determine validity per
2856         machine mode instead of using Pmode for all memory references.
2857         (get_address_cost): Likewise add and use new arg MEM_MODE.
2858
2859 2006-11-15  Rask Ingemann Lambertsen <rask@sygehus.dk>
2860             J"orn Rennecke <joern.rennecke@st.com>
2861
2862         * combine.c (likely_spilled_retval_1): Fix masking operation.
2863         (likely_spilled_retval_p): Use proper pattern for call to
2864         likely_spilled_retval_1.
2865
2866 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2867
2868         * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
2869
2870         * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
2871         that tests for CONSTANT_POOL_ADDRESS_P.
2872
2873 2006-11-15  Jakub Jelinek  <jakub@redhat.com>
2874
2875         PR tree-optimization/29581
2876         * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
2877         REPLACEMENTS, FIRSTBSI arguments.  If initial condition or
2878         type is different between Y and USE, create a temporary
2879         variable, initialize it at the beginning of the body bb
2880         and use it as replacement instead of Y.
2881
2882 2006-11-15  Paolo Bonzini  <bonzini@gnu.org>
2883
2884         PR middle-end/29753
2885         * gimplify.c (fold_indirect_ref_rhs): Use
2886         STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
2887
2888 2006-11-14  Richard Earnshaw  <rearnsha@arm.com>
2889
2890         * expmed.c (emit_store_flag_1): New function.
2891         (emit_store_flag): Call it.  If we can't find a suitable scc insn,
2892         try a cstore insn.
2893         * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
2894         Use do_compare_rtx_and_jump.
2895         * arm.h (BRANCH_COST): Increase to 2 on Thumb.
2896         * arm.md (cstoresi4): New define_expand.
2897         (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
2898         (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
2899         (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
2900
2901 2006-11-14  Caroline Tice  <ctice@apple.com>
2902
2903         * dwarf2out.c (debug_pubtypes_section): New static global variable.
2904         (pubname_entry):  Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
2905         this type.
2906         (pubname_table):  Redefine as a vector.
2907         (pubtype_table):  New static global variable, defined as a vector.
2908         (pubname_table_allocated): Remove static global variable.
2909         (pubname_table_in_use): Remove static global variable.
2910         (PUBNAME_TABLE_INCREMENT): Remove constant.
2911         (size_of_pubnames): Add parameter to deal with either pubnames or
2912         pubtypes, and change code to deal with table being a vector.
2913         (add_pubname):  Change to deal with table being a vector.
2914         (add_pubtype):  New function.
2915         (output_pubnames): Add parameter to deal with either pubnames or
2916         pubtypes, and change code to deal with table being a vector.
2917         (gen_array_type_die):  Add call to add_pubtype.
2918         (gen_enumeration_type_die): Add call to add_pubtype.
2919         (gen_struct_or_union_type_die): Add call to add_pubtype.
2920         (gen_subroutine_type_die): Add call to add_pubtype.
2921         (gen_typedef_die):  Add call to add_pubtype.
2922         (dwarf2out_init): Add code to initialize pubname_table and
2923         pubtype_table vectors; also initialize debug_pubtypes_section.
2924         (prune_unused_types):  Change to deal with pubnames being a vector.
2925         (dwarf2out_finish): Change to deal with pubnames being a vector; add
2926         pubnames table to call to output_pubnames;  Add code to output pubtypes
2927         table if DEBUG_PUBTYPES_SECTION is defined.
2928         * config/darwin.c (darwin_file_start):  Add DEBUG_PUBTYPES_SECTION to
2929         debugnames.
2930         * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
2931
2932 2006-11-14  Joseph Myers  <joseph@codesourcery.com>
2933
2934         * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
2935         iwmmxt_nregs if TARGET_IWMMXT_ABI.
2936         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2937         movv2si_internal): Support moves between core registers.
2938
2939 2006-11-14  Eric Christopher  <echristo@apple.com>
2940
2941         * configure: Regenerate with autoconf 2.59.
2942
2943 2006-11-14  Daniel Berlin  <dberlin@dberlin.org>
2944
2945         Fix PR tree-optimization/27755
2946
2947         * tree-ssa-pre.c: Update comments.
2948         (bb_bitmap_sets): Add pa_in and  deferred member.
2949         (BB_DEFERRED): New macro.
2950         (maximal_set): New variable.
2951         (pre_stats): Add pa_insert member.
2952         (bitmap_set_and): Short circuit orig == dest.
2953         (bitmap_set_subtract_values): New function.
2954         (bitmap_set_contains_expr): Ditto.
2955         (translate_vuses_through_block): Add phiblock argument.
2956         (dependent_clean): New function.
2957         (compute_antic_aux): Update for maximal_set changes.
2958         (compute_partial_antic_aux): New function.
2959         (compute_antic): Handle partial anticipation.
2960         (do_partial_partial_insertion): New function.
2961         (insert_aux): Handle partial anticipation.
2962         (add_to_sets): Add to maximal set.
2963         (compute_avail): Ditto.
2964         (init_pre): Initialize maximal_set.
2965         (execute_pre): Do partial anticipation if -O3+.
2966
2967 2006-11-14  Paolo Bonzini  <bonzini@gnu.org>
2968
2969         PR rtl-optimization/29798
2970
2971         * fwprop.c (use_killed_between): Check that DEF_INSN dominates
2972         TARGET_INSN before any other check.
2973         (fwprop_init): Always calculate dominators.
2974         (fwprop_done): Always free them.
2975
2976 2006-11-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2977
2978         * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
2979         COND_EXPR.
2980
2981 2006-11-13  DJ Delorie  <dj@redhat.com>
2982
2983         * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
2984         temporary for intermediates.
2985
2986 2006-11-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2987
2988         * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
2989         (sh_optimize_target_register_callee_saved): #if 0 the code
2990         using NOTE_INSN_LOOP_{BEG,END}.
2991
2992 2006-11-13  Roger Sayle  <roger@eyesopen.com>
2993
2994         * fold-const.c (optimize_bit_field_compare): Recursively call
2995         fold when simplifying non-constant comparisons between bit-fields.
2996
2997 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
2998
2999         * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
3000         test.
3001         * configure: Rebuilt.
3002
3003 2006-11-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3004
3005         * config/rs6000/cell.md: New file.
3006         * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
3007         variable.
3008         (ppccell_cost): New cost matrix.
3009         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
3010         (rs6000_override_options): Set rs6000_always_hint to false
3011         for cell. Also align functions/lables/loops to 8byte
3012         for the Cell. Use PROCESSOR_CELL.
3013         (rs6000_emit_epilogue): Rename using_mfcr_multiple to
3014         using_mtcr_multiple.
3015         (rs6000_variable_issue): If the insn is a nonpipelined instruction
3016         on the Cell, return 0.
3017         (rs6000_adjust_cost): Add Cell cost adjustments.
3018         (is_microcoded_insn): Return true for Cell microcoded
3019         instructions.
3020         (is_nonpipeline_insn): New function.
3021         (rs6000_issue_rate): Add PROCESSOR_CELL.
3022         (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
3023         instructions.
3024         (rs6000_use_sched_lookahead_guard): New function.
3025         (rs6000_sched_reorder):  Reorder the ready list, if the second
3026         to last ready insn is a nonepipeline insn on the Cell.
3027         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
3028         (ASM_CPU_SPEC): Add Cell.
3029         * config/rs6000/rs6000.md (cpu): Add Cell.
3030         (cell_micro): New Attr.
3031         Include cell.md
3032
3033 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
3034
3035         * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
3036         style versions.
3037         * configure: Rebuilt.
3038
3039 2006-11-13  Richard Guenther  <rguenther@suse.de>
3040
3041         * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
3042         return value.
3043         (ix86_expand_lfloorceil): Likewise.
3044         (ix86_expand_rint): Likewise.
3045         (ix86_expand_floorceildf_32): Likewise.
3046         (ix86_expand_floorceil): Likewise.
3047         (ix86_expand_rounddf_32): Likewise.
3048         (ix86_expand_truncdf_32): Likewise.
3049         (ix86_expand_round): Likewise.
3050
3051 2006-11-13  Carlos O'Donell  <carlos@codesourcery.com>
3052             Mark Mitchell  <mark@codesourcery.com>
3053
3054         * gcc.c: Organize search path variables into $prefix relative,
3055         and well-known native. Add comments.
3056         (add_sysrooted_prefix): Add comment.
3057         (process_command): If !gcc_exec_prefix add $prefix based paths.
3058         If *cross_compile == '0', add native well-known paths.
3059         Assert tooldir_base_prefix is always relative.
3060         (main): If print_search_dirs, and if gcc_exec_prefix is set,
3061         use this value for 'install:' path.
3062         * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
3063
3064 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
3065
3066         * config/i386/i386.c: Fix a typo in comment.
3067
3068 2006-11-13  Michael Matz  <matz@suse.de>
3069
3070         * genemit.c (gen_expand): Allocate enough memory.
3071
3072 2006-11-13  Joseph Myers  <joseph@codesourcery.com>
3073
3074         * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
3075         __GXX_TYPEINFO_EQUALITY_INLINE but not
3076         __GXX_MERGED_TYPEINFO_NAMES.
3077         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
3078         __GXX_MERGED_TYPEINFO_NAMES.
3079         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
3080         __GXX_TYPEINFO_EQUALITY_INLINE.
3081
3082 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
3083             Zdenek Dvorak <dvorakz@suse.cz>
3084
3085         PR tree-optimization/29680
3086         * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
3087         PR 14784.
3088
3089 2006-11-12  Jason Merrill  <jason@redhat.com>
3090             Andrew Pinski <pinskia@physics.uc.edu>
3091
3092         PR middle-end/28915
3093         * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
3094         vector ctors.
3095         * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
3096         vector ctors.
3097         * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
3098         * tree.c (build_vector): Handle non-_CST elements.
3099
3100 2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3101
3102         * genemit.c (gen_insn): Call gen_exp with a non-null used
3103         when handling multiple insns.
3104         (gen_expand): Likewise.
3105         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
3106         * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
3107         (movsi_const_16bit+1): Copy operands[1].
3108         (call_pcrel): Copy the call_site pattern.
3109         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
3110
3111 2006-11-12  Roger Sayle  <roger@eyesopen.com>
3112
3113         * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
3114         condition for transformations.  Use !HONOR_SIGN_DEPENDENT_ROUNDING
3115         && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
3116         (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
3117
3118 2006-11-12  Daniel Berlin  <dberlin@dberlin.org>
3119
3120         Fix PR tree-optimization/29587
3121         * tree-ssa-structalias.c (process_constraint): Don't
3122         mark address taken due only to escaped vars constraint.
3123
3124 2006-11-12  Michael Matz  <matz@suse.de>
3125             Roger Sayle  <roger@eyesopen.com>
3126
3127         PR rtl-optimization/29797
3128         * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
3129         BITS_BIG_ENDIAN targets.
3130
3131 2006-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3132
3133         * builtins.c (fold_builtin_cosh): New.
3134         (fold_builtin_1): Use it.
3135         * fold-const.c (negate_mathfn_p): Add llround, lround, round,
3136         trunc to the list of "odd" functions.  Also add llrint, lrint,
3137         rint and nearbyint when flag_rounding_math is false.
3138
3139 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3140
3141         * tree-flow.h (name_mappings_registered_p): Declare.
3142         * tree-into-ssa.c (name_mappings_registered_p): New function.
3143         * tree-cfg.c (tree_can_merge_blocks_p): Check
3144         name_mappings_registered_p instead of need_ssa_update_p.
3145
3146 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3147
3148         * tree-ssa-loop.c (tree_vectorize): Return the result of
3149         vectorize_loops.
3150         * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
3151         if anything changed.
3152         * tree-vectorizer.h (vectorize_loops): Declaration removed.
3153         * tree-flow.h (vectorize_loops): Declaration changed.
3154
3155 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3156
3157         * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
3158         comments.
3159         (issue_prefetch_ref): Move assignment to write_p out of loop.
3160         (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
3161         SIMULTANEOUS_PREFETCHES into account.
3162         (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
3163         * lambda-code.c (lcm): Renamed to ...
3164         (least_common_multiple): ... and exported.
3165         * tree-flow.h (least_common_multiple): Declare.
3166
3167 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3168
3169         * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
3170         * tree-ssa-loop-niter.c (derive_constant_upper_bound):  Follow
3171         ud-chains.  Handle AND_EXPR.
3172         (record_estimate): Record whether the estimate is realistic
3173         and whether it is derived from a loop exit.
3174         (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
3175         infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
3176         functions.
3177         (compute_estimated_nb_iterations): Take only realistic bounds into
3178         account.  Set estimate_state.  Use double_ints.
3179         (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
3180         and infer_loop_bounds_from_signedness.  Do not consider basic blocks
3181         that do not have to be always executed.
3182         (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
3183         to determine whether to call infer_loop_bounds_from_undefined
3184         and compute_estimated_nb_iterations.
3185         (n_of_executions_at_most): Use double_ints.
3186         (free_numbers_of_iterations_estimates_loop): Set estimate_state.
3187         (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
3188         * double-int.c (double_int_to_tree): Improve comment.
3189         (double_int_fits_to_tree_p): New function.
3190         * double-int.h (double_int_fits_to_tree_p): Declare.
3191         * tree-data-ref.c: Include langhooks.h.
3192         (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
3193         (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
3194         (analyze_array): Do not pass estimate_only argument to
3195         analyze_array_indexes.
3196         (get_number_of_iters_for_loop): Build tree from the stored double_int
3197         value.
3198         (get_references_in_stmt, find_data_references_in_stmt): New functions.
3199         (find_data_references_in_loop): Use find_data_references_in_stmt.
3200         * tree-data-ref.h (struct data_ref_loc_d): New.
3201         (get_references_in_stmt): Declare.
3202         (estimate_iters_using_array): Declaration removed.
3203         * cfgloop.h (struct nb_iter_bound): Change type of bound to
3204         double_int.  Improve comments.  Add is_exit and realistic
3205         fields.
3206         (struct loop): Changed type of estimated_nb_iterations to double_int.
3207         Added estimate_state field.
3208         (record_estimate): Declaration removed.
3209
3210 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3211
3212         * params.c (set_param_value): Initialize the "set" field.
3213         * params.h (struct param_info): Add "set" field.
3214         (PARAM_SET_P): New macro.
3215         (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
3216         L1_CACHE_LINE_SIZE): New macros.
3217         * toplev.c (DEFPARAM): Initialize the "set" field.
3218         * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
3219         SIMULTANEOUS_PREFETCHES): Removed.
3220         (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
3221         (tree_ssa_prefetch_arrays): Dump the values of the parameters.
3222         * config/sparc/sparc.c: Include params.h.
3223         (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
3224         L1_CACHE_LINE_SIZE parameters.
3225         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
3226         Removed.
3227         * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
3228         Removed.
3229         * config/i386/i386.c: Include params.h.
3230         (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
3231         (override_options): Set SIMULTANEOUS_PREFETCHES and
3232         L1_CACHE_LINE_SIZE parameters.
3233         * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
3234         (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
3235         L1_CACHE_LINE_SIZE parameters.
3236         * config/ia64/ia64.c (ia64_optimization_options): Set
3237         SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
3238         * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
3239         Removed.
3240         * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
3241         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
3242         * doc/invoke.texi: Document new params.
3243
3244 2006-11-12  Roger Sayle  <roger@eyesopen.com>
3245
3246         PR tree-optimization/13827
3247         * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
3248         as ((X^Y)&C) op 0.
3249
3250 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3251
3252         * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
3253         update_single_exit_for_duplicated_loops): New functions.
3254         (duplicate_loop_to_header_edge): Use
3255         update_single_exit_for_duplicated_loops.
3256         * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
3257         functions only with ENABLE_CHECKING.
3258
3259 2006-11-12  Andreas Schwab  <schwab@suse.de>
3260
3261         * except.c (sjlj_emit_function_enter): Remove unused variable.
3262
3263 2006-11-11  Roger Sayle  <roger@eyesopen.com>
3264
3265         * fold-const.c (int_binop_types_match_p): New function.
3266         (size_binop): Relax constraint that both arguments must both have
3267         exactly the same sizetype type.  Instead use int_binop_types_match_p.
3268         (size_diffop): Likewise.
3269
3270         (make_range): Use build_int_cst instead of fold_convert.
3271         (fold_cond_expr_with_comparison): Use build_int_cst to construct
3272         integer constants of the correct type.
3273         (fold_div_compare): Likewise.
3274         (fold_single_bit_test): Likewise.
3275         (fold_binary): Likewise.
3276         * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
3277         has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
3278
3279 2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3280
3281         PR rtl-opt/28812
3282         * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
3283         non null value if the struct memory access is in the 0th
3284         aliasing set.
3285
3286 2006-11-12  Jie Zhang  <jie.zhang@analog.com>
3287
3288         Revert
3289         2006-11-11  Jie Zhang  <jie.zhang@analog.com>
3290         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
3291         and __BFIN__.
3292
3293         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
3294         instead of builtin_define for bfin and BFIN.
3295
3296 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
3297
3298         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
3299         and __BFIN__.
3300
3301 2006-11-11  Jan Hubicka  <jh@suse.cz>
3302
3303         * extend.texi (__builtin_expect): We no longer require second argument
3304         to be constant.
3305         * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
3306         * builtins.c (expand_builtin_expect): Simplify.
3307         (expand_builtin_expect_jump): Kill.
3308         * final.c (final_scan_insn): Do not skip the removed notes.
3309         * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
3310         EXPECTED_VALUE): Remove.
3311         * dojump.c (do_jump): Do not care about __builtin_expect.
3312         * predict.c (expected_value_to_br_prob): Kill.
3313         * function.c (expand_function_end): Do not expand
3314         NOTE_INSN_REPEATED_LINE_NUMBER.
3315         * print-rtl.c (print_rtx): Do not pretty print the removed notes.
3316         * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
3317         * cfgexpand.c (add_reg_br_prob_note): Export.
3318         * cfgcleanup.c (rest_of_handle_jump2): Do not call
3319         expected_value_to_br_prob.
3320         * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
3321         * rtl.h (add_reg_br_prob_note): Declare.
3322
3323 2006-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3324
3325         * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
3326
3327 2006-11-11  Jan Hubicka  <jh@suse.cz>
3328
3329         * predict.c (predict_loops): Kill RTL variant.
3330
3331 2006-11-11  Jan Hubicka  <jh@suse.cz>
3332
3333         * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
3334         * modulo-sched.c (find_line_note): Remove.
3335         (loop_canon_p): Do not worry about line number notes.
3336         (sms_schedule): Likewise.
3337         * cse.c (cse_main): Likewise.
3338         * regmove.c (fixup_match_1): Likewise
3339         * function.c (emit_return_info_block): Likewise.
3340         (expand_function_end): Likewise.
3341         (thread_prologue_an_epilogue_insns): Likewise.
3342         * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
3343         Likewise.
3344         * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
3345         emit_note_copy_after): Kill.
3346         (emit_note_copy): Do not worry about line numbers.
3347         * jump.c (purge_line_number_notes): Kill.
3348         (pass_purge_lineno_notes): Kill.
3349         * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
3350         call.
3351         * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
3352         * passes.c (init_optimization_passes): Don't purge_lineno_notes.
3353         * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
3354         * tree-pass.h (pass_purge_lineno_notes): Kill.
3355         * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
3356         rm_redundant_line_notes.
3357         * sched-rgb.c (schedule_region): Don't rm_line_notes,
3358         rm_redundant_line_notes.
3359         * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
3360         * haifa-sched.c: Update comment about handling notes.
3361         (unlink_line_notes): Kill.
3362         (rm_line_notes): Kill.
3363         (save_line_notes): Simplify.
3364         (rm_redundant_line_notes): Kill.
3365
3366 2006-11-11  Richard Guenther  <rguenther@suse.de>
3367
3368         * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
3369         Remove unused tree codes.
3370         * tree-vrp.c (extract_range_from_unary_expr): Remove handling
3371         of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
3372         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3373         * tree.c (stabilize_reference): Likewise.
3374         * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
3375         fold_unary): Likewise.
3376         * tree-gimple.c (is_gimple_cast): Likewise.
3377         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
3378         * expr.c (expand_expr_real_1): Likewise.
3379         * tree-eh.c (tree_could_trap_p): Likewise.
3380         * gimplify.c (gimplify_expr): Likewise.
3381         * tree-inline.c (estimate_num_insns_1): Likewise.
3382         * tree-cfg.c (verify_expr): Likewise.
3383
3384 2006-11-11  Zdenek Dvorak <dvorakz@suse.cz>
3385
3386         * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
3387         * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
3388         (tree_ssa_prefetch_arrays): Do not dump for removed loops.
3389
3390 2006-11-11  Richard Sandiford  <richard@codesourcery.com>
3391
3392         PR middle-end/27528
3393         * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
3394         constraints accept neither registers or memories.
3395
3396 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
3397
3398         * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
3399         (NO_PROFILE_COUNTERS): Define as 1.
3400
3401 2006-11-10  Roger Sayle  <roger@eyesopen.com>
3402
3403         * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
3404         Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
3405
3406 2006-11-10  Peter Bergner  <bergner@vnet.ibm.com>
3407
3408         * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
3409
3410 2006-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3411
3412         * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
3413         (fold_builtin_hypot): Likewise.
3414         * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
3415
3416         * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
3417
3418 2006-11-10  Roger Sayle  <roger@eyesopen.com>
3419
3420         * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
3421         when attempting to build INTEGER_CSTs of non-integral types.
3422         * expmed.c (make_tree): Use the correct type, i.e. the inner
3423         type, when constructing the individual elements of a CONST_VECTOR.
3424
3425 2006-11-10  Jan Hubicka  <jh@suse.cz>
3426
3427         * cse.c (cse_process_notes): Copy the propagated value.
3428         * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
3429         in REG_EQUIV notes.
3430         * gcse.c (try_replace_reg): Copy the replacement.
3431         * i386.c (emit_i387_cw_initialization): Copy stored_mode.
3432         (assign_386_stack_local): Always return copied memory expression
3433         * function.c (instantiate_virtual_regs_in_insn): Copy the operand
3434         duplicates.
3435
3436 2006-11-10  Jan Hubicka  <jh@suse.cz>
3437
3438         * final.c (final): Walk from first instruction.
3439         * cfglayout.c (insn_locators_initialize): Remove line number notes.
3440
3441 2006-11-10  Uros Bizjak  <ubizjak@gmail.com>
3442
3443         PR target/29777
3444         * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
3445         to define_expand.
3446         (umulv8hi3_highpart): Ditto.
3447         (vec_widen_smult_hi_v8hi): New expander.
3448         (vec_widen_smult_lo_v8hi): Ditto.
3449
3450 2006-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3451
3452         PR middle-end/29335
3453         * builtins.c (do_mpfr_arg3): New.
3454         (fold_builtin_1): Handle builtins fma, fmin and fmax.
3455
3456 2006-11-09  Eric Christopher  <echristo@apple.com>
3457
3458         PR bootstrap/26892
3459         PR bootstrap/27814
3460         PR other/28994
3461         * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
3462         * config.gcc (powerpc64-*-darwin*): New target.
3463         * config.host: Ditto.
3464         * config/rs6000/darwin64.h: New file.
3465         * config/rs6000/x-darwin64: Ditto.
3466         * config/rs6000/host-ppc64-darwin.c: Ditto.
3467
3468 2006-11-09  Steve Ellcey  <sje@cup.hp.com>
3469
3470         * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
3471         routines for integer division.
3472
3473 2006-11-09  Daniel Jacobowitz  <dan@codesourcery.com>
3474
3475         * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
3476
3477 2006-11-09  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
3478
3479         PR middle-end/29726
3480         * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
3481
3482 2006-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3483
3484         * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
3485         simplify_subreg with BLKmode outer mode.
3486
3487 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
3488
3489         * doc/invoke.texi: Minor formatting fixes in option lists.
3490
3491 2006-11-08  Zdenek Dvorak <dvorakz@suse.cz>
3492
3493         PR tree-optimization/29738
3494         * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
3495         (ccp_lattice_t): Remove UNKNOWN_VAL.
3496         (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
3497         Do not handle UNKNOWN_VAL.
3498         (get_default_value): Set initial value of virtual operands to
3499         VARYING.
3500         (get_value): Always use get_default_value on uninitialized
3501         operands.
3502         (set_value_varying, surely_varying_stmt_p): New functions.
3503         (set_lattice_value): Do not pass argument to get_value.
3504         Do not handle UNKNOWN_VAL.
3505         (likely_value): Follow the semantics described in the comment.
3506         (ccp_initialize): Use surely_varying_stmt_p.  Do not mark
3507         phi nodes DONT_SIMULATE_AGAIN.
3508         (ccp_fold): Do not pass argument to get_value.
3509         (fold_const_aggregate_ref, visit_assignment): Ditto.  Do not
3510         handle UNKNOWN_VAL.
3511
3512 2006-11-08  Andrew Pinski  <Andrew_Pinski@playstation.sony.com>
3513
3514         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
3515         HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
3516
3517 2006-11-08  Roger Sayle  <roger@eyesopen.com>
3518
3519         * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
3520         test for inclusion rather than as a test for exclusion.
3521         * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
3522         the condition after calling fold_binary.
3523         * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
3524         (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
3525         * builtins.c (fold_builtin_isascii): Likewise.
3526         (fold_builtin_isdigit): Likewise.
3527
3528 2006-11-08  Carlos O'Donell  <carlos@codesourcery.com>
3529
3530         * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
3531         * configure: Regenerate.
3532
3533 2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3534
3535         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
3536         enum argument instead of bool.
3537         (vect_analyze_operations): Call vectorizable_type_promotion.
3538         * tree-vectorizer.h (type_promotion_vec_info_type): New enum
3539         stmt_vec_info_type value.
3540         (supportable_widening_operation, vectorizable_type_promotion): New
3541         function declarations.
3542         * tree-vect-transform.c (vect_gen_widened_results_half): New function.
3543         (vectorizable_type_promotion): New function.
3544         (vect_transform_stmt): Call vectorizable_type_promotion.
3545         * tree-vect-analyze.c (supportable_widening_operation): New function.
3546         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
3547         Add implementation.
3548         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
3549         mode.
3550
3551         * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
3552         (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
3553         * tree-inline.c (estimate_num_insns_1): Add cases for above new
3554         tree-codes.
3555         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3556         * expr.c (expand_expr_real_1): Likewise.
3557         * optabs.c (optab_for_tree_code): Likewise.
3558         (init_optabs): Initialize new optabs.
3559         * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
3560         vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
3561         vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
3562         vec_unpacku_lo_optab): Initialize new optabs.
3563         * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
3564         (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
3565         OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
3566         optab indices.
3567         (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
3568         (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
3569         (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
3570         (vec_unpacku_lo_optab): New optabs.
3571         * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
3572         (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
3573         (vec_widen_smult_hi, vec_widen_smult_lo): New.
3574         * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
3575         (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
3576         (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
3577
3578         * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
3579         (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
3580         (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
3581         (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
3582         (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
3583         implement the unsigned unpacking patterns.
3584         (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
3585         (vec_unpacks_lo_v8hi): New signed unpacking patterns.
3586         (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
3587         (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
3588         (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
3589         (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
3590         (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
3591         (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
3592         multiplication patterns.
3593
3594         * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
3595         * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
3596         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
3597         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
3598         (rs6000_builtin_mul_widen_odd): New.
3599         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
3600         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
3601         * tree-vectorizer.h (enum vect_relevant): New enum type.
3602         (_stmt_vec_info): Field relevant chaned from bool to enum
3603         vect_relevant.
3604         (STMT_VINFO_RELEVANT_P): Updated.
3605         (STMT_VINFO_RELEVANT): New.
3606         * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
3607         instead of STMT_VINFO_RELEVANT_P.
3608         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
3609         Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
3610         and boolean variable with enum vect_relevant.
3611         (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
3612         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
3613         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
3614
3615         2006-11-08  Richard Henderson  <rth@redhat.com>
3616
3617         * config/i386/sse.md (vec_widen_umult_hi_v8hi,
3618         vec_widen_umult_lo_v8hi): New.
3619         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
3620         vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
3621
3622         * config/i386/i386.c (ix86_expand_sse_unpack): New.
3623         * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
3624         * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
3625         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
3626         vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
3627         vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
3628         vec_unpacks_lo_v4si): New.
3629
3630         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3631
3632         * tree-vect-transform.c (vectorizable_type_demotion): New function.
3633         (vect_transform_stmt): Add case for type_demotion_vec_info_type.
3634         (vect_analyze_operations): Call vectorizable_type_demotion.
3635         * tree-vectorizer.h (type_demotion_vec_info_type): New enum
3636         stmt_vec_info_type value.
3637         (vectorizable_type_demotion): New function declaration.
3638         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
3639         mode.
3640
3641         * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
3642         * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
3643         VEC_PACK_SAT_EXPR.
3644         * tree-iniline.c (estimate_num_insns_1): Likewise.
3645         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3646         * optabs.c (optab_for_tree_code): Likewise.
3647
3648         * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
3649         compared against the predicate of the result is not 'mode' (the input
3650         to the function) but a mode with half the size of 'mode'.
3651         (init_optab): Initialize new optabs.
3652         * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
3653         New optab indices.
3654         (vec_pack_mod_optab, vec_pack_ssat_optab,  vec_pack_usat_optab): New
3655         optabs.
3656         * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
3657         (vec_pack_usat_optab): Initialize new optabs.
3658         * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
3659         * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
3660
3661         2006-11-08  Richard Henderson  <rth@redehat.com>
3662
3663         * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
3664         (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
3665         (vec_interleave_highv8hi, vec_interleave_lowv8hi):
3666         (vec_interleave_highv4si, vec_interleave_lowv4si):
3667         (vec_interleave_highv2di, vec_interleave_lowv2di): New.
3668
3669         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3670
3671         * tree-vect-transform.c (vectorizable_reduction): Support multiple
3672         datatypes.
3673         (vect_transform_stmt): Removed redundant code.
3674
3675         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3676
3677         * tree-vect-transform.c (vectorizable_operation): Support multiple
3678         datatypes.
3679
3680         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3681
3682         * tree-vect-transform.c (vect_align_data_ref): Removed.
3683         (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
3684         Updated function documentation. Return the increment stmt in ptr_incr.
3685         (bump_vector_ptr): New function.
3686         (vect_get_vec_def_for_stmt_copy): New function.
3687         (vect_finish_stmt_generation): Create a stmt_info to newly created
3688         vector stmts.
3689         (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
3690         argument.
3691         (vectorizable_reduction, vectorizable_assignment): Not supported yet if
3692         VF is greater than the number of elements that can fit in one vector
3693         word.
3694         (vectorizable_operation, vectorizable_condition): Likewise.
3695         (vectorizable_store, vectorizable_load): Support the case that the VF
3696         is greater than the number of elements that can fit in one vector word.
3697         (vect_transform_loop): Don't fail in case of multiple data-types.
3698         * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
3699         in case of multiple data-types; the smallest type determines the VF.
3700         (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
3701         if they are of different sizes.
3702         (vect_update_misalignment_for_peel): Compare misalignments in terms of
3703         number of elements rather than number of bytes.
3704         (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
3705         (vect_can_advance_ivs_p): Fix a dump printout
3706
3707 2006-11-07  Eric Christopher  <echristo@apple.com>
3708
3709         * libgcc2.c (__bswapdi2): Rename from bswapDI2.
3710         (__bswapsi2): Ditto.
3711         * libgcc2.h: Remove transformation of bswap routines.
3712         * config/i386/i386.md (bswapsi2): New.
3713         (bswapdi2): Ditto.
3714
3715 2006-11-07  Jakub Jelinek  <jakub@redhat.com>
3716
3717         * c-common.c (c_common_attributes): Add gnu_inline attribyte.
3718         (handle_gnu_inline_attribute): New function.
3719         * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
3720         (merge_decls, start_decl, start_function): Likewise.
3721         * doc/extend.texi: Document gnu_inline attribute.
3722
3723 2006-11-07  Steve Ellcey  <sje@cup.hp.com>
3724
3725         PR other/25028
3726         * config/ia64/t-hpux (LIB1ASMFUNCS):  Filter out _fixtfdi,
3727         _fixunstfdi, and  _floatditf
3728
3729 2006-11-06  Anatoly Sokolov <aesok@post.ru>
3730
3731         * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
3732         prototype.
3733         * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
3734         (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
3735         lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
3736         which start in an odd register.
3737
3738 2006-11-07  Richard Sandiford  <richard@codesourcery.com>
3739
3740         * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
3741
3742 2006-11-07  Josh Conner  <jconner@apple.com>
3743
3744         * doc/invoke.texi (fstrict-aliasing): Move implementation
3745         details...
3746         * doc/tree-ssa.texi (Alias analysis): ...here.
3747
3748 2006-11-07  Richard Guenther  <rguenther@suse.de>
3749
3750         PR tree-optimization/29610
3751         * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
3752         of tree_purge_dead_eh_edges as it may free dominators.
3753
3754         * g++.dg/other/pr29610.C: New testcase.
3755
3756 2006-11-07  David Ung  <davidu@mips.com>
3757
3758         * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
3759         costs when optimizing for size.
3760         (override_options): Use mips_rtx_cost_optimize_size table for cost
3761         calculations.
3762
3763 2006-11-07  Jie Zhang  <jie.zhang@analog.com>
3764
3765         * gcc.c (process_command): Treat -b as normal switch if its argument
3766         has no dash.
3767
3768 2006-11-07  David Ung  <davidu@mips.com>
3769
3770         * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
3771         list.
3772
3773 2006-11-06  Eric Christopher  <echristo@apple.com>
3774
3775         * config.gcc: Add x86_64-darwin host support.
3776         * config.host: Ditto.
3777         * config/i386/darwin64.h: New file.
3778         * config/i386/t-darwin64: Ditto.
3779
3780 2006-11-06  Janis Johnson  <janis187@us.ibm.com>
3781
3782         * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
3783         and output-exists-not.
3784
3785 2006-11-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3786
3787         PR tree-opt/29439
3788         * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
3789         checking for overflow.
3790
3791 2006-11-06  Jan van Dijk  <jan@etpmod.phys.tue.nl>
3792
3793         * configure.ac: Fixed typo in case statement: :: changed to ;;
3794
3795 2006-11-06  Bob Wilson  <bob.wilson@acm.org>
3796
3797         * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
3798         count_leading_zeros, and count_trailing_zeros.
3799         * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
3800         (TARGET_FOLD_BUILTIN): Define.
3801         (TARGET_EXPAND_BUILTIN): Define.
3802         (xtensa_init_builtins): New.
3803         (xtensa_fold_builtin): New.
3804         (xtensa_expand_builtin): New.
3805         (xtensa_rtx_costs): Add CTZ and CLZ.  Adjust costs for MULT.
3806         * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
3807         (CLZ_DEFINED_VALUE_AT_ZERO): Define.
3808         (CTZ_DEFINED_VALUE_AT_ZERO): Define.
3809         * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
3810         (any_extend): New code macro.
3811         (u, su): New code attributes.
3812         (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
3813         (nsau): Remove; replaced by clzsi2.
3814         (ffssi2): Use clzsi2.
3815         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
3816         _clzsi2, _ctzsi2, and _ffssi2.  Rename _nsau to _clz.
3817         * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
3818         (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
3819         (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
3820
3821 2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>
3822
3823         * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
3824         set inhibit_libc.
3825         * config/arm/t-strongarm-elf: Likewise.
3826         * config/arm/t-pe: Likewise.
3827         * config/arm/t-arm-elf: Likewise.
3828         * config/arm/t-xscale-elf: Likewise.
3829         * config/arm/t-arm-coff: Likewise.
3830         * config/arm/t-xscale-coff: Likewise.
3831         * config/arm/t-wince-pe: Likewise.
3832
3833 2006-11-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3834
3835         * config/sh/lib1funcs-4-300.asm: Guard entire file with
3836         #if !__SHMEDIA__ .
3837
3838 2006-11-05  Jakub Jelinek  <jakub@redhat.com>
3839
3840         PR middle-end/29695
3841         * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
3842         simplification.
3843
3844 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
3845
3846         PR target/26915
3847         * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
3848         as a valid 80387 constant.
3849         (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
3850         * config/i386/i386.md (unnamed splitter): Split the load of
3851         constant -0.0 or -1.0  into the load of 0.0 or 1.0, followed
3852         by negation.
3853
3854 2006-11-04  Richard Earnshaw  <rearnsha@arm.com>
3855
3856         * arm.c (thumb_legitimate_addres_p): Allow any constant offset
3857         from the soft-frame, argument and virtual registers.
3858
3859 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
3860
3861         * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
3862         patterns for standard 80387 constants.
3863
3864 2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
3865             Steven Bosscher  <steven@gcc.gnu.org>
3866
3867         * fwprop.c: New file.
3868         * Makefile.in: Add fwprop.o.
3869         * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
3870         * passes.c (init_optimization_passes): Schedule forward propagation.
3871         * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
3872         parameter.
3873         * timevar.def (TV_FWPROP): New.
3874         * common.opt (-fforward-propagate): New.
3875         * opts.c (decode_options): Enable forward propagation at -O2.
3876         * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
3877         * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
3878         canon_for_address, table_size): Remove.
3879         (new_basic_block, insert, remove_from_table): Remove references to
3880         table_size.
3881         (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
3882         simplification loop more straightforward by not calling fold_rtx
3883         recursively.
3884         (equiv_constant): Move here a small part of fold_rtx_subreg,
3885         do not call fold_rtx.  Call avoid_constant_pool_reference
3886         to process MEMs.
3887         * recog.h (canonicalize_change_group): New.
3888
3889         * doc/invoke.texi (Optimization Options): Document fwprop.
3890         * doc/passes.texi (RTL passes): Document fwprop.
3891
3892 2006-11-03  Geoffrey Keating  <geoffk@apple.com>
3893
3894         * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
3895         (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
3896         (grokdeclarator): Likewise.
3897
3898 2006-11-03  Steven Bosscher  <steven@gcc.gnu.org>
3899
3900         * tree-dump.c (dump_enable_all): Rename local variable
3901         ir_type to avoid name conflicts.
3902         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
3903         instead of using ir_type().
3904         * profile.c (tree_register_profile_hooks): Likewise.
3905         * value-prof.c (tree_register_value_prof_hooks): Likewise.
3906         * basic-block.h (struct edge_def): Likewise.
3907         * config/arm/arm.c (legitimize_pic_address): Likewise.
3908         * coretypes.h (ir_type): New enum of all intermediate languages
3909         used in GCC.
3910         * cfghooks.c (ir_type): Rename to...
3911         (current_ir_type): ...this.  Distinguish between cfgrtl and
3912         cfglayout mode when the current IR is RTL.  Return enum ir_type.
3913         * cfghooks.h (ir_type): Replace with current_ir_type prototype.
3914
3915 2006-11-03  Paul Brook  <paul@codesourcery.com>
3916
3917         * config/arm/arm.c (arm_file_start): New function.
3918         (TARGET_ASM_FILE_START): Define.
3919         (arm_default_cpu): New variable.
3920         (arm_override_options): Set arm_default_cpu.
3921
3922 2006-11-03  David Ung  <davidu@mips.com>
3923
3924         * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
3925         PROCESSOR_24KC and PROCESSOR_24KF.
3926         * config/mips/mips.c (mips_cpu_info_table): Add processor names
3927         and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
3928         (mips_rtx_cost_data): Add costs for the 24kc.
3929         * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
3930         * config/mips/24k.md: Remove references to 24k and replace with
3931         uses of 24kc/24kf in the appropriate reservations.
3932         * doc/invoke.texi (MIPS Options): Updated.
3933
3934 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
3935
3936         * config/sh/crt1.asm: Fix #ifdef indent.
3937
3938 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
3939         Merged from STMicroelectronics sources:
3940         2006-10-06  Andrew Stubbs  <andrew.stubbs@st.com>
3941           * config/sh/crt1.asm (vbr_600): Add missing #if.
3942         2006-08-03  J"orn Rennecke  <joern.rennecke@st.com>
3943           * sh.opt (mfused-madd): New option.
3944           * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
3945         2006-07-04  Andrew Stubbs  <andrew.stubbs@st.com>
3946           * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
3947           Remove pointless handler at VBR+0.
3948           (vbr_200, vbr_300, vbr_500): Remove pointless handler.
3949           (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
3950           fr7. Make sure the timer handler is called with the correct FPU
3951           precision setting, according to the ABI.
3952         2006-06-14  J"orn Rennecke <joern.rennecke@st.com>
3953           * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
3954           * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
3955           (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
3956         2006-06-09  J"orn Rennecke <joern.rennecke@st.com>
3957           * sh.md (cmpgeusi_t): Change into define_insn_and_split.  Accept
3958           zero as second operand.
3959         2006-04-28  J"orn Rennecke <joern.rennecke@st.com>
3960           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
3961           Fixed some bugs related to negative values, in particular -0
3962           and overflow at -0x80000000.
3963           * config/sh/divcost-analysis: Added sh4-300 figures.
3964         2006-04-27  J"orn Rennecke <joern.rennecke@st.com>
3965           * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
3966         2006-04-26  J"orn Rennecke <joern.rennecke@st.com>
3967           * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
3968           ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
3969           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
3970         New files.
3971           * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
3972           -m4-340.
3973         2006-04-24  J"orn Rennecke <joern.rennecke@st.com>
3974           SH4-300 scheduling description & fixes to SH4-[12]00 description:
3975           * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
3976           mac_mem, mem_mac, dfp_mul, fp_cmp.
3977           (insn_class, dfp_comp, any_fp_comp): Update.
3978           (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
3979           (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
3980           (muldf3_i): Likewise.
3981           (movsi_i): Split rI08 alternative into two separate alternatives.
3982           Update type.
3983           (movsi_ie, movsi_i_lowpart): Likewise.
3984           (movqi_i): Split ri alternative into two separate alternatives.
3985           Update type.
3986           * sh1.md (sh1_load_store, sh1_fp): Update.
3987           * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
3988           (mac_mem, sh4_fpscr_toggle): New insn_reservations.
3989           * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
3990           (sh4a_fp_double_arith): Likewise.
3991           * sh4-300.md: New file.
3992           * sh.c (sh_handle_option): Handle m4-300* options.
3993           (sh_adjust_cost): Fix latency of auto-increments.
3994           Handle SH4-300 differently than other SH4s.  Check for new insn types.
3995           * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
3996           been set by an option.
3997           * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
3998           (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
3999           (mbranch-cost=): Likewise.
4000           * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
4001
4002           * sh.md (mulsf3): Remove special expansion code.
4003           (mulsf3_ie): Now a define_insn_and_split.
4004           (macsf3): Allow for TARGET_SH4.
4005
4006           * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
4007           * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
4008           (expand_cbranchdi4): Likewise.
4009           (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
4010           CONST_DOUBLE if the outer code is COMPARE.
4011           * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
4012           TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
4013           (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
4014           (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
4015           Remove redundant fp_{zero,one}_operand checks.
4016           * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
4017           * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
4018           (expand_cbranchdi4): Likewise.
4019         2006-04-20  J"orn Rennecke <joern.rennecke@st.com>
4020           * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
4021
4022 2006-11-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4023
4024         * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
4025         constraints.
4026
4027 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
4028
4029         * doc/invoke.texi: Fix mfp-trap-mode typo.
4030
4031 2006-11-02  Carlos O'Donell  <carlos@codesourcery.com>
4032
4033         * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
4034         * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
4035         file_end_indicate_exec_stack.
4036         * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
4037         Define as 0.
4038         * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
4039         for a non-executable stack.
4040         * crti.asm: Likewise.
4041         * crtn.asm: Likewise.
4042         * libunwind.S: Likewise.
4043
4044 2006-11-02  Ben Elliston  <bje@au.ibm.com>
4045
4046         * tree-ssa.c (warn_uninit): Use expand_location variables for
4047         locus and declaration locus.
4048
4049 2006-11-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4050
4051         PR target/27405
4052         * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
4053         (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
4054         cmp{eq,gt,gtu}{si,di}_media.
4055         (*cmpne0si_media): Remove.
4056         (*movsicc_umin): Adjust gen_cmp*_media call.
4057         (unordered): Change the mode of unordered and operands[1] to
4058         SImode.
4059         (seq): Adjust gen_cmp*_media calls.  Make the mode of
4060         a temporary result of compare SImode if needed.  If the mode
4061         of operands[0] is DImode, extend the temporary result to DImode.
4062         (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
4063         (sunorderd): Change the mode of match_operand and unorderd to
4064         SImode.
4065         (cmpeq{sf,df}_media): Remove.
4066         (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
4067         (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
4068         and compare operation to SImode.
4069
4070 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
4071
4072         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
4073         instructions.
4074         (sparc64-sun-solaris2*): Likewise.
4075
4076 2006-11-02  Paul Brook  <paul@codesourcery.com>
4077
4078         * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
4079         from priority argument.  Use different section for non-default
4080         priority.
4081         * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
4082
4083 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4084
4085         PR other/29639
4086         * except.c (switch_to_exception_section): Do not cache the section
4087         if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
4088         and flag_function_sections is set.
4089
4090 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4091
4092         PR middle-end/29335
4093         * builtins.c (do_mpfr_sincos): New.
4094         (fold_builtin_1): Use it to fold builtin sincos.
4095
4096 2006-11-01  Roger Sayle  <roger@eyesopen.com>
4097
4098         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
4099         it into -D_REENTRANT.
4100
4101 2006-11-01  Roger Sayle  <roger@eyesopen.com>
4102
4103         * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
4104         whether the assembler supports taking the difference of symbols in
4105         different sections.  On x86/Solaris, GAS does but Solaris as doesn't.
4106         * configure: Regenerate.
4107         * config.in: Regenerate.
4108         * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
4109         the assembler doesn't support taking the difference of symbols in
4110         different sections, i.e. we're using the native solaris assembler.
4111
4112 2006-11-01  Pete Steinmetz  <steinmtz@us.ibm.com>
4113             Peter Bergner  <bergner@vnet.ibm.com>
4114
4115         * doc/invoke.texi: Add cpu_type power6x
4116         (RS/6000 and PowerPC Options): Add -mmfpgpr.
4117         * config.gcc: Add cpu_type power6x.
4118         * configure.ac: Add test for mf{t,f}gpr instructions.
4119         (HAVE_AS_MFPGPR): New.
4120         * config.in: Regenerate.
4121         * configure: Regenerate.
4122         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
4123         * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
4124         shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
4125         and mftgpr attributes.
4126         (define_attr "cpu"): Add power6.
4127         Change instruction sequences to use new attributes.
4128         (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
4129         (fix_truncdfsi2_mfpgpr): New.
4130         (floatsidf_ppc64_mfpgpr): New.
4131         (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
4132         (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
4133         (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
4134         (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
4135         (fix_truncdfsi2): Use gpc_reg_operand constraint.
4136         * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
4137         7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
4138         Add descriptions for insert_dword, shift,trap,var_shift_rotate,
4139         cntlz,exts and var_delayed_compare.
4140         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4141         _ARCH_PWR6X, if features enabled.
4142         * config/rs6000/rs6000.opt (mmfpgpr): New.
4143         * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
4144         (cached_can_issue_more): New variable.
4145         (processor_costs): Add power6_cost.
4146         (rs6000_sched_init): New function.
4147         (is_dispatch_slot_restricted): Deleted.
4148         (set_to_load_agen): New function.
4149         (is_load_insn,is_store_insn): New functions.
4150         (adjacent_mem_locations): New function.
4151         (insn_must_be_first_in_group): New function.
4152         (insn_must_be_last_in_group): New function.
4153         (rs6000_sched_reorder): New function.
4154         (rs6000_sched_reorder2): New function.
4155         (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
4156         TARGET_SCHED_REORDER2): Define.
4157         (processor_target_table): Use PROCESSOR_POWER6 for power6.
4158         Add power6x. Add MASK_MFPGPR for power6x.
4159         (POWERPC_MASKS): Add MASK_MFPGPR.
4160         (rs6000_override_options): Set rs6000_always_hint to false
4161         for power6.  Set rs6000_align_branch_targets. Replace
4162         rs6000_sched_groups check with rs6000_align_branch_targets.
4163         Use PROCESSOR_POWER6.
4164         (last_scheduled_insn): New variable.
4165         (load_store_pendulum): New variable.
4166         (rs6000_variable_issue): Set last_scheduled_insn and
4167         cached_can_issue_more.
4168         (rs6000_adjust_cost): Add power6 cost adjustments.
4169         (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
4170         with insn_must_be_first_in_group. Add power6 priority adjustments.
4171         (rs6000_issue_rate): Add CPU_POWER6.
4172         (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
4173         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
4174         (TARGET_MFPGPR): New.
4175         (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
4176         (ASM_CPU_SPEC): Add power6x.
4177         (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
4178         conditions.
4179         * config/rs6000/power6.md: New file.
4180
4181 2006-11-01  Adam Nemet  <anemet@caviumnetworks.com>
4182
4183         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
4184         HOST_WIDE_INT_PRINT to print high and low parts.  Use
4185         HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT.  When
4186         printing a hexadecimal number prefix it with 0x.
4187
4188 2006-11-01  Chris Johns <chris@contemporary.net.au>
4189
4190         PR bootstrap/28400
4191         * Makefile.in (install-driver): Use exeext when installing
4192         $target-gcc-$version.
4193
4194 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
4195
4196         * c-common.c (flag_cpp0x): New.
4197         * c-common.h (flag_cpp0x): New.
4198         * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
4199         supported, define __GXX_EXPERIMENTAL_CPP0X__.
4200         * c-opts.c (set_std_cxx0x): New.
4201         (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
4202         * c.opt (std=c++0x): Document.
4203         (std=gnu++0x): Ditto.
4204         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
4205         * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
4206
4207 2006-11-01  Richard Guenther  <rguenther@suse.de>
4208
4209         * config/i386/i386.c (ix86_expand_rint): Fix issues with
4210         signed zeros.
4211         (ix86_expand_floorceildf_32): Likewise.
4212         (ix86_expand_floorceil): Likewise.
4213         (ix86_expand_trunc): Likewise.
4214
4215 2006-10-31  Andrew Pinski  <pinskia@gmail.com>
4216
4217         * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
4218         to "GNU C89".
4219
4220 2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
4221
4222         * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
4223         hook.
4224         * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
4225         default.
4226         * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
4227         Override default.
4228         * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
4229         * configure.ac (use_cxa_atexit): As a special case, don't test
4230         for libc definition of __cxa_atexit on mingw32
4231         * configure: Regenerate.
4232         * config.gcc (i[34567]86-pc-mingw32): Default to
4233         enable__cxa_atexit=yes.
4234
4235 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4236
4237         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
4238
4239 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
4240
4241         PR 23067
4242         * c-decl.c (start_struct): Don't create self-containing
4243         structures.
4244         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
4245         New.
4246         * config/rs6000/rs6000-protos.h
4247         (darwin_rs6000_special_round_type_align): New.
4248         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
4249         (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
4250
4251 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
4252
4253         * toplev.c (compile_file): Call final_write_globals
4254         even if there have been errors.
4255
4256 2006-10-31  Eric Christopher  <echristo@apple.com>
4257             Falk Hueffner  <falk@debian.org>
4258
4259         * doc/extend.texi (__builtin_bswap32): Document.
4260         (__builtin_bswap64): Ditto.
4261         * doc/libgcc.texi (bswapsi2): Document.
4262         (bswapdi2): Ditto.
4263         * doc/rtl.texi (bswap): Document.
4264         * optabs.c (expand_unop): Don't widen a bswap.
4265         (init_optabs): Init bswap. Set libfuncs explicitly
4266         for bswapsi2 and bswapdi2.
4267         * optabs.h (OTI_bswap): New.
4268         (bswap_optab): Ditto.
4269         * genopinit.c (optabs): Handle bswap_optab.
4270         * tree.h (tree_index): Add TI_UINT32_TYPE and
4271         TI_UINT64_TYPE.
4272         (uint32_type_node): New.
4273         (uint64_type_node): Ditto.
4274         * tree.c (build_common_tree_nodes_2): Initialize
4275         uint32_type_node and uint64_type_node.
4276         * builtins.c (expand_builtin_bswap): New.
4277         (expand_builtin): Call.
4278         (fold_builtin_bswap): New.
4279         (fold_builtin_1): Call.
4280         * fold-const.c (tree_expr_nonnegative_p): Return true
4281         for bswap.
4282         * builtin-types.def (BT_UINT32): New.
4283         (BT_UINT64): Ditto.
4284         (BT_FN_UINT32_UINT32): Ditto.
4285         (BT_FN_UINT64_UINT64): Ditto.
4286         * builtins.def (BUILT_IN_BSWAP32): New.
4287         (BUILT_IN_BSWAP64): Ditto.
4288         * rtl.def (BSWAP): New.
4289         * genattrtab.c (check_attr_value): New.
4290         * libgcc2.c (__bswapSI2): New.
4291         (__bswapDI2): Ditto.
4292         * libgcc2.h (__bswapSI2): Declare.
4293         (__bswapDI2): Ditto.
4294         * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
4295         * simplify-rtx.c (simplify_const_unary_operation): Return
4296         0 for BSWAP.
4297         * libgcc-std.ver (__bwapsi2): Add.
4298         (__bswapdi2): Ditto.
4299         * reload1.c (eliminate_regs_1): Add bswap.
4300         (elimination_effects): Ditto.
4301         * config/i386/i386.h (x86_bswap): New.
4302         (TARGET_BSWAP): Use.
4303         * config/i386/i386.c (x86_bswap): Set.
4304
4305 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
4306
4307         * coverage.c (coverage_checksum_string): Update comment.
4308         * dwarf2out.c (switch_to_eh_frame_section): Update for removal
4309         of get_file_function_name.
4310         * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
4311         of get_file_function_name_long.
4312         * tree.c (get_file_function_name): Rename from
4313         get_file_function_name_long; improve comment; handle 'I' and 'D'
4314         specially when the target has ctor/dtor support; remove special
4315         handling for 'F'.
4316         (get_file_function_name): Remove.
4317         * tree.h (get_file_function_name): Rename from
4318         get_file_function_name_long.
4319         (get_file_function_name): Remove prototype.
4320
4321 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
4322
4323         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
4324         * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
4325
4326         * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
4327         Call dsymutil when compiling and linking one or more source files
4328         in one step.
4329
4330 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
4331
4332         PR 15834
4333         * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
4334
4335 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
4336
4337         * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
4338         inline static functions in c99 mode.
4339
4340         PR 16622
4341         * doc/extend.texi (Inline): Update.
4342         * c-tree.h (struct language_function): Remove field 'extern_inline'.
4343         * c-decl.c (current_extern_inline): Delete.
4344         (pop_scope): Adjust test for an undefined nested function.
4345         Add warning about undeclared inline function.
4346         (diagnose_mismatched_decls): Update comments.  Disallow overriding
4347         of inline functions in a translation unit in C99.  Allow inline
4348         declarations in C99 at any time.
4349         (merge_decls): Boolize variables.  Handle C99 'extern inline'
4350         semantics.
4351         (grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
4352         C99 inline semantics.
4353         (start_function): Don't clear current_extern_inline.  Don't set
4354         DECL_EXTERNAL.
4355         (c_push_function_context): Don't push current_extern_inline.
4356         (c_pop_function_context): Don't restore current_extern_inline.
4357
4358         PR 11377
4359         * c-typeck.c (build_external_ref): Warn about static variables
4360         used in extern inline functions.
4361         * c-decl.c (start_decl): Warn about static variables declared
4362         in extern inline functions.
4363
4364 2006-10-31  Roger Sayle  <roger@eyesopen.com>
4365
4366         PR middle-end/23470
4367         * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
4368         * fold-const.c (tree_expr_nonnegative_p): Likewise.  Consider
4369         pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
4370         or y is an even integer.
4371
4372 2006-10-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4373
4374         PR target/24071
4375         * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
4376         * gthr-posix95.h (__gthread_active_p): Likewise.
4377
4378 2006-10-31  Richard Guenther  <rguenther@suse.de>
4379
4380         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4381         acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
4382         expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
4383         exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
4384         ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
4385         lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
4386         lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
4387         btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
4388         !optimize_size.
4389
4390 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
4391
4392         * opts.c (decode_options): Disable CSE skip blocks.
4393
4394 2006-10-30  Dirk Mueller  <dmueller@suse.de>
4395
4396         * c-common.h (strict_aliasing_warning): Fix whitespace.
4397         * c-decl (start_function): Move code for main decl warning ..
4398         * c-common.c (check_main_parameter_types): .. here.
4399         * c-common.h (check_main_parameter_types): Declare.
4400
4401 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4402
4403         PR middle-end/29335
4404         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
4405
4406 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
4407
4408         * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
4409         be a PARALLEL containing sets.  Return false when out_pat is not
4410         a PARALLEL insn.
4411
4412 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
4413
4414         * config/mips/mips.md (mul<mode>3): Split into...
4415         (mulsi3, muldi3): ...these separate patterns.
4416
4417 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
4418
4419         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
4420         but with each set of options separated by spaces.
4421
4422 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
4423
4424         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
4425         dwarf_reg_size_table has been initialized.
4426
4427 2006-10-30  Roger Sayle  <roger@eyesopen.com>
4428
4429         * builtins.c (expand_builtin_mathfn_3): Correct coding style.
4430         * ddg.c (print_ddg_edge): Likewise.
4431         * dwarf2out.c (prune_unused_types_walk): Likewise.
4432         * ifcvt.c (noce_try_cmove_arith): Likewise.
4433         * langhooks.c (add_builtin_function): Likewise.
4434         * reg-stack.c (subst_stack_regs_pat): Likewise.
4435         * tree.c (expanded_location): Likewise.
4436         * tree-dump.c (dequeue_and_dump): Likewise.
4437
4438 2006-10-30  David Daney  <ddaney@avtrex.com>
4439
4440         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
4441
4442 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
4443
4444         PR tree-optimization/29637
4445         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
4446         of the innertype is the innertype itself.
4447
4448 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
4449
4450         * dwarf2out.c (file_name_acquire): Correct typo.
4451
4452 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
4453
4454         * tree.h (tree_value_handle): Remove struct value_set declaration.
4455         Change value_set to bitmap_set.
4456         * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
4457         * tree-vn.c (get_value_handle): Made inline and moved to
4458         tree-flow-inline.h.
4459         * tree-flow-inline.h: (has_stmt_ann): New function.
4460         * tree-ssa-pre.c (expressions): New variable.
4461         (next_expression_id): Ditto.
4462         (alloc_expression_id): New function.
4463         (struct value_set): Remove.
4464         (get_expression_id): New function.
4465         (get_or_alloc_expression_id): Ditto.
4466         (expression_for_id): Ditto.
4467         (clear_expression_ids): Ditto.
4468         (FOR_EACH_EXPR_ID_IN_SET): New macro.
4469         (bb_value_sets): Renamed to bb_bitmap_sets.
4470         All value sets replaced with bitmap_sets.
4471         Add visited member.
4472         (BB_VISITED): New macro.
4473         (postorder): New variable.
4474         (add_to_value): Removed.
4475         (value_exists_in_set_bitmap): Ditto.
4476         (value_insert_into_set_bitmap): Ditto.
4477         (set_new): Ditto.
4478         (set_copy): Ditto.
4479         (set_remove): Ditto.
4480         (set_contains_value): Ditto.
4481         (insert_into_set): Ditto.
4482         (set_equal): Ditto.
4483         (find_leader): Ditto.
4484         (bitmap_set_subtract_from_value_set): Ditto.
4485         (value_insert_into_set): Ditto.
4486         (print_value_set): Ditto.
4487         (debug_value_set): Ditto.
4488         (constant_expr_p): New function.
4489         (bitmap_remove_from_set): Ditto.
4490         (bitmap_insert_into_set): Ditto.
4491         (bitmap_set_free): Ditto.
4492         (vh_compare): Ditto.
4493         (sorted_array_from_bitmap_set): Ditto.
4494         (bitmap_set_subtract): Ditto.
4495         (bitmap_set_equal): Ditto.
4496         (debug_bitmap_set): Ditto.
4497         (find_leader_in_sets): Ditto.
4498         (bitmap_set_replace_value): Modify for bitmapped sets.
4499         (phi_translate): Ditto.
4500         (phi_translate_set): Ditto.
4501         (bitmap_find_leader): Ditto.
4502         (valid_in_sets): Ditto.
4503         (union_contains_value): Ditto.
4504         (clean): Ditto.
4505         (compute_antic_aux): Ditto.  Mark changed blocks.
4506         (compute_antic): Ditto. Iterate in postorder and only over
4507         changing blocks.
4508         (compute_rvuse_and_antic_safe): Reuse postorder.
4509         (create_component_ref_by_pieces): Modify for bitmapped sets.
4510         (find_or_generate_expression): Ditto.
4511         (create_expression_by_pieces): Ditto.
4512         (insert_into_preds_of_block): Ditto.
4513         (changed_blocks): New variable.
4514         (do_regular_insertion): Broken out from insert_aux.
4515         (insert_aux): Modified for bitmapped sets.
4516         (find_existing_value_expr): New function.
4517         (create_value_expr_from): Use it.
4518         (insert_extra_phis): Removed.
4519         (print_bitmap_set): Renamed from bitmap_print_value_set.
4520         (compute_avail): Handle RETURN_EXPR.
4521         (init_pre): Modify for bitmapped sets.
4522         * tree-flow.h (has_stmt_ann): New function.
4523
4524 2006-10-29  Roger Sayle  <roger@eyesopen.com>
4525
4526         * builtins.c (fold_builtin_floor): Check for the availability of
4527         the C99 trunc function before transforming floor into trunc.
4528
4529 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4530
4531         * builtins.c (fold_builtin_hypot): Rearrange recursive
4532         transformation before others, and also do ABS_EXPR.  When
4533         necessary, check flag_unsafe_math_optimizations.  When necessary,
4534         add fabs.
4535
4536 2006-10-29  Roger Sayle  <roger@eyesopen.com>
4537
4538         * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
4539         Fold ~X op C as X op' ~C, where op' is the swapped comparison.
4540         (fold_binary): ~X eq/ne C is now handled in fold_comparison.
4541         Fold -X eq/ne -Y as X eq/ne Y.
4542
4543 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
4544
4545         * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
4546         GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
4547         rather than GENERATE_MULT3_SI in the various define_peephole2s.
4548         (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
4549         Use an inclusive test for "mult" rather than "mul".
4550         (rotr<mode>3): Depend on ISA_HAS_ROR.
4551         * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
4552         ISA_HAS_MUL3.
4553         (GENERATE_MULT3_DI): Delete.
4554         (ISA_HAS_64BIT_REGS): Use consistent formatting.
4555         (ISA_HAS_MUL3): New macro.
4556         (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
4557         (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
4558         (ISA_HAS_CLZ_CLO): Likewise.
4559         (ISA_HAS_DCLZ_DCLO): Delete.
4560         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
4561         (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
4562         the VR4120 and VR4130.
4563         (ISA_HAS_MACCHI): Use consistent formatting.
4564         (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
4565         (ISA_HAS_ROR): ...this new macro.
4566         (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
4567         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
4568         (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
4569
4570 2006-10-29  Roger Sayle  <roger@eyesopen.com>
4571
4572         PR tree-optimization/15458
4573         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
4574         is a constant.
4575
4576 2006-10-29  Richard Guenther  <rguenther@suse.de>
4577
4578         * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
4579         (ix86_expand_truncdf_32): Likewise.
4580         * config/i386/i386.c (ix86_expand_trunc): New function expanding
4581         trunc inline for SSE math and -fno-trapping-math and if not
4582         optimizing for size.
4583         (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
4584         * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
4585         for expanding btrunc inline for SSE math.
4586
4587 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
4588
4589         * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
4590         Handle tuning for bi-arch i[34567]86-*-linux* like that for
4591         i[34567]86-*-solaris2.1[0-9]*.
4592         * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
4593         Define conditionally depending on TARGET_64BIT_DEFAULT.
4594         (SPEC_32, SPEC_64): Define.
4595         (LINK_SPEC): Use them.
4596         * doc/install.texi (--enable-targets=all): Document for x86-linux.
4597
4598 2006-10-29  Richard Guenther  <rguenther@suse.de>
4599
4600         * config/i386/i386-protos.h (ix86_expand_round): Declare.
4601         (ix86_expand_rounddf_32): Likewise.
4602         * config/i386/i386.c (ix86_expand_round): New function expanding
4603         round inline for SSE math and -fno-trapping-math and if not
4604         optimizing for size.
4605         (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
4606         * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
4607         round via ix86_expand_round.
4608
4609 2006-10-29  Richard Guenther  <rguenther@suse.de>
4610
4611         * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
4612         (ix86_expand_floorceildf_32): Likewise.
4613         * config/i386/i386.c (ix86_expand_sse_compare_mask): New
4614         static helper function.
4615         (ix86_expand_floorceil): Expander for floor and ceil to SSE
4616         math.
4617         (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
4618         * config/i386/i386.md (floordf2): Adjust to enable floor
4619         expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
4620         -fno-trapping-math is enabled and if not optimizing for size.
4621         (floorsf2, ceildf2, ceilsf2): Likewise.
4622         * config/i386/sse.md (sse_maskcmpsf3): New insn.
4623         (sse2_maskcmpdf3): Likewise.
4624
4625 2006-10-29  Richard Guenther  <rguenther@suse.de>
4626
4627         * builtins.c (expand_builtin_mathfn): Expand nearbyint as
4628         rint in case -fno-trapping-math is enabled.
4629         * config/i386/i386-protos.h (ix86_expand_rint): Declare.
4630         * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
4631         (ix86_expand_sse_fabs): Likewise.
4632         (ix86_expand_rint): New function expanding rint to x87 or SSE math.
4633         * config/i386/i386.md (rintdf2): Enable for SSE math if
4634         -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
4635         (rintsf2): Likewise.
4636
4637 2006-10-29  Richard Guenther  <rguenther@suse.de>
4638
4639         * genopinit.c (optabs): Change lfloor_optab and lceil_optab
4640         to conversion optabs.
4641         * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
4642         as conversion optab.
4643         * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
4644         (enum convert_optab_index): Add COI_lfloor and COI_lceil.
4645         (lfloor_optab, lceil_optab): Adjust defines.
4646         * builtins.c (expand_builtin_int_roundingfn): Adjust for
4647         lfloor and lceil optabs now being conversion optabs.
4648         * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
4649         * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
4650         New static helper function.
4651         (ix86_expand_lfloorceil): New function to expand lfloor and
4652         lceil inline.
4653         * config/i386/i386.md (lfloor<mode>2): Split into ...
4654         (lfloorxf<mode>2): ... x87 variant
4655         (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
4656         using ix86_expand_lfloorceil.
4657         (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
4658         Likewise.
4659         * doc/md.texi (lfloorMN, lceilMN): Document.
4660
4661 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
4662
4663         * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.  Test for the
4664         -mno-shared assembler option on mips targets.
4665         * configure, config.in: Regenerate.
4666         * config/mips/linux.h (NO_SHARED_SPECS): New macro.
4667         (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
4668         * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
4669
4670 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
4671
4672         * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
4673         as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
4674
4675 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
4676
4677         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
4678         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
4679         comment typos.
4680
4681 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4682
4683         PR middle-end/29335
4684         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
4685         (fold_builtin_pow): Evaluate constant arguments at compile-time
4686         using MPFR.
4687         (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
4688         (do_mpfr_ckconv): New helper function.
4689         (do_mpfr_arg1): Use do_mpfr_ckconv.
4690         (do_mpfr_arg2): New.
4691
4692 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4693
4694         PR tree-opt/29271
4695         * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
4696         (-fdump-rtl-sched): Rename to ..
4697         (-fdump-rtl-sched1): here.  Also fix file extension number.
4698
4699 2006-10-28  Richard Guenther  <rguenther@suse.de>
4700
4701         * fold-const.c (maybe_canonicalize_comparison): Fix code
4702         to match comment.
4703
4704 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
4705
4706         * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
4707         (NON_QI_REG_P): Use IN_RANGE.
4708         (REX_INT_REGNO_P): Use IN_RANGE.
4709         (FP_REGNO_P): Use IN_RANGE.
4710         (SSE_REGNO_P): Use IN_RANGE.
4711         (REX_SSE_REGNO_P): Use IN_RANGE.
4712         (MMX_REGNO_P): Use IN_RANGE.
4713         (STACK_REGNO_P): New macro.
4714         (STACK_REG_P): Use STACK_REGNO_P.
4715         (NON_STACK_REG_P): Use STACK_REGNO_P.
4716         (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
4717         (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
4718         (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
4719         (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
4720         (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
4721
4722 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
4723
4724         * except.h (output_function_exception_table): Add 'const char*' param.
4725         * except.c (switch_to_exception_section): Add 'const char*' param.
4726         If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
4727         and flag_function_sections is set, use a function-specific section.
4728         (output_function_exception_table): Add 'const char*' param.
4729         Adjust call to switch_to_exception_section.
4730         * final.c (rest_of_handle_final): Adjust calls to
4731         output_function_exception_table.
4732         * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
4733         * config.in: Regenerate.
4734         * configure: Likewise.
4735
4736 2006-10-28  Richard Guenther  <rguenther@suse.de>
4737
4738         PR middle-end/26899
4739         * fold-const.c (maybe_canonicalize_comparison_1): Helper
4740         for maybe_canonicalize_comparison.
4741         (maybe_canonicalize_comparison): New function for canonicalizing
4742         comparison trees.
4743         (fold_comparison): Call it to canonicalize comparisons with
4744         constants involved.
4745
4746 2006-10-28  Richard Guenther  <rguenther@suse.de>
4747
4748         PR target/28806
4749         * builtins.c (expand_builtin_int_roundingfn_2): Expand
4750         BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
4751         (expand_builtin): Adjust likewise.
4752         * genopinit.c (optabs[]): Add lround optab.
4753         * optabs.c (init_optabs): Initialize lround_optab.
4754         * optabs.h (enum convert_optab_index): Add COI_lround.
4755         (lround_optab): Define.
4756         * config/i386/i386-protos.h (ix86_expand_lround): Declare.
4757         * config/i386/i386.c (ix86_sse_copysign_to_positive): New
4758         static function.
4759         (ix86_expand_lround): New function.
4760         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
4761         New expanders.
4762         * doc/md.texi (lroundMN2): Document.
4763
4764 2006-10-28 Uros Bizjak <uros@kss-loka.si>
4765
4766         PR target/29377
4767         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
4768         argument to HOST_WIDE_INT.  Update function prototype.
4769         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
4770         "size" argument to HOST_WIDE_INT.  Update function prototype.
4771
4772 2006-10-28 Uros Bizjak <uros@kss-loka.si>
4773
4774         * config/i386/i386.c (output_387_ffreep): Create output from a
4775         template string for !HAVE_AS_IX86_FFREEP.
4776
4777 2006-10-27  Eric Christopher  <echristo@apple.com>
4778
4779         * config/darwin.c: Fix formatting and grammar.
4780
4781 2006-10-27  Jan Hubicka  <jh@suse.cz>
4782
4783         * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
4784         to be thrown away soon when IGNORE is set.
4785         * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
4786         indicating when return value shall not be computed.
4787         * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
4788
4789 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
4790
4791         * config/i386/i386.h (TARGET_GEODE):
4792         (TARGET_CPU_CPP_BUILTINS): Add code for geode.
4793         (TARGET_CPU_DEFAULT_geode): New macro.
4794         (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
4795         TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
4796         TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
4797         TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
4798         TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
4799         the macro values.
4800         (TARGET_CPU_DEFAULT_NAMES): Add geode.
4801         (processor_type): Add PROCESSOR_GEODE.
4802
4803         * config/i386/i386.md: Include geode.md.
4804         (cpu): Add geode.
4805
4806         * config/i386/i386.c (geode_cost): New initialized global
4807         variable.
4808         (m_GEODE, m_K6_GEODE): New macros.
4809         (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
4810         x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
4811         x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
4812         x86_schedule): Use m_K6_GEODE instead of m_K6.
4813         (x86_movx, x86_cmove): Set up m_GEODE.
4814         (x86_integer_DFmode_moves): Clear m_GEODE.
4815         (processor_target_table): Add entry for geode.
4816         (processor_alias_table): Ditto.
4817
4818         * config/i386/geode.md: New file.
4819
4820         * doc/invoke.texi: Add entry about geode processor.
4821
4822 2006-10-27  Mike Stump  <mrs@apple.com>
4823
4824         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
4825         __DYNAMIC__ from here back to ...
4826         * config/darwin.h (CPP_SPEC): ... here.
4827
4828 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
4829             Nathan Sidwell  <nathan@codesourcery.com>
4830
4831         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
4832         when choosing the minimum heapsize.
4833
4834 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
4835
4836         * gcc/unwind-dw2.h: Move cfa-related variables into
4837         struct frame_state_reg_info to ensure that the CFA is properly
4838         handled when executing DW_CFA_{remember,restore}_state.
4839         * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
4840         gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
4841         gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
4842         gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
4843         gcc/config/rs6000/linux-unwind.h,
4844         gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
4845         gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
4846         Modify to use new cfa_* fields.
4847
4848 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
4849
4850         * config/s390/s390.c (s390_init_frame_layout): Check positive
4851         frame_size.
4852
4853 2006-10-26  Ben Elliston  <bje@au.ibm.com>
4854
4855         * gimplify.c (get_name): Remove extraneous break.
4856         (gimplify_omp_for): Initialise ret with GS_OK.
4857
4858 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
4859
4860         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
4861         Add unix98.o to link line.
4862
4863 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4864
4865         PR middle-end/29335
4866         * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
4867         Calculate compile-time constants using MPFR.
4868         (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
4869         BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
4870
4871 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
4872
4873         * config/xtensa/lib2funcs.S: Use C-style comments.
4874
4875 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
4876
4877         * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
4878         (file_table_relative_p): Likewise.
4879         (dwarf2out_finish): Likewise.
4880         (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
4881
4882 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
4883
4884         * tree-ssa-structalias.c (intra_create_variable_infos):
4885           Don't recreate nonlocal_all if it already exists.
4886
4887 2006-10-25  Richard Guenther  <rguenther@suse.de>
4888
4889         PR target/28803
4890         * optabs.h (enum optab_index): Remove OTI_lrint.
4891         (enum convert_optab_index): Add COI_lrint.
4892         (lrint_optab): Adjust.
4893         (expand_sfix_optab): Declare.
4894         * optabs.c (expand_sfix_optab): New function.
4895         (init_optabs): Init lrint_optab as conversion optab.
4896         * genopinit.c (lrint_optab): Change to a conversion optab.
4897         * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
4898         expansion via conversion optab.
4899         * config/i386/i386.md (*fistdi2_1): Remove
4900         flag_unsafe_math_optimizations guard.
4901         (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
4902         fist<mode>2_with_temp): Likewise.
4903         (lrint<mode>2): Split into...
4904         (lrintxf<mode>2): ... x87 part
4905         (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
4906         * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
4907         sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
4908         UNSPEC_FIX_NOTRUNC matching non-vector float modes.
4909         * doc/md.texi (lrintMN2): Document.
4910
4911 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
4912
4913         PR target/28909
4914         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
4915         Use inc and dec instructions for TARGET_USE_INCDEC.
4916         ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
4917         ("sync_double_compare_and_swap<mode>"): Likewise.
4918         ("*sync_double_compare_and_swapdi_pic"): Likewise.
4919         ("*sync_compare_and_swap_cc<mode>"): Likewise.
4920         ("sync_double_compare_and_swap_cc<mode>"): Likewise.
4921         ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
4922         ("sync_old_add<mode>"): Likewise.
4923         ("sync_lock_test_and_set<mode>"): Likewise.
4924         ("sync_lock_test_and_set<mode>"): Likewise.
4925         ("sync_add<mode>"): Likewise.
4926         ("sync_sub<mode>"): Likewise.
4927         ("sync_ior<mode>"): Likewise.
4928         ("sync_and<mode>"): Likewise.
4929         ("sync_xor<mode>"): Likewise.
4930
4931 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
4932
4933         * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
4934         (remainder_optab): Define corresponding macro.
4935         (drem_optab): Remove.
4936         * optabs.c (init_optabs): Initialize remainder_optab.  Remove
4937         drem_optab initialization.
4938         * genopinit.c (optabs): Implement remainder_optab using
4939         remainder?f3 patterns.  Remove drem_optab.
4940         * builtins.c (expand_builtin_mathfn_2): Handle
4941         BUILT_IN_REMAINDER{,F,L} using remainder_optab.
4942         (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
4943         expand_builtin_mathfn_2.
4944
4945         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
4946         depend on flag_unsafe_math_optimizations.
4947
4948         * config/i386/i386.md ("remaindersf3", "remainderdf3")
4949         ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
4950         Do not depend on flag_unsafe_math_optimizations.  Use
4951         truncxf?f expander instead of truncxf?f_i387_noop.
4952
4953         ("fpremxf4", "fprem1xf4"): Do not depend on
4954         flag_unsafe_math_optimizations.
4955         ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
4956         flag_unsafe_math_optimizations.  Use truncxf?f expander
4957         instead of truncxf?f_i387_noop.
4958
4959         * doc/md.texi (fmod, remainder): Document standard named pattern.
4960
4961 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
4962             David Daney  <ddaney@avtrex.com>
4963
4964         PR middle-end/29519
4965         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
4966
4967 2006-10-25  Ben Elliston  <bje@au.ibm.com>
4968
4969         * doc/extend.texi (Variable Attributes): Typo fix.
4970
4971 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
4972
4973         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
4974         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
4975         (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
4976         (FRAME_POINTER_REGNUM): Update register number to 21.
4977         (REG_CLASS_CONTENTS): Update contents for added fpcr register.
4978         (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
4979
4980         * config/i386/i386.c (regclass_map): Add fpcr entry.
4981         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
4982         Add fpcr entry.
4983         (print_reg): Assert REGNO (x) != FPCR_REG.
4984
4985         * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
4986         (DIRFLAG_REG): Renumber.
4987         (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
4988         (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
4989         (sse_prologue_save, *sse_prologue_save_insn): Renumber
4990         hardcoded SSE register numbers.
4991
4992         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
4993         hardcoded MMX register numbers.
4994
4995 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4996
4997         PR middle-end/29335
4998         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
4999         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
5000         Update all callers.
5001         (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
5002         (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
5003         BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
5004         BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
5005
5006 2006-10-24  Richard Guenther  <rguenther@suse.de>
5007
5008         PR middle-end/28796
5009         * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
5010         and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
5011         for deciding optimizations in consistency with fold-const.c
5012         (fold_builtin_unordered_cmp): Likewise.
5013
5014 2006-10-24  Richard Guenther  <rguenther@suse.de>
5015
5016         * builtins.c (fold_builtin_floor): Fold floor (x) where
5017         x is nonnegative to trunc (x).
5018         (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
5019         nonnegative to FIX_TRUNC_EXPR.
5020
5021 2006-10-24  Richard Guenther  <rguenther@suse.de>
5022
5023         PR tree-optimization/29567
5024         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
5025         for TRUTH_NOT_EXPR.  Clarify comments.
5026
5027 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5028
5029         PR middle-end/29335
5030         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
5031         at compile-time using MPFR.  Change parameter VALUE to FUNC,
5032         update all callers.
5033         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
5034         for overflow and underflow at all times and avoid folding in
5035         those cases.
5036
5037 2006-10-24  Ben Elliston  <bje@au.ibm.com>
5038
5039         * reload1.c: Formatting fixes.
5040
5041 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
5042
5043         PR tree-optimization/14784
5044         * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
5045         * tree-ssa-structalias.c (get_constraint_for,
5046         intra_create_variable_infos): Set is_heapvar.
5047         * tree-ssa-operands.c (access_can_touch_variable): Do not handle
5048         non-heapvar pointer variables specially.
5049
5050 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5051
5052         PR middle-end/29335
5053         * builtins.c (fold_builtin_sin, fold_builtin_cos,
5054         fold_builtin_tan): Fold all constant arguments.  Take a "type"
5055         argument as necessary.
5056         (do_mpfr_arg1): New.
5057         * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
5058
5059 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
5060
5061         * config/xtensa/lib1funcs.asm: Use C-style comments.
5062
5063 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
5064
5065         * tree.c (local_define_builtin): Replace calls to
5066         lang_hooks.builtin_function with add_builtin_function.
5067         * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
5068         c_builtin_function.
5069         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
5070         the signature.
5071         * c-decl.c (builtin_function): Rename to c_builtin_function. Move
5072         common code to add_builtin_function.
5073         * langhooks.c (add_builtin_function): New function.
5074         (lhd_builtin_function): New function.
5075         * langhooks.h (struct lang_hooks): Change the signature of
5076         builtin_function.
5077         (add_builtin_function): New function.
5078         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
5079         calls to lang_hooks.builtin_function with add_builtin_function.
5080         * c-common.c (decl_builtin_1): Replace calls to
5081         lang_hooks.builtin_function with add_builtin_function.
5082         * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
5083         lang_hooks.builtin_function with add_builtin_function.
5084         * config/frv/frv.c (def_builtin): Replace calls to
5085         lang_hooks.builtin_function with add_builtin_function.
5086         * config/s390/s390.c (s390_init_builtins): Replace calls to
5087         lang_hooks.builtin_function with add_builtin_function.
5088         * config/sparc/sparc.c (def_builtin): Replace calls to
5089         lang_hooks.builtin_function with add_builtin_function.
5090         * config/i386/i386.c (def_builtin): Replace calls to
5091         lang_hooks.builtin_function with add_builtin_function.
5092         * config/sh/sh.c (sh_media_init_builtins): Replace calls to
5093         lang_hooks.builtin_function with add_builtin_function.
5094         * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
5095         lang_hooks.builtin_function with add_builtin_function.
5096         * config/stormy16/stormy16.c (xstormy16_init_builtins):
5097         Replace calls to lang_hooks.builtin_function with
5098         add_builtin_function.
5099         * config/iq2000/iq2000.c (def_builtin):
5100         Replace calls to lang_hooks.builtin_function with
5101         add_builtin_function.
5102         * config/ia64/ia64.c (def_builtin): Replace calls to
5103         lang_hooks.builtin_function with add_builtin_function.
5104         * config/rs6000/rs6000.c (def_builtin): Replace calls to
5105         lang_hooks.builtin_function with add_builtin_function.
5106         (altivec_init_builtins): Replace calls to
5107         lang_hooks.builtin_function with add_builtin_function.
5108         * config/arm/arm.c (def_mbuiltin): Replace calls to
5109         lang_hooks.builtin_function with add_builtin_function.
5110         (arm_init_tls_builtins): Replace calls to
5111         lang_hooks.builtin_function with add_builtin_function.
5112         * config/mips/mips.c (mips_init_builtins): Replace calls to
5113         lang_hooks.builtin_function with add_builtin_function.
5114         * config/bfin/bfin.c (def_builtin): Replace calls to
5115         lang_hooks.builtin_function with add_builtin_function.
5116         * langhooks-def.h (lhd_builtin_function): New function.
5117         (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
5118
5119 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
5120
5121         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
5122         BUILT_IN_STRNCAT_CHK.
5123
5124 2006-10-23  Jan Hubicka  <jh@suse.cz>
5125
5126         * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
5127         don't do conversion from memmove to memcpy here.
5128         (expand_builtin_bcopy, expand_builtin): Update call of
5129         expand_builtin_memmove.
5130         (fold_builtin_memory_op): Do folding of memmove to memcpy here.
5131
5132 2006-10-23  Paul Brook  <paul@codesourcery.com>
5133
5134         * stor-layout.c (start_record_layout): maximum_field_alignment
5135         overrides STRUCTURE_SIZE_BOUNDARY.
5136
5137 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
5138
5139         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
5140         nonlocal function symbols if flag_pic.
5141
5142 2006-10-23  Richard Guenther  <rguenther@suse.de>
5143
5144         PR middle-end/27132
5145         PR middle-end/23295
5146         * builtins.c (fold_binary): Remove checks for flag_wrapv
5147         and flag_trapv where negate_expr_p covers these cases.
5148
5149 2006-10-23  Richard Guenther  <rguenther@suse.de>
5150
5151         PR middle-end/29548
5152         * fold-const.c (fold_plusminus_mult_expr): Check exact power
5153         of two on the absolute value.
5154         (fold_binary): Fold x * -C to -x * C if x is easily negatable
5155         and negating -C does not overflow.
5156
5157 2006-10-23  Richard Guenther  <rguenther@suse.de>
5158
5159         PR middle-end/21032
5160         * convert.c (convert_to_real): Fold (float)-x to -(float)x
5161         only if not flag_rounding_math.
5162
5163 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
5164             Kaz Kojima  <kkojima@gcc.gnu.org>
5165
5166         PR target/28232
5167         * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
5168         SImode memory reference for the source of a movua.
5169         * config/sh/sh.md (UNSPEC_MOVUA): New macro.
5170         (movua): Use an unspec instead of sign_extract.  Expect the source
5171         to have mode BLKmode.
5172         (extv, insv): Use a BLKmode rather than SImode memory reference
5173         for the source of a movua.
5174
5175 2006-10-22  Jeff Law  <law@redhat.com>
5176         Richard Guenther  <rguenther@suse.de>
5177
5178         PR tree-optimization/15911
5179         * tree-vrp.c (extract_code_and_val_from_cond): New function.
5180         (register_edge_assert_for_1): Likewise.
5181         (register_edge_assert_for): Handle &&/&/||/| in conditionals.
5182         (find_conditional_asserts): Adjust for new function signature.
5183         (find_assert_locations): Likewise.
5184
5185 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
5186
5187         * config/i386/tmmintrin.h: Remove the duplicated content.
5188
5189 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
5190
5191         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
5192         (x86_64-*-*): Likewise.
5193
5194         * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
5195         (override_options): Check SSSE3.
5196         (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
5197         IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
5198         IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
5199         IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
5200         IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
5201         IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
5202         IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
5203         IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
5204         IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
5205         IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
5206         IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
5207         IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
5208         IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
5209         IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
5210         IX86_BUILTIN_PABSD128.
5211         (bdesc_2arg): Add SSSE3.
5212         (bdesc_1arg): Likewise.
5213         (ix86_init_mmx_sse_builtins): Support SSSE3.
5214         (ix86_expand_builtin): Likewise.
5215         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
5216
5217         * config/i386/i386.md (UNSPEC_PSHUFB): New.
5218         (UNSPEC_PSIGN): Likewise.
5219         (UNSPEC_PALIGNR): Likewise.
5220         Include mmx.md before sse.md.
5221
5222         * config/i386/i386.opt: Add -mssse3.
5223
5224         * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
5225         (ssse3_phaddwv4hi3): Likewise.
5226         (ssse3_phadddv4si3): Likewise.
5227         (ssse3_phadddv2si3): Likewise.
5228         (ssse3_phaddswv8hi3): Likewise.
5229         (ssse3_phaddswv4hi3): Likewise.
5230         (ssse3_phsubwv8hi3): Likewise.
5231         (ssse3_phsubwv4hi3): Likewise.
5232         (ssse3_phsubdv4si3): Likewise.
5233         (ssse3_phsubdv2si3): Likewise.
5234         (ssse3_phsubswv8hi3): Likewise.
5235         (ssse3_phsubswv4hi3): Likewise.
5236         (ssse3_pmaddubswv8hi3): Likewise.
5237         (ssse3_pmaddubswv4hi3): Likewise.
5238         (ssse3_pmulhrswv8hi3): Likewise.
5239         (ssse3_pmulhrswv4hi3): Likewise.
5240         (ssse3_pshufbv16qi3): Likewise.
5241         (ssse3_pshufbv8qi3): Likewise.
5242         (ssse3_psign<mode>3): Likewise.
5243         (ssse3_psign<mode>3): Likewise.
5244         (ssse3_palignrti): Likewise.
5245         (ssse3_palignrdi): Likewise.
5246         (abs<mode>2): Likewise.
5247         (abs<mode>2): Likewise.
5248
5249         * config/i386/tmmintrin.h: New file.
5250
5251         * doc/extend.texi: Document SSSE3 built-in functions.
5252
5253         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
5254
5255 2006-10-22  Ira Rosen  <irar@il.ibm.com>
5256
5257         * tree-vect-transform.c (vectorizable_load): Use the type of the
5258         return value of the mask_for_load builtin to create realign_load
5259         stmt.
5260
5261 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
5262
5263         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
5264         expressions.
5265
5266 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
5267
5268         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
5269         (UNSPEC_LDDQU): This.
5270         * config/i386/sse.md (sse3_lddqu): Updated.
5271
5272 2006-10-21  Richard Guenther  <rguenther@suse.de>
5273
5274         * builtins.c (expand_builtin_int_roundingfn_2): New function.
5275         (expand_builtin): Use it to expand lrint instead of
5276         expand_builtin_mathfn.
5277
5278 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
5279
5280         PR middle-end/28252
5281         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
5282         flag_unsafe_math_optimizations is set.
5283
5284 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
5285
5286         PR target/19398
5287         * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
5288         patterns to use memory input operand in x87->mem->XMM
5289         reload sequences.  Skip transformation for TARGET_K8.
5290
5291 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
5292
5293         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
5294         force operand1 to register if both operands are memory operands.
5295         (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
5296         (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
5297         if both operands are memory operands.
5298         (truncdfsf2): Do not force operand1 to register if both operands
5299         are memory operands.
5300
5301 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5302
5303         * Makefile.in (LIBS): Add $(GMPLIBS).
5304         * doc/install.texi: Update GMP and MPFR requirements.
5305         * doc/sourcebuild.texi (need_gmp): Delete.
5306
5307 2006-10-21  Richard Guenther  <rguenther@suse.de>
5308
5309         PR tree-optimization/3511
5310         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
5311         got new invariant arguments during PHI translation.
5312
5313 2006-10-21  Richard Guenther  <rguenther@suse.de>
5314
5315         PR middle-end/26898
5316         * fold-const.c (fold_comparison): Fold signed comparisons
5317         of the form X +- C1 CMP Y +- C2.
5318
5319 2006-10-21  Richard Guenther  <rguenther@suse.de>
5320
5321         PR target/19116
5322         * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
5323         if flag_unsafe_math_optimizations is specified.  We have
5324         flag_finite_math_only for that.
5325         * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
5326         or flag_unsafe_math_optimizations.
5327
5328 2006-10-21  Richard Guenther  <rguenther@suse.de>
5329
5330         * builtins.c (fold_builtin_classify): Fix typo.
5331
5332 2006-10-21  Richard Guenther  <rguenther@suse.de>
5333
5334         PR middle-end/28796
5335         * simplify-rtx.c (simplify_const_relational_operation):
5336         Do not constant-fold ORDERED and UNORDERED for
5337         flag_unsafe_math_optimizations but only we do not need to
5338         honor NaNs for the given mode.
5339
5340 2006-10-21  Richard Guenther  <rguenther@suse.de>
5341
5342         PR target/29512
5343         * config/i386/i386.c (classify_argument): Remove redundant
5344         walking of the BINFOs.
5345         (contains_128bit_aligned_vector_p): Likewise.
5346
5347 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
5348
5349         * BASE-VER: Set to 4.3.0.
5350
5351 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
5352
5353         * tree.h (DECL_PTA_ARTIFICIAL): Remove.
5354         (tree_decl_with_vis): Remove artificial_pta_var flag.
5355         * tree-flow.h (referenced_var_check_and_insert): Expose.
5356         (nonlocal_all): New prototype.
5357         * tree-ssa-structalias.c (nonlocal_for_type): Remove.
5358         (nonlocal_all): Make global.
5359         (nonlocal_lookup): Remove.
5360         (nonlocal_insert): Ditto.
5361         (create_nonlocal_var): Do not call nonlocal_insert.
5362         (get_nonlocal_id_for_type): Remove.
5363         (find_global_initializers): Mark new vars we find for renaming.
5364         (intra_create_variable_infos): Only create one nonlocal.
5365         (expand_nonlocal_solutions): Remove.
5366         (compute_points_to_sets): Don't call it.
5367         (ipa_pta_execute): Ditto.
5368         (init_alias_heapvars): Don't create nonlocal_for_type.
5369         (delete_alias_heapvars): Don't remove it.
5370         * tree-ssa-operands.c (access_can_touch_variable): Don't prune
5371         nonlocal_all.
5372
5373 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
5374
5375         * doc/install.texi (Downloading GCC): Clarify mention of
5376         Fortran in the "full distribution" description.
5377
5378 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
5379
5380         Fix PR tree-optimization/28778
5381         Fix PR tree-optimization/29156
5382         Fix PR tree-optimization/29415
5383         * tree.h (DECL_PTA_ARTIFICIAL): New macro.
5384         (tree_decl_with_vis): Add artificial_pta_var flag.
5385         * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
5386         pushed into callers.
5387         * tree-ssa-structalias.c (nonlocal_for_type): New variable.
5388         (nonlocal_all): Ditto.
5389         (struct variable_info): Add directly_dereferenced member.
5390         (var_escaped_vars): New variable.
5391         (escaped_vars_tree): Ditto.
5392         (escaped_vars_id): Ditto.
5393         (nonlocal_vars_id): Ditto.
5394         (new_var_info): Set directly_dereferenced.
5395         (graph_size): New variable
5396         (build_constraint_graph): Use graph_size.
5397         (solve_graph): Don't process constraints that cannot change the
5398         solution, don't try to propagate an empty solution to our
5399         successors.
5400         (process_constraint): Set directly_dereferenced.
5401         (could_have_pointers): New function.
5402         (get_constraint_for_component_ref): Don't process STRING_CST.
5403         (nonlocal_lookup): New function.
5404         (nonlocal_insert): Ditto.
5405         (create_nonlocal_var): Ditto.
5406         (get_nonlocal_id_for_type): Ditto.
5407         (get_constraint_for): Allow results vector to be empty in the case
5408         of string constants.
5409         Handle results of calls properly.
5410         (update_alias_info): Update alias info stats on number and type of
5411         calls.
5412         (find_func_aliases): Use could_have_pointers.
5413         (make_constraint_from_escaped): Renamed from
5414         make_constraint_to_anything, and changed to make constraints from
5415         escape variable.
5416         (make_constraint_to_escaped): New function.
5417         (find_global_initializers): Ditto.
5418         (create_variable_info_for): Make constraint from escaped to any
5419         global variable, and from any global variable to the set of
5420         escaped vars.
5421         (intra_create_variable_infos): Deal with escaped instead of
5422         pointing to anything.
5423         (set_uids_in_ptset): Do type pruning on directly dereferenced
5424         variables.
5425         (find_what_p_points_to): Adjust call to set_uids_with_ptset.
5426         (init_base_vars): Fix comment, and initialize escaped_vars.
5427         (need_to_solve): Removed.
5428         (find_escape_constraints): New function.
5429         (expand_nonlocal_solutions): Ditto.
5430         (compute_points_to_sets): Call find_escape_constraints and
5431         expand_nonlocal_solutions.
5432         (delete_points_to_sets): Don't fall off the end of the graph.
5433         (init_alias_heapvars): Initialize nonlocal_for_type and
5434         nonlocal_all.
5435         (delete_alias_heapvars): Free nonlocal_for_type and null out
5436         nonlocal_all.
5437
5438 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
5439
5440         * fold-const.c (add_double): Rename to add_double_with_sign.
5441         Add 'unsigned_p' parameter and take it into account for the overflow.
5442         (mul_double): Rename to mul_double_with_sign.
5443         Add 'unsigned_p' parameter and take it into account for the overflow.
5444         (fold_div_compare): Call add_double_with_sign instead of add_double
5445         and mul_double_with_sign instead of mul_double, passing them the
5446         unsignedness of the type.
5447         * tree.h (add_double): Macroize.
5448         (add_double_with_sign): New prototype.
5449         (mul_double): Macroize.
5450         (mul_double_with_sign): New prototype.
5451
5452 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
5453
5454         * config/score/crti.asm: New file.
5455         * config/score/crtn.asm: New file.
5456         * config/score/elf.h: New file.
5457         * config/score/mac.md: New file.
5458         * config/score/misc.md: New file.
5459         * config/score/mul-div.S: New file.
5460         * config/score/predicates.md: New file.
5461         * config/score/score7.md: New file.
5462         * config/score/score.c: New file.
5463         * config/score/score-conv.h: New file.
5464         * config/score/score.h: New file.
5465         * config/score/score.md: New file.
5466         * config/score/score-mdaux.c: New file.
5467         * config/score/score-mdaux.h: New file.
5468         * config/score/score-modes.def: New file.
5469         * config/score/score.opt: New file.
5470         * config/score/score-protos.h: New file.
5471         * config/score/score-version.h: New file.
5472         * config/score/t-score-elf: New file.
5473         * config.gcc: Add score*-*-* configurations(Update before).
5474         * doc/invoke.texi (Score Options): New section.
5475         * doc/md.texi (Score family): New section to document constraints.
5476
5477 2006-10-19  Nick Clifton  <nickc@redhat.com>
5478
5479         * config/arm/arm.c: Fix spelling typo.
5480
5481 2006-10-18  Tom Tromey  <tromey@redhat.com>
5482
5483         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
5484
5485 2006-10-18  Jan Hubicka  <jh@suse.cz>
5486
5487         PR middle-end/29299
5488         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
5489         are used.
5490
5491 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
5492
5493         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
5494         TSI_SAME_STMT, since that's the desired entity.
5495
5496 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
5497
5498         * config/s390/contraints.md: New file.
5499         * config/s390/s390-protos.h (s390_mem_constraint,
5500         s390_O_constraint_str, s390_N_constraint_str,
5501         s390_float_const_zero_p): Function prototypes added.
5502         * config/s390/s390.c (s390_extra_constraint_str,
5503         s390_const_double_ok_for_constraint_p,
5504         s390_const_ok_for_constraint_p): Functions removed.
5505         (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
5506         s390_float_const_zero_p): New functions.
5507         * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
5508         CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
5509         EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
5510         Macro definitions removed.
5511         (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
5512         s390_extra_constraint_str): Functions removed.
5513
5514 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
5515             Richard Sandiford  <richard@codesourcery.com>
5516
5517         PR target/29413
5518         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
5519         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
5520
5521 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
5522
5523         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
5524         (DWARF2_FRAME_REG_OUT): Likewise.
5525         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
5526         (DWARF2_FRAME_REG_OUT): Likewise.
5527
5528 2006-10-17  Paul Brook  <paul@codesourcery.com>
5529
5530         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
5531
5532 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
5533
5534         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
5535         Standardize on "GNU Fortran" as the official name of the Fortran
5536         compiler.
5537
5538 2006-10-16  Mike Stump  <mrs@apple.com>
5539
5540         * doc/invoke.texi (Darwin Options): Document -mkernel.
5541         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
5542         -mkernel support.
5543         (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
5544         SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
5545         (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
5546         (OS_MISSING_ALTIVEC): Add.
5547         * config/i386/i386.c (override_options): Add
5548         SUBSUBTARGET_OVERRIDE_OPTIONS callout.
5549         * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
5550         -mkernel, -static or -mdynamic-no-pic is given.
5551         (C_COMMON_OVERRIDE_OPTIONS): Add.
5552         * config/darwin.opt (fapple-kext): Add.
5553         (mkernel): Add.
5554         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
5555         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
5556         -mkernel support.
5557         (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
5558         (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
5559         (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
5560         (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
5561         (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
5562         (flag_mkernel): Add.
5563         (flag_apple_kext): Add.
5564         (TARGET_KEXTABI): Add.
5565         * config/darwin.c (darwin_handle_kext_attribute): Add.
5566         (DARWIN_VTABLE_P): Add.
5567         (darwin_binds_local_p): Add partial support for rebinding vtables
5568         in kexts.
5569         (darwin_kextabi_p): Add.
5570         (darwin_override_options): Add.
5571         * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
5572         (darwin_kextabi_p): Add.
5573         (darwin_override_options): Add.
5574         * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
5575         __DYNAMIC__ and __STATIC__ here.
5576
5577 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
5578
5579         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
5580         Added mention of "make pdf" target, and Texinfo requirements for
5581         same.
5582
5583 2006-10-16  DJ Delorie  <dj@redhat.com>
5584
5585         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
5586         into the GOT in case we need a subreg of the address.
5587
5588 2006-10-16  Richard Guenther  <rguenther@suse.de>
5589
5590         PR target/25519
5591         * doc/extend.texi (X86 Built-in Functions): Fix typos in
5592         SSE builtin documentation.  Document SSE2 builtins.
5593
5594 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5595
5596         * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
5597         symbol in the output file for non-shared links when -nostdlib or
5598         -nodefaultlibs isn't specified.
5599
5600         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
5601         posix thread support.
5602
5603 2006-10-15  Jan Hubicka  <jh@suse.cz>
5604
5605         PR middle-end/29241
5606         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
5607         declared always_inline even when not inlining.
5608
5609 2006-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
5610             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5611             Andrew Pinski  <pinskia@gmail.com>
5612
5613         PR middle-end/29111
5614         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
5615
5616 2006-10-15  Jan Hubicka  <jh@suse.cz>
5617             Richard Guenther  <rguenther@suse.de>
5618
5619         PR middle-end/29299
5620         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
5621         process_function_and_variable_attributes on all variables, including
5622         those discovered during cgraph construction phase.
5623
5624 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
5625
5626         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
5627
5628 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
5629
5630         * config/i386/athlon.md (athlon_fist): Add fisttp.
5631
5632 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
5633             Ian Lance Taylor  <ian@airs.com>
5634
5635         PR middle-end/29250
5636         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
5637         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
5638         recursing.
5639
5640 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
5641
5642         * config/score/score.c, config/score/score.h: Fix comment
5643         typos.
5644
5645 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5646
5647         PR bootstrap/29402
5648         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
5649         shell pipeline.
5650
5651 2006-10-13  Eric Christopher  <echristo@apple.com>
5652
5653         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5654
5655 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
5656
5657         Revert this change:
5658         2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
5659         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
5660         alignment supported by 32-bit ELF.
5661
5662 2006-10-13  Eric Christopher  <echristo@apple.com>
5663
5664         * config/darwin.c (darwin_emit_unwind_label): Strip
5665         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
5666
5667 2006-10-13  Richard Guenther  <rguenther@suse.de>
5668
5669         PR tree-optimization/29446
5670         * tree-vrp.c (fix_equivalence_set): Remove.
5671         (extract_range_from_assert): Do not call fix_equivalence_set.
5672         (debug_value_range): Print a newline.
5673         (compare_name_with_value): For equivalence sets with
5674         inconsistent value ranges conservatively bail out.
5675         (compare_names): Likewise.
5676
5677 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
5678
5679         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
5680         and MPFR for gfortran.
5681
5682 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
5683
5684         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
5685         alignment supported by 32-bit ELF.
5686
5687 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
5688
5689         PR c/29092
5690
5691         * c-typeck.c (digest_init): Always allow initializing vectors
5692         that have static storage duration with compound literals.
5693         * tree.c (build_type_attribute_qual_variant): New, based on
5694         build_type_attribute_variant.
5695         (build_type_attribute_variant): Rewrite using the former.
5696         (make_vector_type): Use build_type_attribute_qual_variant to build
5697         type variants.  Use type_hash_canon on the others.
5698
5699 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
5700             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
5701
5702         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
5703
5704 2006-10-12  Jan Hubicka  <jh@suse.cz>
5705
5706         PR c/28419
5707         * c-decl.c (c_make_fname_decl): Do not segfault in case where
5708         current_function_decl is set but current_function_scope is not.
5709
5710 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
5711
5712         * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
5713         emit_insn to emit eh_return_internal instruction.
5714         (eh_return_internal): Explicitly set pc.
5715
5716 2006-10-11  Richard Guenther  <rguenther@suse.de>
5717
5718         PR tree-optimization/28230
5719         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
5720         to the correct place.
5721
5722 2006-10-11  Richard Guenther  <rguenther@suse.de>
5723
5724         PR inline-asm/29119
5725         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
5726         addressable.
5727
5728 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
5729
5730         * configure.ac: Added pdf to "Make-hooks"
5731         * Makefile.in: Added TEXI2PDF definition, and various pdf-file
5732         targets and *.pdf file patterns in cleanup targets.
5733         * configure: Regenerated.
5734
5735 2006-10-10  Anatoly Sokolov <aesok@post.ru>
5736
5737         * config/avr/predicates.md: New file.
5738         * config/avr/avr.md: Include it.
5739         (REG_SP): New constant.
5740         (peepholes): Use predicates.
5741         (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
5742         difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
5743         sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
5744
5745 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
5746
5747         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
5748         avoid alias set 0.
5749
5750 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
5751
5752         PR middle-end/29272
5753         * builtins.c (var_decl_component_p): New function.
5754         (fold_builtin_memset, fold_builtin_memory_op): Restrict
5755         single entry optimization to variables and components thereof.
5756
5757 2006-10-10  Richard Guenther  <rguenther@suse.de>
5758
5759         PR rtl-optimization/29323
5760         * except.c (set_nothrow_function_flags): For functions
5761         that do not bind local bail out early.
5762
5763 2006-10-10  Ben Elliston  <bje@au.ibm.com>
5764
5765         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
5766         -mdlmzb option.
5767
5768 2006-10-09  Richard Henderson  <rth@redhat.com>
5769
5770         Revert emutls patch.
5771
5772 2006-10-09  Richard Guenther  <rguenther@suse.de>
5773
5774         PR middle-end/29254
5775         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
5776         errors.
5777
5778 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
5779
5780         PR target/27880
5781         * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
5782         * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
5783         * configure: Regenerate.
5784         * config.in: Regenerate.
5785
5786 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
5787
5788         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
5789
5790 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
5791
5792         * config/mips/mips.c (mips_legitimize_tls_address): Implement
5793         all TLS models in the same way as local exec if !TARGET_ABICALLS.
5794         Remove stray newline.
5795
5796 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
5797
5798         * config/mips/mips.c (mips_classify_symbol): Do not return
5799         SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
5800         (mips_in_small_data_p): Tweak comments.
5801
5802 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
5803
5804         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
5805
5806 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
5807
5808         * gimplify.c, sched-int.h: Fix comment typos.
5809
5810         * sched-int.h: Fix comment typos.
5811
5812 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5813
5814         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
5815         New macros.
5816         * sched-ebb.c (begin_schedule_ready): Use them.
5817         * haifa-sched.c (schedule_insn, move_insn, try_ready,
5818         add_to_speculative_block, create_check_block_twin, speculate_insn,
5819         fix_jump_move, move_block_after_check): Ditto.
5820         * sched-rgn.c (new_ready): Ditto.
5821
5822 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5823
5824         PR rtl-optimization/29128
5825         * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
5826         * sched-ebb.c (advance_target_bb): Use it to fix condition to
5827         allow interblock movement of speculation checks.
5828
5829 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
5830
5831         PR middle-end/29256
5832         * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
5833         casted to integer type.
5834         (get_address_cost): Decrease cost of [symbol + index] addressing modes
5835         if they are significantly more expensive than [reg + index] ones.
5836
5837 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
5838
5839         PR tree-optimization/29330
5840         * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
5841         (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
5842         on newly allocated ddrs.
5843         (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
5844         to VEC (loop_p, heap) pointer.
5845         (compute_data_dependences_for_loop): Adjust caller.
5846         (free_dependence_relations): Free DDR_LOOP_NEST.
5847
5848         * tree-loop-linear.c (linear_transform_loops): Don't forget to
5849         free DEPENDENCE_RELATIONS and DATAREFS.
5850
5851         PR target/28924
5852         * builtins.c (expand_builtin_sync_operation,
5853         expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
5854         Use convert_to_mode to handle promoted arguments.
5855
5856 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
5857
5858         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
5859
5860 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
5861
5862         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
5863
5864 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
5865
5866         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
5867         "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
5868         Use <modeconstraint> instead of "r" as operand 1 constraint.
5869
5870 2006-10-06  Olivier Hainque  <hainque@adacore.com>
5871
5872         * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
5873         Don't recurse on the pointed-to type.
5874         * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
5875         DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
5876         types with components of variable size.
5877
5878 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
5879
5880         * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
5881
5882 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
5883
5884         PR tree-optimization/29290
5885         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
5886         multiple exits.
5887
5888         PR target/29198
5889         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
5890         * config/i386/predicates.md (local_symbolic_operand): Likewise.
5891
5892         PR c/29091
5893         * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
5894         the number of vector elements fill the rest with zeros.
5895
5896 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
5897
5898         * config/mips/mips.c (mips_pass_by_reference): Do not return false
5899         for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
5900         instead.
5901
5902 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
5903
5904         * config/bfin/bfin.md (subsi3): Lose expander, change previously
5905         unnamed pattern into subsi3.  Use correct constraints/predicates.
5906         * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
5907         * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
5908
5909 2006-10-05  Ira Rosen  <irar@il.ibm.com>
5910
5911         * doc/loop.texi: Add data references analysis description.
5912
5913 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
5914
5915         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
5916
5917 2006-10-04  Richard Henderson  <rth@redhat.com>
5918             Jakub Jelinek  <jakub@redhat.com>
5919
5920         * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
5921         * builtin-types.def (BT_WORD): Make unsigned.
5922         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
5923         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
5924         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
5925         * c-decl.c (grokdeclarator): Don't error if !have_tls.
5926         * c-parser.c (c_parser_omp_threadprivate): Likewise.
5927         * cgraph.c (decide_is_variable_needed): Look at force_output.
5928         Recurse for emulated tls.
5929         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
5930         checks redundant with decide_is_variable_needed.
5931         (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
5932         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
5933         emulated tls.
5934         * expr.c (emutls_var_address): New.
5935         (expand_expr_real_1): Expand emulated tls.
5936         (expand_expr_addr_expr_1): Likewise.
5937         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
5938         * output.h (emutls_finish): Declare.
5939         * toplev.c (compile_file): Call it.
5940         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
5941         address before wrapping in CONST.
5942         * varasm.c (emutls_htab, emutls_object_type): New.
5943         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
5944         (get_emutls_object_name, get_emutls_object_type): New.
5945         (get_emutls_init_templ_addr, emutls_decl): New.
5946         (emutls_common_1, emutls_finish): New.
5947         (assemble_variable): When emulating tls, swap decls; generate
5948         constructor for the emutls objects.
5949         (do_assemble_alias): When emulating tls, swap decl and target name.
5950         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
5951         for emulated tls.
5952         * emutls.c: New file.
5953         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
5954         tls_object for real tls.
5955
5956 2006-10-04  Zack Weinberg  <zackw@panix.com>
5957
5958         Fix bug in constraint-check generator, reported by Rask Ingemann
5959         Lambertsen:
5960         * genpreds.c (add_constraint): Don't remove anything from the
5961         expression here.
5962         (write_tm_constrs_h): Detect whether "op" argument is used, and
5963         mark it ARG_UNUSED if it isn't.
5964         (write_insn_const_int_ok_for_constraint): Skip the part of the
5965         expression that would test whether "op" (which is not available
5966         here) is a CONST_INT.
5967
5968 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
5969
5970         PR c++/28448
5971         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
5972
5973 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
5974
5975         * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
5976         current Leopard versions.
5977         * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
5978
5979 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
5980
5981         * doc/install.texi: Fix typos.
5982
5983 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5984
5985         * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
5986         * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
5987         * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
5988
5989 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
5990
5991         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
5992         arg to be struct mach_header_64* instead.
5993
5994 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
5995
5996         PR c/29154
5997         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
5998         side effects after the outer expression's post side effects.
5999
6000 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
6001
6002         * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
6003         comments to reflect actual behavior and relationship between
6004         DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
6005
6006         * doc/c-tree.texi (Working with declarations): Fix documentation
6007         of FIELD_DECL likewise.
6008
6009 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
6010
6011         PR c/20533
6012         * doc/extend.texi: Add used variable attribute description.
6013
6014 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
6015
6016         PR c/24010
6017         * c.opt (Woverride-init): New.
6018         * c-opts.c (c_common_post_options): Default warn_override_init to
6019         extra_warnings.
6020         * c-typeck.c (add_pending_init, output_init_element): Warn for
6021         overriding initializers without side effects.
6022         * doc/invoke.texi (-Woverride-init): Document.
6023         (-Wextra): Update.
6024
6025 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
6026
6027         PR rtl-optimization/28096
6028         * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
6029         assignment has already been used as a destination earlier in the block.
6030
6031 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
6032
6033         * builtins.c (expand_builtin_setjmp): Delete.
6034         (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
6035         <BUILT_IN_SETJMP_SETUP>: New case.
6036         <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
6037         <BUILT_IN_SETJMP_RECEIVER>: Likewise.
6038         * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
6039         (BUILT_IN_SETJMP_DISPATCHER): Likewise.
6040         (BUILT_IN_SETJMP_RECEIVER): Likewise.
6041         * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
6042         (lower_function_body): Initialize it to false.  If it is set to true
6043         at the end of the processing, emit the setjmp dispatcher.
6044         (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
6045         is __builtin_setjmp and set calls_builtin_setjmp to true as well.
6046         <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
6047         on the rhs of the assignment.
6048         (lower_builtin_setjmp): New function.
6049         * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
6050         BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
6051         * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
6052         to detect calls that can go to non-local labels.  Use specific
6053         helper to create the abnormal edges associated with them.
6054         <MODIFY_EXPR>: Likewise.
6055         (make_abnormal_goto_edges): New function extracted from...
6056         (make_goto_expr_edges): ...here.  Call it for computed gotos.
6057         (simple_goto_p): Minor tweak.
6058         (tree_can_make_abnormal_goto): New predicate.
6059         (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
6060         (tree_purge_dead_abnormal_call_edges): New function.
6061         * tree-flow.h (tree_can_make_abnormal_goto): Declare.
6062         (tree_purge_dead_abnormal_call_edges): Likewise.
6063         (make_abnormal_goto_edges): Likewise.
6064         * tree-inline.c (expand_call_inline): Simplify statement frobbing.
6065         Purge all dead abnormal edges if the call was in the last statement.
6066         * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
6067         (execute_fixup_cfg): If there are non-local labels in the function,
6068         scan the basic blocks and split them at calls that can go to non-local
6069         labels or add missing abnormal call edges.  Write down the CFG in the
6070         dump file.
6071         (pass_fixup_cfg): Remove TODO_dump_func flag.
6072         * unwind-sjlj.c: Poison setjmp.
6073         * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
6074         * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
6075         (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
6076         (DONT_USE_BUILTIN_SETJMP): Document it.
6077
6078 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
6079
6080         PR target/28617
6081         * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
6082         to 1 when __ppc64__ is defined.
6083         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
6084         darwin-64.c.
6085         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
6086
6087 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
6088
6089         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
6090         * config/ia64/unwind-hpux.c: Delete.
6091
6092 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
6093
6094         * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
6095         on the element before gimplifying it, instead of punting if it is of
6096         variable size.
6097
6098 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
6099
6100         * doc/loop.texi: New file.
6101         * doc/gccint.texi: Reference loop.texi.
6102         * Makefile.in (loop.texi): Add.
6103
6104 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
6105
6106         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
6107         __sysctl.
6108         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6109         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6110
6111 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6112
6113         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
6114
6115 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
6116
6117         * doc/install.texi: Document required versions of GMP and MPFR.
6118
6119 2006-09-27  Paul Brook  <paul@codesourcery.com>
6120
6121         PR target/29230
6122         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
6123
6124 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
6125
6126         * reload1.c (alter_reg): Require the alignment of the stack slot to
6127         be at least reg_max_ref_width bytes.
6128         (scan_paradoxical_subregs): Record the largest width in
6129         reg_max_ref_width.
6130
6131 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
6132
6133         PR middle-end/25261
6134         PR middle-end/28790
6135         * tree-nested.c (struct nesting_info): Added static_chain_added.
6136         (convert_call_expr): Set static_chain_added when adding static
6137         chain.  Handle OMP_PARALLEL and OMP_SECTION.
6138
6139 2006-09-25  Matthias Klose  <doko@debian.org>
6140
6141         * doc/invoke.texi: Add missing full stop.
6142
6143 2006-09-25  Richard Henderson  <rth@redhat.com>
6144
6145         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
6146         before cgraph_function_flags_ready.
6147
6148 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
6149             Adam Nemet  <anemet@caviumnetworks.com>
6150
6151         * tree-ssa-loop-ivopts.c (aff_combination_convert,
6152         determine_common_wider_type): New functions.
6153         (get_computation_aff): Use them to simplify arithmetic between
6154         UBASE and CBASE if they are shortened from the same type.
6155
6156 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
6157
6158         PR target/28911
6159         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
6160         -2147483647 - 1 instead of 0x80000000.
6161
6162 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
6163
6164         * flags.h (HONOR_NANS): Fix typo in comment.
6165
6166 2006-09-23  Uros Bizjak <uros@kss-loka.si>
6167
6168         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
6169
6170 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
6171
6172         PR c/28706
6173         PR c/28712
6174         * tree.c (merge_attributes, attribute_list_contained): If both
6175         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
6176         simple_cst_equal.
6177         * c-typeck.c (comptypes_internal): Don't consider aggregates
6178         in different TUs as compatible if there one set of attributes is
6179         not a subset of the other type's attributes.
6180         (composite_type): Try harder not to create a new aggregate type.
6181
6182 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
6183
6184         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
6185         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
6186         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
6187         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
6188         than replicating condition above.
6189         * config.host (i[34567]86-*-*): Always use driver-i386.o.
6190
6191         * config/darwin.h (LINK_SYSROOT_SPEC): New.
6192         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
6193         the linker by default.
6194
6195 2006-09-22  Mike Stump  <mrs@apple.com>
6196
6197         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
6198         code.
6199
6200 2006-09-22  Richard Guenther  <rguenther@suse.de>
6201
6202         PR middle-end/28964
6203         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
6204         sort of stack variables stable.
6205
6206 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
6207
6208         PR middle-end/28690
6209         * explow.c (force_reg): Set REG_POINTER flag according to
6210         MEM_POINTER flag.
6211
6212 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
6213
6214         PR tree-optimization/28888
6215         * tree-if-conv.c (combine_blocks): Rewritten.
6216         * tree-cfg.c (tree_verify_flow_info): Check that edges with
6217         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
6218
6219 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
6220
6221         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
6222         needed.
6223
6224 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
6225
6226         * varasm.c (copy_constant): Fix reversed gcc_assert check.
6227
6228 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
6229
6230         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
6231
6232 2006-09-21  Roger Sayle  <roger@eyesopen.com>
6233
6234         PR debug/29132
6235         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
6236         dw_fde_current_label, to be the start of the function, i.e. the same
6237         value as dw_fde_begin.
6238
6239 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
6240
6241         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
6242         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
6243         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
6244         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
6245         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
6246         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
6247         (abs<mode>2, neg<mode>2): Likewise.
6248         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
6249         (*mips_abs_ps): New define_insn.
6250
6251 2006-09-20  Josh Conner  <jconner@apple.com>
6252
6253         PR middle-end/25505
6254         * calls.c (expand_call): Allow reuse of structure return stack
6255         temp.
6256
6257 2006-09-20  Paul Brook  <paul@codesourcery.com>
6258
6259         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
6260         positive offsets.
6261
6262 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
6263
6264         * doc/extend.texi (Decimal Float): Update for latest draft TR,
6265         clean up terminology.
6266
6267 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
6268
6269         PR target/28574
6270         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
6271         with tablejumps in them.
6272
6273 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
6274
6275         PR middle-end/28046
6276         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
6277         wrap it into TARGET_EXPR.
6278
6279 2006-09-20  Eric Christopher  <echristo@apple.com>
6280
6281         * config/i386/i386.c (x86_fisttp): Remove.
6282         * config/i386/i386.h (x86_fisttp): Ditto.
6283         (TARGET_FISTTP): Ditto.
6284
6285 2006-09-19  Eric Christopher  <echristo@apple.com>
6286
6287         * doc/tm.texi (OBJC_JBLEN): Describe.
6288         * config/i386/darwin.h (OBJC_JBLEN): Define.
6289         * config/rs6000/darwin.h: Ditto.
6290
6291 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
6292
6293         PR rtl-optimization/21299
6294         * reload1.c (reload): Purge invalid ASMs in the final pass.
6295
6296 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
6297
6298         PR  28490
6299         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
6300         pointers as legitimate constants.
6301
6302 2006-09-19  Paul Brook  <paul@codesourcery.com>
6303
6304         PR target/28516
6305         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
6306
6307 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
6308
6309         PR tree-optimization/28887
6310         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
6311         component parts from the reference.
6312         (gather_memory_references_ref): Record the reference without the
6313         nonaddressable component parts.
6314
6315 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
6316
6317         PR c/25993
6318         * c-opts.c (c_common_handle_option): Ignore the -std options
6319         if the input language is assembly.
6320
6321 2006-09-17  Ira Rosen  <irar@il.ibm.com>
6322
6323         PR tree-opt/21591
6324         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
6325         tag first.
6326         (ptr_ptr_may_alias_p): Likewise.
6327         (record_record_differ_p): New function.
6328         (base_object_differ_p): Call record_record_differ_p.
6329
6330 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
6331
6332         PR tree-opt/29059
6333         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
6334         away for the expr argument.
6335
6336 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
6337
6338         PR tree-opt/27742
6339         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
6340         before using it for dumping after vectorizing loops.
6341
6342 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
6343             Jack Howarth  <howarth@bromo.med.uc.edu>
6344
6345         PR target/29030
6346         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
6347         skip on error_mark_node.
6348         (rs6000_darwin64_record_arg_recurse): Likewise.
6349
6350 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
6351
6352         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
6353         * doc/rtl.texi: Remove related documentation.
6354
6355 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
6356
6357         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
6358         printf.
6359
6360 2006-09-15  Jim Wilson  <wilson@specifix.com>
6361
6362         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
6363         Handle symbol offsets same as they are handled in ia64_expand_move
6364         and move_operand.
6365
6366 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
6367
6368         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
6369         Add forgotten parameter to the fprintf call.
6370
6371 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
6372
6373         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
6374
6375 2006-09-15  Uros Bizjak <uros@kss-loka.si>
6376
6377         * doc/contrib.texi: Add my entry.
6378
6379 2006-09-15  Nick Clifton  <nickc@redhat.com>
6380
6381         * doc/md.texi (Processor pipeline description): Fix typo in
6382         example of how to use the absence_set directive and reword the
6383         description to make it slightly easier to read.
6384
6385 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6386
6387         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
6388         * loop-doloop.c (doloop_optimize): Use it to limit costs of
6389         expanding the number of iterations.
6390         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
6391
6392         * cfgrtl.c (emit_insn_at_entry): New function.
6393         * rtl.h (emit_insn_at_entry): Declare it.
6394         * integrate.c (emit_initial_value_sets): Use it.
6395
6396         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
6397
6398         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
6399         bad.
6400         (struct loop_work and related VEC declarations): Delete.
6401         (bfin_dump_loops): Print out new member bad.
6402         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
6403         (bfin_scan_loop): Don't recurse.
6404         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
6405         loops.  No longer need to update outer loops if the current one is
6406         found bad.  Move some validitiy checks to bfin_discover_loop.
6407         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
6408         but changed not to check for nesting.  Also changed to use the new bad
6409         flag.
6410         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
6411         time.  Use bitmap based test to discover loop nesting.
6412
6413 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
6414
6415         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
6416         one line.
6417
6418 2006-09-14  Richard Guenther  <rguenther@suse.de>
6419             Kazu Hirata  <kazu@codesourcery.com>
6420
6421         PR middle-end/28884.
6422         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
6423         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
6424         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
6425         with TARGET_FUNCTION_VALUE.
6426
6427 2006-09-14  Anatoly Sokolov <aesok@post.ru>
6428
6429         PR target/26504
6430         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
6431
6432 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
6433
6434         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
6435         of a RETURN_EXPR
6436
6437 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
6438
6439         PR debug/28980
6440         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
6441         FUNCTION_DECL.
6442
6443 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
6444
6445         * basic_block.h (bb_has_eh_pred): Fix comment.
6446
6447 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
6448
6449         * flow.c (calculate_global_regs_live): Invalidate eh registers
6450         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
6451         (propagate_block): Handle eh registers as if they were set at basic
6452         block start.
6453         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
6454         registers.
6455         * global.c (global_conflicts): Make eh registers to conflict with
6456         pseudos live at basic block begin.
6457         * basic_block.h (bb_has_eh_pred): New function.
6458
6459 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
6460
6461         PR rtl-optimization/28982
6462         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
6463         index of a PRE_MODIFY or POST_MODIFY address.
6464         * reload1.c (inc_for_reload): Use find_replacement on the original
6465         base and index registers.
6466
6467 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
6468
6469         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
6470         for -Os. Update __m128 alignment requirement.
6471
6472 2006-09-13  Jan Hubicka  <jh@suse.cz>
6473
6474         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
6475
6476 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6477
6478         PR rtl-optimization/28243
6479         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
6480         the insn to which the note was originally attached.
6481
6482 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
6483             Roger Sayle  <roger@eyesopen.com>
6484
6485         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
6486         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
6487         on platforms that don't use dwarf for debug info.
6488
6489 2006-09-12  Jason Merrill  <jason@redhat.com>
6490
6491         PR middle-end/28493
6492         * builtins.c (expand_builtin_setjmp_receiver): Clobber
6493         hard_frame_pointer_rtx after using it to update the frame pointer.
6494
6495 2006-09-12  Roger Sayle  <roger@eyesopen.com>
6496
6497         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
6498         (TARGET_ASM_CLOSE_PAREN): Likewise.
6499         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
6500         (TARGET_ASM_CLOSE_PAREN): Likewise.
6501
6502 2006-09-12  Roger Sayle  <roger@eyesopen.com>
6503
6504         PR target/22223
6505         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
6506         frame information for frames larger than 512 Kbytes on Tru64 when
6507         using the native assembler.
6508
6509 2006-09-12  Roger Sayle  <roger@eyesopen.com>
6510
6511         PR middle-end/4520
6512         PR bootstrap/28784
6513         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
6514         and symbols.  Instead use the implementation from cse.c's hash_rtx.
6515
6516 2006-09-12  Jan Hubicka  <jh@suse.cz>
6517
6518         PR rtl-optimization/28071
6519         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
6520         (vect_transform_loop): Likewise.
6521         * tree-vectorizer.c (new_loop_vec_info): Likewise.
6522         (new_loop_vec_info): Likewise.
6523         (destroy_loop_vec_info): Likewise.
6524         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
6525         (create_stmt_ann): Likewise.
6526         (create_tree_ann): Rename to ...
6527         (create_tree_common_ann): ... this one; allocate only the common part
6528         of annotations.
6529         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
6530         (get_value_handle): Likewise.
6531         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
6532         get_tree_common_ann.
6533         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
6534         (vinfo_for_stmt): Use stmt annotations.
6535         * tree-flow.h (tree_ann_common_t): New type.
6536         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
6537         (tree_ann, get_tree_ann, create_tree_ann): New.
6538         * tree-flow-inline.h (get_function_ann): Do more type checking.
6539         (stmt_ann): Likewise.
6540         (tree_ann): Rename to ...
6541         (tree_common_ann): ... this one; return ony common_ann
6542         (get_tree_ann): Rename to ...
6543         (tree_common_ann): This one; return only common_ann.
6544         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
6545         of set_stmt_info.
6546
6547 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
6548
6549         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
6550         with_cpu by default.
6551
6552         * dwarf2out.c (dwarf_file_data): New.
6553         (enum dw_val_class): Add dw_val_class_file.
6554         (struct dw_val_struct): Add val_file.
6555         (file_table): Change to a hash table.
6556         (file_table_emitted): Delete.
6557         (file_table_last_lookup_index): Delete.
6558         (emitcount): Delete.
6559         (last_emitted_file): New.
6560         (lookup_filename): Change prototype to return a struct dwarf_file_data.
6561         (init_file_table): Delete.
6562         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
6563         (AT_addr): Add comment.
6564         (add_AT_file): New.
6565         (AT_file): New.
6566         (get_AT_file): New.
6567         (print_die): Handle dw_val_class_file.
6568         (print_dwarf_line_table): Update for new file table structure.
6569         (attr_checksum): Do checksum a filename.
6570         (same_dw_val_p, same_attr_p): Do compare a filename.
6571         (size_of_die): Handle dw_val_class_file.
6572         (value_format): Likewise.
6573         (output_die): Likewise.  Also, call maybe_emit_file here.
6574         (struct file_info): Constify filenames.  Make file_idx a pointer
6575         to a struct dwarf_file_data.
6576         (struct dir_info): Constify directory names.  Remove 'used' field.
6577         (struct file_name_acquire_data): New.
6578         (file_name_acquire): New.
6579         (output_file_names): Modify to handle new file data structures.
6580         (add_src_coords_attributes): Use add_AT_file.
6581         (add_call_src_coords_attributes): Likewise.
6582         (dwarf2out_imported_module_or_decl): Likewise.
6583         (gen_subprogram_die): Modify for new file data structures.
6584         (gen_variable_die): Likewise.
6585         (file_table_eq): New.
6586         (file_table_hash): New.
6587         (file_table_last_lookup): New.
6588         (lookup_filename): Rewrite to handle new file data structures.
6589         (maybe_emit_file): Rewrite to handle new file data structures.
6590         (dwarf2out_source_line): Always call lookup_filename and
6591         maybe_emit_file.
6592         (dwarf2out_init): Create file_table here.
6593         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
6594         (file_table_relative_p): New.
6595         (dwarf2out_finish): Change detection of relative filenames
6596         to work with new file data structures.  Move output_line_info call
6597         after debug_info output.
6598
6599 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
6600
6601         PR target/13685
6602         PR target/27537
6603         PR target/28621
6604         * config/i386/i386.c (override_options): Always default to 16
6605         byte stack boundary.
6606
6607 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
6608
6609         PR target/28672
6610         * var-tracking.c (dump_dataflow_set): Start dumping at
6611         register zero.
6612         (clobber_variable_part): Kill only the variable part in
6613         registers holding it, leaving other variables alone.
6614
6615 2006-09-11  Josh Triplett  <josh@freedesktop.org>
6616
6617         * doc/extend.texi (Other Builtins): Actually use the macro
6618         argument in the documentation example for
6619         __builtin_types_compatible_p.
6620
6621 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
6622
6623         PR rtl-optimization/28726
6624         * sched-deps.c (sched_analyze_reg): New function extracted from...
6625         (sched_analyze_1): ...here.  Call it to analyze references to
6626         registers.  Treat again writes to a stack register as writing to the
6627         register.
6628         (sched_analyze_2): ...and here.  Call it to analyze references to
6629         registers.  Treat again reads of a stack register as reading the
6630         register.
6631
6632 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
6633             David Edelsohn  <edelsohn@gnu.org>
6634
6635         PR target/27287
6636         * config/rs6000/spe.md (frob_df_di): Remove %H.
6637         (frob_di_df): Remove %H.  Change evmergelo to mr.
6638         (frob_di_df_2): Remove %H.  Change evldd to two loads.
6639
6640 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
6641
6642         * doc/cpp.texi: Fix names of charset options.
6643
6644 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
6645
6646         PR target/29009
6647         * config/i386/i386.c (override_options): Use 128-bit
6648         stack boundary always for 64bits.
6649
6650 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
6651
6652         PR rtl-optimization/28636
6653         * combine.c (force_to_mode): Test for side-effects before
6654         substituting by zero.
6655         (simplify_shift_const): Likewise for zero or other constants.
6656
6657 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
6658
6659         PR middle-end/26983
6660         * builtins.c (expand_builtin_setjmp): Force next_lab to be
6661         preserved.
6662
6663 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
6664
6665         PR target/29006
6666         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
6667         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
6668         returned by mode_for_size, rather than the mode of src itself,
6669         to choose between 32-bit and 64-bit patterns.
6670         (mips_mem_fits_mode_p): New function.
6671         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
6672         that the size of the source matches the size of the destination.
6673         (mov_<store>l, mov_<store>r): Likewise.
6674
6675 2006-09-10  Eric Christopher  <echristo@apple.com>
6676
6677         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
6678         for literal16.
6679
6680 2006-09-09  Eric Christopher  <echristo@apple.com>
6681
6682         PR target/28995
6683         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
6684         for literal16.
6685
6686 2006-09-09  Roger Sayle  <roger@eyesopen.com>
6687             Nicolas Setton <setton@adacore.com>
6688
6689         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
6690
6691 2006-09-10  Andreas Schwab  <schwab@suse.de>
6692
6693         * config/m68k/m68k.md (bungt_rev): New pattern.
6694
6695 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
6696             Dale Johannesen  <dalej@apple.com>
6697
6698         PR target/26778
6699         * regclass.c (struct reg_pref): Update documentation.
6700         (regclass): Set prefclass to NO_REGS if memory is the best option.
6701         (record_reg_classes): Cope with a prefclass set to NO_REGS.
6702
6703 2006-09-08  Eric Christopher  <echristo@apple.com>
6704
6705         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
6706         * config/t-slibgcc-darwin: Support x86_64 multilib.
6707         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
6708         Return 1 for x86_64-darwin.
6709         * config/i386/t-darwin: Add m64 multilib.
6710         (LIB2_SIDITI_CONV_FUNCS): Use.
6711         (LIB2FUNCS_EXTRA): Ditto.
6712         * config/i386/darwin.h: Support x86_64.
6713         * config/i386/i386.c (override_options): Turn on flag_pic
6714         for x86_64-darwin. Disable flag_omit_pointer.
6715         (get_pc_thunk_name): Assert !TARGET_64BIT.
6716         (legitimate_address_p): Disable machopic addressing for
6717         x86_64.
6718         (legitimize_pic_address): Ditto.
6719         (ix86_expand_move): Ditto.
6720         (ix86_expand_call): Ditto.
6721         (machopic_output_stub): Ditto.
6722         * config/darwin.c (machopic_select_section): Support literal16.
6723         (machopic_select_rtx_section): Ditto.
6724         * config/darwin-sections.def: Ditto.
6725         * config/darwin-64.c: New.
6726
6727 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
6728
6729         PR c/28504
6730         * c-tree.h (struct c_arg_info): Add pending_sizes.
6731         * c-parser.c (c_parser_parms_declarator,
6732         c_parser_parms_list_declarator): Initialize pending_sizes.
6733         * c-decl.c (get_parm_info): Initialize pending_sizes.
6734         (get_parm_info): Set pending_sizes.
6735         (grokdeclarator): Call put_pending_sizes for parameters for
6736         function definition only.
6737
6738 2006-09-07  Jason Merrill  <jason@redhat.com>
6739
6740         PR middle-end/27724
6741         * varasm.c (output_constant): Only strip actual no-op conversions.
6742
6743         PR target/13685
6744         * config/i386/i386.c (override_options): Use 128-bit
6745         stack boundary if -msse.
6746
6747 2006-09-07  Eric Christopher  <echristo@apple.com>
6748
6749         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
6750         comment.
6751         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
6752         Redefine.
6753
6754 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
6755
6756         * dwarf2out.c: Remove strange characters from comment above
6757         dwarf2out_frame_debug_expr.
6758
6759 2006-09-07  Eric Christopher  <echristo@apple.com>
6760
6761         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
6762         * config/darwin.h: ... to here.
6763
6764 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
6765
6766         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
6767
6768         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
6769         (TARGET_PARTIAL_FLAG_REG_STALL): New.
6770
6771         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
6772         TARGET_PARTIAL_FLAG_REG_STALL.
6773         (*ashldi3_cconly_rex64): Likewise.
6774         (*ashlsi3_cmp): Likewise.
6775         (*ashlsi3_cconly): Likewise.
6776         (*ashlsi3_cmp_zext): Likewise.
6777         (*ashlhi3_cmp): Likewise.
6778         (*ashlhi3_cconly): Likewise.
6779         (*ashlqi3_cmp): Likewise.
6780         (*ashlqi3_cconly): Likewise.
6781         (*ashrdi3_cmp_rex64): Likewise.
6782         (*ashrdi3_cconly_rex64): Likewise.
6783         (*ashrsi3_cmp): Likewise.
6784         (*ashrsi3_cconly): Likewise.
6785         (*ashrsi3_cmp_zext): Likewise.
6786         (*ashrhi3_cmp): Likewise.
6787         (*ashrhi3_cconly): Likewise.
6788         (*ashrqi3_cmp): Likewise.
6789         (*ashrqi3_cconly): Likewise.
6790         (*lshrdi3_cmp_rex64): Likewise.
6791         (*lshrdi3_cconly_rex64): Likewise.
6792         (*lshrsi3_cmp): Likewise.
6793         (*lshrsi3_cconly): Likewise.
6794         (*lshrsi3_cmp_zext): Likewise.
6795         (*lshrhi3_cmp): Likewise.
6796         (*lshrhi3_cconly): Likewise.
6797         (*lshrqi2_cmp): Likewise.
6798         (*lshrqi2_cconly): Likewise.
6799
6800 2006-09-07 Uros Bizjak <uros@kss-loka.si>
6801
6802         PR target/28946
6803         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
6804         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
6805         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
6806         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
6807         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
6808         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
6809         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
6810         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
6811         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
6812         implement only CC setting effects of shift instructions.
6813
6814 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
6815
6816         * doc/contrib.texi: Add myself.
6817
6818 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
6819
6820         PR middle-end/28862
6821         * stor-layout.c (relayout_decl): Don't zero the alignment if it
6822         was set by the user.
6823
6824 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
6825
6826         PR target/27117
6827         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
6828         (divsi_inv_m1): Use them.
6829         (UNSPEC_DIV_INV_TABLE): New constant.
6830
6831 2006-09-06  James E Wilson  <wilson@specifix.com>
6832
6833         PR rtl-opt/27883
6834         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
6835         then call count_or_remove_death_notes.
6836
6837 2006-09-06  Jason Merrill  <jason@redhat.com>
6838
6839         PR c++/27371
6840         * tree-inline.c (copy_result_decl_to_var): New fn.
6841         (declare_return_variable): Use it.  Call declare_inline_vars here.
6842         (expand_call_inline): Not here.
6843
6844 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
6845
6846         * doc/contrib.texi: Update my entry.
6847
6848 2006-09-06  Nick Clifton  <nickc@redhat.com>
6849
6850         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
6851
6852 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
6853
6854         PR tree-opt/28937
6855         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
6856         (canonicalize_induction_variables): Likewise.
6857         (tree_unroll_loops_completely): Likewise.
6858         (tree_ssa_prefetch_arrays): Likewise.
6859         (remove_empty_loops): Likewise.
6860         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
6861         TODO_cleanup_cfg instead of directly calling
6862         cleanup_tree_cfg_loop.
6863         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
6864         Likewise.
6865         (tree_unroll_loops_completely): Likewise.
6866         (remove_empty_loops): Likewise.
6867         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
6868         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
6869         of tree_ssa_unswitch_loops.
6870         (tree_ssa_loop_ivcanon): Use the return value of
6871         canonicalize_induction_variables.
6872         (tree_ssa_empty_loop): Use the return value of
6873         remove_empty_loops.
6874         (tree_complete_unroll): Use the return value of
6875         tree_unroll_loops_completely.
6876         (tree_ssa_loop_prefetch): Use the return value of
6877         tree_ssa_prefetch_arrays.
6878         * passes.c (execute_todo): Before Cleanup CFG, set
6879         updating_used_alone and after cleanup CFG, call
6880         recalculate_used_alone.
6881
6882 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
6883
6884         PR tree-opt/28952
6885         * tree-vect-transform.c (vectorizable_condition): Move the check
6886         for the type after the check for simple condition.
6887
6888 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
6889             Kaz Kojima  <kkojima@gcc.gnu.org>
6890
6891         PR target/28764
6892         * mode-switching.c (optimize_mode_switching): Make the destination
6893         block of an abnormal edge have no anticipatable mode.  Don't
6894         insert mode switching code at the end of the source block of
6895         an abnormal edge.
6896
6897 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
6898
6899         PR rtl-optimization/26847
6900         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
6901         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
6902         (simplify_plus_minus): Count n_constants while filling ops.  Replace
6903         qsort with insertion sort.  Before going through the array to simplify
6904         pairs, sort it.  Delay early exit until after the first sort, exiting
6905         only if no swaps occurred.  Simplify pairs in reversed order, without
6906         special-casing the first iteration.  Pack ops after simplifying pairs.
6907
6908 2006-09-05  Anatoly Sokolov <aesok@post.ru>
6909
6910         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
6911         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6912         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6913         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
6914
6915 2006-09-05  Richard Guenther  <rguenther@suse.de>
6916
6917         PR tree-optimization/28900
6918         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
6919         compound conditional before creating COND_EXPR condition.
6920
6921 2006-09-05  Richard Guenther  <rguenther@suse.de>
6922
6923         PR tree-optimization/28905
6924         * tree-vrp.c (fix_equivalence_set): Manually implement
6925         !value_ranges_intersect_p to also handle symbolic ranges.
6926
6927 2006-09-05  Richard Guenther  <rguenther@suse.de>
6928
6929         PR middle-end/28935
6930         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
6931         of a COND_EXPR.
6932
6933 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6934
6935         PR rtl-optimization/27616
6936         * cse.c (table_size): New static variable.
6937         (new_basic_block): Initialize it to 0.
6938         (remove_from_table): Decrement it.
6939         (insert): Increment it.
6940         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
6941         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
6942         fold_rtx_mem_1 if under the cap.
6943         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
6944         the lookup of the equivalent expression and test for equality of the
6945         first operand of the equivalent expression before in turn looking up
6946         an equivalent constant for the second operand.
6947
6948 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
6949
6950         Revert this change:
6951         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
6952         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
6953         pointer, instead of assuming it is possible to derive the
6954         correct args size from a call insn.
6955
6956 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
6957
6958         PR middle-end/27567
6959         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
6960         (fold_builtin_mempcpy): Rename to...
6961         (fold_builtin_memory_op): ... this.  Optimize one element copy
6962         into an assignment.
6963         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
6964         functions.
6965         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
6966         (expand_builtin_memcpy, expand_builtin_mempcpy,
6967         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
6968         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
6969         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
6970         BUILT_IN_MEM{CPY,PCPY,MOVE}.
6971
6972 2006-09-01  DJ Delorie  <dj@redhat.com>
6973
6974         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
6975         (stzx_16): Likewise.
6976         ("stzx_24_<mode>"): Likewise.
6977         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
6978         ("cmp<mode>_op"): New.
6979         (cmp<mode>): Change to expander; just save operands.
6980         (b<code>_op): New.
6981         (b<code>): Change to expander, emit compare here.
6982         (s<code>_op): Change to use split and expander.
6983         (s<code>_24_op): Likewise.
6984         (s<code>_<mode>): New.
6985         (s<code>_<mode>_24): New.
6986         (movqicc_<code>_<mode): New.
6987         (movhicc_<code>_<mode>): New.
6988         (s<code>): New.
6989         (s<code>_24): New.
6990         * config/m32c/m32c.c (compare_op0, compare_op1): New.
6991         (m32c_pend_compare): New.
6992         (m32c_unpend_compare): New.
6993         (m32c_expand_scc): New.
6994         (m32c_expand_movcc): Emit the compare also.
6995         * config/m32c/predicates.md (mra_nopp_operand): New.
6996
6997 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
6998         Richard Guenther  <rguenther@suse.de>
6999         Adam Nemet  <anemet@caviumnetworks.com>
7000
7001         PR middle-end/27226
7002         * builtins.c (get_pointer_alignment): Handle more forms
7003         of base addresses that can be used to derive more precise
7004         information about alignment.
7005
7006 2006-09-01  Jason Merrill  <jason@redhat.com>
7007
7008         PR c++/28899
7009         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
7010         want_value.
7011
7012         * gimplify.c (voidify_wrapper_expr): Handle null type.
7013
7014 2006-09-01  Josh Conner  <jconner@apple.com>
7015
7016         PR c++/25505
7017         * tree-nrv.c (dest_safe_for_nrv_p): New function.
7018         (execute_return_slot_opt): Use it.
7019
7020 2006-08-31  Josh Conner  <jconner@apple.com>
7021
7022         PR c++/25505
7023         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
7024         returning aggregates.
7025
7026 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
7027
7028         PR tree-optimization/28839
7029         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
7030         blocks in that phi arguments appear.
7031
7032 2006-08-31  Roger Sayle  <roger@eyesopen.com>
7033
7034         PR other/22313
7035         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
7036         NULL, otherwise use an advance_loc4 to adjust relative to the
7037         current label.
7038         (output_cfi) <DW_CFA_set_loc>: Update the current label.
7039         (dwarf2out_switch_text_section): Reset the current label to avoid
7040         using advance_loc4 over section boundaries.
7041
7042 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
7043
7044         PR target/24367
7045         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
7046         r12 + SYMBOLIC_CONST.
7047
7048 2006-08-30  Richard Guenther  <rguenther@suse.de>
7049
7050         * Makefile.in (see.o): Add $(EXPR_H) dependency.
7051
7052 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
7053
7054         PR rtl-optimization/27735
7055         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
7056         Add new argument to keep track of whether an irreducible region
7057         was affected.  All callers changed.
7058         (fix_irreducible_loops): Removed.
7059         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
7060         flags were invalidated.
7061
7062 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
7063
7064         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
7065         instead of SF operands.
7066         (*fop_df_comm_sse): Likewise.
7067         (*fop_df_comm_i387): Likewise.
7068         (*fop_df_1_mixed): Likewise.
7069         (*fop_df_1_sse): Likewise.
7070
7071 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
7072             J"orn Rennecke  <joern.rennecke@st.com>
7073
7074         PR tree-optimization/17506
7075         * tree-ssa.c (warn_uninit): If warning about a location outside of
7076         the current function, note where the variable was declared.
7077
7078 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
7079
7080         PR tree-optimization/28411
7081         * double-int.c (double_int_div): Use double_int_divmod.
7082         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
7083         double_int_mod, double_int_smod, double_int_umod): New functions.
7084         * double-int.h (double_int_divmod, double_int_sdivmod,
7085         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
7086         Declare.
7087         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
7088         in double_int.
7089         (get_computation_aff, get_computation_cost_at): Handle double_int
7090         return type of constant_multiple_of.
7091
7092 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
7093
7094         PR middle-end/26632
7095         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
7096         an implicit conversion.
7097
7098 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
7099
7100         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
7101
7102 2006-08-27  Roger Sayle  <roger@eyesopen.com>
7103
7104         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
7105         x87 instructions.
7106
7107 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
7108
7109         * config/i386/crtfastmath.c: Fix a comment typo.
7110
7111 2006-08-26  Roger Sayle  <roger@eyesopen.com>
7112
7113         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
7114         temporary visit flags on CASE_LABEL_EXPRs.
7115         * c-common.c (match_case_to_enum): Add function comment.  Avoid
7116         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
7117         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
7118         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
7119         a constant, only warn if that constant value isn't handled.
7120
7121 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
7122
7123         PR c++/24009
7124         * input.h (restore_input_file_stack): Declare.
7125         (INPUT_FILE_STACK_BITS): Define.
7126         * toplev.c (fs_p, input_file_stack_history,
7127         input_file_stack_restored, restore_input_file_stack): New.
7128         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
7129         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
7130         (pop_srcloc): Don't free old state of stack.
7131
7132 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
7133
7134         PR target/27544
7135         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
7136         (PowerPC Type Attributes): New.
7137
7138 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
7139
7140         * config/xtensa/xtensa.c (function_arg_boundary): New.
7141         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
7142         STACK_BOUNDARY.
7143         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
7144         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
7145
7146 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
7147
7148         PR middle-end/28683
7149         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
7150         3 following insns.
7151
7152 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7153
7154         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
7155         (verify_local_live_at_start): Likewise.
7156
7157 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
7158
7159         PR c/27893
7160         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
7161         omp_add_variable): Treat sizes as variable whenever not
7162         INTEGER_CST.
7163
7164 2006-08-26  Richard Guenther  <rguenther@suse.de>
7165
7166         PR middle-end/28814
7167         * fold-const.c (fold_binary): Fold temporary to correct
7168         type before constructing new comparison.
7169
7170 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
7171
7172         PR c/28418
7173         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
7174         variable again if DECL_SEEN_IN_BIND_EXPR_P.
7175
7176 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
7177
7178         PR c/28299
7179         * c-decl.c (start_function): Don't try to process prototype
7180         information from old declaration that isn't a function.
7181
7182 2006-08-25  Jan Hubicka  <jh@suse.cz>
7183
7184         PR target/28621
7185         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
7186
7187 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
7188
7189         PR target/27075
7190         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
7191         for 8 byte objects.
7192
7193 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
7194
7195         PR tree-optimization/16876
7196         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
7197         exit if PARM doesn't match VALUE.
7198
7199 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
7200
7201         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
7202         literal_prefix directive.
7203         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
7204         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
7205         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
7206
7207 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
7208
7209         PR target/28753
7210         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
7211         predicate to general_operand.  Add 0->y and I->r alternatives.
7212
7213 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
7214
7215         * doc/tm.texi: Fix a typo.
7216         * predict.c: Fix comment typos.
7217
7218 2006-08-25  Nick Clifton  <nickc@redhat.com>
7219
7220         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
7221         assertions of "cpu" and "machine".
7222
7223 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
7224
7225         PR tree-opt/28807
7226         * tree-ssa-operands.c (access_can_touch_variable): Don't say
7227         the access through a base which has an alias set of 0 cannot
7228         touch the variable.
7229
7230 2006-08-24  Bill Wendling  <wendling@apple.com>
7231
7232         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
7233
7234 2006-08-24  Jan Hubicka  <jh@suse.cz>
7235
7236         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
7237
7238 2006-08-24  Jan Hubicka  <jh@suse.cz>
7239
7240         PR debug/26881
7241         * cgraph.c: Fix comments.
7242         (cgraph_varpool_mark_needed_node): Mark only variables not already
7243         output to file.
7244         * cgraphunit.c: Update comments; include gt-cgraphunit.h
7245         (cgraph_varpool_assembled_nodes_queue): New static variable.
7246         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
7247         (cgraph_varpool_output_debug_info): New function.
7248         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
7249         * Makefile.in: Add gt-cgraphunit.h
7250
7251 2006-08-24  Jan Hubicka  <jh@suse.cz>
7252
7253         * predict.c (probability_reliable_p): New predicate.
7254         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
7255         (predict_loops): Do not predict loop exit with less than 2%
7256         probability.
7257         * basic-block.h (edge_probability_reliable_p,
7258         br_prob_note_reliable_p): Declare.
7259         * ia64.h (ia64_print_operand): Do not disable on-chip branch
7260         prediction when static predictor is not reliable.
7261         * rs6000.c (output_cbranch): Likewise.
7262
7263 2006-08-23  Stuart Hastings  <stuart@apple.com>
7264
7265         PR 28825
7266         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
7267         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
7268
7269 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
7270
7271         PR debug/28692
7272         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
7273         complex values, nor for generic vector values.
7274
7275 2006-08-22  Richard Guenther  <rguenther@suse.de>
7276
7277         PR middle-end/28776
7278         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
7279         parameter.  Convert arguments to arithmetic expression to the
7280         chrecs type.
7281         (analyze_scalar_evolution_1): Adjust caller.
7282
7283 2006-08-22  Jan Hubicka  <jh@suse.cz>
7284
7285         Patch by Paolo Bonzini
7286         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
7287         my previous patch.
7288
7289 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
7290
7291         PR tree-optimization/28003
7292         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
7293         before grouping aliases.
7294
7295 2006-08-22  Roger Sayle  <roger@eyesopen.com>
7296
7297         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
7298         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
7299
7300 2006-08-21  Jason Merrill  <jason@redhat.com>
7301
7302         PR c++/27115
7303         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
7304         wrapper.  Loop to handle nested wrappers.
7305         (gimplify_bind_expr): Remove temp parameter.
7306         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
7307         and STATEMENT_LIST on the rhs.
7308         (gimplify_statement_list): Voidify the STATEMENT_LIST.
7309         (gimplify_expr): Pass pre_p to gimplify_statement_list.
7310         (gimplify_target_expr): Remove special BIND_EXPR handling.
7311
7312 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
7313
7314         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
7315         #if !__SHMEDIA__ .
7316
7317 2006-08-21  Olivier Hainque  <hainque@adacore.com>
7318
7319         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
7320         Arrange for the temporary captures of components overlapping the lhs
7321         to happen before the lhs is possibly cleared.
7322
7323 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
7324
7325         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
7326         necessary places to pass the correct "number of registers" values
7327         to _Unwind_VRS_Pop.
7328
7329 2006-08-20  Jan Hubicka  <jh@suse.cz>
7330
7331         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
7332         (create_name_tags): Instead of quadratic checking use hashtable.
7333         * bitmap.h: Include hashtab.h.
7334         (bitmap_hash): Declare.
7335         * bitmap.c (bitmap_hash): New function.
7336
7337 2006-08-20  Jan Hubicka  <jh@suse.cz>
7338
7339         PR rtl-optimization/28071
7340         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
7341         twice.
7342         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
7343         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
7344         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
7345         cgraph_decide_inlining_incrementally): Update use of
7346         cgraph_check_inline_limits.
7347         * cgraph.c (edge_hash, edge_eq): New function.
7348         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
7349         cgraph_edge_remove_caller, cgraph_node_remove_callees,
7350         cgraph_remove_node): Maintain call site hash.
7351         * cgraph.h (struct cgraph_node): Add call_site_hash.
7352         (cgraph_set_call_stmt): New function.
7353
7354 2006-08-20  Jan Hubicka  <jh@suse.cz>
7355
7356         PR rtl-optimization/28071
7357         * reload1.c (reg_has_output_reload): Turn into regset.
7358         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
7359         choose_reload_regs, emit_reload_insns): Update to new
7360         reg_has_output_reload.
7361
7362 2006-08-20  Jan Hubicka  <jh@suse.cz>
7363
7364         PR middle-end/28779
7365         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
7366         function body sizes.
7367         * cgraphunit.c (cgraph_analyze_function): Don't do so.
7368
7369 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
7370
7371         PR target/28648 c:
7372         * tree.c (handle_dll_attribute): Return early if not a
7373         var or function decl.
7374
7375 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
7376
7377         PR target/27565
7378         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
7379         alignment of SPE vector types.
7380
7381 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
7382
7383         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
7384
7385 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
7386
7387         PR c/28744
7388         * cgraph.h (struct cgraph_node): Remove externally_visible
7389         bitfield.
7390         * cgraphunit.c (process_function_and_variable_attributes): Set
7391         local.externally_visible rather than externally_visible.
7392
7393         PR c/28744
7394         * c-common.c (handle_externally_visible_attribute): First look
7395         at TREE_CODE and only if it is function or var decl, check for
7396         non-public objects.  Don't warn for DECL_EXTERNAL.
7397         * cgraphunit.c (process_function_and_variable_attributes): Warn
7398         if externally_visible attribute is used on non-public object.
7399
7400 2006-08-17  Jan Hubicka  <jh@suse.cz>
7401
7402         PR tree-optimization/27865
7403         * reload1.c (forget_marked_reloads): New function.
7404         (forget_old_reloads_1): When data are passed, just mark the registers
7405         for later removal.
7406         (reload_as_needed): Use the new mechanizm.
7407
7408 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
7409
7410         PR target/28146
7411         * reload.h (reg_equiv_alt_mem_list): New declaration.
7412         * reload1.c (reg_equiv_alt_mem_list): New definition.
7413         (reload): Initialize it and release it.
7414         (delete_output_reload): Use it.
7415         * reload.c (push_reg_equiv_alt_mem): New function.
7416         (find_reloads_toplev): Call it.
7417         (find_reloads_address, find_reloads_address_1): Likewise.
7418         (find_reloads_subreg_address): Likewise.
7419
7420 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
7421
7422         PR rtl-optimization/28489
7423         * sched-ebb.c (begin_schedule_ready): Create basic block
7424         at the right place.
7425         (advance_target_bb): Skip empty blocks.
7426         * haifa-sched.c (bb_note): Make global.
7427         * sched-int.h (bb_note): Add prototype.
7428
7429 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
7430
7431         PR tree-optimization/27865
7432         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
7433         for pointer types.
7434         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
7435         fold_used_pointer, pointer_used_p): New functions.
7436         (analyze_scalar_evolution_1): Use fold_used_pointer.
7437         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
7438         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
7439         for pointers.
7440
7441 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
7442
7443         PR c++/28573
7444         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
7445         or the INTEGER_CST.  Fail on a CALL_EXPR.
7446         (fold_offsetof): Pass new argument to fold_offsetof_1.
7447         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
7448         operand into an INDIRECT_REF.
7449         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
7450
7451 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
7452
7453         PR gcov/profile/26570
7454         * value-prof.c (static_values): Removed.
7455         (tree_find_values_to_profile): Do not set static_values.
7456         (find_values_to_profile): Do not free static_values.
7457         * profile.c (instrument_values): Do not free the values.
7458         (branch_prob): Free the values.
7459
7460 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
7461
7462         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
7463
7464 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
7465
7466         PR c/27697
7467         * c-typeck.c (build_component_ref): Combine qualifiers of
7468         structure or union and field.
7469
7470 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
7471
7472         PR rtl-optimization/28071
7473         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
7474         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
7475         * tree-into-ssa.c (struct dom_dfsnum): New.
7476         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
7477         functions.
7478         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
7479         compute_global_livein.
7480         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
7481         in phi nodes in the correct blocks.
7482
7483 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
7484
7485         PR tree-optimization/28364
7486         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
7487         correctly.
7488         (fold_affine_expr): New function.
7489         (may_eliminate_iv): Use fold_affine_expr.
7490
7491 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7492
7493         PR c/27489
7494         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
7495         Clean up.
7496
7497 2006-08-16  Mike Stump  <mrs@apple.com>
7498
7499         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
7500         * doc/cppopts.texi (-MD): Likewise.
7501
7502 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
7503
7504         PR c/28287
7505         * c-common.c (handle_weak_attribute): Ignore and warn if
7506         not a FUNCTION_ or VAR_DECL.
7507
7508 2006-07-15  Mike Stump  <mrs@apple.com>
7509
7510         PR c/28280
7511         * c-parser.c (c_parser_typeof_specifier): Don't use
7512         c_finish_expr_stmt, open code desired semantics instead.
7513
7514 2006-08-15  Nick Clifton  <nickc@redhat.com>
7515
7516         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
7517         fragment to tmake_file only if threads are enabled.
7518         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
7519         * config/i386/t-gthr-win32: New file. ... here.
7520
7521 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7522
7523         PR c/28649
7524         * c-parser.c (c_parser_compound_statement_nostart): Reset
7525         parser->error after each statement.
7526
7527 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
7528
7529         PR middle-end/28713
7530         * omp-low.c (lower_omp_parallel): Convert t to
7531         receiver_decl's type.
7532         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
7533         source before comparison.
7534
7535         PR middle-end/28724
7536         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
7537         to itype in assignment to oldival2.
7538
7539 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
7540
7541         PR c/27490
7542         PR c/27489
7543         * c-typeck.c (build_compound_expr): If the second expression
7544         is an error mark, then just return an error mark instead of
7545         creating a COMPOUND_EXPR.
7546
7547 2006-07-14  Mike Stump  <mrs@apple.com>
7548
7549         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
7550
7551 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
7552
7553         * c-decl.c, var-tracking.c: Fix comment typos.
7554
7555 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
7556
7557         PR rtl-optimization/28634
7558         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
7559         for floating-point modes unless flag_unsafe_math_optimizations.
7560
7561 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
7562             Andrew Pinski  <pinskia@physics.uc.edu>
7563
7564         PR c/27184
7565         * tree.c (build_array_type): Unify array types with
7566         unspecified index_type.
7567         * c-decl.c (grokdeclarator): Make sure we do not modify a
7568         unified incomplete array type.
7569         * c-typeck.c (store_init_value): Create distinct type before
7570         filling in the index type in an initializer from a compound
7571         literal.
7572
7573         * c-decl.c (grokdeclarator): Remove code where we copy the
7574         array type over.
7575
7576 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
7577
7578         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
7579         into account for TODO_dump_cgraph.
7580         (TODO_update_ssa_no_phi): Likewise.
7581         (TODO_update_ssa_full_phi): Likewise.
7582         (TODO_update_ssa_only_virtuals): Likewise.
7583         (TODO_remove_unused_locals): Likewise.
7584         (TODO_set_props): Likewise.
7585         (TODO_update_stmt_usage): Likewise.
7586
7587 2006-08-13  Dirk Mueller  <dmueller@suse.de>
7588
7589         * c-common.c (strict_aliasing_warning): Fix formatting.
7590
7591 2006-08-13  Matthias Klose  <doko@debian.org>
7592
7593         * doc/invoke.texi: Fix spelling errors.
7594
7595 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
7596
7597         PR rtl-optimization/23454
7598         * reorg.c (relax_delay_slots): Update comment.
7599
7600 2006-08-11  Richard Guenther  <rguenther@suse.de>
7601
7602         PR middle-end/28651
7603         * simplify-rtx.c (simplify_const_relational_operation):
7604         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
7605         codes.
7606
7607 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
7608
7609         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
7610         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
7611
7612 2006-08-10  Paul Brook  <paul@codesourcery.com>
7613
7614         * final.c (final_scan_insn): Clear current_insn_predicate before
7615         outputting inline asm.
7616
7617 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
7618
7619         PR tree-optimization/26197
7620         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
7621         get_ref_base_and_extent and overlap_subvar to add only relevant
7622         subvars as may-aliases.
7623         (add_may_alias_for_new_tag): New function, factored out of
7624         new_type_alias.
7625         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
7626         with additional argument.
7627         * tree-flow.h (new_type_alias): Takes additional argument.
7628
7629 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
7630
7631         * gcov.c (no_data_file): New flag.
7632         (read_count_file): Set it if data file not present.  Assume counts
7633         zero if not found.
7634         (output_lines): Don't name the data file, if there wasn't one.
7635
7636 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
7637
7638         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
7639         (rs6000_generate_compare): Tweak comments.
7640         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
7641
7642 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
7643
7644         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
7645         (var_debug_decl): New function.
7646         (var_reg_set): Follow debug decl link.  Add location even if
7647         reg is already known to hold some other variable.
7648         (var_mem_set): Follow debug decl link.
7649         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
7650         decl link.  Delete other known locations of the variable part
7651         if requested.
7652         (var_reg_delete, var_mem_delete): Delete other known locations
7653         of the variable part if requested.
7654         (same_variable_part_p): New function.
7655         (add_stores): Select MO_COPY when appropriate.
7656         (vt_initialize): Handle it.
7657         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
7658         known locations for MO_SET and MO_CLOBBER.
7659         (find_variable_location_part): New function.
7660         (set_variable_part, delete_variable_part): Use it.
7661         (clobber_variable_part): New function.
7662         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
7663         decl link.
7664
7665 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
7666
7667         PR tree-optimization/26969
7668         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
7669         with an empty list of PHIs.
7670
7671 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
7672
7673         PR target/27827
7674
7675         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
7676         instructions.
7677
7678 2006-08-06  Andreas Schwab  <schwab@suse.de>
7679
7680         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
7681         string.  Whitespace and comment fixup.
7682
7683 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7684
7685         PR c/28502
7686         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
7687         argument.
7688
7689         PR c/27721
7690         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
7691
7692         PR c/28136
7693         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
7694
7695 2006-08-04  Jan Hubicka  <jh@suse.cz>
7696
7697         PR target/26655
7698         PR target/28270
7699         * reload.c (push_reload): Patch out the mismatching instruction;
7700         return early.
7701         (find_reload): Bail out if the instruction was patched out.
7702
7703 2006-08-04  Jan Hubicka  <jh@suse.cz>
7704
7705         PR tree-optimization/24888
7706         * tree-inline.c (expand_call_inline): Do not re-record variables.
7707         (declare_inline_vars): Add variable to unexpanded_var_list.
7708
7709 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7710             Roger Sayle  <roger@eyesopen.com>
7711
7712         PR rtl-optimization/26244
7713         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
7714         inner_const are negative or greater than or equal to the bitsize of
7715         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
7716         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
7717         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
7718         CONST0_RTX (mode) when the new shift count is greater than or equal to
7719         to the bitsize of the object being shifted and XEXP (y, 0) has no side
7720         effects.
7721
7722 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
7723
7724         * tree-cfg.c: Fix a comment typo.
7725
7726 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
7727
7728         PR c++/28148
7729         * varasm.c (output_constant): Give the front end another chance to
7730         expand constants, after stripping NOPs.
7731
7732 2006-08-03  Jan Hubicka  <jh@suse.cz>
7733
7734         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
7735         implementation.
7736
7737 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
7738
7739         PR tree-optimization/27770
7740         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
7741         declaration removed (moved to tree-flow.h).
7742         (vect_can_force_dr_alignment_p): Likewise.
7743         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
7744         (moved from tree-vectorizer.h).
7745         (vect_can_force_dr_alignment_p): Likewise.
7746         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
7747         from outside the vectorizer - in particular from cgraph stage.
7748         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
7749         the alignment of global arrays when -fsection-anchors is enabled.
7750         * cgraphunit.c (cgraph_increase_alignment): New function.
7751         (cgraph_optimize): Call cgraph_increase_alignment.
7752
7753 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
7754
7755         PR target/27566
7756         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
7757         not reload a SPE symbol_ref into a lo_sum address.
7758
7759 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
7760
7761         PR debug/28063
7762         * dwarf2out.c (prune_unused_types_prune): Move call to
7763         prune_unused_types_update_strings to cover the parent DIE also.
7764
7765 2006-08-02  Jan Hubicka  <jh@suse.cz>
7766
7767         PR gcov/profile/28480
7768         * tree-cfg.c (change_bb_for_stmt): New function.
7769         (tree_merge_blocks, tree_split_blocks): Use it.
7770
7771 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7772
7773         PR c++/28250
7774         PR c++/28257
7775         PR c++/28259
7776         PR c++/28267
7777         * toplev.c (compile_file): Return early on errorcount or sorrycount.
7778         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
7779         (cgraph_optimize): Likewise.
7780
7781 2006-08-01  Stuart Hastings  <stuart@apple.com>
7782
7783         * rtl.h (UINTVAL) New.
7784         * config/rs6000/rs6000.c (SMALL_INT) Use it.
7785         * testsuite/gcc.dg/20060801-1.c: New.
7786
7787 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
7788
7789         PR debug/23336
7790         * c-typeck.c (build_external_type): Mark used enum types.
7791         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
7792         cfun also.
7793         (gen_subprogram_die): Whitespace fix.
7794
7795 2006-08-01  Jan Hubicka  <jh@suse.cz>
7796
7797         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
7798         bitmap when not needed.
7799         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
7800         bitmaps.
7801
7802 2006-08-01  Dirk Mueller  <dmueller@suse.de>
7803
7804         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
7805
7806 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7807
7808         * Makefile.in: Revert part of previous patch:
7809         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
7810         and REGS_H.
7811
7812 2006-07-30  Eric Christopher  <echristo@apple.com>
7813
7814         PR target/27543
7815         * doc/extend.texi (i386 Variable Attributes): Add anchor.
7816         (PowerPC Variable Attributes): New section.
7817
7818 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
7819
7820         PR target/28126 (partial fix)
7821         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
7822
7823 2006-07-28  Jan Hubicka  <jh@suse.cz>
7824
7825         PR rtl-optimization/28071
7826         * cfgrtl.c (rtl_delete_block): Free regsets.
7827         * flow.c (allocate_bb_life_data): Re-use regsets if available.
7828
7829 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7830
7831         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
7832         and variables used in dependencies.
7833
7834 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
7835
7836         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
7837         %fs for -mcmodel=kernel.
7838         (stack_tls_protect_test_di): Likewise.
7839
7840 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
7841
7842         * Makefile.in: Use mkinstalldirs.
7843
7844 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
7845
7846         PR driver/28437
7847         * opts-common.c (prune_options): Skip joined switches.
7848
7849 2006-07-27  Jan Hubicka  <jh@suse.cz>
7850
7851         PR rtl-optimization/28071
7852         * cselib.c (cselib_process_insn): Don't remove useless values too
7853         often for very large hashtables.
7854
7855 2006-07-27  Jan Hubicka  <jh@suse.cz>
7856
7857         PR rtl-optimization/28071
7858         * global.c (greg_obstack): New obstack.
7859         (allocate_bb_info): Use it.
7860         (free_bb_info): Likewise.
7861         (modify_reg_pav): Likewise.
7862
7863 2006-07-27  Roger Sayle  <roger@eyesopen.com>
7864
7865         * builtins.c (fold_fixed_mathfn): When long and long long are the
7866         same size, canonicalize llceil*, llfloor*, llround* and llrint*
7867         functions to their lceil*, lfloor*, lround* and lrint* forms.
7868
7869 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
7870
7871         PR gcc/28508
7872         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
7873         branch.
7874         (rev_branch_insn): Likewise.
7875
7876 2006-07-27  Jan Hubicka  <jh@suse.cz>
7877
7878         PR rtl-optimization/28071
7879         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
7880         (reg_set_in_bb, max_reg_computed): New static variables.
7881         (regmove_optimize): Free the new array.
7882         (fixup_match_1): Update call of reg_is_remote_constant_p.
7883
7884 2006-07-26  Jan Hubicka  <jh@suse.cz>
7885
7886         PR tree-optimization/27882
7887         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
7888         and decl fields.
7889         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
7890         next pointer
7891         (cgraph_analyze_compilation_unit): Likewise.
7892         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
7893         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
7894         (cgraph_early_inlinine): Make order garbage collected.
7895         * Makefile.in (gt-ipa-inline): New garbagecollected file.
7896
7897 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
7898
7899         * dbxout.c (output_types_sort): Add a comment.
7900         (output_used_types): Free the VEC.
7901
7902 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
7903
7904         * function.c (reorder_fix_fragments): Delete.
7905         (reorder_blocks): Don't call it.
7906         (reorder_blocks_1): Put all subblocks under the origin block.
7907
7908 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
7909
7910         PR rtl-optimization/27907
7911         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
7912         FLOAT_TRUNCATE.
7913
7914 2006-07-25  Roger Sayle  <roger@eyesopen.com>
7915
7916         PR middle-end/28473
7917         * convert.c (convert_to_integer): When transforming (T)foo(x) into
7918         bar(x) check that bar's result type can represent all the values of T.
7919
7920 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
7921
7922         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
7923
7924 2006-07-25  Nick Clifton  <nickc@redhat.com>
7925
7926         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
7927         size_lookup[] array.
7928         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
7929         (ggc_pch_count_object): Likewise.
7930         (ggc_pch_alloc_object): Likewise.
7931         (ggc_pch_write_object): Likewise.
7932         (init_ggc): Do not attempt to initialize entries in the
7933         size_lookup[] array for objects whose size is greater than than
7934         the length of the array.
7935
7936 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
7937
7938         * dbxout.c (output_used_types_helper): Push queued types
7939         on a VEC.
7940         (output_types_sort): New.
7941         (output_used_types): Collect used types on a VEC and sort them
7942         before emission.
7943
7944 2006-07-24  Richard Guenther  <rguenther@suse.de>
7945
7946         PR middle-end/28463
7947         * cgraph.c (cgraph_remove_node): Do not check if dumps
7948         are enabled.
7949         * cgraphunit.c (cgraph_optimize): Likewise.
7950
7951 2006-07-24  Jan Hubicka  <jh@suse.cz>
7952
7953         PR rtl-optimization/28071
7954         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
7955         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
7956         splitting before first stmt.
7957
7958 2006-07-24  Jan Hubicka  <jh@suse.cz>
7959
7960         PR rtl-optimization/28071
7961         * ipa-inline.c (update_caller_keys): Remove edges that
7962         are no longer inline candidates.
7963
7964 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
7965
7966         PR debug/27473
7967         * dbxout.c (output_used_types_helper, output_used_types): New.
7968         (dbxout_symbol): Call output_used_types.
7969
7970 2006-07-23  Jan Hubicka  <jh@suse.cz>
7971
7972         PR c/25795
7973         PR c++/27369
7974         * cgraph.c (cgraph_varpool_nodes): Export.
7975         (decide_is_variable_needed): Ignored "used" attribute in
7976         unit-at-a-time mode.
7977         * cgraph.h (cgraph_varpool_nodes): Declare.
7978         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
7979         unit-at-a-time mode.
7980
7981 2006-07-23  Roger Sayle  <roger@eyesopen.com>
7982
7983         PR target/28247
7984         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
7985         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
7986         the __gthrw form of thr_keycreate.
7987         (__gthread_key_delete): Silence the unused argument warning.
7988
7989 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
7990
7991         PR debug/25468
7992         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
7993         Cache the last found '\0' marker to avoid quadratic behavior.
7994
7995 2006-07-23  Jan Hubicka  <jh@suse.cz>
7996
7997         * i386.md (subsi_3_zext): Fix output template.
7998
7999 2006-07-21  Mike Stump  <mrs@apple.com>
8000
8001         * doc/invoke.texi (C++ Dialect Options): Note that
8002         -fvisibility-inlines-hidden doesn't affect explicitly
8003         instantiationed inline methods.
8004
8005 2006-07-20  Roger Sayle  <roger@eyesopen.com>
8006
8007         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
8008         if the target assembler is GNU binutils' gas.
8009         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
8010         whether to pass GNU gas or native as command line options.
8011
8012 2006-07-20  Jason Merrill  <jason@redhat.com>
8013
8014         * tree.c (remove_attribute): New fn.
8015         * tree.h: Declare it.
8016
8017 2006-07-20  Paul Brook  <paul@codesourcery.com>
8018
8019         PR 27363
8020         * cse.c (cse_insn): Add destination addresses to hash table. Check if
8021         they are invalidated by this instruction.
8022
8023 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
8024
8025         PR target/28427
8026         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
8027
8028 2006-07-20  Eric Christopher  <echristo@apple.com>
8029
8030         PR target/26877
8031         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
8032
8033 2006-07-19  Eric Christopher  <echristo@apple.com>
8034
8035         * config/t-slibgcc-darwin (stmp-lipo): Remove.
8036         Rewrite dependencies for libgcc_s.1.dylib.
8037
8038 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
8039
8040         * except.c (duplicate_eh_regions_1): Clear next_peer.
8041
8042 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
8043
8044         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
8045         -mlongcall does not guarantee all calls will be long.
8046         * doc/extend.texi (long_call/short_call): Document that longcall
8047         does not guarantee a long call will be used.
8048         (longcall/shortcall): Likewise.
8049
8050 2006-07-18  Roger Sayle  <roger@eyesopen.com>
8051
8052         PR middle-end/28283
8053         * expmed.c (expand_shift): Additionally check that the shift_cost
8054         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
8055         before implementing a LSHIFT_EXPR as a sequence of additions.
8056         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
8057         middle-end that DImode shifts need to be synthesized by expand.
8058
8059 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
8060
8061         PR 28410
8062         * tree-ssa-operands.c (access_can_touch_variable): Update
8063         comment.
8064         Return true if ALIAS is .GLOBAL_VAR.
8065
8066 2006-07-18  David Daney  <ddaney@avtrex.com>
8067
8068         * gcc.c (display_help): Fix typo in help text.
8069
8070 2006-07-18  Olivier Hainque  <hainque@adacore.com>
8071
8072         * tree.h (categorize_ctor_elements): Adjust prototype and add
8073         descriptive comment, both in accordance with the interface change
8074         described below.
8075         * varasm.c (constructor_static_from_elts_p): New function.
8076         Whether a constructor node is a valid static constant initializer
8077         if all its elements are.
8078         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
8079         * output.h: Declare it.
8080         * expr.c (categorize_ctor_elements_1): Return whether the constructor
8081         is a valid constant initializer instead of computing the number of
8082         non-constant elements.  Use constructor_static_from_elts_p for this
8083         purpose.  Replace the head comment with an indication that this is a
8084         helper for categorize_ctor_elements.
8085         (categorize_ctor_elements): Same interface change as for the _1
8086         helper.  Former head comment from this helper moved here, adjusted to
8087         account for the interface changes.
8088         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
8089         (all_zeros_p): Likewise.
8090         * gimplify.c (gimplify_init_constructor): Decide whether we can make
8091         static versions of the constructor from the categorize_ctor_elements
8092         return value instead of the formerly computed number of non-constant
8093         elements.
8094
8095 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
8096
8097         * configure: Regenerate.
8098         * Makefile.in (build_libsubdir): New configure substitution
8099         (build_libobjdir): New variable.
8100         (BUILD_LIBIBERTY): Use it.
8101
8102 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8103
8104         PR c/28286
8105         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
8106
8107 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
8108
8109         PR c/26993
8110         * c-common.c (handle_weakref_attribute): Ignore attribute in
8111         the same conditions the alias attribute is ignored.
8112
8113 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
8114
8115         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
8116         (dbxout_begin_prologue): Increment scope_labelno.
8117
8118 2006-07-17  Richard Henderson  <rth@redhat.com>
8119
8120         PR 27889
8121         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
8122         if needed.
8123
8124 2006-07-17  Roger Sayle  <roger@eyesopen.com>
8125             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8126
8127         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
8128         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
8129         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
8130         functions such as sbrk, write, etc..  Add function prototypes.
8131         Convert function declarations from K&R to ISO C.  Cast pointers
8132         to "long" and "unsigned long" instead of "int" and "unsigned int".
8133         Convert tokens following #endif into comments.
8134
8135 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
8136
8137         * invoke.texi: Remove mention of f77; Reformat table for
8138         inline parameter options correctly; mention that -malign-double
8139         is default on x86-64 targets.
8140
8141 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
8142
8143         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
8144         (convert_affine_scev, chrec_convert_aggressive): Use
8145         avoid_arithmetics_in_type_p.  Do not check for the subtypes
8146         separately.
8147
8148 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
8149
8150         PR middle-end/28403
8151         * optabs.c (expand_doubleword_shift): Wrap the call to
8152         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
8153
8154 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
8155
8156         PR middle-end/28402
8157         * optabs.c (expand_binop): Pass next_methods rather than methods
8158         to expand_doubleword_shift.
8159
8160 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
8161
8162         PR other/28251
8163         * tree.h (dump_addr): Declare.
8164         * print-tree.c (dump_addr): New function.
8165         (print_node_brief, print_node): Use it.
8166         * print-rtl.c (print_rtx): Likewise.
8167         * common.opt (-fdump-noaddr): New option.
8168         * doc/invoke.texi (-fdump-noaddr): Document.
8169         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
8170         (ve_info_hash): Likewise.
8171
8172 2006-07-13  Andrew Haley  <aph@redhat.com>
8173
8174         PR tree-optimization/19505
8175         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
8176         edge leaving this block, make sure that the destination of this
8177         block has only one predecessor.
8178
8179 2006-07-17  Richard Guenther  <rguenther@suse.de>
8180
8181         PR tree-optimization/28238
8182         * tree-inline.c (copy_bb): Check if we produced valid
8183         gimple copying and substituting a stmt.  If not, gimplify
8184         it.
8185
8186 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
8187
8188         * optabs.c (maybe_encapsulate_block): New function extracted from...
8189         (emit_libcall_block): ...here.  Invoke it on the block of insns to
8190         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
8191         (emit_no_conflict_block): Likewise.
8192
8193 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
8194
8195         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
8196
8197 2006-07-15  Roger Sayle  <roger@eyesopen.com>
8198
8199         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
8200         a new NOP_EXPR case of the switch statement.
8201
8202 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
8203
8204         PR middle-end/28160
8205         * stor-layout.c (place_field): Take the bit field with
8206         an excessive size into account in the ms-bitfiled case.
8207
8208         PR middle-end/28161
8209         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
8210         the previous bit field.
8211
8212 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
8213
8214         PR target/27287
8215         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
8216
8217 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
8218
8219         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
8220         signal frames correctly even when the signal was installed with
8221         sa_restorer set.
8222
8223 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
8224
8225         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
8226         (dbxout_function_end): Use local label LFBB. Remove hook
8227         DBX_OUTPUT_NFUN.
8228         (dbxout_source_line): Use local label LFBB.
8229         (dbxout_block): Likewise.
8230         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
8231         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
8232         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
8233         and DBX_OUTPUT_NFUN.
8234
8235 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
8236
8237         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
8238
8239 2006-07-13  Jan Hubicka  <jh@suse.cz>
8240
8241         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
8242         align_variable.
8243         * output.h (align_variable): Declare.
8244         * varasm.c (align_variable): Export.
8245         * value-prof.c (tree_value_profile_transformations): Recompute iterator
8246         when basic block changed.
8247
8248 2006-07-13  Nick Clifton  <nickc@redhat.com>
8249
8250         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
8251         walking the LOG_LINKS chain.
8252
8253 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
8254
8255         * doc/invoke.texi (C++ Dialect Options): Explain difference
8256         between -fvisibility-inlines-hidden and setting hidden
8257         visibility explicitly.
8258
8259 2006-07-12  Eric Christopher  <echristo@apple.com>
8260
8261         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
8262         (stmp-lipo): Depend on libgcc.a.
8263
8264 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
8265
8266         * tree.c: Fix a comment typo.
8267
8268 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
8269
8270         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
8271         dest.
8272         (umulhisi3_r): Likewise.
8273
8274 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
8275
8276         PR libstdc++/27878
8277         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
8278         x < 19, vs wchar_t support.
8279
8280 2006-07-12  Nick Clifton  <nickc@redhat.com>
8281
8282         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
8283         instead of -isa=sh4.
8284
8285 2006-07-12  Mike Stump  <mrs@apple.com>
8286
8287         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
8288
8289 2006-07-10  Eric Christopher  <echristo@apple.com>
8290
8291         * config/t-slibgcc-darwin: Rewrite.
8292
8293 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8294
8295         PR bootstrap/20437
8296         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
8297         dependencies.
8298
8299 2006-07-08  Matthias Klose  <doko@debian.org>
8300
8301         * doc/sourcebuild.texi: Fix typo.
8302
8303 2006-07-07  Mike Stump  <mrs@apple.com>
8304
8305         * toplev.c (process_options): Don't give -ffunction-sections may
8306         affect debugging warning for Mach-O.
8307
8308 2006-07-07  James E Wilson  <wilson@specifix.com>
8309
8310         * config/mips/mips.md (cpu): Add sb1a.
8311         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
8312         addition to sb1.  Adjust comments to clarify SB-1A differences from
8313         SB-1.
8314         (ir_sb1a_load): New.  Modify bypasses to use it.
8315         (ir_sb1a_simple_alu): Likewise.
8316         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
8317         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
8318         (mips_issue_rate): Add PROCESSOR_SB1A.
8319         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
8320         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
8321         (TARGET_SB1): Add PROCESSOR_SB1A check.
8322         (TUNE_SB1): Likewise.
8323
8324         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
8325         * config/mips/mips.c (mips_store_data_bypass_p): New.
8326         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
8327         store_data_bypass_p.
8328
8329 2006-07-08  Paul Brook  <paul@codesourcery.com>
8330
8331         PR target/27991
8332         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
8333
8334 2006-07-07   Richard Guenther  <rguenther@suse.de>
8335
8336         PR middle-end/28268
8337         * tree.h (build_one_cst): Declare.
8338         * tree.c (build_one_cst): New function.
8339         * tree-ssa-math-opts.c (get_constant_one): Remove.
8340         (insert_reciprocals): Use build_one_cst.
8341         * fold-const.c (fold_plusminus_mult): Likewise.
8342
8343 2006-07-07  Roger Sayle  <roger@eyesopen.com>
8344
8345         * pointer-set.c (pointer_set_destroy): Correct whitespace.
8346         * cfgloopanal.c (dump_graph): Likewise.
8347         * dojump.c (discard_pending_stack_adjust): Likewise.
8348         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
8349         Likewise.
8350         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
8351         * function.c (finalize_block_changes): Likewise.
8352         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
8353         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
8354         * rtl.c (dump_rtx_statistics): Likewise.
8355         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
8356         Likewise.
8357         * varray.c (dump_varray_statistics): Likewise.
8358         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
8359         decode_decimal64, encode_decimal128, decode_decimal128,
8360         decimal_real_to_decimal): Likewise.
8361
8362 2006-07-07  Richard Guenther  <rguenther@suse.de>
8363
8364         PR tree-optimization/28187
8365         * tree-vrp.c (vrp_operand_equal_p): New function.
8366         (vrp_bitmap_equal_p): Likewise.
8367         (update_value_range): Use them to compare old and new
8368         max and min values.
8369
8370 2006-07-06  Roger Sayle  <roger@eyesopen.com>
8371
8372         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
8373         a default case to switch statement to silence compiler warnings.
8374
8375 2006-07-06  Roger Sayle  <roger@eyesopen.com>
8376
8377         PR target/27968
8378         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
8379         the configured assembler supports the x87's ffreep mnemonic.
8380         * configure: Regenerate.
8381         * config.in: Regenerate.
8382
8383         * config/i386/i386.c (output_387_ffreep): New function.
8384         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
8385         (output_387_reg_move): Likewise.
8386
8387 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
8388
8389         Port to hosts whose 'sort' and 'tail' implementations
8390         treat operands with leading '+' as file names, as POSIX
8391         has required since 2001.  However, make sure the code still
8392         works on pre-POSIX hosts.
8393         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
8394         which says you should use "tail -c +N" rather than "tail +Nc".
8395         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
8396
8397 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
8398
8399         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
8400         argument name.
8401
8402 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
8403
8404         PR target/28150
8405         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
8406         PRE_{INC,DEC} of TFmode.
8407
8408 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
8409             Alan Modra  <amodra@bigpond.net.au>
8410
8411         PR target/28170
8412         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
8413         bounds. Simplify.
8414
8415 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8416
8417         PR target/28285
8418         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
8419         Remove duplicate gtu.
8420
8421 2006-07-05  Jason Merrill  <jason@redhat.com>
8422
8423         PR c++/13983
8424         PR c++/17519
8425         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
8426         * c-common.c (handle_packed_attribute): So don't copy it here.
8427         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
8428
8429 2006-07-05  Mike Stump  <mrs@apple.com>
8430
8431         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
8432
8433 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
8434
8435         PR target/26146
8436         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
8437
8438 2006-07-05  Richard Guenther  <rguenther@suse.de>
8439
8440         PR target/28158
8441         * config/i386/i386.md (*negdf2_1): Restrict pattern to
8442         TARGET_SSE2 targets if using SSE math.
8443         (*absdf2_1): Likewise.
8444
8445 2006-07-05  Richard Guenther  <rguenther@suse.de>
8446
8447         PR tree-optimization/28162
8448         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
8449         make sure to convert the operands to the correct type.
8450
8451 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
8452
8453         PR tree-optimization/28218
8454
8455         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
8456         to calculate and free the dominator information.
8457
8458 2006-07-04  Peter O'Gorman  <peter@pogma.com>
8459
8460         * mklibgcc.in: chmod 644 before ranlib during install.
8461
8462 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
8463             J"orn Rennecke <joern.rennecke@st.com>
8464
8465         * configure.ac (.eh_frame data check): Use diff -b.
8466
8467 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8468
8469         PR bootstrap/18058
8470         * Makefile.in (BUILD_RTL): Add build/vec.o.
8471         (build/gencondmd.o): Filter out -fkeep-inline-functions.
8472         (build/genextract): Delete.
8473         (build/genautomata): Likewise.
8474
8475 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
8476
8477         PR target/28207
8478         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
8479         128-bit IBM long doubles for ABI_V4.
8480
8481 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
8482
8483         * tree.c (range_in_array_bounds_p): New predicate.
8484         * tree.h (range_in_array_bounds_p): Declare it.
8485         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
8486         return a less conservative answer.
8487         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
8488         and flag 'is_group'.
8489         (IS_ELEMENT_FOR_GROUP): New macro.
8490         (FOR_EACH_ACTUAL_CHILD): Likewise.
8491         (next_child_for_group): New helper function.
8492         (can_completely_scalarize_p): Take into account groups.
8493         (sra_hash_tree): Handle RANGE_EXPR.
8494         (sra_elt_eq): Likewise.
8495         (lookup_element): Be prepared for handling groups.
8496         (is_valid_const_index): Delete.
8497         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
8498         instead of is_valid_const_index.
8499         <ARRAY_RANGE_REF>: New case.
8500         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
8501         is_valid_const_index.
8502         <ARRAY_RANGE_REF>: Do not unconditionally punt.
8503         (scan_dump): Dump info for groups too.
8504         (decide_instantiation_1): Likewise.
8505         (decide_block_copy): Assert that the element is not a group.
8506         Propagate decision to groups.
8507         (generate_one_element_ref): Handle RANGE_EXPR.
8508         (mark_no_warning): Iterate over actual childs.
8509         (generate_copy_inout): Likewise.
8510         (generate_element_copy): Likewise.
8511         (generate_element_zero): Likewise.
8512         (generate_element_init_1): Likewise.
8513         (dump_sra_elt_name): Handle RANGE_EXPR.
8514
8515 2006-07-03  Roger Sayle  <roger@eyesopen.com>
8516
8517         PR tree-optimization/26251
8518         * tree-ssa-threadupdate.c (redirection_block_p): New function.
8519         (thread_block): When optimizing for size refuse to thread jumps
8520         that would require duplication of blocks other than redirection
8521         blocks.
8522
8523 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
8524
8525         * configure.ac: Fix thinko in previous check-in.
8526         * configure: Regenerate.
8527
8528 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
8529
8530         PR other/27063
8531         * configure.ac (for lang...): Simplify nesting of conditionals.
8532         Test subdir_requires for non-enabled languages.  Move processing
8533         of lang_opt_files and lang_tree_fiels below that test.
8534         * configure: Regenerate.
8535         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
8536
8537 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
8538
8539         * doc/gcov.texi (Invoking Gcov): Add a missing word.
8540
8541 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
8542
8543         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
8544         comment typos.
8545
8546 2006-06-29  Jason Merrill  <jason@redhat.com>
8547
8548         PR c++/26905
8549         PR c++/26612
8550         PR c++/27000
8551         PR c++/26984
8552         PR c++/19134
8553         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
8554         * c-common.c (c_determine_visibility): Handle it here.
8555         * c-decl.c (finish_decl): Call c_determine_visibility for
8556         functions, too.
8557         * flags.h (enum symbol_visibility): Sort from most to least visibility.
8558         * tree.h: Likewise.
8559         * varasm.c (default_assemble_visibility): Likewise.
8560         * c-common.c (handle_visibility_attribute): Complain about trying
8561         to give visibility to an already defined class, or trying to change
8562         declared visibility. Always attach the attribute.
8563
8564         PR c++/26905
8565         PR c++/21675
8566         PR c++/17470
8567         * attribs.c (decl_attributes): Ignore type-in-place attributes
8568         once the type has been defined.
8569
8570 2006-06-29  Roger Sayle  <roger@eyesopen.com>
8571
8572         PR middle-end/27428
8573         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
8574         to indicate the cpplib has issued an error message for us.
8575
8576 2006-06-29  Asher Langton  <langton2@llnl.gov>
8577
8578         PR target/25765
8579         * config/i386/i386.c (ix86_output_function_epilogue): Don't
8580         insert a label at the end of an function under Mach-O.
8581
8582 2006-06-29  Eric Christopher  <echristo@apple.com>
8583             Evan Cheng  <evan.cheng@apple.com>
8584
8585         * predicates.md (vector_all_ones_operand): New.
8586         (nonimmediate_or_sse_const_operand): Ditto.
8587         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
8588         * config/i386/i386.c (standard_sse_constant_opcode): Define.
8589         (standard_sse_mode_p): Ditto.
8590         (standard_sse_constant_p): Add case for -1 vector.
8591         (ix86_expand_vector_move): Try to use.
8592         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
8593         Call standard_sse_constant_opcode.
8594         (*movv4sf_internal): Ditto.
8595         (*movv2df_internal): Ditto.
8596
8597 2006-06-29  Roger Sayle  <roger@eyesopen.com>
8598
8599         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
8600         of XEXP to extract the operands of a MATCH_CODE rtx.
8601
8602 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
8603
8604         * tree.c (tree_size): Do not waste tail padding in
8605         struct tree_string and make the size be the same as
8606         build_string will generate.
8607
8608 2006-06-28  Jason Merrill  <jason@redhat.com>
8609
8610         PR c++/27768
8611         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
8612         may_aliases already in the tag's annotations to the bitmap.
8613
8614 2006-06-28  Roger Sayle  <roger@eyesopen.com>
8615
8616         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
8617
8618 2006-06-28  Roger Sayle  <roger@eyesopen.com>
8619
8620         * genpreds.c (generate_switch_p): New function.
8621         (add_mode_tests): Push the new mode test down inside an AND expr
8622         if this allows the switch-suitable MATCH_CODE to be near the root.
8623         (write_match_code_switch): New function to write a MATCH_CODE as
8624         a switch statement.
8625         (write_predicate_stmts): New function to write a predicate RTX
8626         expression as a sequence of statements.
8627         (write_one_predicate_function): Use write_predicate_stmts.
8628         (write_tm_constrs_h): Likewise.
8629
8630 2006-06-26  Fred Fish  <fnf@specifix.com>
8631
8632         * config/mips/t-sb1: New file.
8633         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
8634         tmake_file list.
8635
8636 2006-06-26  DJ Delorie  <dj@redhat.com>
8637
8638         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
8639
8640 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
8641             Jayant Sonar  <jayants@kpitcummins.com>
8642             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
8643
8644         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
8645         (subsi3, subsi3_1, subsi3_2): New.
8646         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
8647         * config/m32c/mov.md (SI mov peephole): New.
8648         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
8649         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
8650
8651 2006-06-26  Olivier Hainque  <hainque@adacore.com>
8652
8653         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
8654         a CALL_EXPR target function declaration.
8655
8656 2006-06-26  Richard Guenther  <rguenther@suse.de>
8657
8658         * tree.c (build_string): Do not waste tail padding in
8659         struct tree_string.
8660
8661 2006-06-26  Richard Guenther  <rguenther@suse.de>
8662
8663         * ggc-page.c (init_ggc): Add missing element to size_lookup
8664         table.
8665
8666         Revert
8667         2006-06-23  Richard Guenther  <rguenther@suse.de>
8668
8669         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
8670         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
8671         alignment requests instead.  Add verification code.
8672         Add struct tree_function_decl and struct tree_binfo size to
8673         extra_order_size_table.  Add missing element to size_lookup
8674         table.
8675
8676 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
8677
8678         PR middle-end/28151
8679         * fold-const.c (const_binop): Be prepared for self returning zero.
8680         Simplify code handling complex values.
8681
8682 2006-06-24  Olivier Hainque  <hainque@adacore.com>
8683
8684         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
8685         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
8686         aggregate types.
8687
8688 2006-06-24  Olivier Hainque  <hainque@adacore.com>
8689
8690         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
8691         ARRAY_REF, so have the callback called for the low bound expression.
8692
8693 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
8694
8695         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
8696         * c-typeck.c (c_common_type): Disallow operations on decimal float
8697         types and other float types.
8698         * convert.c (convert_to_real): Don't ignore conversions involving
8699         decimal float types.
8700
8701 2006-06-23  Olivier Hainque  <hainque@adacore.com>
8702
8703         * tree.c (max_int_size_in_bytes): New function, inspired from
8704         code in function.c:assign_temp.
8705         * tree.h (max_int_size_in_bytes): Declare.
8706         * function.c (assign_temp): Use it.
8707         * gimplify.c (create_tmp_var): Relax the assertions on the type
8708         properties, not mandating constant size any more.
8709         (force_constant_size): New static function.
8710         (gimple_add_tmp_var): Use it, forcing variable size to a
8711         constant upper bound if it is not constant on entry.
8712
8713 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
8714
8715         PR target/27789
8716         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
8717         for initialization and setting of one_only flag to ...
8718         (i386_pe_encode_section_info): ...here.
8719         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
8720         Recheck that the symbol has not been defined.
8721
8722 2006-06-23  Richard Guenther  <rguenther@suse.de>
8723
8724         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
8725         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
8726         alignment requests instead.  Add verification code.
8727         Add struct tree_function_decl and struct tree_binfo size to
8728         extra_order_size_table.  Add missing element to size_lookup
8729         table.
8730
8731 2006-06-22  Roger Sayle  <roger@eyesopen.com>
8732             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8733
8734         PR middle-end/28131
8735         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
8736         call to lang_hooks.types.type_for_mode returned NULL_TREE.
8737
8738 2006-06-23  Ben Elliston  <bje@au.ibm.com>
8739
8740         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
8741         negate dn -- manipulate it directly.
8742
8743 2006-06-22  Roger Sayle  <roger@eyesopen.com>
8744             Steven Bosscher  <stevenb.gcc@gmail.com>
8745
8746         PR target/27531
8747         * reload1.c (gen_reload): Call mark_jump_label on the new insns
8748         generated by gen_move_insn to add REG_LABEL notes if necessary.
8749
8750 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
8751
8752         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
8753         (leaf_entry): Remove use of MIN_ESA.
8754
8755 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
8756
8757         PR rtl-optimization/28121
8758         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
8759         the entry edge.
8760
8761 2006-06-21  DJ Delorie  <dj@redhat.com>
8762
8763         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
8764         (TN-16C-A156A/E).
8765         (mulhisi3_r): Likewise.
8766
8767 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
8768
8769         PR middle-end/28034
8770         * coverage.c (coverage_counter_alloc): Leave the index type
8771         unspecified.
8772         (coverage_counter_alloc): Use null arguments for operands 2 and 3
8773         of the ARRAY_REF.
8774
8775 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
8776
8777         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
8778         section from the "Options for Code Generation Conventions".
8779
8780 2006-06-21  Richard Henderson  <rth@redhat.com>
8781
8782         PR target/26347
8783         PR target/27082
8784         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
8785         symbols.
8786         (global_symbolic_operand): Allow weak symbols, even if local_p.
8787
8788 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
8789
8790         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
8791         (find_interesting_uses_address): Punt if above function returns true.
8792
8793 2006-06-21  Richard Guenther  <rguenther@suse.de>
8794
8795         * configure: Regenerated.
8796
8797 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
8798
8799         * config/mips/mips.c (function_arg): Where one part of a
8800         complex argument is in registers and the other part in the stack,
8801         return a REG not a PARALLEL.
8802
8803 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
8804
8805         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
8806         when cross-compiling.  Do not substitute libstdcxx_incdir.
8807         * configure: Regenerated.
8808
8809 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
8810
8811         * varasm.c (mergeable_string_section): Check for embedded NULs and
8812         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
8813         rather than TREE_STRING_LENGTH bytes.
8814
8815 2006-06-21  Richard Guenther  <rguenther@suse.de>
8816
8817         * ggc-page.c (extra_order_size_table): Add var_ann_d,
8818         tree_ssa_name, bitmap_element and phi_node with 4 arguments
8819         sizes.
8820
8821 2006-06-21  Richrad Guenther  <rguenther@suse.de>
8822
8823         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
8824         Limit iteration over the dominators.
8825
8826 2006-06-20  Roger Sayle  <roger@eyesopen.com>
8827
8828         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
8829         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
8830
8831 2006-06-20  Richard Guenther  <rguenther@suse.de>
8832         Michael Matz  <matz@suse.de>
8833
8834         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
8835         function.
8836         * alloc-pool.c (free_alloc_pool_if_empty): New function.
8837         * et-forest.h (et_free_pools): Prototype new function.
8838         * et-forest.c (et_free_tree_force): Free parent occurrence.
8839         (et_free_pools): New function.
8840         * dominance.c (free_dominance_info): Free et-forest alloc
8841         pools.
8842
8843 2006-06-20  Roger Sayle  <roger@eyesopen.com>
8844
8845         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
8846         integer modes, attempt to directly construct an integer constant.
8847
8848         * fold-const.c (native_encode_vector): Determine the size of each
8849         element from the vector type instead of the first vector element.
8850
8851         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
8852         if all of its elements/components are constant.
8853         (build_constructor_from_list): Likewise.
8854
8855 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
8856
8857         PR tree-optimization/27331
8858         * tree-data-ref.c (free_data_ref): New function.
8859         (create_data_ref): Fail if the data reference has unknown access
8860         function.
8861         (free_data_refs): Use free_data_ref.
8862
8863 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
8864
8865         PR middle-end/28075
8866         * tree-inline.c (setup_one_parameter): Strip useless
8867         type conversion before adding it to the IR.
8868         (declare_return_variable): Likewise.
8869
8870 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
8871
8872         PR c/27149
8873         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
8874
8875 2006-06-19  Mike Stump  <mrs@apple.com>
8876
8877         * tree.c (variably_modified_type_p): VM arguments don't make the
8878         type a VM type.
8879
8880 2006-06-19  Richard Guenther  <rguenther@suse.de>
8881
8882         * tree-ssa-pre.c (try_combine_conversion): Strip useless
8883         type conversions after folding.
8884
8885 2006-06-19  Richard Guenther  <rguenther@suse.de>
8886
8887         * ggc-page.c (extra_order_size_tab): Add entries with
8888         size of struct function and basic_block.
8889         (size_lookup): Extend to cover sizes up to 511.
8890         (ggc_alloc_stat): Adjust user.
8891         (ggc_pch_count_object): Likewise.
8892         (ggc_pch_alloc_object): Likewise.
8893         (ggc_pch_write_object): Likewise.
8894
8895 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
8896
8897         * tree-ssa-loop-niter.c (implies_ge_p): New function.
8898         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
8899         correctly.
8900
8901 2006-06-19  Denis Chertykov  <denisc@overta.ru>
8902
8903         * config/avr/libgcc.S : Correct my wrong previous commit.
8904
8905 2006-06-19  Roger Sayle  <roger@eyesopen.com>
8906
8907         PR target/27861
8908         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
8909         have stripped a SUBREG from the shift count, so we may need to
8910         convert_to_mode back to the type's mode before calling make_tree.
8911         Use new_amount instead of amount to avoid expanding a tree twice.
8912
8913 2006-06-19  Richard Guenther  <rguenther@suse.de>
8914
8915         PR middle-end/28045
8916         * fold-const.c (operand_equal_p): Check if the argument types
8917         have the same precision before stripping NOPs.
8918
8919 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
8920
8921         Fix PR tree-optimization/27341
8922         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
8923         statement we get.
8924         * tree-complex.c (pass_lower_complex): Update SMT usage.
8925
8926 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
8927
8928         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
8929         Add a new alternative to the constraint strings. Add move of
8930         operand 1 to 3 to the splitter definition.
8931         ("doloop_si_long"): Second contraint alternative removed.
8932
8933 2006-06-08  Anatoly Sokolov <aesok@post.ru>
8934
8935         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
8936         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
8937         __AVR_HAVE_LPMX__.
8938         (AVR_HAVE_MOVW) Define.
8939         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
8940         (ASM_SPEC): Add avr25.
8941         (LINK_SPEC): Add avr25.
8942         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
8943         (base_arch_s): Add new member 'have_movw_lpmx'.
8944         (avr_arch_types): Init 'have_movw_lpmx'.
8945         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
8946         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
8947         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
8948         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
8949         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
8950         AVR_HAVE_MOVW.
8951         (avr_file_start): Do not output '.arh' derective.
8952         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
8953         (__do_copy_data): Use __AVR_HAVE_LPMX__.
8954         * config/avr/avr.md (mcu_enhanced): Delete.
8955         (mcu_have_movw): Define.
8956         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
8957         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
8958         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
8959         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
8960         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
8961         attiny861 and at86rf401 devices.
8962
8963 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
8964
8965         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
8966         of 4096.
8967
8968 2006-06-17  Karl Berry  <karl@gnu.org>
8969
8970         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
8971         doc/gccint.texi, doc/install.texi (@dircategory): Use
8972         "Software development" instead of "Programming", following
8973         the Free Software Directory.
8974
8975 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
8976
8977         * config/i386/i386.c (legitimate_tls_address)
8978         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
8979         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
8980         (*tls_dynamic_gnu2_combine_64): Likewise.
8981
8982 2006-06-16  Richard Guenther  <rguenther@suse.de>
8983
8984         PR middle-end/27116
8985         * fold-const.c (negate_expr_p): Do not introduce undefined
8986         overflow in negating INTEGER_CSTs.
8987         (fold_negate_expr): Rename from negate_expr.  Revert last
8988         change for folding BIT_NOT_EXPR.  Change semantics to
8989         return NULL_TREE for non-simplified negations.  Do not
8990         strip type conversions and unify type handling.
8991         (negate_expr): New function, wrap around fold_negate_expr
8992         but ensure building a tree always.  Strip type conversions
8993         here, fold to result type.
8994         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
8995
8996 2006-06-16  Roger Sayle  <roger@eyesopen.com>
8997
8998         PR middle-end/27802
8999         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
9000         that (would) return their results in stack registers.
9001
9002 2006-06-16  Michael Matz  <matz@suse.de>
9003         Richard Guenther  <rguenther@suse.de>
9004
9005         * fold-const.c (fold_truthop): Only return new tree node if
9006         we canonicalized something.
9007
9008 2006-06-16  Richard Guenther  <rguenther@suse.de>
9009
9010         * function.h (enum function_frequency): Move declaration
9011         out of struct function.
9012         (struct function): Move bool fields and the enum to the bitfield
9013         section.  Reorder elements to avoid padding.  Remove unused
9014         fields left over from the RTL inliner removal.
9015         * function.c (free_after_compilation): Do not zero removed fields.
9016         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
9017         (ipa-type-escape.o): Likewise.
9018
9019 2006-06-16  Richard Guenther  <rguenther@suse.de>
9020
9021         * cgraph.h (struct cgraph_local_info): Turn bool elements
9022         into a bitfield.
9023         (struct cgraph_node): Likewise.
9024         (struct cgraph_varpool_node): Likewise.
9025
9026 2006-06-15  Richard Guenther  <rguenther@suse.de>
9027
9028         * fold-const.c (fold_truth_not_expr): Rename from
9029         invert_truthvalue.  Give it fold_* semantics to avoid
9030         generating garbage.
9031         (invert_truthvalue): New function.  Wrapper around
9032         fold_truth_not_expr.
9033         (optimize_minmax_comparison): Avoid creating garbage.
9034         (fold_unary): Use fold_truth_not_expr for folding
9035         TRUTH_NOT_EXPR.
9036         (fold_ternary): Replace uses of invert_truthvalue with
9037         fold_truth_not_expr where applicable.
9038         * tree.h (fold_truth_not_expr): Prototype.
9039
9040 2006-06-16  Richard Guenther  <rguenther@suse.de>
9041
9042         PR tree-optimization/27781
9043         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
9044         * ipa-pure-const.c (target.h): Include.
9045         (analyze_function): Do not analyze functions that do not
9046         bind locally.
9047
9048 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
9049
9050         PR middle-end/27793
9051         * tree-dfa.c (referenced_vars_dup_list): Remove.
9052         (find_referenced_vars): Remove assert.
9053         (referenced_var_check_and_insert): Replace dup list with assert.
9054         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
9055         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
9056
9057 2006-06-15  Richard Guenther  <rguenther@suse.de>
9058
9059         * tree-ssa-structalias.c (alias_get_name): Avoid creating
9060         extra unused identifiers if not dumping.
9061         (create_variable_info_for): Likewise.
9062
9063 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
9064
9065         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
9066         (derive_constant_upper_bound): Derive more precise upper bound in
9067         common cases.  Return type changed to double_int.
9068         (record_estimate): Reflect the changed return type of
9069         derive_constant_upper_bound.
9070         * double-int.c (double_int_zext, double_int_sext): Fix.
9071
9072 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
9073
9074         * configure.ac (CFLAGS): Get them from the toplevel or from the
9075         configure invocation.
9076         * configure: Regenerate.
9077         * Makefile.in (CFLAGS): Substitute value provided by configure.
9078
9079 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
9080
9081         PR c++/26559
9082         * c-common.h (c_finish_omp_atomic): Adjust declaration.
9083         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
9084         rather than calling add_stmt on it.
9085         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
9086
9087 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9088
9089         PR middle-end/27959
9090         * reload1.c (reload): Remove registers returned by update_eliminables
9091         from used_spill_regs.
9092
9093 2006-06-13  DJ Delorie  <dj@redhat.com>
9094
9095         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
9096
9097 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
9098
9099         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
9100         html__strip_dir, html__mkdir_p. Enhance install-html target.
9101         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
9102         * configure: Regenerate.
9103
9104 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
9105
9106         * fold-const.c (fold_cond_expr_with_comparison): Check for
9107         Objective-C++ as language in deciding COND_EXPR transformation.
9108
9109 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
9110
9111         PR target/28014:
9112         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
9113         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
9114         * config/sh/lib1funcs.h (SL, SL1): Define.
9115         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
9116         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
9117         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
9118         (OBJS_Os_4_200): New variable.
9119         ($(T)libgcc-Os-4-200.a): Use it.
9120         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
9121         when dividing 1 and/or by 0.
9122
9123 2006-06-13  Roger Sayle  <roger@eyesopen.com>
9124
9125         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
9126         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
9127         * configure: Regenerate.
9128
9129 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
9130
9131         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
9132         for real instruction.
9133
9134 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9135
9136         PR middle-end/26807
9137         * haifa-sched.c (check_cfg): Handle special case.
9138
9139 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
9140
9141         PR debug/26754
9142         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
9143         Add debug_info parameter.  Chain the vars to the BLOCK instead
9144         of the BIND_EXPR if debug info are requested for them.
9145         (pop_gimplify_context): Adjust for above change.
9146         (gimple_add_tmp_var): Likewise.
9147         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
9148         Add bool parameter.
9149         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
9150         (convert_local_reference): Likewise.
9151         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
9152         (finalize_nesting_tree_1): Request that debug info be emitted
9153         for debug_var_chain.
9154
9155 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9156
9157         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
9158         for PR target/27863.
9159
9160 2006-06-13  Richard Guenther  <rguenther@suse.de>
9161
9162         PR middle-end/27536
9163         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
9164
9165 2006-06-13  Richard Guenther  <rguenther@suse.de>
9166
9167         PR tree-optimization/27830
9168         * tree-inline.c (copy_body_r): For copying the operand
9169         of an ADDR_EXPR make sure to fold &* afterwards.
9170
9171 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
9172
9173         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
9174         lvalues in the fb_none case with side-effects.
9175
9176 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
9177
9178         * tree-flow.h: Remove the prototype for
9179         compute_phi_arg_on_exit.
9180         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
9181         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
9182         Remove.
9183
9184 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
9185
9186         * builtins.c (expand_builtin_return_addr): Only use
9187         frame_pointer_rtx when count == 0 and we are expanding
9188         __builtin_return_address.
9189
9190 2006-06-12  Fred Fish  <fnf@specifix.com>
9191
9192         * config/mips/mips.c (mips_file_start): Create special section
9193         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
9194
9195 2006-06-11  Eric Christopher  <echristo@apple.com>
9196
9197         PR middle-end/27948
9198         * stor-layout.c (place_field): Remove check for
9199         remaining_in_alignment when aligning at the end of a run.
9200
9201 2006-06-11  Eric Christopher  <echristo@apple.com>
9202
9203         PR 27542
9204         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
9205         pragma.
9206
9207 2006-06-11  Roger Sayle  <roger@eyesopen.com>
9208
9209         PR target/27858
9210         Revert incorrect fix for PR target/27158
9211         2006-05-08  Roger Sayle  <roger@eyesopen.com>
9212         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
9213         of a reg_equiv_constant if the result is a legitimate constant.
9214
9215 2006-06-11  Roger Sayle  <roger@eyesopen.com>
9216
9217         PR target/27158
9218         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
9219         extract a CONST_VECTOR element and interpret it as an integer.
9220         (vspltis_constant): Use const_vector_elt_as_int instead of the
9221         macro CONST_VECTOR_ELT in order to handle FP vector modes.
9222         * config/rs6000/predicates.md (easy_vector_const): Consider
9223         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
9224
9225 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
9226
9227         PR middle-end/27942
9228         * stor-layout.c (update_alignment_for_field): Don't add extra
9229         alignment for packed non-bitfield fields in ms_bitfield_layout_p
9230         code.
9231
9232 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
9233
9234         * config/mips/t-rtems: Add EL/EB multilib variants.
9235
9236 2006-06-09  Mike Stump  <mrs@apple.com>
9237
9238         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
9239
9240 2006-06-09  David Daney  <ddaney@avtrex.com>
9241
9242         * doc/install.texi: Add binutils version recommendation for mips-*-*.
9243
9244 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
9245
9246         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
9247
9248 2006-06-09  Richard Guenther  <rguenther@suse.de>
9249
9250         PR tree-optimization/26998
9251         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
9252         of signed types, only TYPE_MIN_VALUE is special, but for both,
9253         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
9254         in this case, as is -fwrapv.
9255
9256 2006-06-08  Mike Stump  <mrs@apple.com>
9257
9258         PR target/26427
9259         * config/darwin.c (darwin_asm_output_anchor): Disable
9260         -fsection-anchors on darwin for now.
9261         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
9262         * rs6000/rs6000.c (optimization_options): Likewise.
9263
9264 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9265
9266         PR target/27421
9267         * config/i386/i386.c (classify_argument): Skip fields with invalid
9268         types in unions.
9269
9270 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
9271
9272         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
9273         (cse_insn): Likewise for the stack_pointer_rtx.
9274
9275 2006-06-08  Roger Sayle  <roger@eyesopen.com>
9276
9277         * tree-ssa-dom.c (record_conditions): Only record "unordered"
9278         conditions from floating point comparisons.
9279
9280 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
9281
9282         PR middle-end/27733
9283         * expmed.c (struct alg_hash_entry): Fix type of field T
9284         to match synth_mult argument.
9285         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
9286
9287 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9288
9289         PR target/27863
9290         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
9291         block boundaries.
9292
9293 2006-06-08  Richard Guenther  <rguenther@suse.de>
9294
9295         PR middle-end/27116
9296         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
9297         only, if overflow is defined and not trapping.
9298         (negate_expr): Likewise.
9299
9300 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
9301
9302         PR tree-optimization/27872
9303         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
9304         flag on the new exit edge of the unrolled loop.
9305
9306 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
9307
9308         PR rtl-optimization/26449
9309         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
9310
9311 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
9312
9313         PR middle-end/27793
9314         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
9315         referenced_variables with matching DECL_UID's.
9316         (find_referenced_vars): Make sure duplicate list is empty to start.
9317         (referenced_var_p): Remove.
9318         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
9319         Check if var is in the list, and add if needed.  Update the duplicate
9320         list if a different var is in the list with the same DECL_UID.
9321         (add_referenced_var): Call routine to check and insert.
9322         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
9323         * tree-flow.h (referenced_vars_dup_list): External declaration.
9324
9325 2006-06-07  Fred Fish  <fnf@specifix.com>
9326
9327         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
9328         into single entry.
9329
9330 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
9331
9332         PR target/27390
9333         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
9334         the imaginary and real parts of a clobbered register.
9335         Emit insn to set the imaginary part.
9336
9337 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
9338
9339         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
9340         in lieu of unwind-dw2-fde.c.
9341
9342 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9343
9344         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
9345
9346 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
9347
9348         PR target/27842
9349         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
9350         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
9351         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
9352         V4SImode temporaries and operations instead.
9353
9354 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
9355
9356         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
9357         dp-bit.c.
9358
9359 2006-06-06  Mike Stump  <mrs@apple.com>
9360
9361         * Makefile.in: Rename to htmldir to build_htmldir to avoid
9362         installing during build.
9363
9364 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
9365
9366         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
9367         value to 0.
9368         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
9369         * config/ia64/ia64.c (params.h): New header.
9370         (ia64_optimization_options): New function to adjust parameters.
9371         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
9372         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
9373         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
9374
9375 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
9376
9377         * stor-layout.c (debug_rli): Fix a typo in a debug message.
9378
9379 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
9380
9381         PR target/27051
9382         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
9383
9384 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
9385             Victor Kaplansky  <victork@il.ibm.com>
9386
9387         PR tree-optimization/26360
9388         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
9389         stmts.
9390
9391 2006-06-04  Roger Sayle  <roger@eyesopen.com>
9392             Andrew Pinski  <pinskia@physics.uc.edu>
9393
9394         PR middle-end/27382
9395         * c-common.c (c_common_truthvalue_conversion): Explicitly check
9396         for LABEL_DECL before calling DECL_WEAK.
9397
9398         PR c/27150
9399         * c-typeck.c (build_binary_op): Likewise, explicitly check for
9400         LABEL_DECL and PARM_DECL.
9401
9402 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
9403
9404         PR c/25161
9405         PR c/27020
9406         * c-decl.c (grokdeclarator): Disallow variably modified types at
9407         file scope.  Avoid marking shared array type of constant size as
9408         VLA.
9409
9410 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9411
9412         PR c++/27601
9413         * c-common.c (fold_offsetof_1): Handle static members.
9414
9415 2006-06-04 Eric Christopher <echristo@apple.com>
9416
9417         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
9418         (debug_rli): Output value for remaining_in_alignment.
9419         (update_alignment_for_field): Unconditionalize
9420         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
9421         extra alignment code.
9422         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
9423         ms_bitfield_layout_p code. Rewrite handling of structure fields.
9424         * tree.h (record_layout_info_s): Remove prev_packed.
9425         * doc/extend.texi (ms_struct): Add documentation of format.
9426
9427 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
9428
9429         * tree.h: Declare folding_initializer.
9430         * builtins.c (fold_builtin_constant_p): Give definite answer
9431         if folding inside an initializer.
9432         * fold-const.c: Define folding_initializer.
9433         (START_FOLD_INIT): Save and then set folding_initializer.
9434         (END_FOLD_INIT): Restore folding_initializer.
9435
9436 2006-06-04  Richard Guenther  <rguenther@suse.de>
9437
9438         PR tree-optimization/27039
9439         * fold-const.c (fold_comparison): Handle pointer comparison
9440         again for all comparison codes.  Compare offsets in signed
9441         size type.
9442         (fold_binary): Move code from here.
9443
9444 2006-06-03  Roger Sayle  <roger@eyesopen.com>
9445
9446         PR target/26223
9447         * config/i386/i386.c (construct_container): Split static issued_error
9448         flag into issued_sse_arg_error, issued_sse_ret_error and
9449         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
9450         requires the use of x87 registers and the user explicitly
9451         specified the -mno-80387 command line option.
9452
9453 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
9454
9455         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
9456         HAVE_DECL_SIGALTSTACK.
9457         (MC_FLD): New.
9458         (segv_handler): Use MC_FLD.
9459         * configure.ac: Check for a sigaltstack declaration.
9460         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
9461         * configure: Regenerate.
9462         * config.in: Regenerate.
9463
9464 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
9465
9466         PR other/27850
9467         * Makefile.in (stmp-fixinc): Fix typo.
9468
9469 2006-06-02  Roger Sayle  <roger@eyesopen.com>
9470
9471         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
9472         are type correct.  Clean-up.
9473         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
9474         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
9475
9476 2006-06-01  DJ Delorie  <dj@redhat.com>
9477
9478         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
9479         shift, as we've disabled the "switch" insn that needs it.
9480
9481 2006-06-01  Per Bothner  <bothner@bothner.com>
9482
9483         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
9484         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
9485         * c-ppoutput.c (cb_define): Don't increment line 0.
9486
9487 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
9488
9489         * doc/invoke.texi: Add cpu_type power6.
9490         * config.gcc: Add cpu_type power6.
9491         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
9492         to power5+ with Altivec.
9493         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
9494         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
9495
9496 2006-05-30  Anatoly Sokolov <aesok@post.ru>
9497
9498         * config/avr/avr.h (SET_ASM_OP): Define.
9499
9500 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
9501
9502         * config/bfin/bfin.c: Fix comment typos.
9503
9504 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
9505
9506         PR 25453
9507         * doc/install.texi: Document --enable-bootstrap and
9508         --disable-bootstrap.
9509
9510 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
9511
9512         * doc/install.texi: Document that InfoZIP can replace jar.
9513
9514 2006-05-31  Roger Sayle  <roger@eyesopen.com>
9515
9516         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
9517         isn't available, directly generate the simpler x87 patterns without
9518         the (use (const_int 0)).
9519         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
9520         implementation isn't available.
9521         (*negdf2_1): Likewise.
9522         (*negxf2_1): XF mode negation is always done using the x87.
9523         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
9524
9525 2006-05-31  Roger Sayle  <roger@eyesopen.com>
9526
9527         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
9528         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
9529         cabs(z).
9530         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
9531
9532 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
9533
9534         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
9535         * config/bfin/bfin.c (basic-block.h): Include.
9536         (struct machine_function): New.
9537         (bfin_init_machine_status): New.
9538         (override_options): Initialize init_machine_status.
9539         (bfin_hardware_loop): New.
9540         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
9541         (DEF_VEC_P (loop_info)): New.
9542         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
9543         (struct loop_info): New.
9544         (loop_info): New typedef.
9545         (struct loop_work): New.
9546         (loop_work): New typedef.
9547         (DEF_VEC_O (loop_work)): New.
9548         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
9549         (bfin_dump_loops): New.
9550         (bfin_bb_in_loop): New.
9551         (bfin_scan_loop): New.
9552         (bfin_optimize_loop): New.
9553         (bfin_reorg_loops): New.
9554         (bfin_reorg): Use bfin_reorg_loops.
9555         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
9556         loop registers.
9557         (I_REGNO_P): Simplify.
9558         (DP_REGNO_P, DPREG_P): New macros.
9559         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
9560         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
9561         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
9562         Add LT_REGS, LC_REGS, LB_REGS.
9563         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
9564         'l' for LB_REGS.
9565         (REGNO_REG_CLASS): Deal with loop registers.
9566         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
9567         letters.
9568         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
9569         New constants for loop registers.
9570         (UNSPEC_LSETUP_END): New.
9571         (seq_insns): New define_attr. Set it for appropriate insns.
9572         (movsi_insn): Add alternatives for move from/to
9573         loop count registers.
9574         (doloop_end): New define_expand.
9575         (loop_end): New define_insn.
9576         (define_split for bad doloop_end): New.
9577         (lsetup_with_autoinit): New define_insn.
9578         (lsetup_without_autoinit): New define_insn.
9579         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
9580         * config/bfin/predicates.md (lc_register_operand): New.
9581         (lt_register_operand): New.
9582         (lb_register_operand): New.
9583         (nondp_register_operand): New.
9584         (nondp_reg_or_memory_operand): New.
9585         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
9586
9587 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
9588
9589         * config/bfin/bfin.c (bfin_delegitimize_address): New.
9590         (TARGET_DELEGITIMIZE_ADDRESS): Define.
9591
9592 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
9593
9594         * Makefile.in (CATALOGS): Add po/ prefix.
9595         * configure: Regenerated.
9596
9597 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
9598
9599         PR target/27829
9600         * arm.c (arm_print_operand case 'S'): Validate that the operand is
9601         a shift operand before calling shift_op.  Avoid redundant call of
9602         shift_op.
9603
9604 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
9605             DJ Delorie  <dj@redhat.com>
9606
9607         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
9608         we're inserting is a singlt-bit constant.
9609
9610 2006-05-30  Roger Sayle  <roger@eyesopen.com>
9611
9612         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
9613         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
9614
9615 2006-05-30  Roger Sayle  <roger@eyesopen.com>
9616
9617         PR tree-optimization/23452
9618         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
9619         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
9620         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
9621         complex values and with -ffast-math for FP complex values.
9622
9623 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
9624
9625         * c-common.h: Remove the prototype for yyparse.
9626         * rtl.h: Remove the prototype for init_loop.
9627
9628 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9629
9630         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
9631         calling recog.
9632
9633 2006-05-30  Roger Sayle  <roger@eyesopen.com>
9634
9635         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
9636         and rotate cases.
9637         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
9638         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
9639
9640 2006-05-30  Dirk Mueller  <dmueller@suse.de>
9641
9642         PR c/27273
9643         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
9644         for CONSTANT_CLASS_P expresisons.
9645
9646 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9647
9648         PR c/27718
9649         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
9650
9651 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
9652
9653         PR tree-optimization/27779
9654         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
9655         initial_condition instead of CHREC_LEFT.
9656
9657 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9658
9659         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
9660         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
9661         Make prototypes ISO C90.
9662
9663 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
9664             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
9665
9666         * see.c (see_analyze_one_def): Correct check.
9667         (see_get_extension_data): Check if extension is parallel.
9668         (see_get_extension_reg): Likewise.
9669
9670 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
9671
9672         PR target/27790
9673         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
9674         into register for (code == GTU).
9675
9676 2006-05-29  Roger Sayle  <roger@eyesopen.com>
9677
9678         PR tree-optimization/24964
9679         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
9680         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
9681         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
9682         abs(x)*abs(x) as x*x for scalar floating point modes.
9683
9684 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
9685
9686         PR middle-end/27745
9687         * lambda-code.c (perfect_nestify): Don't copy statements
9688         in the inner loop: move them to the inner loop header.
9689
9690 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
9691
9692         PR 26237
9693         * c-tree.texi: Document OpenMP directives and clauses.
9694
9695 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
9696
9697         * varasm.c (globalize_decl): Fix indentation.
9698
9699 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
9700
9701         PR 26242
9702         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
9703         pass_fre, pass_store_ccp, pass_copy_prop,
9704         pass_store_copy_prop, pass_merge_phi, pass_nrv,
9705         pass_return_slot, pass_object_size, pass_lim,
9706         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
9707         pass_loop_prefetch and pass_stdarg.
9708
9709 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9710
9711         * config/bfin/bfin.opt (mfdpic): New option.
9712         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
9713         (EXTRA_MULTILIB_PARTS): Likewise.
9714         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
9715         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
9716         multilib.
9717         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
9718         (CRT_CALL_STATIC_FUNCTION): New.
9719         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
9720         -shared.
9721         (CRT_CALL_STATIC_FUNCTION): New.
9722         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
9723         FD-PIC moves.
9724         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
9725         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
9726         (initialize_trampoline): Changed to handle FD-PIC code generation.
9727         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
9728         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
9729         (override_options): Disallow -mid-shared-library -mfdpic combination.
9730         Can't do unaligned ops if FD-PIC.
9731         Turn off flag_pic if trying to generate non-id-shared-library
9732         non-fdpic code, since it's not supported.
9733         (bfin_assemble_integer): New function.
9734         (TARGET_ASM_INTEGER): Define.
9735         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
9736         __BFIN_FDPIC__.
9737         * config/bfin/crtn.s: Restore them.
9738         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
9739         if TARGET_FDPIC.
9740         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
9741         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
9742         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
9743         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
9744         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
9745         call-used.
9746         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
9747         FDPIC_REGS and FDPIC_FPTR_REGS.
9748         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
9749         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
9750         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
9751         (load_funcdescsi): New pattern.
9752         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
9753         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
9754         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
9755
9756 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
9757
9758         * gcse.c, rtlanal.c: Remove obsolete comments associated with
9759         loop.c.
9760
9761         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
9762
9763         * tree-flow.h: Remove the prototype for add_type_alias.
9764         * tree-ssa-alias.c (add_type_alias): Remove.
9765
9766 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
9767
9768         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
9769         config/fr30/fr30.md, config/i386/i386-interix.h,
9770         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
9771         config/sh/superh64.h, config/v850/v850.c, df-core.c,
9772         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
9773         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
9774         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
9775         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
9776         Follow spelling conventions.
9777         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
9778         Follow spelling conventions.
9779
9780 2006-05-27  Richard Guenther  <rguenther@suse.de>
9781
9782         PR middle-end/27773
9783         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
9784         to produce a constant of value 1 of generic type.
9785
9786 2006-05-27  Dirk Mueller  <dmueller@suse.de>
9787
9788         * cgraphunit.c (decide_is_function_needed): Fix wrong
9789         PR reference.
9790
9791 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
9792
9793         PR rtl-optimization/27661
9794         * reload.c (find_reloads): When reloading a VOIDmode constant
9795         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
9796         use Pmode as mode of the reload register.
9797
9798 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9799
9800         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
9801         is enabled at -O and above.
9802
9803 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
9804
9805         PR target/27571
9806         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
9807         table data.
9808
9809 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
9810
9811         PR c++/20103
9812         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
9813         for anonymous variables explicitly declared by front ends.
9814
9815 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9816
9817         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
9818         (struct alias_info): Add new field ref_all_symbol_mem_tag.
9819         * tree-ssa-alias.c (compute_may_aliases): If the program contains
9820         ref-all pointers, run a finalization pass for them.
9821         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
9822         (finalize_ref_all_pointers): New function.
9823         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
9824         regular pointer type to a ref-all pointer type.
9825         (get_tmt_for): Return the special memory tag for ref-all pointers.
9826
9827 2006-05-25  Richard Guenther  <rguenther@suse.de>
9828
9829         PR middle-end/27743
9830         * fold-const.c (fold_binary): Do not look at the stripped
9831         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
9832
9833 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9834
9835         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
9836         for LT and GT if the computed range is effectively empty.
9837
9838 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9839
9840         PR target/27627
9841         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
9842         mips_quad_format formats instead of ieee_single_format,
9843         ieee_double_format and ieee_quad_format formats, respectively.
9844
9845 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
9846
9847         PR tree-optimization/27639
9848         PR tree-optimization/26719
9849         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
9850         call to scev_probably_wraps_p.
9851         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
9852         used_in_pointer_arithmetic_p, convert_step): Removed.
9853         (nowrap_type_p): New function.
9854         (scev_probably_wraps_p): Rewritten.
9855         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
9856         chrec_convert if chrec_convert_aggressive might have been used.
9857         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
9858         scev_direction): New functions.
9859         (chrec_convert): Changed to a wrapper over chrec_convert_1.
9860         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
9861         instead of convert_step.
9862         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
9863         (convert_step): Declaration removed.
9864         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
9865
9866 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
9867
9868         * df-core.c: Added to header comments.
9869         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
9870         df_ur_bb_info, df_urec_bb_info): Added comments.
9871         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
9872         urec, ri problems): Fixed header comments.
9873         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
9874         code from df_rd_transfer_function.
9875
9876 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
9877
9878         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
9879         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
9880         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
9881
9882 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
9883
9884         * expr.c (undefined_operand_subword_p): New.
9885         (emit_move_multi_word): Do not generate move from undefined bits
9886         of a paradoxical subreg.
9887
9888 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
9889
9890         PR rtl-optimization/27736
9891         * combine.c (replaced_rhs_value): New variable.
9892         (combine_instructions): Set it.
9893         (distribute_notes): When distributing a note in replaced_rhs_insn,
9894         check whether the value was used in replaced_rhs_value.
9895
9896 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
9897
9898         PR c++/26757
9899         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
9900         add_referenced_var instead of add_referenced_tmp_var.
9901         * tree-complex.c (create_one_component_var): Use add_referenced_var.
9902         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
9903         add_referenced_var.
9904         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
9905         tree_optimize_tail_calls_1): Use add_referenced_var.
9906         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
9907         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
9908         Use add_referenced_var.
9909         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
9910         * gimplify.c (force_gimple_operand): Use add_referenced_var.
9911         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
9912         Use add_referenced_var.
9913         * tree-dfa.c (struct walk_state): Remove.
9914         (find_referenced_vars): Remove walk state and vars_found hash table.
9915         (make_rename_temp): Use add_referenced_var.
9916         (find_vars_r): Pass less parameters to add_referenced_var.
9917         (referenced_var_p): New.  Is var in referenced_var hash table.
9918         (referenced_var_insert): Assert var isn't already in hash table.
9919         (add_referenced_var): Don't need walk_state parameter.  Add var if it
9920         isn't already in the hash table.
9921         (add_referenced_tmp_var): Remove.
9922         (find_new_referenced_vars_1): Use add_referenced_var.
9923         * tree-ssa-pre.c (create_expression_by_pieces,
9924         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
9925         Use add_referenced_var.
9926         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
9927         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
9928         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
9929         add_referenced_var.
9930         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
9931         vect_create_data_ref_ptr, vect_create_destination_var,
9932         vect_init_vector, vect_build_loop_niters,
9933         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
9934         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
9935         Use add_referenced_var.
9936         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
9937         * tree-flow.h (add_referenced_tmp_var): Remove prototype
9938         (add_referenced_var): Add prototype.
9939         * tree-ssa-structalias.c (get_constraint_for,
9940         intra_create_variable_infos): Use add_referenced_var.
9941
9942 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
9943
9944         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
9945         big-endian paradoxical subregs.
9946         * var-tracking.c (struct micro_operation_def): Document that,
9947         for modify micro operations, insn is the subsequent instruction.
9948         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
9949         (var_reg_set, var_mem_set): ... new functions.
9950         (add_stores): Record subsequent insn.
9951         (compute_bb_dataflow): Use new functions for MO_USE.
9952         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
9953         notes after the insn, and modify notes before the insn known
9954         to be the subsequent one.
9955         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
9956
9957 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
9958
9959         PR target/27696
9960         * config/i386/i386.c (ix86_expand_builtin): Use
9961         gen_sse3_monitor64 for TARGET_64BIT.
9962
9963 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
9964
9965         PR rtl-optimization/26375
9966         PR rtl-optimization/26855
9967         * df-problems (df_ru_bb_local_compute_process_def): Removed update
9968         to gen set.
9969         (df_ru_bb_local_compute): Reversed statements and removed bogus
9970         comment explaining why they should be in wrong order.
9971         (df_ru_dump, df_rd_dump): Enhanced debug info.
9972         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
9973         debug info.
9974         * ddg.c (add_deps_for_def): Converted use of reaching defs to
9975         reaching uses and fixed space problem.
9976
9977 2006-05-23  Jan Hubicka  <jh@suse.cz>
9978
9979         * cgraphunit.c (decide_is_function_needed): Also nested functions
9980         and functions declared inline can be optimized out at -O0.
9981
9982 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
9983
9984         * doc/install.texi (Configuration): Remove reference to CrossGCC
9985         FAQ which was gone.
9986         (Building): Ditto.
9987
9988 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
9989
9990         PR target/27266
9991         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
9992         ix86_compare_emitted is non-NULL.
9993
9994 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9995
9996         PR c++/27451
9997         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
9998         clobbers.
9999
10000 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
10001
10002         PR rtl-optimization/25514
10003         * combine.c (replaced_rhs_insn): New variable.
10004         (combine_instructions): Set replaced_rhs_insn when trying to replace
10005         a SET_SRC with a REG_EQUAL note.
10006         (distribute_notes): Use replaced_rhs_insn when determining the live
10007         range of a REG_DEAD register.
10008
10009 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
10010             Anatoly Sokolov <aesok@post.ru>
10011
10012         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
10013         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
10014         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
10015         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
10016         atmega3290, atmega649, atmega6490, atmega406, atmega640,
10017         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
10018         at90usb647, at90usb1286 and at90usb1287 devices.
10019         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10020         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10021
10022 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
10023
10024         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
10025
10026 2006-05-22  Richard Guenther  <rguenther@suse.de>
10027
10028         Revert
10029         2006-01-31  Richard Guenther  <rguenther@suse.de>
10030         Paolo Bonzini  <bonzini@gnu.org>
10031
10032         * doc/install.texi (--disable-libgcc-math): Document.
10033
10034 2006-05-22  Richard Guenther  <rguenther@suse.de>
10035
10036         Revert
10037         2006-01-31  Richard Guenther  <rguenther@suse.de>
10038
10039         * doc/invoke.texi (-msselibm): Document.
10040         * target.h (expand_library_builtin): New target hook.
10041         * builtins.c (expand_builtin): Use expand_library_builtin.
10042         (default_expand_library_builtin): New function.
10043         * gcc.c (LINK_GCC_MATH_SPEC): Define.
10044         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
10045         (link_gcc_math_spec): Declare.
10046         (static_specs): Add link_gcc_math_spec.
10047         * expr.h (default_expand_library_builtin): Declare.
10048         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
10049         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
10050         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
10051         * config/i386/i386.opt (msselibm): New target option.
10052         * config/i386/i386.c (ix86_builtin_function_variants): New array.
10053         (ix86_init_sse_abi_builtins): New function.
10054         (ix86_expand_library_builtin): Likewise.
10055         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
10056         (override_options): Handle error conditions wrt -msselibm.
10057         (ix86_builtins): Add function codes for SSE2 ABI builtins.
10058         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
10059         * doc/extend.texi (__builtin_sse2_*): Document new target specific
10060         builtins.
10061
10062 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10063
10064         PR c/27420
10065         * c-common.c (self_promoting_args_p): Skip erroneous args.
10066
10067         PR c/26818
10068         * c-decl.c (finish_struct): Skip erroneous fields.
10069
10070 2006-05-22  Nick Clifton  <nickc@redhat.com>
10071
10072         * config/cris/cris.opt (march): Remove VarExists attribute.
10073         (max-stackframe=): Likewise.
10074
10075 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
10076
10077         * doc/rtl.texi: Fix a typo.
10078         * see.c: Fix comment typos.
10079
10080         * tree-ssa-structalias.h (alias_info): Remove num_references.
10081
10082 2006-05-21  Mike Stump  <mrs@apple.com>
10083
10084         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
10085         (BAD2): Add.
10086         (darwin_pragma_options): Use BAD instead.
10087         (darwin_pragma_unused): Likewise.
10088         (darwin_pragma_ms_struct): Likewise.
10089
10090 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
10091
10092         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
10093
10094 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
10095
10096         PR rtl-optimization/27671
10097         * simplify-rtx.c (simplify_relational_operation_1): Fix
10098         simplifications of (eq/ne (xor x y) y) and
10099         (eq/ne (xor x y) x).
10100
10101         PR tree-optimization/26622.
10102         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
10103         on arg1.
10104
10105 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
10106
10107         * tree-cfg.c: Prune whitespace.
10108         (debug_tree_cfg): Point to correct header containing the
10109         TDF_* defines.
10110
10111 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
10112
10113         PR middle-end/25776
10114         * cgraphunit.c (verify_cgraph_node): Typo in error message.
10115
10116 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
10117
10118         PR middle-end/25776
10119         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
10120         or sorry count is non zero.
10121
10122 2006-05-20  Andreas Schwab  <schwab@suse.de>
10123
10124         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
10125
10126 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
10127             Kenneth Zadeck <zadeck@naturalbridge.com>
10128
10129         PR rtl-optimization/26855
10130
10131         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
10132         multiword refs.
10133         (df_scan_alloc): Added code to properly handle multiword hard
10134         registers and add all_blocks parameter.
10135         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
10136         code to properly handle multiword hard registers.
10137         (df_rescan_blocks): Added code to remove deleted blocks from
10138         bitmap.
10139         (df_ref_create_structure, df_ref_record): Added code to properly
10140         handle subregs.
10141         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
10142         and set DF_REF_PARTIAL.
10143         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
10144         (df_uses_record): Added DF_REF_PARTIAL for subreg.
10145         (df_scan_add_problem): Added flags parameter.
10146         (df_ref_create_structure): Changed switching structure.
10147         (df_bb_refs_record): Fixed case where duplicate artificial refs
10148         were created.  Changed location of flags.
10149         (df_record_entry_block_defs): Added code to make stack pointer
10150         live in entry block.  Refined cases where frame pointer is needed.
10151         Changed location of flags.
10152         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
10153         (df_set_state): Removed function.
10154         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
10155         df_insn_create_insn_record, df_insn_refs_delete,
10156         df_ref_create_structure): Formatting changes.
10157         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
10158         df_delete_basic_block): New function.
10159         (df_init): Changed location of flags.
10160         (df_add_problem): Added flags parameter and the way flags are
10161         processed.
10162         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
10163         debug_df_chain): Improved debugging output.
10164         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
10165         (df_refs_chain_dump): Removed df parameter.
10166         (df_iterative_dataflow): Added consistency check.
10167         (df_prune_to_subcfg): Made public.
10168         (df_analyze_problem): Added blocks_to_init parameter and made
10169         public.
10170         (df_ref_record, df_bb_refs_record, df_mark_reg,
10171          df_record_exit_block_uses): Whitespace changes.
10172         (df_dump): Whitespace changes.
10173         * df.h: Some reordering to remove forward references.
10174         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
10175         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
10176         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
10177         (dataflow.flags): New field.
10178         (df.flag): Deleted field.
10179         (df_alloc_function): Added additional bitmap parameter.
10180         (df_dependent_problem_function): New type.
10181         (df_problem.changeable_flags): New field.
10182         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
10183         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
10184         (df_mw_hardreg): New struct.
10185         (DF_INSN_UID_MWS): New macro.
10186         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
10187         parameter.
10188         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
10189         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
10190         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
10191         (df_set_state): Removed function.
10192         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
10193         * df-problems.c (df_chain_dump): Removed df parameter.
10194         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
10195         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
10196         parameter.
10197         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
10198         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
10199         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
10200         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
10201         DF_REF_MUST_CLOBBER cases.
10202         (df_ru_bb_local_compute_process_def,
10203         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
10204         df_lr_bb_local_compute, df_ur_bb_local_compute,
10205         df_chain_create_bb): Made subreg aware.
10206         (df_ru_bb_local_compute, df_rd_bb_local_compute,
10207         df_lr_bb_local_compute, df_lr_bb_local_compute,
10208         df_chain_create_bb): Cleanup to use proper macros.
10209         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
10210         code to fixup bitvectors.
10211         (df_ri_alloc): Cleared lifetime.
10212         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
10213         df_create_unused_note): New function.
10214         (df_ri_bb_compute, df_ri_compute): Added code to create/update
10215         REG_DEAD and REG_UNUSED notes as well as register information.
10216         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
10217         df_chains_dump): Fixed crash if problem was never run.
10218         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
10219         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
10220         df_ri_add_problem): Processes flags in uniform manner.
10221         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
10222         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
10223         df_rd_dump, df_urec_free_bb_info): Formatting changes.
10224         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
10225         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
10226         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
10227         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
10228         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
10229         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
10230         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
10231         * see.c (see_initialize_data): Ditto.
10232         * final.c (rest_of_clean_state) Added regstack_completed.
10233         * rtl.h (regstack_completed): Ditto.
10234         * reg-stack.c (regstack_completed): Ditto.
10235
10236 2006-05-19  Mike Stump  <mrs@apple.com>
10237
10238         * c-tree.h (default_conversion): Remove.
10239         * c-common.h (default_conversion): Add.
10240
10241 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
10242
10243         * tree-vrp.c (valid_value_p): New function.
10244         (adjust_range_with_scev): Fail if the value of bound is not
10245         simple.
10246
10247 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
10248
10249         * config/mips/linux-unwind.h: Include <asm/unistd.h>
10250         (mips_fallback_frame_state): Use syscall numbers to determine
10251         the appropriate li instruction for the current ABI.  Only use
10252         __NR_sigreturn for o32.
10253
10254 2006-05-19  Nicolas Setton  <setton@adacore.com>
10255
10256         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
10257         * langhooks.c (lhd_dwarf_name): New function.
10258         * langhooks-def.h (lhd_dwarf_name): Declare.
10259         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
10260         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
10261
10262 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
10263
10264         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
10265         libgcc2.h.
10266         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
10267         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
10268         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
10269         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
10270         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
10271         determine the size of Wtype, etc.
10272         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
10273         (swfloatfuncs): New variable.
10274         (dwfloatfuncs): Likewise.
10275         (lib2funcs): Remove floating-point conversion functions from
10276         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
10277         the set of conversion routines needed.  Allow entries to specify
10278         an object name, filename and word size.  Update users accordingly.
10279         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
10280         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
10281
10282         Revert:
10283
10284         2006-02-08  Roger Sayle  <roger@eyesopen.com>
10285
10286         PR target/22209
10287         * config/fixtfdi.c: New libgcc source file.
10288         * config/fixunstfdi.c: New source file.
10289         * config/floatditf.c: New source file.
10290         * config/floatunditf.c: New souce file.
10291         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
10292         files above instead of config/mips/_tilib.c.
10293         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
10294
10295 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10296
10297         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
10298         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
10299
10300 2006-05-18  Mike Stump  <mrs@apple.com>
10301
10302         Fix up vla, vm and [*] sematics.
10303
10304         PR c/18740
10305         PR c/7948
10306         PR c/25802
10307         PR c/27673
10308         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
10309         (c_vla_unspec_p): Add.
10310         (c_vla_type_p): Add.
10311         * c-decl.c (struct c_scope): Add had_vla_unspec.
10312         (build_array_declarator): Add support for [*].
10313         (grokdeclarator): Likewise.
10314         (grokparms): Likewise.
10315         (get_parm_info): Likewise.
10316         * c-objc-common.c (c_vla_unspec_p): Likewise.
10317         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
10318         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
10319         typeof when argument is a variably modified type not inside sizeof or alignof.
10320         (c_parser_direct_declarator_inner): Propagate errors.
10321         (c_parser_sizeof_expression): Add support for [*].
10322         (c_parser_parms_declarator): Initialize had_vla_unspec.
10323         (c_parser_parms_list_declarator): Likewise.
10324         * c-typeck.c (c_vla_type_p): Add.
10325         (composite_type): Add support for vla compositing.
10326         (comptypes_internal): Add support for vla compatibility.
10327         (c_expr_sizeof_expr): Evaluate vla arguments.
10328         * tree.c (variably_modified_type_p): Update comment for [*].
10329
10330 2006-05-18  Michael Matz  <matz@suse.de>
10331
10332         PR target/27599
10333         * config.host: Make assignments to host_xmake_file cumulative.
10334         * config.host (*-darwin*): Test $host, not $target.
10335
10336 2006-05-12  Stuart Hastings  <stuart@apple.com>
10337
10338         * config/i386/i386.opt (-mstackrealign): New flag.
10339         * config/i386/i386.c (force_align_arg_pointer): New attribute.
10340         (ix86_handle_cconv_attribute): Emit error when
10341         force_align_arg_pointer attribute collides with too many regparms.
10342         (ix86_function_regparm): Limit regparms when used with
10343         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
10344         Support stack-realigning prologue in non-main functions.  Emit
10345         warning for nested functions under -mstackrealign, emit error for
10346         nested functions with force_align_arg_pointer attribute.
10347         * doc/extend.texi (force_align_arg_pointer): Document it.
10348         * doc/invoke.texi (-mstackrealign): Document it.
10349
10350 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
10351
10352         PR rtl-optimization/27477
10353         * combine.c (try_combine): Don't split a parallel consisting
10354         of two sets into two individual sets if both sets reference
10355         cc0.
10356
10357 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
10358
10359         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
10360         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
10361
10362         * doc/options.texi (VarExists): Updated.
10363
10364 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10365
10366         * unwind-dw2.c: Add declarations for uw_update_context and
10367         uw_frame_state_for.
10368         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
10369         detected, advance frame state and context once to skip over stub.
10370
10371 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
10372
10373         PR middle-end/20256
10374         PR middle-end/26435
10375         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
10376         Call rewrite_into_loop_closed_ssa only when something changed.
10377         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
10378         * lambda-code.c (can_convert_to_perfect_nest): Declared.
10379         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
10380         Test for perfect_nest_p here.  Fix formating.
10381         (replace_uses_equiv_to_x_with_y): Fix formating.
10382         (stmt_uses_op): Removed.
10383         (can_convert_to_perfect_nest): Removed loopivs parameter.
10384         Complete the test by checking the scalar dependences.
10385         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
10386         Fix formating.
10387
10388 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
10389
10390         PR bootstrap/22541
10391         From Dan Kegel <dank@kegel.com>:
10392         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
10393
10394 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10395
10396         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
10397         if the element type is variably modified without recursing.
10398
10399 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
10400
10401         PR middle-end/27332
10402         * tree-loop-linear.c (try_interchange_loops): Test for
10403         no data dependences.
10404
10405 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
10406
10407         PR tree-optimization/27548
10408         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
10409         range of ssa names that appear on abnormal edges.
10410         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
10411         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
10412
10413 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
10414
10415         PR middle-end/27620
10416         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
10417
10418 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
10419
10420         PR middle-end/27415
10421         * tree.h (OMP_PARALLEL_COMBINED): Define.
10422         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
10423         (new_omp_context): Add is_combined_parallel argument.
10424         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
10425         new_omp_context caller.
10426         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
10427         Adjust gimplify_scan_omp_clauses callers.
10428         (omp_is_private): Issue errors if iteration variable is firstprivate
10429         or reduction in the current context.
10430         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
10431         on combined parallel workshare constructs.
10432
10433 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
10434
10435         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
10436         (gcc-options.o): New rule.
10437
10438         * optc-gen.awk: Protect variables for gcc-options.o with
10439         #ifdef GCC_DRIVER/#endif.
10440
10441 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
10442
10443         Fix PR tree-optimization/27373
10444         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
10445          (forward_propagate_addr_expr): Update call.
10446
10447 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
10448
10449         * doc/options.texi: Move the Negative option.
10450
10451 2006-05-16  Richard Guenther  <rguenther@suse.de>
10452
10453         PR tree-optimization/22303
10454         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
10455         from STRING_CSTs.
10456         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
10457         ccp_fold did not simplify the statement.
10458
10459 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
10460
10461         PR driver/26885
10462         * Makefile.in (GCC_OBJS): New.
10463         (OBJS-common): Add opts-common.o.
10464         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
10465         (cpp$(exeext)): Likewise.
10466         (gcc.o): Also depend on opts.h.
10467         (opts-common.o): New.
10468
10469         * common.opt (gcoff): Add Negative(gdwarf-2).
10470         (gdwarf-2): Add Negative(gstabs).
10471         (gstabs): Add Negative(gstabs+).
10472         (gstabs+): Add Negative(gvms).
10473         (gvms): Add Negative(gxcoff).
10474         (gxcoff): Add Negative(gxcoff+).
10475         (gxcoff+): Add Negative(gcoff).
10476         * config/i386/i386.opt (m32): Add Negative(m64).
10477         (m64): Add Negative(m32).
10478
10479         * doc/options.texi: Document the Negative option.
10480
10481         * gcc.c: Include "opts.h".
10482         (main): Call prune_options after expandargv.
10483
10484         * optc-gen.awk: Generate common declarations for all flag
10485         variables in options.c. Output the neg_index field.
10486
10487         * opts.c (find_opt): Moved to ...
10488         * opts-common.c: Here. New file.
10489
10490         * opts.h (cl_option): Add a neg_index field.
10491         (find_opt): New.
10492         (prune_options): Likewise.
10493
10494 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
10495
10496         PR middle-end/27573
10497         * omp-low.c (expand_omp_parallel): Don't assert
10498         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
10499         instead search for it.
10500
10501         PR c/27499
10502         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
10503         is signed.
10504
10505 2006-05-16  Andreas Schwab  <schwab@suse.de>
10506
10507         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
10508         defmac.
10509
10510 2006-05-15  Roger Sayle  <roger@eyesopen.com>
10511
10512         PR target/26600
10513         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
10514         integer constants other than zero are only legitimate on TARGET_64BIT.
10515         <CONST_VECTOR> Only zero vectors are legitimate.
10516         (ix86_cannot_force_const_mem): Integral and vector constants can
10517         always be put in the constant pool.
10518
10519 2006-05-16  DJ Delorie  <dj@redhat.com>
10520
10521         * crtstuff.c (__dso_handle): Set section from
10522         TARGET_LBIGCC_SDATA_SECTION if defined.
10523         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
10524         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
10525
10526 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
10527
10528         PR target/27599
10529         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
10530         host_xmake_file.
10531
10532 2006-05-16  Ben Elliston  <bje@au.ibm.com>
10533
10534         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
10535
10536 2006-05-15  Per Bothner  <per@bothner.com>
10537
10538         * tree.c: (last_annotated_node): Use source_locus typedef.
10539         This permits bootstrapping with --enable-mapped-location.
10540
10541 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
10542
10543         PR tree-optimization/26830
10544         * tree-into-ssa.c (struct ssa_name_info): Add age field.
10545         (info_for_ssa_name, current_info_for_ssa_name_age,
10546         blocks_to_update): New variables.
10547         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
10548         (clear_ssa_name_info, initialize_flags_in_bb,
10549         mark_block_for_update): New functions.
10550         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
10551         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
10552         prepare_def_site_for): Use mark_block_for_update.
10553         (mark_def_interesting): Assert that the processed block is marked in
10554         blocks_to_update.  Do not take blocks argument.
10555         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
10556         argument.
10557         (rewrite_update_init_block, rewrite_update_stmt): Only process
10558         blocks with statements to rewrite.
10559         (delete_update_ssa): Do not clear SSA_NAME_AUX.
10560         (update_ssa): Initialize and free blocks_to_update.  Do not
10561         clear flags on statements.  Do not use blocks bitmap.
10562         * tree.h (SSA_NAME_AUX): Removed.
10563         (struct tree_ssa_name): Removed aux field.
10564         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
10565
10566 2006-05-15  Richard Guenther  <rguenther@suse.de>
10567
10568         PR tree-optimization/27603
10569         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
10570         Do computations in original type.
10571
10572 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
10573
10574         * see.c: Code style changes such as redundant paranthesis,
10575         redundant intialization of local variables etc.
10576         (see_main): Declared now as static.
10577         * doc/invoke.texi: Update that -fsee is not enabled by
10578         default at -O3.
10579
10580 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
10581
10582         * omp-low.c (check_omp_nesting_restrictions): New function.
10583         (scan_omp_1): Call it.
10584
10585         PR middle-end/27416
10586         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
10587         construct, return *VAR.
10588
10589 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
10590
10591         PR rtl-optimization/27406
10592         * bt-load.c (migrate_btr_def): Skip the block having abnormal
10593         edges.
10594
10595 2006-05-14  Roger Sayle  <roger@eyesopen.com>
10596
10597         PR rtl-optimization/27538
10598         * combine.c (expand_compound_operation): Call gen_lowpart
10599         before calling simplify_shift_const.
10600
10601 2006-05-14  Roger Sayle  <roger@eyesopen.com>
10602
10603         PR rtl-optimization/22563
10604         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
10605         a fixed width bitfield, always force the intermediates into psuedos.
10606
10607 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
10608
10609         PR 27501
10610         * mkconfig.sh: Use operator = instead of == for test.
10611
10612 2006-05-13  Nick Clifton  <nickc@redhat.com>
10613
10614         * dwarf2out.c (dbx_reg_number): Check return value from
10615         LEAF_REG_REMAP and only use it if it is valid.
10616         (multiple_reg_loc_descriptor): Likewise.
10617
10618 2006-05-13  Richard Guenther  <rguenther@suse.de>
10619
10620         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
10621         host_xmake_file.
10622
10623 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
10624
10625         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
10626         information attached to non-INSNs such as NOTEs.
10627         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
10628
10629 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
10630
10631         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
10632         On contraint.
10633         * config/s390/s390.md: Adjust comment describing On constraint.
10634
10635 2006-05-11  Jan Hubicka  <jh@suse.cz>
10636
10637         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
10638         to be output at -O0.
10639
10640 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10641
10642         PR middle-end/27384
10643         * fold-const.c (size_binop): Move sanity check for arguments to
10644         the beginning of the function.
10645
10646         PR middle-end/27488
10647         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
10648         expression.
10649
10650 2006-05-11  Richard Guenther  <rguenther@suse.de>
10651
10652         PR middle-end/27529
10653         * fold-const.c (fold_unary): Handle intermediate conversion
10654         to a pointer type like intermediate conversion to an integer
10655         type in folding of (T1)(T2)var to var.
10656         Match the code to the comment in the final conversion for
10657         (T1)(T2)var to (T1)var regarding to type precision.  Rather
10658         than disallow T1 being of pointer type, assert that both T1
10659         and var are of pointer type or not.  Make sure not to fall
10660         over the frontends lazyness wrt array to pointer decay though.
10661
10662 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
10663
10664         * arm.c (arm_struct_value_rtx): Delete.
10665         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
10666         (arm_init_cumulative_args): Always initialize nregs to zero.
10667
10668 2006-05-10  Richard Guenther  <rguenther@suse.de>
10669
10670         PR tree-optimization/27532
10671         * tree-object-size.c (plus_expr_object_size): Fix typo.
10672
10673 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
10674
10675         PR target/24949
10676         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
10677         ashrdi_const, ashrdi3): Use a scratch register.
10678
10679 2006-05-10  Richard Guenther  <rguenther@suse.de>
10680
10681         PR tree-optimization/27302
10682         * fold-const.c (operand_equal_p): For two comparisons,
10683         try comparison of one comparison code swapped if that yields
10684         the same code.
10685
10686 2006-05-10  Ben Elliston  <bje@au.ibm.com>
10687
10688         * tree-pretty-print.c (pretty_print_string): No need to handle
10689         '\0' as a special character.
10690
10691         * tree.h: Include "hashtab.h".
10692         (iterative_hash_expr): Use hashval_t in its prototype.
10693         * Makefile.in (TREE_H): Add $(HASHTAB_H).
10694
10695 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
10696
10697         PR bootstrap/26872
10698         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
10699         (hppa*64*-*-hpux11*): Ditto.
10700         (hppa[12]*-*-hpux11*): Ditto.
10701
10702 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
10703
10704         PR target/26545
10705         * config/rs6000/aix41.h (TARGET_64BIT): Define.
10706
10707 2006-05-09  Michael Matz  <matz@suse.de>
10708
10709         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
10710         host_extra_gcc_objs and host_xmake_file.
10711         (<*-*-linux*>): Don't overwrite host_xmake_file.
10712         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
10713         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
10714         (host_detect_local_cpu): Declare.
10715         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
10716         * config/i386/i386.c (override_options): Handle -mtune=native
10717         as -mtune=generic.
10718         * config/i386/x-i386: New file.
10719         * config/i386/driver-i386.c: New file.
10720         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
10721         cpu-type "native".
10722
10723 2006-05-09  Dirk Mueller  <dmueller@suse.de>
10724         Richard Guenther  <rguenther@suse.de>
10725
10726         PR middle-end/27498
10727         * fold-const.c (fold_read_from_constant_string): Relax check
10728         for matching types to matching modes.
10729
10730 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
10731
10732         PR rtl-optimization/27335
10733         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
10734         loops.
10735
10736 2006-05-08  Chao-ying Fu  <fu@mips.com>
10737             Richard Sandiford  <richard@codesourcery.com>
10738
10739         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
10740         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
10741         * config/mips/mips.md (UNSPEC_SCC): New constant.
10742         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
10743         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
10744         (mips_emit_compare): Use it.
10745         (mips_expand_vcondv2sf): New function.
10746
10747 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
10748
10749         Fix PR tree-optimization/27093
10750         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
10751         renaming when they become not-used_alone.
10752
10753 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10754
10755         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
10756         relocation and relocation stubs.
10757
10758 2006-05-08  Eric Christopher  <echristo@apple.com>
10759
10760         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
10761         section for ppc.
10762
10763 2006-05-08  Jan Hubicka  <jh@suse.cz>
10764
10765         PR middle-end/24561
10766         * cgraphunit.c (decide_is_function_needed): When not optimizing even
10767         unused static functions are needed.
10768
10769 2006-05-08  Roger Sayle  <roger@eyesopen.com>
10770
10771         PR target/27158
10772         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
10773         of a reg_equiv_constant if the result is a legitimate constant.
10774
10775 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
10776
10777         PR target/27277
10778         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
10779         standard 80387 constants, raise the cost to prevent
10780         compress_float_constant() to generate load from memory.
10781
10782 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
10783
10784         * config/arm/constraints.md (c): Fix a typo.
10785
10786         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
10787         typos.
10788
10789 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
10790
10791         PR target/24879
10792         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
10793         inline function.
10794         (_mm_mwait): Likewise.
10795
10796         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
10797         "mwait".
10798         (sse3_monitor): Make it 32bit only.
10799         (sse3_monitor64): New. 64bit monitor.
10800
10801 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10802
10803         PR target/27421
10804         * config/i386/i386.c (classify_argument): Skip fields with invalid
10805         types.
10806
10807 2006-05-07  Richard Guenther  <rguenther@suse.de>
10808
10809         PR tree-optimization/27409
10810         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10811         Do not try to find zero-sized subvars.
10812
10813 2006-05-07  Richard Guenther  <rguenther@suse.de>
10814
10815         PR tree-optimization/27136
10816         * tree-ssa-loop-niter.c (get_val_for): Correct function
10817         comment, assert requirements.
10818         (loop_niter_by_eval): Stop processing if the iterated
10819         value did not simplify.
10820
10821 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
10822
10823         * opts.c (flag_see): remove its setting at -O3.
10824
10825 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
10826
10827         * genpeep.c (main): Make insn-peep.c depend on flags.h.
10828         * arm/constraints.md: New file.
10829         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
10830         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
10831         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
10832         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
10833         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
10834         (EXTRA_MEMORY_CONSTRAINT): Likewise.
10835         * arm.md: Include constraints.md.
10836         (thumb_movsi_insn): Use satisfies_constraint_J.
10837         (movhi, movqi): Use satisfies_constraint_I.
10838
10839 2006-04-29 Anatoly Sokolov <aesok@post.ru>
10840
10841         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
10842         for atmeg a645 device.
10843
10844 2006-05-06   Richard Guenther  <rguenther@suse.de>
10845
10846         PR tree-optimization/27151
10847         * tree-vect-transform.c (vectorizable_condition): Punt on
10848         values that have a different type than the condition.
10849
10850 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
10851
10852         PR/21391
10853         * c-parser.c (c_parser_cast_expression): Only insert casts into
10854         hash table if pointer.
10855         * function.c (used_types_insert_helper): Rename from
10856         used_types_insert.
10857         (used_types_insert): Call used_types_insert_helper.
10858         * function.h (used_types_insert): Accept only one argument.
10859
10860 2006-05-05  David Edelsohn  <edesohn@gnu.org>
10861
10862         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
10863         scratch with output modifier.
10864
10865 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
10866
10867         PR target/26481
10868         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
10869         with output modifier.
10870
10871 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
10872
10873         PR target/26765
10874         * config/mips/mips.c (mips_symbolic_address_p): Return true
10875         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
10876         SYMBOL_GOTTPREL, and SYMBOL_TLS.
10877
10878 2006-05-04  Richard Guenther  <rguenther@suse.de>
10879
10880         PR tree-optimization/14287
10881         PR tree-optimization/14844
10882         PR tree-optimization/19792
10883         PR tree-optimization/21608
10884         PR tree-optimization/27090
10885         * tree-ssa-pre.c (try_combine_conversion): New function.
10886         (compute_avail): After constructing the value-handle
10887         expression, use try_combine_conversion to combine NOP_EXPRs
10888         with previous value-handle expressions and use the result if it
10889         is available.
10890
10891 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
10892
10893         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
10894
10895 2006-05-04  Jan Hubicka  <jh@suse.cz>
10896
10897         PR middle-end/25962
10898         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
10899
10900 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
10901
10902         * config/bfin/predicates.md (const01_rtx): Tell generator programs
10903         that this only matches CONST_INTs.  All users changed to VOIDmode
10904         operands.
10905
10906         * config/bfin/bfin.c: Include "optabs.h".
10907         (bfin_rtx_costs): Some costs for vector operations, to allow combine
10908         to do more work.
10909         (enum bfin_builtins): Add a number of fractional and vector builtins.
10910         (bfin_init_builtins): Likewise.
10911         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
10912         (safe_vector_operand, bfin_expand_binop_builtin,
10913         bfin_expand_unop_builtin): New functions.
10914         (bfin_expand_builtin): Handle the new builtins.
10915         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10916         __ADSPBLACKFIN__.
10917
10918 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
10919
10920         * see.c: New file.
10921         * Makefile.in (OBJS-common): Add see.o.
10922         (see.o): Add dependencies.
10923         * common.opt (fsee): New flag for the see optimization was added.
10924         * opts.c (flag_see): Initialized.
10925         * passes.c (init_optimization_passes, pass_see): New pass.
10926         * rtl.h (see_main): Declaration as extern.
10927         * timevar.def (TV_SEE): New.
10928         * tree-pass.h (pass_see): Declaration as extern.
10929         * invoke.texi (-fsee): Document.
10930         * recog.c (validate_simplify_insn): New function.
10931         * recog.h (validate_simplify_insn): Declaration as extern.
10932         * df-problems.c (df_chain_dump): Check for NULL.
10933
10934 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
10935             Daniel Berlin  <dberlin@dberlin.org>
10936
10937         * cfgrtl.c (insert_insn_bb_end_new): New function.
10938         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
10939
10940 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
10941
10942         * df.h (struct web_entry): Moved from web.c.
10943         (union_defs): Declaration as extern.
10944         (unionfind_root): Likewise.
10945         (unionfind_union): Likewise.
10946         * web.c (struct web_entry): Moved to df.h.
10947         (unionfind_root): Remove static declaration.
10948         (unionfind_union): Likewise.
10949         (union_defs): Likewise and generalize to use callback function.
10950         (web_main): Update arguments for union_defs function call.
10951
10952 2006-05-04  Richard Guenther  <rguenther@suse.de>
10953
10954         PR tree-optimization/26447
10955         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
10956         produce SSA_NAME copies before the store stmt to avoid
10957         breaking exception handling.
10958
10959 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
10960
10961         PR middle-end/27388
10962         * gimplify.c (omp_is_private): If var is shared in some outer context,
10963         return false instead of true.  Stop searching on parallel context
10964         boundary.
10965
10966 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
10967
10968         PR java/8260
10969         * coverage.c: Use get_gcov_unsigned_t() instead of
10970         unsigned_type_node all over.
10971
10972 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
10973
10974         PR tree-optimization/27381
10975         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
10976         maintain the same immediate_use links.
10977         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
10978         node rather than segfaulting.
10979
10980 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
10981
10982         PR fortran/27395
10983         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
10984         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
10985         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
10986
10987 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
10988
10989         Fix PR tree-optimization/26626
10990         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
10991         always.
10992         * tree-ssa-operands.c (access_can_touch_variable): Allow
10993         typecasting through union pointers.
10994
10995 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
10996
10997         PR c++/26943
10998         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
10999         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
11000         to find if var will be a global variable even in the nested context.
11001         (omp_copy_decl): Only check for global variable at the end, it might
11002         be overridden in outer contexts.
11003         (scan_sharing_clauses): For global variables don't create a field.
11004         (lower_rec_input_clauses): Do nothing for global shared variables.
11005         Emit a barrier at the end of ILIST if there were any decls in both
11006         firstprivate and lastprivate clauses.
11007         (lower_send_clauses): Do nothing for global variables except for
11008         COPYIN.
11009
11010 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
11011
11012         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
11013         of the correct signedness is returned.
11014
11015 2006-05-02  Jeff Law  <law@redhat.com>
11016
11017         PR tree-optimization/27364
11018         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
11019         multiply expressions.
11020
11021 2006-05-02  Tom Tromey  <tromey@redhat.com>
11022
11023         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
11024
11025 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
11026
11027         PR target/27387
11028         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
11029         -mthumb -fPIC are used.
11030
11031 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
11032             Joshua Kinard  <kumba@gentoo.org>
11033
11034         PR target/25871
11035         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
11036         with 64-bit pointers.
11037
11038 2006-05-02  Paul Brook  <paul@codesourcery.com>
11039
11040         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
11041         and pool overlap.
11042         (create_fix_barrier): Check that a suitable barrier location is
11043         found.
11044         (arm_reorg): Include ftmp->address in allowable range of addresses.
11045
11046 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
11047
11048         PR ada/27366
11049         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
11050         on Cygwin.
11051
11052 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
11053
11054         PR middle-end/27337
11055         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
11056         around RESULT_DECL for result passed by reference.
11057         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
11058         * omp-low.c (use_pointer_for_field): Don't look at
11059         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
11060         (scan_omp_1): Call remap_decl on RESULT_DECLs.
11061         (lower_rec_input_clauses): Don't allocate VLA memory for the second
11062         time or var for passing by reference for
11063         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
11064         TREE_ADDRESSABLE variables when passing by reference.
11065
11066         * omp-low.c (dump_omp_region): Fix output formatting.
11067
11068         PR middle-end/27328
11069         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
11070         (expand_omp_parallel): Likewise.
11071         * tree-cfg.c (move_sese_region_to_fn): Likewise.
11072
11073         PR middle-end/27325
11074         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
11075         on statement list containing also constructors and destructors.
11076         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
11077
11078         PR middle-end/27310
11079         * except.c (duplicate_eh_regions): Fix clearing of
11080         cfun->eh->region_array entries.
11081
11082 2006-05-01  DJ Delorie  <dj@redhat.com>
11083
11084         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
11085         build!=host.
11086         (gcc_cv_objdump): Likewise.
11087         * configure: Regenerated.
11088
11089 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
11090
11091         PR target/27374
11092         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
11093         templates for case 3 and 4.
11094
11095 2006-05-01  DJ Delorie  <dj@redhat.com>
11096
11097         * vec.c: Include bconfig.h when appropriate.
11098         * Makefile.in (build/vec.o): Adjust dependencies.
11099         * mkconfig.sh: Make sure config.h isn't used for build machine
11100         compiles.
11101
11102 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
11103
11104         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
11105         variables.
11106         (mark_phi_for_rewrite): New function.
11107         (insert_phi_nodes_for, mark_use_interesting): Call
11108         mark_phi_for_rewrite.
11109         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
11110         (update_ssa): Initialize and free phis_to_rewrite.
11111
11112 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
11113
11114         PR rtl-optimization/27291
11115         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
11116         folded to a constant.
11117
11118 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
11119
11120         PR tree-optimization/27283
11121         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
11122         not whole # of iteration descriptions.
11123         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
11124         uses abnormal ssa name.
11125         (niter_for_single_dom_exit): Ditto.
11126         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
11127         return just the number of iterations.
11128
11129 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
11130
11131         PR tree-optimization/27144
11132         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
11133         (record_estimate): Only record constant upper bound.
11134         (infer_loop_bounds_from_undefined): Call
11135         compute_estimated_nb_iterations just once.
11136         (proved_non_wrapping_p): Renamed to ...
11137         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
11138         (convert_step_widening, scev_probably_wraps_p): Call
11139         n_of_executions_at_most instead of proved_non_wrapping_p.
11140         (substitute_in_loop_info): Do not replace values in bounds.
11141         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
11142         comments.
11143
11144 2006-05-01  Richard Henderson  <rth@redhat.com>
11145
11146         PR c/27358
11147         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
11148         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
11149         CPP_PRAGMA.
11150
11151 2006-05-01  Roger Sayle  <roger@eyesopen.com>
11152
11153         * c-typeck.c (parser_build_binary_op): Don't call the function
11154         unsigned_conversion_warning to spot operand/result type overflow.
11155         (build_binary_op): Instead, call convert_and_check instead of
11156         convert to report the problem when the operands are promoted.
11157         * c-common.c (unsigned_conversion_warning): Make static.
11158         * c-common.h (unsigned_conversion_warning): Delete prototype.
11159
11160 2006-05-01  Richard Guenther  <rguenther@suse.de>
11161
11162         PR tree-optimization/26726
11163         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
11164         problem ...
11165         (find_interesting_uses_address): ... we work around here
11166         by folding INDIRECT_REFs in the substituted base.
11167
11168 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
11169
11170         * omp-low.c (dump_omp_region): Add newlines.
11171
11172 2006-04-30  Roger Sayle  <roger@eyesopen.com>
11173
11174         * common.opt (Woverflow): New command line option.
11175         * c-common.c (constant_expression_warning): Check warn_overflow.
11176         (overflow_waring): Pass OPT_Woverflow to warning.
11177         (unsigned_conversion_warning): Likewise.
11178         (convert_and_check): Likewise.
11179         * doc/invoke.texi: Document new command line option.
11180
11181 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
11182
11183         * config/rs6000/rs6000.c (rs6000_override_options): Enable
11184         TARGET_NO_FP_IN_TOC for section anchors.
11185         (optimization_options): Enable section anchors for all
11186         non-"Objective" languages.
11187
11188 2006-04-28  Eric Christopher  <echristo@apple.com>
11189
11190         * config/darwin-c.c (darwin_ms_struct): Move this
11191         (darwin_set_default_type_attributes): and this...
11192         * config/darwin.c: ... here.
11193         * config/darwin.h (darwin_ms_struct): Declare.
11194
11195 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
11196
11197         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
11198
11199 2006-04-28  Roger Sayle  <roger@eyesopen.com>
11200
11201         PR c/25309
11202         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
11203         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
11204         an unsigned HOST_WIDE_INT.
11205         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
11206         array index.
11207         (really_start_incremental_init): No need to call convert because
11208         bitsize_zero_node is already of type bitsizetype.
11209         (push_init_level): Extract the value of constructor_index as an
11210         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
11211         (process_init_element): Likewise.
11212
11213 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
11214
11215         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
11216         value before passing to make_relative_prefix.
11217
11218 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
11219
11220         PR middle-end/27260
11221         * builtins.c (expand_builtin_memset): Expand val in original mode.
11222
11223 2006-04-27  Eric Christopher  <echristo@apple.com>
11224
11225         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
11226         with #ifndef/#endif.
11227         * config/darwin-c.c (darwin_ms_struct): New.
11228         (darwin_pragma_ms_struct): Ditto.
11229         (darwin_set_default_type_attributes): Ditto.
11230         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
11231         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
11232         Register ms_struct pragma.
11233         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
11234         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
11235         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
11236         darwin_set_default_type_attributes if TARGET_MACHO.
11237
11238 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
11239
11240         PR tree-optimization/26854
11241         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
11242         * doc/tree-ssa.texi: Update immuse iterator documentation.
11243         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
11244         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
11245         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
11246         first_safe_imm_use, next_safe_imm_use): Remove.
11247         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
11248         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
11249         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
11250         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
11251         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
11252         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
11253         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
11254         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
11255         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
11256         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
11257         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
11258         (perfect_nestify): Use new iterator.
11259         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
11260         iterator.
11261         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
11262         (next_imm_name): New field in struct immediate_use_iterator_d.
11263         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
11264         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
11265         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
11266         * tree-cfg.c (replace_uses_by): Use new iterator.
11267         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
11268         * tree-ssa-operands.c (correct_use_link): Remove.
11269         (finalize_ssa_use_ops): No longer call correct_use_link.
11270
11271 2006-04-27  Stuart Hastings  <stuart@apple.com>
11272
11273         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
11274         * config/t-darwin (crt3.o): Use it.
11275         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
11276         'pmode', use Pmode instead of SImode for SYMBOL_REF.
11277         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
11278         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
11279         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
11280         support.
11281
11282 2006-04-27  Roger Sayle  <roger@eyesopen.com>
11283
11284         * expmed.c (store_fixed_bit_field): If we're not optimizing for
11285         size, force the intermediate into a new pseudo rather instead of
11286         performing both a bitwise AND and a bitwise IOR in memory.
11287
11288 2006-04-27  Richard Guenther  <rguenther@suse.de>
11289
11290         PR rtl-optimization/26685
11291         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
11292         this one "max-flow-memory-locations".
11293
11294 2006-04-27  Richard Guenther  <rguenther@suse.de>
11295
11296         PR tree-optimization/25148
11297         * tree-vrp.c (compare_values): Remove code dealing with
11298         comparisons against type min/max value.  Honour overflow
11299         and negative constants in code dealing with comparisons
11300         of plus and minus expressions.
11301         (value_inside_range): Use fold_binary with LE_EXPR and
11302         GE_EXPR rather than compare_values.
11303
11304 2006-04-27  Dirk Mueller  <dmueller@suse.de>
11305
11306         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
11307         prototype for SSE.
11308
11309 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
11310
11311         * basic-block.h (safe_insert_insn_on_edge): Removed.
11312         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
11313
11314 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
11315             Paolo Bonzini  <bonzini@gnu.org>
11316
11317         PR middle-end/27282
11318         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
11319         (simplify_and_const_int): Same.
11320
11321 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
11322
11323         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
11324
11325 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
11326
11327         PR c/26171
11328         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
11329         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
11330         cgraph_global_info_ready.
11331
11332         PR middle-end/26913
11333         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
11334
11335         PR c/25996
11336         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
11337         either decl or init is error_mark_node.
11338
11339         PR middle-end/25989
11340         * tree-flow.h (struct omp_region): Add sched_kind.
11341         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
11342         instead of extracting omp for data.
11343         (expand_omp_for): Save extracted sched_kind.
11344
11345 2006-04-25  Roger Sayle  <roger@eyesopen.com>
11346
11347         * expmed.c (store_bit_field): Also check whether the bitsize is
11348         valid for the machine's "insv" instruction before moving the
11349         target into a pseudo for use with the insv.
11350         * config/i386/predicates.md (const8_operand): New predicate.
11351         * config/i386/i386.md (extv, extzv, insv): Use the new
11352         const8_operand predicate where appropriate.
11353
11354 2006-04-25  DJ Delorie  <dj@redhat.com>
11355
11356         * doc/install.texi (Specific): Clarify that this is not a list of
11357         supported hosts or targets.
11358
11359 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
11360
11361         PR rtl-optimization/26725
11362         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
11363         block's BB_DIRTY flag.
11364
11365 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
11366
11367         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
11368         are no branches.
11369
11370         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
11371         to print an integer.
11372
11373 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
11374
11375         * varasm.c (align_variable): New function.
11376         (get_block_for_decl): Apply align_variable to DECL before
11377         calculating section information.
11378         (assemble_variable): Split out alignment computation.
11379
11380 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
11381
11382         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
11383         machines.
11384
11385 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
11386
11387         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
11388         MODE_PARTIAL_INT mode.
11389         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
11390         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
11391         for CONST_INTs.
11392         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
11393         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
11394         V2PDImode.
11395         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
11396         New predicates.
11397         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
11398         New constants.
11399         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
11400         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
11401         MACFLAG_IH): Likewise.
11402         (movstricthi_1): Renamed from "*movstricthi".
11403         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
11404         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
11405         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
11406         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
11407         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
11408         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
11409         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
11410         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
11411         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
11412         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
11413         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
11414         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
11415         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
11416         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
11417         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
11418
11419         * doc/rtl.texi (ss_ashift): Improve wording.
11420
11421 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
11422
11423         * dwarf2out.c (verify_marks_clear): New.
11424         (prune_unused_types): Call verify_marks_clear initially, not
11425         prune_unmark_dies.
11426
11427 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
11428
11429         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
11430         * doc/rtl.texi: Document them.
11431         * simplify-rtx.c (simplify_unary_operation,
11432         simplify_binary_operation_1): Don't abort when we see them.
11433
11434 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
11435
11436         Revert:
11437         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
11438         * configure.ac: Completely disregard languages that are not
11439         enabled.
11440         * configure: Regenerated.
11441
11442 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
11443         Richard Guenther  <rguenther@suse.de>
11444
11445         PR tree-optimization/27236
11446         * tree-inline.c (copy_body_r): Make sure to copy
11447         TREE_THIS_VOLATILE flag.
11448
11449 2006-04-24  Richard Guenther  <rguenther@suse.de>
11450
11451         PR middle-end/26869
11452         * tree-complex.c (update_parameter_components): Don't handle
11453         unused parameters which have no default def.
11454
11455 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
11456         Richard Guenther  <rguenther@suse.de>
11457
11458         PR tree-optimization/27218
11459         * tree-inline.c (expand_call_inline): Strip useless type
11460         conversions for the return slot address.
11461
11462 2006-04-24  Richard Guenther  <rguenther@suse.de>
11463
11464         * cfgloop.h (struct loops): Remove unused field array.  Reorder
11465         state after num.
11466         (LOOP_PREFETCH): Remove.
11467
11468 2006-04-24  Richard Guenther  <rguenther@suse.de>
11469
11470         PR tree-optimization/22525
11471         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
11472         variable, adjust types of generated expressions.
11473
11474 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
11475
11476         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
11477         (tree-vect-patterns.o): Likewise.
11478         (jump.o): Likewise.
11479         (cselib.o): Likewise.
11480         (loop-doloop.o): Likewise.
11481         (regclass.o): Likewise.
11482         (reload1.o): Likewise.
11483         (explow.o): Replace target.h with $(TARGET_H).
11484         (ipa-prop.o): Likewise.
11485         (ipa-cp.o): Likewise.
11486         (ipa-inline.o): Likewise.
11487         (reorg.o): Likewise.
11488         (reg-stack.o): Likewise.
11489
11490 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
11491
11492         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
11493
11494 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
11495
11496         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
11497
11498         * configure.ac: Completely disregard languages that are not
11499         enabled.
11500         * configure: Regenerated.
11501
11502         PR c++/26534
11503         * c-common.h (c_build_bitfield_integer_type): Declare.
11504         * c-decl.c (c_build_bitfield_integer_type): Move to ...
11505         * c-common.c (c_build_bitfield_integer_type): ... here.
11506
11507 2006-04-23  Roger Sayle  <roger@eyesopen.com>
11508
11509         PR target/21283
11510         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
11511         a SImode SUBREG of a floating point register after no_new_pseudos.
11512
11513 2006-04-23  Roger Sayle  <roger@eyesopen.com>
11514
11515         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
11516         identify potentially eliminable registers to additionally catch
11517         VIRTUAL_INCOMING_ARGS_REGNUM.
11518         (addsi3): Update the conditions on when to use addsi_small_int.
11519
11520 2006-04-23  Roger Sayle  <roger@eyesopen.com>
11521
11522         PR target/16641
11523         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
11524         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
11525         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
11526
11527 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
11528
11529         * fold-const.c (range_predecessor): Use operand_equal_p
11530         as the predicate for equality.
11531         (range_successor): Likewise.
11532
11533 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
11534
11535         Revert:
11536         * config/soft-fp/op-common.h: Fix a typo.
11537
11538 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
11539
11540         PR libmudflap/26864
11541         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
11542         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
11543
11544 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
11545
11546         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
11547         Fix comment typos.
11548         * doc/tm.texi: Fix a typo.
11549
11550 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
11551
11552         * dwarf2out.c (struct die_struct): Document that die_sib makes
11553         a circular linked list.
11554         (FOR_EACH_CHILD): New.
11555         (reverse_die_lists): Delete.
11556         (reverse_all_dies): Delete.
11557         (add_dwarf_attr): Correct documentation.
11558         (remove_child_with_prev): New.
11559         (remove_child_TAG): Update for change to die_struct, use
11560         remove_child_with_prev.
11561         (add_child_die): Update for change to die_struct.
11562         (splice_child_die): Use remove_child_with_prev and add_child_die.
11563         (print_die): Use FOR_EACH_CHILD.
11564         (die_checksum): Likewise.
11565         (assign_symbol_names): Likewise.
11566         (output_location_lists): Likewise.
11567         (build_abbrev_table): Likewise.
11568         (calc_die_sizes): Likewise.
11569         (mark_dies): Likewise.
11570         (unmark_dies): Likewise.
11571         (unmark_all_dies): Likewise.
11572         (output_die): Likewise.
11573         (prune_unused_types_mark): Likewise.
11574         (prune_unused_types_walk): Likewise.
11575         (same_die_p): Update for change to die_struct.
11576         (break_out_includes): Likewise.
11577         (prune_unused_types_prune): Likewise.
11578         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
11579         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
11580         it's already clear.
11581         (dwarf2out_finish): Don't call reverse_all_dies.
11582
11583 2006-04-21  Eric Christopher  <echristo@apple.com>
11584
11585         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
11586         in comments and function names.
11587
11588 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11589
11590         PR c/25875
11591         * c-typeck.c (digest_init): Robustify.
11592
11593         * c-typeck.c (pop_init_level): Simplify.
11594
11595 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
11596
11597         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
11598
11599 2006-04-21  Paul Brook  <paul@codesourcery.com>
11600
11601         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
11602         hardware floating point.
11603
11604 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
11605
11606         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
11607         NON_FLOAT_REGS.
11608
11609 2006-04-21  Nick Clifton  <nickc@redhat.com>
11610
11611         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
11612         OPT_EXTRA_PARTS.
11613
11614 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
11615
11616         PR target/27230
11617         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
11618         C++ lang type in traceback table for Objective-C++.
11619
11620         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
11621
11622 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
11623
11624         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
11625
11626 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11627
11628         PR mudflap/26789
11629         * tree-mudflap.c (mudflap_finish_file): Skip function when there
11630         were errors.  Remove check for erroneous objects.
11631
11632 2006-04-20  Jeff Law  <law@redhat.com>
11633
11634         PR tree-optimization/26854
11635         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
11636         checking for zero or one use.
11637         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
11638         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
11639         * tree-ssa-reassoc.c (negate_value): Similarly.
11640         (reassociate_bb): Similarly.
11641
11642 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
11643
11644         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
11645         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
11646         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
11647
11648 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
11649
11650         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
11651         fp regs if the last fp arg doesn't fit in regs.
11652
11653 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11654
11655         PR target/27182
11656         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
11657         that the last insn has the REG_INC note.
11658
11659 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
11660             Nathan Sidwell  <nathan@codesourcery.com>
11661
11662         PR c/26774
11663         * stor-layout.c (update_alignment_for_field): Do not align
11664         ERROR_MARK nodes.
11665         (place_union_field): Place union field at the start of the union.
11666         (place_field): Move ERROR_MARK check later, and use the current
11667         allocation position to maintain monotonicity.
11668
11669 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
11670
11671         * dominance.c: Include timevar.h.
11672         (calculate_dominance_info): Use TV_DOMINANCE.
11673         * timevar.def (TV_DOMINANCE): New timevar.
11674         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
11675
11676 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
11677
11678         PR rtl-optimization/14261
11679         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
11680         move would be an INSV insn.
11681         (noce_process_if_block): Don't optimize if the destination is a
11682         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
11683
11684 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
11685
11686         * config/s390/s390.md: Add comments with the instructions emitted
11687         by an insn pattern if macros are used.
11688
11689 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
11690
11691         PR rtl-optimization/26026
11692         * fold-const.c (fold_binary): Optimize div and mod where the divisor
11693         is a known power of two shifted left a variable amount.
11694
11695 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
11696
11697         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
11698         to hash table twice when the debug_str section has SECTION_MERGE.
11699
11700 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
11701
11702         * config/soft-fp: New directory.  From glibc.
11703         * config/soft-fp/t-softfp: New.
11704         * config/soft-fp/README: New.
11705         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
11706         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
11707         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
11708         (LIBGCC_DEPS): Add $(SFP_MACHINE).
11709         * config.gcc: Use rs6000/t-fprules-fpbit or
11710         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
11711         rs6000/t-fprules.
11712         * config/rs6000/sfp-machine.h: New.  Based on glibc.
11713         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
11714         New.
11715         * config/rs6000/t-fprules: Remove fp-bit rules.
11716         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
11717         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
11718         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
11719         (softfp_wrap_start, softfp_wrap_end): New.
11720
11721 2006-04-18  DJ Delorie  <dj@redhat.com>
11722
11723         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
11724
11725 2006-04-18  Devang Patel  <dpatel@apple.com>
11726
11727         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
11728
11729 2006-04-18  Nick Clifton  <nickc@redhat.com>
11730
11731         * config/sh/t-symbian: Add rule to build sh-c.o
11732         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
11733         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
11734         (sh_symbian_encode_section_info): Likewise.
11735
11736 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
11737
11738         * builtins.c (expand_builtin_strcmp): Cover label definition of
11739         do_libcall with HAVE_cmpstrnsi.
11740
11741 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
11742
11743         * function.c (temp_slots_at_level, max_slot_level): Use VEC
11744         instead of VARRAY.
11745         * function.h (temp_slot_p): New.
11746         (function): Change the type of x_used_temp_slots to
11747         VEC(temp_slot_p,gc) *.
11748
11749 2006-04-18  Nick Clifton  <nickc@redhat.com>
11750
11751         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
11752         flag_strength_reduce.
11753
11754         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
11755
11756 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
11757
11758         PR target/27117
11759
11760         Partial revert of revision 112637
11761         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
11762                     Dale Johannesen  <dalej@apple.com>
11763
11764         PR target/19653
11765         * regclass.c (struct reg_pref): Update documentation.
11766         (regclass): Set prefclass to NO_REGS if memory is the best option.
11767         (record_reg_classes): Cope with a prefclass set to NO_REGS.
11768
11769 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
11770
11771         PR tree-optimization/26821
11772         * tree-ssa-math-opts.c (get_constant_one): New.
11773         (insert_reciprocals): Use it.
11774
11775 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
11776
11777         * dwarf2out.c (free_AT): Delete.
11778         (remove_AT): Update string ref counts.
11779         (remove_child_TAG): Don't call free_die.
11780         (free_die): Delete.
11781         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
11782         or DW_TAG_GNU_EINCL.
11783         (prune_unused_types_walk_attribs): Reset string refcounts.
11784         (prune_unused_types_update_strings): New.
11785         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
11786         call free_die.  Do call prune_unused_types_update_strings.
11787         (prune_unused_types): Empty debug_str_hash.
11788
11789 2006-04-17  Roger Sayle  <roger@eyesopen.com>
11790
11791         * expr.c (expand_assignment): Optimize away no-op moves where the
11792         source and destination are equal and have no side-effects.
11793
11794 2006-04-17  Richard Guenther  <rguenther@suse.de>
11795
11796         PR target/26826
11797         * reload.c (push_reload): Guard calls to get_secondary_mem
11798         for memory subregs.
11799
11800 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
11801
11802         * alias.c (reg_base_value, old_reg_base_value): Change the
11803         type to VEC(rtx,gc) *.
11804         (REG_BASE_VALUE, find_base_value, record_set,
11805         init_alias_analysis): Use VEC instead of VARRAY.
11806
11807         * alias.c (alias_sets): Change the type to
11808         VEC(alias_set_entry,gc) *.
11809         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
11810         VEC instead of VARRAY.
11811         (last_alias_set): Remove.
11812
11813         * cgraph.h (cgraph_edge_p): New.
11814         Update the prototype of cgraph_function_versioning.
11815         * cgraphunit.c (cgraph_copy_node_for_versioning,
11816         cgraph_function_versioning): Use VEC instead of VARRAY.
11817         * ipa-cp.c (ipcp_insert_stage): Likewise.
11818
11819 2006-04-16  Roger Sayle  <roger@eyesopen.com>
11820
11821         PR target/26961
11822         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
11823         "A op B" or "A op C", we may need to convert A to the type of B and C.
11824
11825 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
11826
11827         * target.h (struct gcc_target): Add mode_rep_extended.
11828         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
11829         (init_num_sign_bit_copies_in_rep): Initialize it using
11830         mode_rep_extended.
11831         (truncate_to_mode): Use it.
11832         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
11833         * targhooks.h (default_mode_rep_extended): Declare it.
11834         * targhooks.c (default_mode_rep_extended): Define it.
11835         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
11836         default_mode_rep_extended.
11837         (TARGET_INITIALIZER): Include it.
11838         * doc/tm.texi (Misc): Document it.
11839         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
11840         (mips_truncated_to_mode): New function.
11841
11842 2006-04-16  Roger Sayle  <roger@eyesopen.com>
11843
11844         PR middle-end/25474
11845         * expr.c (compress_float_constant): Copy the narrow constant into
11846         a new pseudo before extending it to its final width.
11847
11848 2006-04-16  Roger Sayle  <roger@eyesopen.com>
11849             Andrew Pinski  <pinskia@gcc.gnu.org>
11850             Dale Johannesen  <dalej@apple.com>
11851
11852         PR target/24076
11853         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
11854         special case code to implement V8HImode and V16QImode with SSE2.
11855
11856 2006-04-15  Roger Sayle  <roger@eyesopen.com>
11857
11858         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
11859         trees are constructed with a suitable tree type.
11860
11861 2006-04-15  Roger Sayle  <roger@eyesopen.com>
11862
11863         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
11864         (integer_onep): Likewise.
11865         (integer_all_onesp): Likewise.
11866         (integer_pow2p): Likewise.
11867         (integer_nonzerop): Likewise.
11868         (real_zerop): Likewise.
11869         (real_onep): Likewise.
11870         (real_twop): Likewise.
11871         (real_minus_onep): Likewise.
11872         (int_size_in_bytes): Likewise.
11873         (host_integerp): Likewise.
11874
11875 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
11876
11877         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
11878         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
11879         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
11880
11881         * tree-ssa-structalias.h (alias_info): Remove num_references.
11882
11883 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11884
11885         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
11886         (output_bvb patterns): Likewise.
11887         * pa.c (output_bb): Use 'bb' insn for long branch case.
11888         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
11889         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
11890         1.  Correct length operand for alternatives 1 and 2.
11891         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
11892         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
11893
11894 2006-04-14  Roger Sayle  <roger@eyesopen.com>
11895
11896         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
11897         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
11898         were accidentally reverted by r112959.
11899
11900 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
11901
11902         PR middle-end/26823
11903         * except.h (eh_region_outermost): New prototype.
11904         * except.c (eh_region_outermost): New function.
11905         * tree-cfg.c (find_outermost_region_in_block): Use it.
11906
11907 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
11908
11909         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
11910         of VARRAY.
11911         * reload1.c (reg_equiv_memory_loc_varray): Rename to
11912         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
11913         (init_reload, reload): Use VEC instead of VARRAY.
11914         * reload.h: Update the prototype for
11915         reg_equiv_memory_loc_varray.
11916
11917 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
11918             Eric Botcazou  <ebotcazou@libertysurf.fr>
11919
11920         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
11921         register save area.
11922
11923 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
11924
11925         PR middle-end/27134
11926         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
11927         to expand fallback builtin function call.
11928
11929 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
11930
11931         PR middle-end/27095
11932         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
11933         and emit libcall here in case the builtin fails.
11934         (expand_builtin_strcmp): Always emit the libcall here on failure.
11935
11936 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
11937
11938         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
11939         * flow.c (reg_n_info): Change the type to
11940         VEC(reg_info_p,heap) *.
11941         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
11942         instead of VARRAY.
11943         * regs.h (reg_info_p): New.
11944         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
11945         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
11946         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
11947         instead of VARRAY.
11948
11949 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
11950
11951         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
11952         defaulting to 100.
11953         * params.h (MAX_SCHED_READY_INSNS): New macro.
11954         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
11955         past MAX_SCHED_READY_INSNS during the first scheduling pass.
11956         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
11957         the ready list for 1 cycle during the first scheduling pass.
11958         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
11959
11960 2006-04-13  Richard Henderson  <rth@redhat.com>
11961
11962         PR libgomp/26651
11963         * gimple-low.c (lower_omp_directive): Remove dead code.
11964         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
11965         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
11966         * omp-low.c (struct omp_region): Move to tree-flow.h.
11967         (root_omp_region): Export.
11968         (omp_regions, lookup_omp_region): Remove.
11969         (determine_parallel_type): Update for struct omp_region changes.
11970         (dump_omp_region): Dump regions with block numbers.
11971         (new_omp_region): Take type and block instead of stmt; malloc
11972         instead of ggc.
11973         (free_omp_region_1, free_omp_regions): New.
11974         (expand_parallel_call): Take entry_stmt as argument; update for
11975         changes to omp_region.
11976         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
11977         (remove_exit_barriers): New.
11978         (expand_omp_parallel): Update for struct omp_region changes.
11979         (expand_omp_synch): Likewise.
11980         (expand_omp): Likewise.
11981         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
11982         (expand_omp_for_static_chunk): Likewise.
11983         (expand_omp_for): Likewise.
11984         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
11985         (expand_omp_sections): Similarly, with GOMP_sections_end.
11986         (expand_omp_single): New.
11987         (build_omp_regions_1): Update for OMP_CONTINUE.
11988         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
11989         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
11990         OMP_SECTIONS_SECTIONS.
11991         (lower_omp_single_simple): Don't emit barrier here.
11992         (lower_omp_single_copy): Likewise.
11993         (lower_omp_single): Fix bindings, and lower to straightline now.
11994         (lower_omp_master, lower_omp_ordered): Likewise.
11995         (lower_omp_critical): Likewise.
11996         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
11997         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
11998         omp edges, free it afterward.
11999         (make_omp_sections_edges): Remove.
12000         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
12001         (move_stmt_r): Handle OMP_CONTINUE.
12002         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
12003         statement pointers to basic blocks.  Add type member.
12004         (root_omp_region, new_omp_region, free_omp_regions): Declare.
12005         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
12006         * tree-inline.c (estimate_num_insns_1): Likewise.
12007         * tree-pretty-print.c (dump_generic_node): Likewise.
12008         * tree-ssa-operands.c (get_expr_operands): Likewise.
12009         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
12010         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
12011         (OMP_CONTINUE): New.
12012         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
12013         (OMP_SECTIONS_SECTIONS): Remove.
12014         (OMP_SECTION_LAST): New.
12015         (OMP_RETURN_NOWAIT): New.
12016
12017 2006-04-13  Roger Sayle  <roger@eyesopen.com>
12018
12019         * fold-const.c (native_encode_vector, native_interpret_real):
12020         Correct obvious mistakes in the previous check-in.
12021
12022 2006-04-13  Roger Sayle  <roger@eyesopen.com>
12023
12024         * fold-const.c (native_encode_expr): New function to encode
12025         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
12026         or VECTOR_CST into a specified buffer.
12027         (native_encode_int): New function.
12028         (native_encode_real): New function.
12029         (native_encode_complex): New function.
12030         (native_encode_vector): New function.
12031         (native_interpret_expr): Inverse of native_encode_expr to convert
12032         a target representation into an INTEGER_CST, REAL_CST etc...
12033         (native_interpret_int): New function.
12034         (native_interpret_real): New function.
12035         (native_interpret_complex): New function.
12036         (native_interpret_vector): New function.
12037         (fold_view_convert_expr): New function to constant fold/evaluate
12038         a VIEW_CONVERT_EXPR of a suitable constant expression.
12039         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
12040         Change call of build1 to fold_build1 when constructing a
12041         VIEW_CONVERT_EXPR.
12042
12043 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
12044             Ulrich Weigand  <uweigand@de.ibm.com>
12045
12046         PR target/27006
12047         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
12048         to be even.
12049
12050 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
12051
12052         PR target/26459
12053         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
12054         optimize to lo_sum for DFmode if !TARGET_FPRS.
12055
12056 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
12057
12058         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
12059         delete_alias_info, compute_flow_sensitive_aliasing,
12060         group_aliases): Use VEC instead of VARRAY.
12061         * tree-ssa-structalias.c (update_alias_info): Likewise.
12062         * tree-ssa-structalias.h (alias_info): Change the type of
12063         processed_ptrs to VEC(tree,heap) *.
12064
12065 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
12066
12067         PR target/27060
12068         * config/sh/lib1funcs.h: New file, broken out of:
12069         * config/sh/lib1funcs.asm.
12070         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
12071         New macros.
12072         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
12073         * config/sh/lib1funcs-Os-4-200.asm: New file.
12074         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
12075         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
12076         (EXTRA_MULTILIB_PARTS): Include it.
12077         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
12078         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
12079         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
12080         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
12081         TARGET_SH2.
12082
12083 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
12084
12085         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
12086         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
12087         tpa_compact, root_var_init, type_var_init): Use VEC instead of
12088         VARRAY.
12089         * tree-ssa-live.h: Include vecprim.h.
12090         (tree_partition_associator_d): Change the type of
12091         first_partition to VEC(int,heap) *.
12092         (tpa_first_partition): Use VEC instead of VARRAY.
12093
12094         * Makefile.in (GTFILES): Move functions.h after tree.h.
12095         * function.c (reset_block_changes, record_block_change,
12096         check_block_change, free_block_changes): Use VEC instead of
12097         VARRAY.
12098         * function.h (function): Change the type of
12099         ib_boundaries_block to VEC(tree,gc) *.
12100         * tree-inline.c (copy_cfg_body): Initialize
12101         ib_boundaries_block to NULL instead of (varray_type) 0.
12102
12103 2006-04-12  Roger Sayle  <roger@eyesopen.com>
12104
12105         * expr.c (emit_group_store): Correct operand order in call to
12106         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
12107         a SUBREG_BYTE of zero.
12108
12109 2006-04-12  Richard Guenther  <rguenther@suse.de>
12110
12111         * profile.c (compute_branch_probabilities): Remove code
12112         encapsulated in !ir_type (), which are remanents of the
12113         removed RTL profiling code.
12114         * rtl-profile.c: Remove.
12115
12116 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
12117
12118         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
12119         magic NULL_RTX comment.
12120         (function_arg): Store entire fp arg to mem if any part should go
12121         on stack.
12122         (rs6000_arg_partial_bytes): Adjust for above change.
12123
12124 2006-04-11  Roger Sayle  <roger@eyesopen.com>
12125
12126         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
12127         if it hasn't been initialized by dwarf2out_init.
12128
12129 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
12130
12131         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
12132         symbolic constants in branch patterns.
12133
12134 2006-04-11  Roger Sayle  <roger@eyesopen.com>
12135
12136         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
12137
12138 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
12139
12140         PR rtl-optimization/27073
12141         * gcse.c (try_replace_reg): Revert last change.  Continue to search
12142         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
12143         on the former.
12144
12145 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
12146
12147         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
12148         aggregate types other than record and union types.
12149         (function_arg): Likewise.
12150         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
12151         small arrays.
12152         (function_value): In 64-bit mode, return objects that require it
12153         in FP registers.
12154
12155 2006-04-11  Roger Sayle  <roger@eyesopen.com>
12156
12157         * dwarf2out.c (premark_used_types): Remove problematic prototype.
12158
12159 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
12160
12161         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
12162
12163 2006-04-03  Jeff Law  <law@redhat.com>
12164
12165         PR/27087
12166         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
12167         alias information too.
12168
12169 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
12170
12171         * Makefile.in (gcc-cross): Add $(exeext) to target name.
12172
12173 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
12174
12175         PR/21391
12176         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
12177         (premark_used_types_helper): New.
12178         (premark_used_types): New.
12179         (gen_subprogram_die): Call premark_used_types.
12180         (prune_unused_types_walk): Do not prune perennial dies.
12181         * function.c (used_types_insert): New.
12182         * function.h (struct function): Add used_types_hash field.
12183         (used_types_insert): Add prototype.
12184         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
12185         * c-parser.c (c_parser_cast_expression): Save casted types in used
12186         types hash table.
12187
12188 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
12189
12190         PR target/26459
12191         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
12192         rs6000_explicit_options.float_gprs.
12193
12194 2006-04-10  Roger Sayle  <roger@eyesopen.com>
12195
12196         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
12197         from ix86_expand_vector_init_low_nonzero.  Take an additional
12198         one_var argument indicating which element is non-zero.  Support
12199         one_var != 0 for V4SFmode and V4SImode by permuting the result.
12200         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
12201         with one_var instead of ix86_expand_vector_init_low_nonzero.
12202
12203 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
12204
12205         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
12206         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
12207         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
12208         build/genextract.o): Depend on vecprim.h.
12209         * cfglayout.c, df-problems.c, function.c, genextract.c,
12210         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
12211         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
12212         vecprim.h.
12213         * vecprim.h: New.
12214
12215 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
12216
12217         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
12218         Declare VECs of this type.
12219         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
12220         (remove_children): Delete.
12221         (add_dwarf_attr): Use VEC routines.
12222         (add_AT_flag): Update for changes to add_dwarf_attr.
12223         (add_AT_int): Likewise.
12224         (add_AT_unsigned): Likewise.
12225         (add_AT_long_long): Likewise.
12226         (add_AT_vec): Likewise.
12227         (add_AT_string): Likewise.
12228         (add_AT_die_ref): Likewise.
12229         (add_AT_fde_ref): Likewise.
12230         (add_AT_loc): Likewise.
12231         (add_AT_loc_list): Likewise.
12232         (add_AT_addr): Likewise.
12233         (add_AT_lbl_id): Likewise.
12234         (add_AT_lineptr): Likewise.
12235         (add_AT_macptr): Likewise.
12236         (add_AT_offset): Likewise.
12237         (add_AT_range_list): Likewise.
12238         (get_AT): Use VEC_iterate.
12239         (remove_AT): Use VEC_ordered_remove.
12240         (free_die): Fold remove_children into here; have it use VEC_iterate.
12241         (print_die): Use VEC_iterate on attrs.
12242         (reverse_die_lists): Don't reverse attr lists.
12243         (die_checksum): Use VEC_iterate on attrs.
12244         (same_die_p): Likewise.
12245         (output_location_lists): Likewise.
12246         (build_abbrev_table): Likewise.
12247         (size_of_die): Likewise.
12248         (unmark_all_dies): Likewise.
12249         (output_abbrev_section): Likewise.
12250         (output_die): Likewise.
12251         (prune_unused_types_walk_attribs): Likewise.
12252
12253 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
12254
12255         * doc/install.texi (*-*-solaris2*): Point to the configure page.
12256
12257 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
12258
12259         PR debug/27057
12260         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
12261
12262 2006-04-09  Roger Sayle  <roger@eyesopen.com>
12263
12264         * expr.c (store_constructor): Don't bother clearing target if
12265         we're about to assign a vector to it using vec_init_optab.
12266
12267 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
12268
12269         * tree-ssa-alias.c (lhs_may_store_to): New function.
12270         (recalculate_used_alone): Handle LHS of calls.
12271
12272 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12273
12274         PR target/27034
12275         PR target/26508
12276         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
12277         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
12278         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
12279         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
12280         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
12281         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
12282         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
12283         stubs.  Add ".align 8" directives before all ".dword" directives.
12284         (GTHREAD_USE_WEAK): Revise comment.
12285         (TARGET_ATTRIBUTE_WEAK): Define.
12286         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
12287         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
12288         * stublib.c: New file.
12289
12290         PR target/26743
12291         PR target/11254
12292         PR target/10274
12293         * pa.md (cbranch patterns): Revise arguments used in calls to
12294         output_cbranch, output_bb and output_bvd.  Add long branch length
12295         attributes.
12296         (fbranch patterns): Handle long branches.
12297         (jump): Revise length check.  Revise arguments for output_lbranch call.
12298         Add long branch length attributes.
12299         (decrement_and_branch_until_zero): Add long branch length attributes.
12300         (output_movb, output_parallel_addb and output_parallel_movb patterns):
12301         Likewise.  Revise arguments for output_parallel_addb and
12302         output_parallel_movb calls.
12303         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
12304         output_parallel_movb and output_parallel_addb): Update prototypes.
12305         * pa.c (output_cbranch): Revise arguments.  Correct handling of
12306         nullification in long branches.
12307         (output_lbranch): Add new argument to control extraction of delay
12308         instruction.
12309         (output_bb): Handle long branches.
12310         (output_bvb, output_dbra, output_movb, output_parallel_movb,
12311         output_parallel_addb): Likewise.
12312
12313 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
12314
12315         PR rtl-optimization/27073
12316         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
12317         not REG_EQUIVs.
12318
12319 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
12320
12321         * tree.h (tree_memory_tag): Add old_used_alone.
12322         (SMT_OLD_USED_ALONE): New macro.
12323         * tree-ssa-alias.c (recalculate_used_alone): Stop
12324         marking things for renaming unnecessarily.
12325
12326 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
12327
12328         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
12329         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
12330         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
12331         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
12332         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
12333         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
12334         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
12335         spelling convensions.
12336         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
12337         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
12338         typos.  Follow spelling conventions.
12339
12340 2006-04-07  DJ Delorie  <dj@redhat.com>
12341
12342         * config/m32c/m32c.c (m32c_function_arg): Structures are always
12343         passed on the stack.
12344         (m32c_init_cumulative_args): When a function returns a structure,
12345         always pass the pointer to that return area on the stack.
12346         (m32c_function_arg_advance): Don't increment the parameter number
12347         if we're processing the returned structure pointer.
12348         (pushm_info): Reverse order of registers.
12349
12350 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
12351
12352         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
12353         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
12354         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
12355         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
12356         build_int_cst_type.
12357         * tree-chrec.c (chrec_fold_multiply_poly_poly,
12358         chrec_fold_multiply): Same.
12359         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
12360         force_expr_to_var_cost): Same.
12361         * tree-mudflap.c (mf_xform_derefs_1): Same.
12362         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
12363
12364 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
12365
12366         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
12367         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
12368         insn.
12369
12370 2006-04-07  Jan Hubicka  <jh@suse.cz>
12371
12372         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
12373
12374 2006-04-07  Richard Guenther  <rguenther@suse.de>
12375
12376         PR tree-optimization/26135
12377         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
12378         loads for store copy-prop.
12379         (copy_prop_visit_stmt): Likewise.
12380
12381 2006-04-05  Robert Millan  <robertmh@gnu.org>
12382
12383         * config/i386/linux.h: Add a comment to mark macros that are
12384         being overriden in config/k*bsd-gnu.h.
12385         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
12386         DYNAMIC_LINKER.
12387         * config/knetbsd-gnu.h: Ditto.
12388
12389 2006-04-06  Jan Hubicka  <jh@suse.cz>
12390
12391         PR profile/20815
12392         PR profile/26399
12393         * coverage.c (coverage_checksum_string): Reorganize loop to not read
12394         after buffer.
12395
12396 2006-04-06  Mike Stump  <mrs@apple.com>
12397
12398         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
12399         for HAVE_nonlocal_goto to be consistent.
12400         (expand_builtin_nonlocal_goto): Likewise.
12401         (expand_builtin_strcmp): Use #ifdef instead of #if
12402         for HAVE_cmpstrnsi to be consistent.
12403
12404 2006-04-05  DJ Delorie  <dj@redhat.com>
12405
12406         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
12407         vs m32c.
12408
12409 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
12410
12411         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
12412         got-relative addressing for anything but SImode.
12413
12414         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
12415         even if the calling function doesn't modify them.
12416
12417 2006-04-05  Richard Guenther  <rguenther@suse.de>
12418
12419         PR tree-optimization/26919
12420         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
12421         to cgraph_estimate_size_after_inlining.
12422
12423 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
12424
12425         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
12426
12427 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
12428
12429         PR tree-optimization/26996
12430         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
12431         VECTOR_TYPE variables.
12432
12433 2006-04-05  Richard Guenther  <rguenther@suse.de>
12434
12435         PR tree-optimization/26763
12436         * fold-const.c (fold_comparison): Move folding of
12437         PTR + CST CMP PTR + CST ...
12438         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
12439
12440 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
12441
12442         * doc/install.texi (Prerequisites): Refine some wording on
12443         bootstrapping and ksh.
12444         Move the version numbers of DejaGnu here from the testing section
12445         and fix casing of names.
12446         Fix markup and clarify wording for autogen requirements.
12447         Refer to GCJ instead of just java.
12448         Refer to SVN instead of CVS.
12449         Describe diffutils as useful instead of necessary.
12450         (Downloading the source): Refer to SVN instead of CVS.
12451         Adjust a link to our web site accordingly.
12452         (Configuration): Fix casing of Bison.
12453         (Building): Refer to SVN instead of CVS.
12454         Fix a sentence on the use of Bison and remove duplicate (and
12455         incorrect) version number of Bison requirement.
12456         Remove one redundant list of packages needed for building.
12457         (Specific): Avoid reference to CVS.
12458
12459 2006-04-04  Eric Christopher  <echristo@apple.com>
12460
12461         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
12462         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
12463         (rs6000_handle_struct_attribute): New.
12464         (rs6000_ms_bitfield_layout_p): Ditto.
12465
12466 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
12467
12468         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
12469         NULL for dso parameter to atexit_common.
12470
12471 2006-04-04  Eric Christopher  <echristo@apple.com>
12472
12473         * config/i386/i386.c (machopic_output_stub): Output \t
12474         between instructions and operands.
12475
12476 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
12477
12478         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
12479         satisfies_constraint_[IL] to explicit tests on value.
12480
12481 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
12482
12483         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
12484         set_nb_iterations_in_loop): Use build_int_cst instead of
12485         build_int_cst_type.
12486         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
12487         build_int_cst instead of convert.
12488
12489 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
12490
12491         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
12492         new value 2 for incoming.
12493         * function.c (expand_function_start): Call struct_value_rtx
12494         with incoming as 2.
12495         * config/sparc/sparc.md: Comment updated_return.
12496         * config/sparc/sparc.opt: Add -mstd-struct-return option.
12497         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
12498         struct return if sparc_std_struct_return and incoming is 2.
12499         (print_operand): Do not adjust return if
12500         sparc_std_struct_return.
12501
12502 2006-04-04  Roger Sayle  <roger@eyesopen.com>
12503
12504         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
12505         convert in the middle-end.
12506         * expr.c (store_expr, store_constructor, get_inner_reference,
12507         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
12508         Likewise.
12509         * tree.c (build_range_type): Likewise.
12510
12511 2006-04-04  Tom Tromey  <tromey@redhat.com>
12512
12513         * doc/install.texi (Prerequisites): Mention jar.
12514
12515 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
12516
12517         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
12518         subsection.
12519
12520 2006-04-04  Matthias Klose  <doko@debian.org>
12521
12522         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
12523
12524         PR bootstrap/26764
12525         PR bootstrap/27334
12526         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
12527         strings.
12528
12529 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
12530
12531         * doc/extend.texi (Function Attributes): Rewrite visibility
12532         attribute documentation.
12533         * doc/invoke.texi (C++ Dialect Options): Rewrite
12534         -fvisibility-inlines-hidden documentation to describe something
12535         entirely different, although in practise compatible.
12536         (Code Gen Options): Warn about system headers in -fvisibility=
12537         documentation.
12538
12539         * doc/extend.texi (Other Builtins): Document that
12540         __builtin_nan is a compile-time constant only when its argument
12541         is valid.
12542
12543 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
12544
12545         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
12546         trying to remove TRUNCATE check if all bits outside the new mode
12547         are identical to the sign bit.
12548
12549 2006-04-03  Jeff Law  <law@redhat.com>
12550
12551         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
12552         and operand scanning in some common cases.
12553
12554 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
12555             Dale Johannesen  <dalej@apple.com>
12556
12557         PR target/19653
12558         * regclass.c (struct reg_pref): Update documentation.
12559         (regclass): Set prefclass to NO_REGS if memory is the best option.
12560         (record_reg_classes): Cope with a prefclass set to NO_REGS.
12561         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
12562         into account.  For non-registers, equate an empty preferred
12563         reload class to a `!' in the constraint; move the if clause to
12564         do so after those that reject the insn.
12565         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
12566         return NO_REGS.
12567         (find_dummy_reload): Likewise.
12568         * doc/tm.texi (Register Classes): Document what it means
12569         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
12570         * config/i386/i386.c (ix86_preferred_reload_class): Force
12571         using SSE registers (and return NO_REGS for floating-point
12572         constants) if math is done with SSE.
12573         (ix86_preferred_output_reload_class): New.
12574         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
12575         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
12576         * config/i386/i386.md: Remove # register preferences.
12577
12578 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
12579
12580         PR bootstrap/26992
12581         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
12582         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
12583         the type of nb_iter.
12584         (instantiate_parameters_1): Convert the operands before calling
12585         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
12586         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
12587
12588 2006-04-02  Roger Sayle  <roger@eyesopen.com>
12589
12590         * builtins.c (dummy_object): Use build_int_cst instead of convert.
12591         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
12592         instead of convert.
12593         * dojump.c (do_jump): Likewise.
12594         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
12595         * gimplify.c (gimple_boolify, gimplify_init_constructor,
12596         gimplify_boolean_expr): Likewise.
12597         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12598         * varasm.c (array_size_for_constructor): Likewise.
12599         * tree-object-size.c (compute_object_offset): Likewise.
12600
12601 2006-04-02  Roger Sayle  <roger@eyesopen.com>
12602
12603         PR middle-end/26977
12604         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
12605         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
12606
12607 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
12608
12609         PR tree-optimization/26939
12610         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
12611
12612 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
12613
12614         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
12615         at_stmt.  Convert the type of operands before calling
12616         build_polynomial_chrec.
12617         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
12618         add_to_evolution_1.
12619         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
12620         (instantiate_parameters_1): Convert the type of operands before calling
12621         build_polynomial_chrec.
12622         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
12623         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
12624         reset_evolution_in_loop): Insert asserts to check the types of the
12625         operands.
12626         (chrec_type): Moved...
12627         (eq_evolutions_p): Use operand_equal_p.
12628         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
12629         the types of the operands.
12630         (chrec_type): ...here.
12631         * tree-data-ref.c (create_data_ref): Convert the operands before
12632         calling chrec_replace_initial_condition.
12633         (same_access_functions, analyze_subscript_affine_affine,
12634         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
12635         (compute_subscript_distance, analyze_ziv_subscript,
12636         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
12637         analyze_miv_subscript): Convert the operands before calling
12638         chrec_fold_minus or chrec_fold_plus.
12639
12640 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
12641
12642         * tree-data-ref.c (compute_all_dependences): Use a pointer to
12643         the dependence_relations vector.
12644         (compute_data_dependences_for_loop): Adjust call to
12645         compute_all_dependences.
12646
12647 2006-04-01  Roger Sayle  <roger@eyesopen.com>
12648             Richard Henderson  <rth@redhat.com>
12649
12650         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
12651         gimple_boolify on the condition before calling gimplify_expr.
12652
12653 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
12654
12655         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
12656         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
12657         the frame size.  Update to use the new macros.
12658         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
12659         * config/xtensa/ieee754-df.S: Likewise.
12660
12661 2006-03-31  Richard Henderson  <rth@redhat.com>
12662
12663         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
12664         (make_edges): ... here.  Control fallthru creation with a local
12665         variable.  Do not play with fake edges.
12666         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
12667         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
12668         a boolean.
12669
12670 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
12671
12672         * dwarf2.h (DW64_CIE_ID): Define.
12673         * dwarf2out.c (DWARF_CIE_ID): Define.
12674         (output_call_frame_info): Output 0xffffffff before standard 8-byte
12675         length header.  Use DWARF_CIE_ID.
12676         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
12677         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
12678
12679 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
12680
12681         * config/sh/linux-atomic.asm: New file.
12682         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
12683
12684 2006-03-31  DJ Delorie  <dj@redhat.com>
12685
12686         * config/m32c/cond.md: Set condition flags properly throughout.
12687         * config/m32c/minmax.md: Likewise.
12688         * config/m32c/prologue.md: Likewise.
12689         * config/m32c/bitops.md: Likewise.
12690         * config/m32c/muldiv.md: Likewise.
12691         * config/m32c/mov.md: Likewise.
12692         * config/m32c/addsub.md: Likewise.
12693         * config/m32c/m32c.md: Likewise.
12694         * config/m32c/jump.md: Likewise.
12695         * config/m32c/shift.md: Likewise.
12696
12697         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
12698         conditionally output the pattern for this.
12699         * config/m32c/m32c.c (flags_needed_for_conditional): New.
12700         (m32c_compare_redundant): New.
12701         (m32c_output_compare): New.
12702         * config/m32c/m32c-protos.h (m32c_output_compare): New.
12703
12704         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
12705         dest, not src.  Allow other 4-byte modes.
12706
12707 2006-03-30  Denis Chertykov  <denisc@overta.ru>
12708
12709         * doc/md.texi: Refer to avr/constraints.md instead of
12710         avr/avr.h.
12711
12712 2006-03-30  Roger Sayle  <roger@eyesopen.com>
12713
12714         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
12715         signed vs. unsigned comparison failures on some hosts.
12716
12717 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
12718
12719         PR target/26459
12720         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
12721         change to FLOAT_REGS.
12722
12723         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
12724         (rs6000_override_options): Use it.
12725         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
12726         only for -mabi=spe/no-spe and -mabi=altivec.
12727
12728 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
12729
12730         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
12731         !Zdynamiclib.
12732
12733 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
12734
12735         * Makefile.in: Rename docdir to gcc_docdir.
12736
12737 2006-03-30  Roger Sayle  <roger@eyesopen.com>
12738
12739         PR target/17959
12740         * expr.c (emit_group_store): Optimize group stores into a pseudo
12741         register by using a paradoxical subreg to initialize the destination
12742         if the first or last member of the group specifies a "low part".
12743
12744 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
12745
12746         PR target/26734
12747         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
12748         * target.h (struct gcc_target.speculate_insn): Change type of the
12749         second parameter to 'int'.
12750         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
12751         the second operand of the DEPS_LIST.
12752         (copy_DEPS_LIST_list): Update reference to the second operand of the
12753         DEPS_LIST.
12754         * rtl.h (alloc_DEPS_LIST): Update signature.
12755         * sched-int.h (ds_t): Change typedef to 'int'.
12756         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
12757
12758 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
12759
12760         * haifa-sched.c (try_ready): Change condition to restore
12761         non-speculative pattern of the instruction.
12762         (process_insn_depend_be_in_spec): Code to keep probability of the
12763         speculative dependence non-decreasing.
12764
12765 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
12766
12767         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
12768         (single_move_for_movmem): ... this. Also change all uses.
12769         (bfin_expand_strmov): Renamed to...
12770         (bfin_expand_movmem): ... this. Also change all uses.
12771         * config/bfin/bfin.md (movstrsi): Renamed to...
12772         (movstrsi): ...this.
12773
12774 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
12775
12776         PR tree-optimization/26830
12777
12778         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
12779         (copy_prop_visit_stmt): Remove write-only variable ann.
12780         (init_copy_prop): Check variable loop depth here.  Do not simulate
12781         memory-tag and virtual operand PHIs except for store copy prop.
12782
12783 2006-03-30  Richard Guenther  <rguenther@suse.de>
12784
12785         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
12786         variants with double arguments.
12787
12788 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
12789
12790         * genpreds.c (write_tm_constrs_h): Delete variable p.
12791         * genconditions.c (write_header): Add tm-constrs.h to included
12792         headers.
12793         * genpeep.c (main): Add toplev.h to included headers.
12794         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
12795         (build/genpeep.o): Add toplev.h dependency.
12796         * config/rs6000/constraints.md: Add "W" constraint.
12797
12798 2006-03-29  Roger Sayle  <roger@eyesopen.com>
12799
12800         * stor-layout.c (mode_for_size_tree): Remove restiction on type
12801         sizes by correctly testing whether the size fits a host integer.
12802         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
12803         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
12804         SImode range for the default sizetype and bitsizetype.
12805
12806 2006-03-29  Roger Sayle  <roger@eyesopen.com>
12807
12808         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
12809         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
12810         quickly if the argument is already of the correct type.
12811         Call fold_build1 instead of build1.  Tidy up blank lines.
12812
12813 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
12814
12815         * genemit.c (main): Add tm-constrs.h to included headers.
12816         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
12817         * genpeep.c (main): Add tm-constrs.h to included headers.
12818         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
12819         (write_tm_constrs_h): this and write complete file.
12820         (write_tm_preds_h): Do not emit satisfies_constraint fns.
12821         (write_insn_preds_c): Add tm-constrs.h to included headers.
12822         (gen_constrs): New variable.
12823         (parse_option): Parse "-c".
12824         (main): Invoke write_tm_constrs_h.
12825         * genrecog.c (write_header): Add tm-constrs.h to included headers.
12826         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
12827         (object_out_file): Add tm-constrs.h dependency.
12828         (insn-emit.o): Same.
12829         (insn-output.o): Same.
12830         (insn-peep.o): Same.
12831         (insn-preds.o): Same.
12832         (insn-recog.o): Same.
12833         (tm-constsr.h): New target.
12834         (s-constrs-h): New target.
12835
12836         * config/rs6000/constraints.md: New file.
12837         * config/rs6000/rs6000.c: Include tm-constrs.h.
12838         (num_insn_constant_wide): Convert to satisfies_constraint.
12839         (rs6000_rtx_costs): Convert to satisfies_constraint.
12840         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
12841         (CONST_OK_FOR_LETTER_P): Delete.
12842         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12843         (EXTRA_CONSTRAINT): Delete.
12844         (EXTRA_MEMORY_CONSTRAINT): Delete.
12845         (EXTRA_ADDRESS_CONSTRAINT): Delete.
12846         * config/rs6000/predicates.md: Convert to satisfies_constraint.
12847         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
12848         satisfies_constraint.
12849
12850         * config/i386/i386.c: Include tm-constrs.h.
12851
12852 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
12853
12854         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
12855         * tree-data-ref.c (find_data_references_in_loop,
12856         compute_data_dependences_for_loop): Use pointers to VEC.
12857         (analyze_all_data_dependences): Adjust calls.
12858         * tree-data-ref.h (find_data_references_in_loop,
12859         compute_data_dependences_for_loop): Adjust declarations.
12860         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
12861         compute_data_dependences_for_loop.
12862
12863 2006-03-29  Paul Brook  <paul@codesourcery.com>
12864
12865         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
12866         (movdf_vfp): Ditto.
12867
12868 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
12869
12870         PR tree-optimization/26859
12871         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
12872         division by zero.
12873         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
12874         for the step after fold_convert.
12875
12876 2006-03-29  Paul Brook  <paul@codesourcery.com>
12877
12878         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
12879         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
12880
12881 2006-03-29  Paul Brook  <paul@codesourcery.com>
12882
12883         PR middle-end/23623
12884         * targhooks.c (default_narrow_bitfield): New fuction.
12885         * targhooks.h (default_narrow_bitfield): add prototype.
12886         * target.h (gcc_target): Add narrow_volatile_bitfield.
12887         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
12888         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
12889         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
12890         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
12891
12892 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
12893
12894         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
12895         tmake_file.
12896         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
12897         (NR_C_MODES): Add TDmode, DDmode and SDmode.
12898         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
12899         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
12900         (s390_function_arg_float): Allow SDmode and DDmode values to be
12901         passed in floating point registers.
12902         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
12903         check with SCALAR_FLOAT_MODE_P.
12904         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
12905
12906 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
12907
12908         PR tree-optimization/25985
12909         * tree-ssa-loop-niter.c (number_of_iterations_le,
12910         number_of_iterations_ne): Make comments more precise.
12911         (number_of_iterations_cond): Add only_exit argument.  Use the
12912         fact that signed variables do not overflow only when only_exit
12913         is true.
12914         (loop_only_exit_p): New.
12915         (number_of_iterations_exit): Pass result of loop_only_exit_p to
12916         number_of_iterations_cond.
12917
12918 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
12919
12920         PR tree-optimization/26643
12921         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
12922         bit_field_refs.
12923
12924 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
12925
12926         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
12927         (divsi3_i4_int): Likewise.
12928
12929 2006-03-28  Roger Sayle  <roger@eyesopen.com>
12930
12931         * expr.c (emit_group_store): Only create a new pseudo reg if the
12932         quantity it needs to hold isn't already a suitable pseudo.
12933
12934 2006-03-28  Jeff Law  <law@redhat.com>
12935
12936         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
12937         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
12938
12939 2006-03-28  Roger Sayle  <roger@eyesopen.com>
12940
12941         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
12942         the equivalent ~X & Y, and the symmetry related transformations.
12943         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
12944         ~X & Y, and symmetry related transforms.
12945
12946 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
12947
12948         Revert my 2006-03-27 patches.
12949
12950 2006-03-28  Roger Sayle  <roger@eyesopen.com>
12951
12952         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
12953         ~(T1)X, when T1 and T2 are integer types of the same precision
12954         and (T2)X isn't an extension.
12955
12956 2006-03-28  Jeff Law  <law@redhat.com>
12957
12958         PR tree-optimization/26796
12959         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
12960         need EH edge cleanups rather than purging them immediately.
12961         (eliminate_degenerate_phis): Handle queued EH cleanups.
12962
12963 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
12964
12965         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
12966         from parent_var.
12967
12968 2006-03-27  Roger Sayle  <roger@eyesopen.com>
12969
12970         PR middle-end/22524
12971         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
12972         cast BIT_NOT_EXPR operand to the correct type.
12973
12974 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
12975
12976         * tree-loop-linear.c: Don't include varray.h.
12977         (gather_interchange_stats, try_interchange_loops,
12978         linear_transform_loops): Use VEC instead of VARRAY.
12979         * lambda-mat.c: Don't include varray.h.
12980         * tree-chrec.c: Same.
12981         * lambda-trans.c: Same.
12982         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
12983         VEC instead of VARRAY.
12984         * tree-vectorizer.h: Idem.
12985         * tree-data-ref.c (dump_data_references,
12986         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
12987         initialize_data_dependence_relation, finalize_ddr_dependent,
12988         compute_all_dependences, find_data_references_in_loop,
12989         compute_data_dependences_for_loop, analyze_all_data_dependences,
12990         free_dependence_relation, free_dependence_relations,
12991         free_data_refs): Idem.
12992         * tree-data-ref.h (data_reference_p, subscript_p): New.
12993         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
12994         VEC instead of VARRAY.
12995         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
12996         (find_data_references_in_loop, compute_data_dependences_for_loop,
12997         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
12998         dump_data_dependence_relations, free_dependence_relations,
12999         free_data_refs): Adjust declaration.
13000         (lambda_transform_legal_p): Move declaration here...
13001         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
13002         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
13003         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
13004         vect_analyze_data_refs): Use VEC instead of VARRAY.
13005         * lambda.h (lambda_transform_legal_p): ...from here.
13006         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
13007         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
13008         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
13009         tree-chrec.o): Don't depend on VARRAY_H.
13010
13011 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
13012
13013         * rtl.def (Copyright): Update date.
13014         (DEPS_LIST): Change type of the second operand to 'int'.
13015         * target.h (Copyright): Update date.
13016         (struct gcc_target.speculate_insn): Change type of the second parameter
13017         to 'int'.
13018         * lists.c (Copyright): Update date.
13019         (alloc_DEPS_LIST): Change signature.  Update reference to the second
13020         operand of the DEPS_LIST.
13021         (copy_DEPS_LIST_list): Update reference to the second operand of the
13022         DEPS_LIST.
13023         * rtl.h (Copyright): Update date.
13024         (alloc_DEPS_LIST): Update signature.
13025         * sched-int.h (Copyright): Update date.
13026         (ds_t): Change typedef to 'int'.
13027         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
13028
13029 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
13030
13031         * haifa-sched.c (Copyright): Update date.
13032         (try_ready): Change condition to restore non-speculative pattern
13033         of the instruction.
13034         (process_insn_depend_be_in_spec): Code to keep probability of the
13035         speculative dependence non-decreasing.
13036
13037 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
13038
13039         * regrename.c (replace_oldest_value_addr): Initialize a variable to
13040         shut up the compiler.
13041
13042 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
13043
13044         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
13045         to use lib prefix for target.
13046         ($(T)libic_invalidate_array_4-200.a): Likewise.
13047         ($(T)libic_invalidate_array_4a.a): Likewise.
13048
13049 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
13050             J"orn Rennecke <joern.rennecke@st.com>
13051
13052         * superh.opt: New file.
13053         * sh.c (boardtype, osruntime): Remove.
13054         * superh.h (SUBTARGET_OPTIONS): Remove.
13055         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
13056
13057         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
13058         arguments with ^ and/or [].
13059
13060         * config.gcc (sh-*-*): Add quoting to account for quirk of
13061         Solaris /bin/sh.
13062         Replace == with = in enable_incomplete_targets test.
13063
13064         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
13065         with MASK_LITTLE_ENDIAN.
13066
13067         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
13068         * config/sh/sh.opt: Added to some comments.
13069         * config/sh/superh.h: Removed some chaff.
13070
13071         * config/sh/sh.opt: Add m4-[1234]00* options.
13072         * config/sh/sh.c (sh_handle_option): Likewise.
13073         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
13074         (ic_invalidate_array_4-100.o): New rule.
13075         ($(T)libic_invalidate_array_4-100.a): Likewise.
13076         (ic_invalidate_array_4-200.o): Likewise.
13077         ($(T)libic_invalidate_array_4-200.a): Likewise.
13078         (ic_invalidate_array_4a.o): Likewise.
13079         ($(T)libic_invalidate_array_4a.a): Likewise.
13080         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
13081         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
13082         m4-200*, and m4a*.
13083         * config/sh/crt1.asm: Merged in profiling code.
13084         * config/sh/superh.h (STARTFILE_SPEC): Override.
13085         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
13086         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
13087         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
13088
13089         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
13090         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
13091         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
13092
13093         * sh.opt (mpretend-cmove): New option.
13094         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
13095         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
13096         (movsicc): Add TARGET_PRETEND_CMOVE code.
13097
13098 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
13099
13100         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
13101         s390_class_max_nregs): New function prototypes.
13102         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
13103         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
13104         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
13105         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
13106
13107 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
13108
13109         * dwarf2out.c (add_location_or_const_value_attribute): Call
13110         tree_add_const_value_attribute if nothing else works.
13111         (reference_to_unused): New.
13112         (rtl_for_decl_init): Use reference_to_unused to decide whether
13113         to output an initializer.
13114
13115 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
13116
13117         PR target/26459
13118         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
13119         peephole removing spe frob_di_df_2.
13120
13121 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
13122
13123         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
13124         (subscript_dependence_tester_1): Declared.
13125         (print_dir_vectors, print_dist_vectors): New.
13126         (debug_data_dependence_relation): New.
13127         (dump_data_dependence_relation): Print more details.
13128         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
13129         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
13130         (save_dist_v, save_dir_v, add_outer_distances,
13131         build_classic_dist_vector_1): New.
13132         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
13133         Don't test for lambda_vector_lexico_pos.
13134         (same_access_functions, add_multivariate_self_dist,
13135         add_other_self_distances, dir_from_dist): New.
13136         (build_classic_dir_vector): Replace implementation almost identical to
13137         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
13138         dir_from_dist.
13139         (subscript_dependence_tester_1): New.
13140         (subscript_dependence_tester): Handle the lexicographically negative
13141         distance vectors by recomputing the dependence relation.
13142         (compute_affine_dependence): Remove parameter loop_nest_depth.
13143         (compute_self_dependence): Don't call compute_subscript_distance.
13144         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
13145         Add a parameter for the loop_nest.
13146         (find_loop_nest_1, find_loop_nest): New.
13147         (compute_data_dependences_for_loop): Compute the loop nest, and give
13148         up if the nest is not well formed.
13149         * tree-data-ref.h (loop_p): New.
13150         (struct data_dependence_relation): Replace size_vect field with
13151         loop_nest, a vec of loops.
13152         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
13153         (DDR_LOOP_NEST): New.
13154         (print_dir_vectors, print_dist_vectors,
13155         debug_data_dependence_relation): Declared.
13156         (index_in_loop_nest): New.
13157         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
13158         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
13159         distance.
13160
13161 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
13162
13163         * simplify-rtx.c (simplify_relational_operation): Call
13164         simplify_relational_operation_1 even if mode is VOIDmode.
13165
13166 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
13167
13168         PR tree-optimization/26804
13169         * tree.h (DECL_CALL_CLOBBERED): New macro.
13170         (tree_decl_common): Add call_clobbered_flag.
13171         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
13172         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
13173         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
13174         (mark_non_addressable): Ditto.
13175         * tree-ssa.c (verify_call_clobbered): New function.
13176         (verify_alias_info): Use it.
13177         * tree-pass.h (pass_reset_cc_flags): New prototype.
13178         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
13179         (reset_cc_flags): New function.
13180         * passes.c (init_optimization_passes): Call reset_cc_flags after
13181         initializing referenced_vars.
13182
13183 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
13184             Roger Sayle  <roger@eyesopen.com>
13185
13186         PR middle-end/26717
13187         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
13188         to 1.0 for non-real operands. Implement A / A optimization for
13189         complex operands.
13190
13191 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
13192
13193         * config/i386/i386.c (size_cost): Correct the comment for
13194         cost of storing fp registers.
13195         (i386_cost): Likewise.
13196         (i486_cost): Likewise.
13197         (pentium_cost): Likewise.
13198         (pentiumpro_cost): Likewise.
13199         (k6_cost): Likewise.
13200         (athlon_cost): Likewise.
13201         (k8_cost): Likewise.
13202         (pentium4_cost): Likewise.
13203         (nocona_cost): Likewise.
13204         (generic64_cost): Likewise.
13205         (generic32_cost): Likewise.
13206
13207 2006-03-24  Denis Chertykov  <denisc@overta.ru>
13208
13209         * config/avr/avr-protos.h (extra_constraint): Delete.
13210         (extra_constraint_Q): New declaration.
13211         * config/avr/constraints.md: New file.
13212         * config/avr/avr.md: Include it.
13213         (REG_X, REG_Y, REG_Z, REG_W): New constants.
13214         (TMP_REGNO, ZERO_REGNO): Likewise.
13215         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
13216         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
13217         (extra_constraint): Delete.
13218         (extra_constraint_Q): Test for memory constraint 'Q'.
13219         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
13220         (REG_CLASS_FROM_LETTER): Delete.
13221         (CONST_OK_FOR_LETTER_P): Delete.
13222         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13223         (EXTRA_CONSTRAINT): Delete.
13224         (TMP_REGNO): Delete.
13225         (ZERO_REGNO): Delete.
13226
13227 2006-03-24  Jeff Law  <law@redhat.com>
13228
13229         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
13230         directly.  Call mark_new_vars_to_rename slightly earlier.
13231
13232 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
13233
13234         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
13235         (is_cxx): Likewise.
13236         (gen_compile_unit_die): Use new language types for Objective-C and
13237         Objective-C++.
13238         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
13239         DW_LANG_C_plus_plus.
13240
13241         PR 26793
13242         * config/t-darwin (crt3.o): Work around bug 26840.
13243         * config/darwin-crt3.c: Rewrite.
13244         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
13245
13246 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
13247
13248         * doc/invoke.texi: Document -femit-class-debug-always
13249         * common.opt: Add -femit-class-debug-always.
13250
13251 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
13252
13253         * config/s390/s390.c (s390_decompose_address): Allow SImode for
13254         index and base register.
13255         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
13256         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
13257         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
13258         REGNO_OK_FOR_INDEX_P.
13259         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
13260         ADDR_REGNO_P.
13261         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
13262         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
13263         REG_OK_FOR_BASE_P): Definitions removed.
13264
13265 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
13266
13267         PR middle-end/26611
13268         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
13269         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
13270         set yet or weren't marked as local yet.
13271
13272 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
13273
13274         * regrename.c (scan_rtx_address): Initialize a variable to shut up
13275         the compiler.
13276
13277 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
13278
13279         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
13280         (rs6000_legitimate_small_data_p): Delete.
13281         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
13282         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
13283         and make static.  Add forward declaration.  Update uses.
13284         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
13285         of offsettable_memref_p.
13286         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
13287         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
13288
13289 2006-03-24  Jeff Law  <law@redhat.com>
13290
13291         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
13292         around bug in immediate-use iterator.
13293
13294 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
13295
13296         PR target/26607
13297         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
13298         or __LITTLE_ENDIAN__.
13299
13300 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
13301
13302         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
13303         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
13304         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
13305         * config/sh/sh.opt (mdiv=): Amend description.
13306         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
13307         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
13308         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
13309         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
13310         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
13311         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
13312         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
13313         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
13314         TARGET_DIVIDE_CALL_FP.
13315
13316 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
13317
13318         * haifa-sched.c (choose_ready): Fix type of the local variable.
13319         Move local variables.  Add comment.
13320         (check_reg_live): Change signature.  Make callable from debugger.
13321         * sched-int.h (check_reg_live): Update signature.
13322         * sched-ebb.c (check_reg_live): Update parameters.
13323         * sched-rgn.c (check_reg_live): Ditto.
13324         (region_head_or_leaf_p): Check pointer before dereferencing.
13325         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
13326         before reload on optimization levels below 1.
13327
13328 2006-03-23  Richard Henderson  <rth@redhat.com>
13329
13330         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
13331         tls symbols.
13332
13333         PR target/26347
13334         * config/alpha/predicates.md (local_symbolic_operand): Reject
13335         weak symbols.
13336
13337 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
13338
13339         PR tree-opt/26795
13340         * tree-ssa-pre.c (create_value_expr_from): Don't reject
13341         expressions which have overflowed constants.
13342
13343 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
13344
13345         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
13346
13347 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
13348
13349         * cfgloopmanip.c (create_loop_notes): Removed.
13350         * final.c (final_scan_insn): Do not handle loop notes.
13351         * jump.c (squeeze_notes): Ditto.
13352         * cfglayout.c (skip_insns_after_block,
13353         duplicate_insn_chain): Ditto.
13354         * cfgcleanup.c (rest_of_handle_jump2): Do not call
13355         create_loop_notes.
13356         * cfgloop.h (create_loop_notes): Declaration removed.
13357
13358 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
13359
13360         * varasm.c (output_constant_pool): Restore fnname and fndecl
13361         arguments.
13362         (assemble_start_function): Adjust call accordingly.
13363         (assemble_end_function): Likewise.
13364
13365 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
13366
13367         PR mudflap/26789
13368         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
13369
13370         PR mudflap/26790
13371         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
13372
13373 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
13374
13375         PR driver/22600
13376         * system.h (ICE_EXIT_CODE): New macro.
13377         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
13378         (diagnostic_action_after_output): Likewise.
13379         * gcc.c (fatal_ice): New function.
13380         (execute): Use it instead of fatal.
13381         (fancy_abort): Likewise.
13382         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
13383
13384 2006-03-22  Jeff Law  <law@redhat.com>
13385
13386         * loop-unroll.c (analyze_iv_to_split_insn): Handle
13387         iv_analyze_result returning false.
13388
13389 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
13390
13391         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
13392
13393 2006-03-22  Richard Henderson  <rth@redhat.com>
13394
13395         PR middle-end/26084
13396         * except.c (duplicate_eh_regions_0): New.
13397         (duplicate_eh_region_1): Duplicate the children of the node as
13398         well as the node itself.  Link them up properly.
13399         (duplicate_eh_region_2): Merge into ...
13400         (duplicate_eh_regions): ... here.  Take copy_region argument, and
13401         copy only a sub-tree if asked.  Simplify copying and fixup.
13402         (eh_region_outer_p): New.
13403         * except.h (duplicate_eh_regions): Update decl.
13404         (eh_region_outer_p): Declare.
13405         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
13406         (lower_omp_master): Likewise.
13407         (lower_omp_ordered): Likewise.
13408         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
13409         (move_stmt_r): Use it to remap labels.  Handle recursion vs
13410         remap_decls_p properly.
13411         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
13412         (find_outermost_region_in_block): New.
13413         (new_label_mapper): New.
13414         (move_sese_region_to_fn): Copy eh information to the new function
13415         properly.
13416         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
13417         argument.
13418         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
13419         number.
13420
13421 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
13422
13423         * doc/md.texi (-mshared): Mention that -mshared code can be linked
13424         into shared libraries.
13425
13426 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
13427
13428         * doc/md.texi: Refer to i386/constraints.md instead of
13429         i386/predicates.md.
13430         * config/i386/constraints.md: New file, extracted from...
13431         * config/i386/predicates.md: ...here.
13432         * config/i386/i386.md: Include constraints.md.
13433
13434 2006-03-21  Jason Merrill  <jason@redhat.com>
13435
13436         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
13437
13438         PR middle-end/20297
13439         * expr.c (init_block_move_fn): Force default visibility.
13440         (init_block_clear_fn): Likewise.
13441         * builtins.c (expand_builtin_fork_or_exec): Likewise.
13442         * targhooks.c (default_external_stack_protect_fail): Likewise.
13443
13444 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
13445
13446         * config/mips/predicates.md (const_call_insn_operand): Allow direct
13447         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
13448         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
13449         Use TARGET_OLDABI instead of !TARGET_NEWABI.
13450         (loadgp): Use mips_current_loadgp_style.
13451         (loadgp_noshared): New pattern.
13452         (sibcall_internal): Use MIPS_CALL.
13453         (sibcall_value_internal): Likewise.
13454         (sibcall_value_multiple_internal): Likewise.
13455         (call_internal): Likewise.
13456         (call_value_internal): Likewise.
13457         (call_value_multiple_internal): Likewise.
13458         (call_split): Use MIPS_CALL and add an 'S' constraint.
13459         (call_value_split): Likewise.
13460         (call_value_multiple_split): Likewise.
13461         * config/mips/mips.opt (-mabicalls): Tweak docstring.
13462         (-mshared): New option.
13463         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
13464         (mips_current_loadgp_style): Declare.
13465         * config/mips/mips.c (mips_classify_symbol): Avoid using
13466         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
13467         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
13468         TARGET_ABSOLUTE_ABICALLS.
13469         (override_options): Adjust comments.  Improve the warning that is
13470         issued when -mabicalls and -G are used together.
13471         (mips_file_start): Remove comment.
13472         (mips_current_loadgp_style): New function.
13473         (mips_gnu_local_gp): New variable.
13474         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
13475         LOADGP_ABSOLUTE.
13476         (mips_output_function_prologue): Use mips_current_laodgp_style.
13477         (mips_expand_prologue): Call mips_emit_loadgp before emitting
13478         the cprestore instruction.
13479         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
13480         live for TARGET_ABSOLUTE_ABICALLS.
13481         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
13482         (ASM_SPEC): Pass down -mshared and -mno-shared.
13483         (MIPS_CALL): New macro.
13484         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
13485         definition.
13486         * doc/invoke.texi (-mabicalls): Update documentation.
13487         (-mshared): Document.
13488
13489 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
13490
13491         * config/ia64/unwind-hpux.c: New file.
13492         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
13493
13494 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
13495
13496         PR libgomp/26384
13497         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
13498
13499 2006-03-21  Jeff Law  <law@redhat.com>
13500
13501         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
13502         type conversions of a VR_VARYING source to a wider type.
13503
13504 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
13505
13506         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
13507         tm_file on Solaris 10 and later.
13508         (sparc64-*-solaris2*): Likewise.
13509         (sparc-*-solaris2*): Likewise.
13510         * config/sol26.h: Rename to config/sol2-6.h.
13511         * config/sol2-10.h: New file.
13512
13513 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
13514
13515         PR tree-opt/26781
13516         * tree-ssa-pre.c (create_component_ref_by_pieces):
13517         Handle STRING_CST.
13518
13519 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
13520
13521         PR c++/26690
13522         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
13523         return it immediately.
13524
13525 2006-03-21  Michael Matz  <matz@suse.de>
13526
13527         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
13528         New members.
13529         (remove_arc, add_arc): Update num_out_arcs member.
13530         (set_out_arc_insns_equiv_num): Returns nothing instead of number
13531         of out arcs.
13532         (cache_presence): New function.
13533         (compare_states_for_equiv): New function.
13534         (state_is_differed): Don't take number of outargs, adjust callers.
13535         Use new invariant for speeding up.
13536         (init_equiv_class): Create initial classes based on sorted
13537         input.
13538         (partition_equiv_class): Don't track out_arcs_num.
13539         (evaluate_equiv_classes): Call cache_presence on all states and
13540         sort them.
13541
13542 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
13543
13544         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
13545         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
13546         (bfin_valid_reg_p): Test for pseudos explicitly and use only
13547         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
13548         callers changed.
13549         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
13550         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
13551         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
13552         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
13553         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
13554         macros.
13555         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
13556         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
13557         (REGNO_REG_CLASS): ARGP is in PREGS.
13558         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
13559         IREGS.
13560         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
13561         to deal with those addresses.
13562         * addresses.h: New file.
13563         * caller-save.c: Include "addresses.h".
13564         (init_caller_save): Use new base_reg_class function.
13565         * rtl-factoring.c: Include "addresses.h".
13566         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
13567         * recog.c: Include "addresses.h".
13568         (preprocess_constraints): Use new base_reg_class function.
13569         * regrename.c: Include "addresses.h".
13570         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
13571         functions.  Keep track of a new var INDEX_CODE to compute valid
13572         classes.
13573         (replace_oldest_value_addr): Likewise.
13574         (replace_oldest_value_mem): Use base_reg_class.
13575         * reload.c: Include "addresses.h".
13576         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
13577         (find_reloads): Use new base_reg_class function.
13578         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
13579         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
13580         all callers and prototype changed.
13581         * reload1.c: Include "addresses.h".
13582         (maybe_fix_stack_asms): Use base_reg_class.
13583         * regclass.c: Include "addresses.h".
13584         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
13585         (init_reg_autoinc): Use new base_reg_class function.
13586         (record_reg_classes): Likewise.
13587         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
13588         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
13589         Use new args to compute necessary class.
13590
13591         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
13592         regrename.o, rtl-factoring.o): Update dependencies.
13593         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
13594         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
13595         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
13596         REG_OK_FOR_INDEX_P): Delete documentation.
13597
13598 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
13599
13600         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
13601         from V7 to V9 for Solaris 7 and above.
13602
13603 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
13604
13605         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
13606         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
13607         argument pointers may not alias any other storage.
13608         * common.opt: Define option -fargument-noalias-anything.
13609         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
13610         alias semantics is specified by flag_argument_noalias > 2.
13611
13612 2006-03-20  Jeff Law  <law@redhat.com>
13613
13614         * tree-pass.h (pass_phi_only_copy_prop): Delete.
13615         (pass_phi_only_cprop): Declare.
13616         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
13617         with phi_only_cprop
13618         * tree-ssa-dom.c (degenerate_phi_result): New function.
13619         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
13620         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
13621         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
13622         (eliminate_degenerate_phis): Likewise.
13623         (pass_phi_only_cprop): New pass descriptor.
13624         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
13625         support code.  Callers updated.
13626         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
13627         (store_copy_prop): Likewise.
13628         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
13629
13630 2006-03-20  Jason Merrill  <jason@redhat.com>
13631
13632         PR c++/21764
13633         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
13634         (push_visibility, pop_visibility): Likewise.
13635         * c-pragma.h: Declare them.
13636
13637 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13638
13639         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
13640
13641         * config/sh/sh.c (find_regmode_weight): Change the type of the first
13642         parameter and use get_ebb_head_tail.
13643         (sh_md_init_global): Adjust uses of find_regmode_weight.
13644
13645 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
13646
13647         * function.h (struct function) <x_tail_recursion_reentry>:
13648         Rename to x_stack_check_probe_note.
13649         (tail_recursion_reentry): Rename to stack_check_probe_note.
13650         * function.c: Replace tail_recursion_reentry with
13651         stack_check_probe_note everywhere.
13652         (expand_function_start): Only emit a note for
13653         stack_check_probe_note with -fstack-protect.
13654         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
13655
13656         * emit-rtl.c (remove_unnecessary_notes): Remove.
13657         (pass_remove_unnecessary_notes): Remove.
13658         * rtl.h (remove_unnecessary_notes): Remove prototype.
13659         * final.c (final_start_function): Don't call remove_unnecessary_notes.
13660         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
13661         * passes.c (pass_remove_unnecessary_notes): Don't run it.
13662
13663 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
13664
13665         PR tree-opt/26629
13666         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
13667         (valid_in_set): Handle ARRAY_REF.
13668         Change "if min_variant or VH" to asserts.
13669         (create_component_ref_by_pieces): Handle ARRAY_REF.
13670         (create_expression_by_pieces): Likewise.
13671         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
13672
13673 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
13674
13675         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
13676         is operand of switch, not str[0].
13677
13678 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
13679
13680         * config/rs6000/rs6000.c (rs6000_handle_option): Use
13681         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
13682
13683 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
13684
13685         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
13686         end of insn_extra_address_constraint declaration.
13687
13688 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
13689
13690         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
13691         (no-sum-in-toc): Same.
13692         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
13693         variables.
13694         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
13695         NO_FP_IN_TOC for -fPIC instead of mask.
13696
13697         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
13698         (BOOT_LDFLAGS): Delete.
13699         (LDFLAGS): Delete.
13700         * config/rs6000/t-aix52: Same.
13701
13702         * config/rs6000/rs6000.md (store_multiple_power): Delete.
13703         (stmsi[345678]_power): New.
13704
13705 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
13706
13707         * config/ia64/ia64.opt: Add empty line to end of file.
13708
13709 2006-03-17  Richard Guenther  <rguenther@suse.de>
13710
13711         PR middle-end/26721
13712         * builtins.c (get_pointer_alignment): For component style references
13713         adjust alignment to the component type alignment.  Make sure
13714         to adjust alignment for component access of constants.
13715
13716 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
13717
13718         * config/rs6000/rs6000.md (strlensi): Emit barrier after
13719         unconditional jump.
13720
13721 2006-03-17  Paul Brook  <paul@codesourcery.com>
13722
13723         * doc/install.texi: Docuemnt --with-mode.
13724         * config.gcc: Add --with-mode for arm*-*-*.
13725         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
13726
13727 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
13728
13729         * sh.c (max_labelno_before_reorg): New variable.
13730         (sh_reorg): Initialize it.
13731         (find_barrier): Check max_labelno_before_reorg before using
13732         label_to_alignment.  Take length of explicit alignment insns
13733         into account.  When seeing a UNSPECV_CONST_END, return it.
13734
13735         * sh.c (fixup_mova): Set mode of affected label to QImode.
13736         (untangle_mova): New function.
13737         (find_barrier): Use it.  Check mode of label before decrementing
13738         num_mova.
13739         (sh_reorg): Likewise.
13740         Set mode of all insns back to VOIDmode.
13741
13742         * sh.c (MOVA_LABELREF): New macro.
13743         (mova_p, fixup_mova, sh_reorg): Use it.
13744         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
13745         ADDR_DIFF_VEC matches mova.
13746
13747 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
13748
13749         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
13750         with ATTRIBUTE_UNUSED.
13751
13752 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
13753
13754         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
13755         pointer, instead of assuming it is possible to derive the
13756         correct args size from a call insn.
13757
13758 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13759
13760         * rtl.h (CONST_INT_P): Define.
13761         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
13762         instead of GET_CODE(x) == CONST_INT.
13763         (vax_rtx_costs): Likewise.
13764         (vax_output_int_move): Likewise.
13765         (vax_output_int_add): Likewise.
13766         (legitimate_constant_address_p): Likewise.
13767         (index_term_p): Likewise.
13768         * config/vax/vax.h (PRINT_OPERAND): Likewise.
13769         * config/vax/vax.md (and<mode>3): Likewise.
13770         (ashrsi3): Likewise.
13771         (extv): Likewise.
13772         (movstricthi): Likewise.
13773         (movstrictqi): Likewise.
13774         (rotrsi3): Likewise.
13775         (five unnamed insns): Likewise.
13776
13777 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
13778
13779         * doc/tm.texi (SDB and DWARF): Add extra parameter to
13780         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
13781         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
13782         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
13783         Pass to ASM_OUTPUT_DWARF_OFFSET.
13784         * dwarf2out.c (debug_frame_section): New.
13785         (output_call_frame_info): Use debug_frame_section.  Pass it to
13786         dw2_asm_output_offset.
13787         (output_die): Pass appropriate section to dw2_asm_output_offset.
13788         (output_compilation_unit_header): Likewise.
13789         (output_pubnames): Likewise.
13790         (output_aranges): Likewise.
13791         (enum dw_val_class): Break dw_val_class_lbl_offset into
13792         dw_val_class_lineptr and dw_val_class_macptr.
13793         (add_AT_lbl_offset): Delete.
13794         (add_AT_lineptr): New.
13795         (add_AT_macptr): New.
13796         (AT_lbl): Expect a lineptr or macptr.
13797         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
13798         (attr_checksum): Likewise.
13799         (same_dw_val_p): Likewise.
13800         (size_of_die): Likewise.
13801         (value_format): Likewise.
13802         (output_die): Likewise.
13803         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
13804         add_AT_lbl_offset.
13805         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
13806         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
13807         * config/darwin-protos.h (darwin_file_start): New.
13808         (darwin_asm_output_dwarf_offset): New.
13809         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
13810         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
13811         darwin_file_start.
13812         * config/darwin.c (darwin_emit_unwind_label): Don't output label
13813         if not EH section; simplify.
13814         (darwin_file_start): New.
13815         (darwin_asm_output_dwarf_offset): New.
13816         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
13817         mark as 'debug'.
13818         (DEBUG_INFO_SECTION): Likewise.
13819         (DEBUG_ABBREV_SECTION): Likewise.
13820         (DEBUG_ARANGES_SECTION): Likewise.
13821         (DEBUG_MACINFO_SECTION): Likewise.
13822         (DEBUG_LINE_SECTION): Likewise.
13823         (DEBUG_LOC_SECTION): Likewise.
13824         (DEBUG_PUBNAMES_SECTION): Likewise.
13825         (DEBUG_STR_SECTION): Likewise.
13826         (DEBUG_RANGES_SECTION): Likewise.
13827         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
13828         (ASM_OUTPUT_DWARF_OFFSET): New.
13829
13830 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
13831
13832         * config.gcc (tm_defines): Always add to previous value rather
13833         than replacing it.
13834
13835 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
13836
13837         * config/mips/predicates.md (splittable_const_int_operand): New,
13838         split from move_operand.
13839         (splittable_symbolic_operand): New.
13840         (move_operand): Add commentary.  Use splittable_const_int_operand.
13841         Inline mips_atomic_symbolic_constant_p.
13842         * config/mips/mips.md: Add combine splitters for handling moves
13843         of splittable_const_int_operands and splittable_symbolic_operands.
13844         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
13845         (mips_split_symbol): Declare.
13846         (mips_move_integer): Declare.
13847         * config/mips/mips.c (mips_split_p): Make global.
13848         (TARGET_MIN_ANCHOR_OFFSET): Override default.
13849         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
13850         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
13851         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
13852         (mips_offset_within_object_p): Handle block symbols.
13853         (mips_atomic_symbolic_constant_p): Delete.
13854         (mips_cannot_force_const_mem): Return false for constants that
13855         mips_legitimize_move can handle.
13856         (mips_use_blocks_for_constant_p): New function.
13857         (mips_split_symbol): Make global.
13858         (mips_move_integer): Likewise.  Add a temporary register argument.
13859         (mips_legitimize_const_move): Use splittable_const_int_operand and
13860         splittable_symbolic_operand.
13861         (mips_use_anchors_for_symbol_p): New function.
13862         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
13863         (mips_split_p): Declare.
13864
13865 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
13866
13867         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
13868         (mips*-*-linux*): Likewise.
13869
13870 2006-03-16  Roger Sayle  <roger@eyesopen.com>
13871             Daniel Speyer  <dspeyer@wam.umd.edu>
13872
13873         PR middle-end/18259
13874         * tree-dump.c (dump_real): New function.
13875         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
13876         * Makefile.in (REAL_H): New macro for dependencies on real.h.
13877         (tree-dump.o): Add $(REAL_H) to the dependencies.
13878
13879 2006-03-16  Roger Sayle  <roger@eyesopen.com>
13880
13881         PR middle-end/21781
13882         * real.c (real_from_string): If the mantissa is zero, don't bother
13883         parsing the exponent as the result should always be zero.
13884
13885 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
13886
13887         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
13888
13889 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13890
13891         * config/ia64/ia64.c (stops_p): Added explicit initialization.
13892         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
13893         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
13894         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
13895         ia64_sched_finish_global): New static functions to implement
13896         hooks from gcc_target.sched.
13897         (spec_check_no, max_uid, pending_data_specs): New static variables.
13898         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
13899         ia64_spec_check_src_p): New static functions.
13900         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
13901         (TARGET_SCHED_ADJUST_COST): Removed.
13902         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
13903         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
13904         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
13905         TARGET_SCHED_GEN_CHECK,
13906         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
13907         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
13908         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
13909         Fixed to handle speculation checks.
13910         (rtx_needs_barrier): Fixed to handle speculative loads and
13911         their checks.
13912         (ia64_variable_issue): Added code to count speculative loads and their
13913         checks.
13914         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
13915         speculative loads.
13916         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
13917         New enumerations.
13918         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
13919         New constants.
13920         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
13921         (ia64_reorg): Reset stops_p to NULL after it is freed.
13922         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
13923         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
13924         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
13925         chk_a.
13926         (data_speculative, control_speculative, check_load): New attributes.
13927         (mov<mode>_advanced, mov<mode>_speculative,
13928         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
13929         zero_extend<mode>di2_speculative,
13930         zero_extend<mode>di2_speculative_advanced): New patterns for
13931         data and control speculative loads.
13932         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
13933         check loads.
13934         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
13935         New pattern for data and control speculation checks.
13936         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
13937         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
13938         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
13939         Auxiliary definitions for the patterns.
13940         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
13941         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
13942         constraints.
13943         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
13944         for speculation.
13945         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
13946         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
13947         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
13948         New resource constraints.
13949         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
13950         for speculation.
13951         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
13952         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
13953         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
13954         msched-in-control-spec, msched-ldc, msched-control-ldc,
13955         msched-spec-verbose, msched-prefer-non-data-spec-insns,
13956         msched-prefer-non-control-spec-insns,
13957         msched-count-spec-in-critical-path): New flags to tune speculative
13958         scheduling.
13959         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
13960         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
13961         msched-in-control-spec, msched-ldc, msched-control-ldc,
13962         msched-spec-verbose, msched-prefer-non-data-spec-insns,
13963         msched-prefer-non-control-spec-insns,
13964         msched-count-spec-in-critical-path): Document new flags.
13965
13966 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13967
13968         * target.h (struct spec_info_def): New opaque declaration.
13969         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
13970         speculate_insn, needs_block_p, gen_check,
13971         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
13972         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
13973         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
13974         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
13975         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
13976         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
13977         gcc_target.sched.
13978         (TARGET_SCHED): Use new macros.
13979         * rtl.h (copy_DEPS_LIST_list): New prototype.
13980         * sched-int.h (struct sched_info): Change signature of new_ready field,
13981         adjust all initializations. New fields: add_remove_insn,
13982         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
13983         region_head_or_leaf_p.
13984         (struct spec_info_def): New structure declaration.
13985         (spec_info_t): New typedef.
13986         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
13987         recovery_block, orig_pat.
13988         (glat_start, glat_end): New variables declaraions.
13989         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
13990         New access macros.
13991         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
13992         DETACH_LIFE_INFO, USE_GLAT.
13993         (enum SPEC_SCHED_FLAGS): New enumeration.
13994         (NOTE_NOTE_BB_P): New macro.
13995         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
13996         attach_life_info, debug_spec_status, check_reg_live): New functions.
13997         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
13998         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
13999         sched-ebb.c
14000         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
14001         * ddg.c (get_block_head_tail): Adjust all uses.
14002         * modulo-sched.c (get_block_head_tail): Adjust all uses.
14003         (sms_sched_info): Initialize new fields.
14004         (contributes_to_priority): Removed.
14005         * haifa-sched.c (params.h): New include.
14006         (get_block_head_tail): Adjust all uses.
14007         (ISSUE_POINTS): New macro.
14008         (glat_start, glat_end): New global variables.
14009         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
14010         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
14011         old_last_basic_block, before_recovery, current_sched_info_var,
14012         rgn_n_insns, luid): New static variables.
14013         (insn_cost1): New function.  Move logic from insn_cost to here.
14014         (find_insn_reg_weight1): New function.  Move logic from
14015         find_insn_reg_weight to here.
14016         (reemit_notes, move_insn, max_issue): Change signature.
14017         (move_insn1): Removed.
14018         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
14019         extend_bb): New static functions to support extension of scheduler's
14020         data structures.
14021         (generate_recovery_code, process_insn_depend_be_in_spec,
14022         begin_speculative_block, add_to_speculative_block,
14023         init_before_recovery, create_recovery_block, create_check_block_twin,
14024         fix_recovery_deps): New static functions to support
14025         generation of recovery code.
14026         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
14027         restore_bb_notes, move_block_after_check, move_succs): New static
14028         functions to support ebb scheduling.
14029         (init_glat, init_glat1, attach_life_info1, free_glat): New static
14030         functions to support handling of register live information.
14031         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
14032         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
14033         add_jump_dependencies): New static functions.
14034         (check_cfg, has_edge_p, check_sched_flags): New static functions for
14035         consistancy checking.
14036         (debug_spec_status): New function to call from debugger.
14037         (priority): Added code to handle speculation checks.
14038         (rank_for_schedule): Added code to distinguish speculative instructions.
14039         (schedule_insn): Added code to handle speculation checks.
14040         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
14041         Fixed to handle ebbs.
14042         (move_insn): Added code to handle ebb scheduling.
14043         (max_issue): Added code to use ISSUE_POINTS of instructions.
14044         (choose_ready): Added code to choose between speculative and
14045         non-speculative instructions.
14046         (schedule_block): Added code to handle ebb scheduling and scheduling of
14047         speculative instructions.
14048         (sched_init): Initialize new variables.
14049         (sched_finish): Free new variables.  Print statistics.
14050         (try_ready): Added code to handle speculative instructions.
14051         * lists.c (copy_DEPS_LIST_list): New function.
14052         * sched-deps.c (extend_dependency_caches): New function.  Move logic
14053         from create_dependency_caches to here.
14054         (get_dep_weak, ds_merge): Make global.
14055         * genattr.c (main): Code to output prototype for
14056         dfa_clear_single_insn_cache.
14057         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
14058         (output_dfa_clean_insn_cache_func): Code to output
14059         dfa_clear_single_insn_cache function.
14060         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
14061         n_insns.
14062         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
14063         Removed.
14064         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
14065         New static variables.
14066         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
14067         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
14068         struct sched_info.
14069         (ebb_sched_info): Initialize new fields.
14070         (get_block_head_tail): Adjust all uses.
14071         (compute_jump_reg_dependencies): Fixed to use glat_start.
14072         (schedule_ebb): Code to remove unreachable last block.
14073         (schedule_ebbs): Added code to update register live information.
14074         * sched-rgn.c (region_sched_info): Initialize new fields.
14075         (get_block_head_tail): Adjust all uses.
14076         (last_was_jump): Removed.  Adjust users.
14077         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
14078         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
14079         Implement new hooks.
14080         (check_dead_notes1): New static function.
14081         (struct region): New fields: dont_calc_deps, has_real_ebb.
14082         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
14083         (BB_TO_BLOCK): Fixed to handle EBBs.
14084         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
14085         (ebb_head): New static variable.
14086         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
14087         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
14088         new fields.
14089         (compute_dom_prob_ps): New assertion.
14090         (check_live_1, update_live_1): Fixed to work with glat_start instead of
14091         global_live_at_start.
14092         (init_ready_list): New assertions.
14093         (can_schedule_ready_p): Split update code to begin_schedule_ready.
14094         (new_ready): Add support for BEGIN_CONTROL speculation.
14095         (schedule_insns): Fixed code that updates register live information
14096         to handle EBBs.
14097         (schedule_region): Fixed to handle EBBs.
14098         (init_regions): Use extend_regions and check_dead_notes1.
14099         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
14100         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
14101         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
14102         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
14103         TARGET_SCHED_GEN_CHECK,
14104         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
14105         TARGET_SCHED_SET_SCHED_FLAGS): Document.
14106         * doc/invoke.texi (max-sched-insn-conflict-delay,
14107         sched-spec-prob-cutoff): Document.
14108
14109 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
14110
14111         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
14112         inter_tick, queue_index.
14113         (struct sched_info): Change signature of init_ready_list field.
14114         Adjust all initializations.
14115         (RESOLVED_DEPS): New access macro.
14116         (ready_add): Remove prototype.
14117         (try_ready): Add prototype.
14118         * sched-rgn.c (init_ready_list): Use try_ready.
14119         (schedule_region): Initialize
14120         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
14121         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
14122         (init_ready_list): Use try_ready.
14123         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
14124         * lists.c (remove_list_elem): Remove `static'.
14125         (remove_free_INSN_LIST_elem): New function.
14126         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
14127         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
14128         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
14129         New constants.
14130         (readyp): New variable.
14131         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
14132         change_queue_index, resolve_dep): New static functions.
14133         (try_ready): New function.  Adjust callers in sched-rgn.c and
14134         sched-ebb.c to use it instead of ready_add.
14135         (clock_var): Move at the begining of file.
14136         (rank_for_schedule): Fix typo.
14137         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
14138         (ready_lastpos): Enforce assertion.
14139         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
14140         update all callers.
14141         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
14142         (schedule_insn): Rewrite to use try_ready and resolve_dep.
14143         (queue_to_ready): Use free_INSN_LIST_list.
14144         (early_queue_to_ready): Fix typo.
14145         (schedule_block): Init readyp.  Move init_ready_list call after the
14146         initialization of clock_var.  Fix error in rejecting insn by
14147         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
14148         that previously corrected INSN_TICKs.  Add code for handling
14149         QUEUE_INDEX.
14150         (set_priorities): Fix typo.
14151         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
14152         Clarify comment and code that keeps current_sched_info->next_tail
14153         non-null.
14154
14155 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
14156
14157         * sched-rgn.c (extend_rgns): New static function.
14158         (find_rgns): Use it.
14159         (gather_region_statistics, print_region_statistics): New static
14160         functions.
14161         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
14162         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
14163
14164 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
14165             Andrey Belevantsev <abel@ispras.ru>
14166
14167         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
14168         * lists.c (unused_deps_list): New variable.
14169         (free_list): Add assertions to verify the proper distinguishing
14170         between INSN_LISTs and DEPS_LISTs.
14171         (find_list_elem, remove_list_elem, remove_list_node): New static
14172         functions.
14173         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
14174         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
14175         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
14176         (alloc_INSN_LIST): Assert that the list we're working on is indeed
14177         an INSN_LIST.
14178         (free_INSN_LIST_node): Likewise.
14179         * modulo-sched.c (current_sched_info): Initialize flags field.
14180         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
14181         * rtl.def (DEPS_LIST): Define.
14182         * rtl.h: Declare new functions from lists.c.
14183         * sched-deps.c (spec_dependency_cache): New static variable.
14184         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
14185         (add_dependence): Change return type to void.  Move the logic to ...
14186         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
14187         (delete_all_dependences): Add comment about forward_dependency_cache.
14188         Handle spec_dependency_cache.  Handle DEPS_LISTs.
14189         (fixup_sched_groups): Clarify the change of priority of output
14190         and anti dependencies.
14191         (sched_analyze_2): Adjust add_dependence calls to create data
14192         speculative dependence.
14193         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
14194         Adjust all callers.  Handle DEPS_LISTS.
14195         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
14196         presence of speculation.
14197         (init_dependency_caches, free_dependency_caches):
14198         Handle spec_dependency_cache.
14199         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
14200         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
14201         New static functions.
14202         (add_or_update_back_dep, add_or_update_back_forw_dep,
14203         add_back_forw_dep, delete_back_forw_dep): New functions.
14204         * sched-int.h (ds_t, dw_t): New typedefs.
14205         (struct sched_info): Add new field flags.
14206         (struct haifa_insn_data): Add new bitfield has_internal_dep.
14207         Prototype new sched-deps.c functions.
14208         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
14209         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
14210         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
14211         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
14212         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
14213         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
14214         New constants.
14215         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
14216         New enums.
14217         * sched-rgn.c (current_sched_info): Initialize flags field.
14218         (schedule_insns): Initialize current_sched_info before the sched_init
14219         call.
14220         * sched-ebb.c (current_sched_info): Initialize flags field.
14221         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
14222         Call add_or_update_back_dep instead of add_dependence.
14223         Create control speculative dependencies.
14224         (schedule_insns): Initialize current_sched_info before the sched_init
14225         call.
14226
14227 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
14228
14229         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
14230         fs->signal_frame.
14231         (sh_fallback_frame_state): Likewise.
14232
14233 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
14234
14235         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
14236         Do switch on default_use_cxa_atexit.
14237         (powerpc*-*-darwin*): Build crt2.o on powerpc.
14238         * config/darwin-crt3.o: New.
14239         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
14240         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
14241         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
14242         OS version.
14243         * config/rs6000/t-darwin: Move crt2.o building to here.
14244         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
14245         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
14246         of __cxa_atexit.
14247
14248 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14249
14250         * config/vax/vax.c (nonindexed_address_p): Change logical negation
14251         from '! xxx' to '!xxx' for coding-style conformance.
14252         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
14253         (EXTRA_CONSTRAINT): Likewise.
14254         * config/vax/vax.md (four unnamed insns): Likewise.
14255
14256 2006-03-15  Paul Brook  <paul@codesourcery.com>
14257
14258         * config/arm/arm.c (minipool_pad): New.
14259         (add_minipool_forward_ref): Include pool alignment padding in address
14260         calculation.
14261         (push_minipool_fix): Set minipool_pad.
14262         (minipool_pad): Ditto.
14263
14264 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14265
14266         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
14267         instead of GET_CODE() == MEM and REG_P() instead of
14268         GET_CODE() == REG.
14269         (print_operand_address): Likewise.
14270         (vax_address_cost): Likewise.
14271         (vax_rtx_costs): Likewise.
14272         (vax_notice_update_cc): Likewise.
14273         (vax_output_int_add): Likewise.
14274         (INDEX_REGISTER_P): Likewise.
14275         (BASE_REGISTER_P): Likewise.
14276         (nonindexed_address_p): Likewise.
14277         (vax_mode_dependent_address_p): Likewise.
14278         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
14279         (PRINT_OPERAND): Likewise.
14280         * config/vax/vax.md (ashlsi3): Likewise.
14281         (ashlsi3): Likewise.
14282         (some more unnamed insns): Likewise.
14283
14284 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
14285
14286         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
14287         iterator-style macro.
14288         (mark_control_dependent_edges_necessary): Update the use of
14289         EXECUTE_IF_CONTROL_DEPENDENT.
14290
14291 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
14292
14293         * config/sh/predicates.md (cache_address_operand): Special.
14294         (ua_address_operand): Likewise.
14295
14296 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
14297
14298         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
14299         loop notes.
14300         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
14301
14302 2006-03-15  Andreas Schwab  <schwab@suse.de>
14303
14304         * gensupport.c (identify_predicable_attribute): Don't free p_false
14305         when it is still in use.
14306
14307 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
14308
14309         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
14310         the default setting here.
14311
14312 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
14313
14314         * tree-pass.h (pass_cfg): Remove.
14315         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
14316         * passes.c (pass_cfg): Don't run it.
14317
14318 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
14319
14320         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
14321         * reg-stack.c (stack_regs_mentioned_data): Change the type to
14322         VEC(char,heap) *.
14323         (stack_regs_mentioned): Update the uses of
14324         stack_regs_mentioned_data.  Don't access the array beyond its
14325         end.
14326         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
14327         Don't include gt-reg-stack.h.
14328
14329         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
14330         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
14331
14332         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
14333
14334         PR middle-end/26684
14335         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
14336         STACK_REGS.
14337
14338 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14339
14340         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
14341
14342 2006-03-14  Richard Guenther  <rguenther@suse.de>
14343
14344         PR tree-optimization/26672
14345         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
14346         SSA form.
14347
14348 2006-03-14  Richard Guenther  <rguenther@suse.de>
14349
14350         PR tree-optimization/26667
14351         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
14352         node for the callees.  Always allow inlining if it will shrink
14353         the function size.
14354
14355 2006-03-14  Richard Guenther  <rguenther@suse.de>
14356
14357         PR middle-end/26659
14358         * builtins.c (get_pointer_alignment): Prefer alignment
14359         information from decls over that from types.
14360
14361 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
14362
14363         PR target/26657
14364         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
14365
14366 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
14367
14368         * config/rs6000/rs6000.opt (mdlmzb): New option.
14369         (msched-prolog, msched-epilog): Use Var not Mask.
14370         * doc/invoke.texi (-mdlmzb): Document.
14371         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
14372         MASK_SCHED_PROLOG.
14373         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
14374         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
14375
14376 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
14377
14378         PR rtl-optimization/25739
14379         * bt-load.c (augment_live_range): Free tos pointer.
14380
14381         * gensupport.c (identify_predicable_attribute): Free
14382         p_false pointer.
14383         * gcov.c (create_file_names): Free name pointer.
14384
14385 2006-03-13  Roger Sayle  <roger@eyesopen.com>
14386
14387         PR middle-end/26557
14388         * stmt.c (emit_case_nodes): Handle the case where the index is a
14389         CONST_INT, where the comparison mode is specified by the index type.
14390
14391 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14392
14393         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
14394         is defined.
14395
14396 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
14397
14398         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
14399         (*branch_fp_inverted): Likewise.
14400
14401 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
14402
14403         PR middle-end/25989
14404         * omp-low.c (expand_omp_for_generic): Mark istart0
14405         and iend0 as addressable.
14406
14407 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
14408
14409         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
14410
14411 2006-03-13  Jeff Law  <law@redhat.com>
14412
14413         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
14414         virtual operands are interesting.
14415         (vrp_visit_stmt): Corresponding changes.
14416
14417 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
14418
14419         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
14420         of RETS.
14421         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
14422         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
14423         * config/bfin/crti.S: Use it instead of __PIC__.
14424         * config/bfin/crtn.S: Likewise.
14425
14426         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
14427         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
14428         not if flag_pic.
14429         Lose 'G' modifier for call operand.
14430         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
14431         recognize 'G' modifier.
14432
14433 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
14434
14435         PR middle-end/18859
14436         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
14437         * stmt.c (expand_case): Likewise.
14438
14439 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
14440
14441         PR rtl-optimization/26254
14442         * loop-invariant.c (seq_insns_valid_p): New function.
14443         (move_invariant_reg): Only emit new code if it is valid.
14444
14445 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
14446
14447         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
14448         Removed.
14449         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
14450         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
14451         (commit_one_edge_insertion): Do not look for loop notes.
14452
14453 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
14454
14455         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
14456         flag_test_coverage out of loop.
14457
14458 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
14459
14460         * final.c (shorten_branches): Remove outdated comment, and turn
14461         the if branch that guards it to continue.
14462
14463 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
14464
14465         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
14466         * cfgloop.h (struct loop): Remove unused fields.
14467
14468 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
14469
14470         * doc/invoke.texi (-fdump-rtl-loop): Remove.
14471         (-dL, -fdump-rtl-loop2): Update the dump file names
14472
14473         * doc/invoke.texi: Update dump file names.
14474
14475 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
14476
14477         * predict.c (estimate_probability): Remove.
14478         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
14479         * basic-block.h (estimate_probability): Remove prototype.
14480         * passes.c (finish_optimization_passes): Dump branch prediction or
14481         profiling heuristics to the .profile tree dump.
14482         (init_optimization_passes): Unqueue pass_branch_prob.
14483
14484         * doc/invoke.texi (-fdump-rtl-bp): Remove.
14485
14486 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
14487
14488         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
14489         * rtl.h (LABEL_NEXTREF): Remove field accessor.
14490
14491 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
14492
14493         * function.h (frame_offset_overflow): Declare.
14494         * function.c (frame_offset_overflow): New function.
14495         (assign_stack_local_1): Call it to detect that the offset overflows.
14496         * cfgexpand.c (alloc_stack_frame_space): Likewise.
14497
14498 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
14499
14500         * config/sh/sh.c: Include alloc-pool.h.
14501         (label_ref_list_pool): New alloc pool.
14502         (label_ref_list_t): New type for lists of labels.
14503         (struct pool_node): Make wend a label_ref_list_t.
14504         (add_constant): Use the new type, eradicate LABEL_NEXTREF
14505         references.
14506         (dump_table): Likewise.
14507         (sh_reorg): Set up the alloc pool before using add_constant and
14508         dump_table, and destroy it when finishing.
14509
14510 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
14511
14512         * config/mips/mips.c: Remove redundant comment.
14513
14514 2006-03-10  Jason Merrill  <jason@redhat.com>
14515
14516         PR c/26004
14517         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
14518         the target was declared 'register'.
14519
14520 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
14521
14522         * genpreds.c (write_insn_constraint_len): Change definition of
14523         insn_constraint_len to return size_t to match the declaration.
14524
14525 2006-03-10  DJ Delorie  <dj@redhat.com>
14526
14527         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
14528         start at zero.
14529         (m32c_expand_insv): Fix test for an AND mask.
14530
14531 2006-03-10  Richard Guenther  <rguenther@suse.de>
14532
14533         PR middle-end/26565
14534         * builtins.c (get_pointer_alignment): Handle component
14535         references for field alignment.
14536
14537 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
14538
14539         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
14540         when building with libgloss.
14541         (sh*elf): Implement --without-fp option.
14542         (sh64-superh-linux*): Don't multilib.
14543
14544 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
14545
14546         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
14547
14548 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
14549
14550         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
14551         Set it when one of the replacement functions returned true.
14552         Return TODO_cleanup_cfg if cfgchanged is true.
14553         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
14554
14555 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
14556
14557         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
14558         instead of gen_lowpart.
14559
14560 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
14561
14562         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
14563         interface.
14564         (mips_output_order_conditional_branch): Declare.
14565         * config/mips/mips.h (MIPS_BRANCH): New macro.
14566         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
14567         for the comparison.  Use gen_condjump.
14568         (mips_output_conditional_branch): Rework interface to take the
14569         asm templates for a direct branch and the inverse of a direct branch.
14570         (mips_output_order_conditional_branch): New function.
14571         (mips_builtin_branch_and_move): New function.
14572         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
14573         branch condition.  Use gen_single_cc as the condition for
14574         __builtin_mips_upper_* or __builtin_mips_lower_*.
14575         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
14576         Use VOIDmode for the branch condition.
14577         * config/mips/predicates.md (order_operator): New predicate.
14578         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
14579         (branch_fp): Rename to...
14580         (*branch_fp): ...this.  Remove mode from comparison operator.
14581         Use new mips_output_conditional_branch interface.
14582         (branch_fp_inverted): Rename to...
14583         (*branch_fp_inverted): ...this and update as for *branch_fp.
14584         (*branch_zero<mode>): Rename to...
14585         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
14586         Use mips_output_order_conditional_branch.  Only accept ordered
14587         comparisons.
14588         (*branch_zero<mode>_inverted): Rename to...
14589         (*branch_order<mode>_inverted): ...this and update as for
14590         *branch_order<mode>.
14591         (*branch_equality<mode>): Accept zero as the second operand to
14592         the equality operator.  Use the new mips_output_conditional_branch
14593         interface.
14594         (*branch_equality<mode>_inverted): Likewise.
14595         (condjump): New expander.
14596         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
14597         operator.
14598         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
14599         (bc1any2t, bc1any2f): Likewise.
14600         (single_cc): New expander.
14601         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
14602
14603 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
14604
14605         * doc/md.texi: Update documentation of MIPS constraints.
14606         * config/mips/constraints.md: New file.
14607         * config/mips/mips.md: Include it.
14608         * config/mips/mips.c (mips_char_to_class): Delete.
14609         (override_options): Don't initialize mips_char_to_class.
14610         * config/mips/mips.h (mips_char_to_class): Delete.
14611         (REG_CLASS_FROM_LETTER): Delete.
14612         (CONST_OK_FOR_LETTER_P): Delete.
14613         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14614         (EXTRA_CONSTRAINT_Y): Delete.
14615         (EXTRA_CONSTRAINT_STR): Delete.
14616         (CONSTRAINT_LEN): Delete.
14617         (EXTRA_MEMORY_CONSTRAINT): Delete.
14618
14619 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
14620
14621         * tree-cfg.c (move_block_to_fn): Remove the statements from the
14622         original fn's eh regions.
14623
14624 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
14625
14626         * fold-const.c (build_range_check): Make sure to use a valid type to
14627         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
14628         transformation.
14629
14630         (range_predecessor): New static function.
14631         (range_successor): Likewise.
14632         (merge_ranges): Use them to compute predecessors and successors of
14633         range bounds.
14634
14635 2006-03-09  Roger Sayle  <roger@eyesopen.com>
14636
14637         PR middle-end/26561
14638         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
14639         X op C3, consider whether C3 overflows towards +Inf or -Inf.
14640
14641 2006-03-08  DJ Delorie  <dj@redhat.com>
14642
14643         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
14644         (addpsi3): Expand to include memory operands.  Remove
14645         reload-specific splits.
14646         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
14647         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
14648         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
14649         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
14650         (shift1_qi, shift1_hi, insv): New.
14651         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
14652         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
14653         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
14654         cond_to_int): New.
14655         * config/m32c/m32c-protos.h: Update as needed.
14656         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
14657         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
14658         Fail for unrecognized R* constraints.
14659         (m32c_cannot_change_mode_class): Be more picky about pseudos.
14660         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
14661         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
14662         Add Sp constraint.
14663         (m32c_init_libfuncs): New.
14664         (m32c_legitimate_address_p): Add debug wrapper.
14665         (m32c_rtx_costs): New.
14666         (m32c_address_cost): New.
14667         (conversions): Add 'B' prefix.
14668         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
14669         operands, or word regnames for QI operands.  'B' prints bit
14670         position.
14671         (m32c_expand_setmemhi): New.
14672         (m32c_expand_movmemhi): New.
14673         (m32c_expand_movstr): New.
14674         (m32c_expand_cmpstr): New.
14675         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
14676         (m32c_expand_neg_mulpsi3): Handle non-ints.
14677         (m32c_cmp_flg_0): New.
14678         (m32c_expand_movcc): New.
14679         (m32c_expand_insv): New.
14680         (m32c_scc_pattern): New.
14681         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
14682         a0/a1 out of SIregs.
14683         (STORE_FLAG_VALUE): New.
14684         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
14685         code macros.
14686         (no_insn): New.
14687         * config/m32c/mov.md: Make constraints more liberal.
14688         (zero_extendqihi2): Optimize r0/r1 case.
14689         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
14690         * config/m32c/predicates.md (m32c_any_operand): New.
14691         (m32c_nonimmediate_operand): New.
14692         (m32c_hl_operand): New.
14693         (m32c_r3_operand): New.
14694         (ap_operand): New.
14695         (ma_operand): New.
14696         (memsym_operand): New.
14697         (memimmed_operand): New.
14698         (a_qi_operand): New.
14699         (m32c_eqne_operator): New.
14700         (m32c_1bit8_operand): New.
14701         (m32c_1bit16_operand): New.
14702         (m32c_1mask8_operand): New.
14703         (m32c_1mask16_operand): New.
14704         * config/m32c/blkmov.md: New file.
14705         * config/m32c/t-m32c (MD_FILES): Add blkmov.
14706
14707 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
14708
14709         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
14710         unsigned to fix signed/unsigned comparison issue in
14711         DWARF2_FRAME_REG_OUT.
14712         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
14713         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
14714
14715         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
14716         of ptr into the ENABLE_CHECKING section.
14717
14718 2006-03-08  Jeff Law  <law@redhat.com>
14719
14720         * tree-vrp.c (infer_value_range): Only count pointer uses
14721         and dereferences if -fdelete-null-pointer-checks is enabled.
14722
14723         * tree-vrp.c (find_assert_locations): Infer value ranges for
14724         single use pointers, but do not create ASSERT_EXPRs for them.
14725         When a non-null range is inferred for a pointer, backwards
14726         propagate that range to other equivalent pointers through the
14727         use-def chain.
14728
14729 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
14730
14731         PR bootstrap/26500
14732         * Makefile.in (dvi, html, install-info): Invoke the corresponding
14733         language hook targets.
14734         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
14735         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
14736         if language hook targets were missing.
14737
14738 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
14739
14740         * tree-ssa-opfinalize.h: Removed.
14741         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
14742         dependency.
14743         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
14744         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
14745         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
14746         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
14747         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
14748         finalize_ssa_v_must_def_ops): New.
14749
14750 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
14751
14752         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
14753         block as parameter.
14754
14755 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
14756
14757         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
14758
14759         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
14760         addresses with offsets; reorganize.
14761
14762         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
14763         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
14764         (expand_builtin_init_dwarf_reg_sizes): Likewise.
14765
14766 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
14767
14768         PR target/26588
14769         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
14770
14771 2006-03-08  Ben Elliston  <bje@au.ibm.com>
14772
14773         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
14774
14775 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
14776
14777         PR gomp/26238
14778         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
14779         expansion.
14780
14781 2006-03-07  Richard Guenther  <rguenther@suse.de>
14782
14783         PR tree-optimization/26587
14784         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
14785
14786 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
14787
14788         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
14789
14790 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
14791
14792         * hooks.c (hook_bool_mode_rtx_true): New function.
14793         * hooks.h (hook_bool_mode_rtx_true): Declare.
14794         * toplev.c (compile_file): Call output_shared_constant_pool.
14795         * varasm.c (shared_constant_pool): New variable.
14796         (assemble_start_function, assemble_end_function): Remove arguments
14797         from call to output_constant_pool.
14798         (create_constant_pool): New function, split out from...
14799         (init_varasm_status): ...here.
14800         (force_const_mem): Choose between the shared and per-function constant
14801         pools.  Set current_function_uses_const_pool when reusing old entries
14802         as well as when creating new ones.
14803         (mark_constant): Ignore data argument.
14804         (mark_constants): Remove pool argument.
14805         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
14806         to decide whether the function uses a constant pool.
14807         (output_constant_pool_contents): New function, split out from...
14808         (output_constant_pool): ...here.
14809         (output_shared_constant_pool): New function.
14810         (init_varasm_once): Initialize shared_constant_pool.
14811         * output.h (output_constant_pool): Delete.
14812         (output_shared_constant_pool): Declare.
14813         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
14814         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
14815
14816 2006-03-06  Nick Clifton  <nickc@redhat.com>
14817
14818         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
14819         flag_strength_reduce.
14820
14821 2006-03-06  Ben Elliston  <bje@au.ibm.com>
14822
14823         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
14824         x86_64-*-linux* configurations.
14825
14826         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
14827         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
14828
14829 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
14830
14831         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
14832         Remove.
14833         * basic-block.h: Remove the extern for
14834         rediscover_loops_after_threading.
14835
14836         * cfgloop.c (cancel_loop): Make it static.
14837         * cfgloop.h: Remove the prototype for cancel_loop.
14838
14839         * flow.c (recompute_reg_usage): Make it static.
14840         * rtl.h: Remove the prototype for recompute_reg_usage.
14841
14842         * function.c (use_return_register): Make it static.
14843         * function.h: Remove the prototype.
14844
14845 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
14846
14847         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
14848         Remove.
14849         * recog.h: Remove the prototype for
14850         validate_change_maybe_volatile.
14851
14852 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
14853
14854         * rtlanal.c (replace_reg): Remove.
14855         * rtl.h: Remove the prototype for replace_reg.
14856
14857 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
14858
14859         * regclass.c (reg_scan_update): Remove.
14860         (reg_scan_mark_refs): Remove the last argument.
14861         * rtl.h: Remove the prototype for reg_scan_update.
14862
14863 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14864
14865         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
14866         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
14867         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
14868         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
14869         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
14870         loop-invariant.c, omp-low.c, opts.c, passes.c,
14871         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
14872         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
14873         tree-ssa-structalias.c, tree-ssa-threadedge.c,
14874         tree-ssa-threadupdate.c, tree-vect-patterns.c,
14875         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
14876         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
14877
14878 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14879
14880         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
14881         * dwarf2out.h: Remove the prototype for
14882         dwarf2out_add_library_unit_info.
14883
14884 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14885
14886         * tree.c (add_var_to_bind_expr): Remove.
14887         * tree.h: Remove the prototype for add_var_to_bind_expr.
14888
14889 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14890
14891         * regclass.c (n_non_fixed_regs): Remove.
14892         (init_reg_sets_1, globalize_reg): Remove all uses of
14893         n_non_fixed_regs.
14894         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
14895
14896 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14897
14898         * rtlanal.c (insns_safe_to_move_p): Remove.
14899         * rtl.h: Remove the prototype for insns_safe_to_move_p.
14900
14901 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14902
14903         * expmed.c (expand_mult_add): Remove.
14904         * expr.h: Remove the prototype for expand_mult_add.
14905
14906 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
14907
14908         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
14909         and REG_SAVED_VAL_EXP constants.
14910         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
14911         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
14912         Handle regs stored by value.
14913         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
14914         (execute_cfa_program): Handle DW_CFA_val_offset,
14915         DW_CFA_val_offset_sf and DW_CFA_val_expression.
14916         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
14917         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
14918         (uw_install_context_1): Handle target regs stored by value.
14919
14920 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
14921
14922         * tree-sra.c (tree_sra): Return todoflags;
14923         (generate_one_element): Set TODO_update_smt_usage if needed.
14924         (pass_sra): Remove TODO_update_smt_usage.
14925         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
14926         parameter.
14927         (tree_ssa_forward_propagate_single_use_vars): Return
14928         TODO_update_smt_usage if we need to update SMT usage.
14929         (pass_forwprop): Remove TODO_update_smt_usage.
14930
14931 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
14932
14933         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
14934         (correct_use_link): Remove reference to get_stmt_operands.
14935         (update_stmt_operands): Likewise.
14936         (get_modify_expr_operands): New function factored out of
14937         parse_ssa_operands and get_expr_operands.
14938         Try to create V_MUST_DEFs for LHS by default.
14939         (get_expr_operands) <case MODIFY_EXPR>: Call
14940         get_modify_expr_operands.
14941         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
14942         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
14943         (parse_ssa_operands) <case MODIFY_EXPR>: Call
14944         get_modify_expr_operands.
14945
14946 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
14947
14948         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
14949         * tree-flow.h: Remove the prototype for
14950         referenced_var_lookup_if_exists.
14951
14952 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
14953
14954         PR rtl-optimization/26345
14955         PR target/19061
14956         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
14957
14958 2006-03-03  Roger Sayle  <roger@eyesopen.com>
14959
14960         PR tree-optimization/26524
14961         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
14962         fold_convert to create a constant of the appropriate type.
14963
14964 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
14965
14966         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
14967         SYMBOL_REF_IN_BLOCK_P.
14968         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
14969         of SYMBOL_FLAG_IN_BLOCK.
14970         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
14971         instead of SYMBOL_REF_IN_BLOCK_P.
14972         * explow.c (use_anchored_address): Likewise.
14973         * rtl.c (rtx_size): Likewise.
14974         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
14975         instead of SYMBOL_FLAG_IN_BLOCK.
14976         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
14977         SYMBOL_REF_IN_BLOCK_P.
14978         (assemble_variable): Likewise.
14979         (output_constant_def_contents): Likewise.
14980         (output_constant_pool): Likewise.
14981         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
14982         instead of SYMBOL_FLAG_IN_BLOCK.
14983         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
14984         SYMBOL_REF_IN_BLOCK_P.
14985         (SYMBOL_REF_BLOCK): Likewise.
14986         (SYMBOL_REF_OFFSET): Likewise.
14987         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
14988         SYMBOL_REF_IN_BLOCK_P.
14989         (SYMBOL_FLAG_IN_BLOCK): Replace with...
14990         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
14991         (SYMBOL_REF_IN_BLOCK_P): Replace with...
14992         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
14993
14994 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
14995
14996         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
14997
14998 2006-03-02  Roger Sayle  <roger@eyesopen.com>
14999
15000         * simplify-rtx.c (simplify_unary_operation): When simplifying
15001         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
15002         that we perform the right shift in the appropriate mode, and
15003         then extend or truncate the result to requested mode.
15004
15005 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
15006
15007         * gengtype.c (main): Handle double_int type.
15008         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
15009         * double-int.c: New file.
15010         * double-int.h: New file.
15011         * system.h: Include doubleint.h.
15012         * Makefile.in (SYSTEM_H): Include double-int.h.
15013         (double-int.o): Add.
15014
15015 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
15016
15017         PR bootstrap/26478
15018         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
15019         copying over it.
15020
15021 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
15022
15023         * tree-vrp.c (remove_range_assertions): Do not update statements
15024         unnecessarily.
15025
15026 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
15027
15028         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
15029         cleanup.
15030         * gcse.c (rest_of_handle_gcse): Ditto.
15031         * except.c (gate_handle_eh): Ditto.
15032         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
15033         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
15034
15035 2006-03-02  Eric Christopher  <echristo@apple.com>
15036
15037         * config/i386/i386.c (machopic_output_stub): Add indirection to
15038         jump.
15039
15040 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
15041
15042         * loop.c: Removed.
15043
15044 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
15045
15046         Sun Niagara specific optimizations.
15047         * config.gcc: Recognize niagara as target.
15048         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
15049         (TARGET_CPU_niagara): Define.
15050         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
15051         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
15052         (CPP_CPU_SPEC): Handle -mcpu=niagara.
15053         (ASM_CPU_SPEC): Likewise.
15054         (PROCESSOR_NIAGARA): New enum entry.
15055         (REGISTER_MOVE_COST): Handle Niagara.
15056         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
15057         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
15058         (sparc_override_options): Recognize "niagara", set appropriate
15059         default MASK_* values for it, and align functions to 32-bytes
15060         by default just like ULTRASPARC/ULTRASPARC3.
15061         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
15062         (sparc64_initialize_trampoline): Likewise.
15063         (sparc_use_sched_lookahead): Use zero for niagara.
15064         (sparc_issue_rate): Use one for niagara.
15065         * config/sparc/niagara.md: New file.
15066         * config/sparc/sparc.md: Include it.
15067         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
15068         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
15069         when default cpu is niagara.
15070         (CPP_CPU_SPEC): Handle -mcpu=niagara.
15071         (ASM_CPU_SPEC): Likewise.
15072         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
15073         when default cpu is niagara.
15074         (ASM_CPU_SPEC): Handle -mcpu=niagara.
15075         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
15076         just like v9/ultrasparc/ultrasparc3.
15077         * doc/invoke.texi: Add documentation for "niagara" and improve
15078         existing documentation for ultrasparc variants.
15079
15080 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
15081
15082         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
15083
15084 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
15085
15086         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
15087         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
15088         and say that only one is needed.
15089         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
15090         * target.h (have_switchable_bss_sections): New hook.
15091         * explow.c (use_anchored_address): Check that the symbol is in a block.
15092         * varasm.c (tls_comm_section, comm_section, lcomm_section)
15093         (bss_noswitch_section): New variables.
15094         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
15095         (get_noswitch_section): New function.
15096         (get_block_for_section): Allow SECT to be null.
15097         (unlikely_text_section_p): Use SECTION_STYLE.
15098         (bss_initializer_p): New function.
15099         (get_variable_section): Move earlier in file.  Take a new argument,
15100         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
15101         Return one of the new *_sections in such cases.
15102         (get_block_for_decl): New function, extracting some logic from
15103         use_blocks_for_decl_p.
15104         (change_symbol_section): Remove in favor of...
15105         (change_symbol_block): ...this new function.
15106         (use_blocks_for_decl_p): Remove checks now performed by
15107         get_block_for_decl.
15108         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
15109         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
15110         (emit_local, emit_bss, emit_common): ...these new functions.
15111         Return true if the alignment was honored.
15112         (emit_tls_common): New function.
15113         (asm_emit_uninitialised): Delete.
15114         (assemble_variable_noswitch): New function, split out from...
15115         (assemble_variable): ...here.  Don't make decisions about common
15116         variables here.  Globalize all public decls that go into non-common
15117         sections.  Check whether SYMBOL_REF_BLOCK is null.
15118         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
15119         (output_constant_pool): Likewise.
15120         (init_varasm_once): Initialize the new section variables.
15121         (have_global_bss_p): New function.
15122         (categorize_decl_for_section): Use bss_initializer_p.
15123         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
15124         (place_block_symbol): Assert that the symbol must be in a block.
15125         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
15126         (TARGET_INITIALIZER): Include it.
15127         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
15128         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
15129         (SECTION_MACH_DEP): Bump by two.
15130         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
15131         (unnamed_section): Mention SECTION_UNNAMED in comment.
15132         (named_section): Likewise SECTION_NAMED.
15133         (noswitch_section_callback): New type.
15134         (noswitch_section): New structure.
15135         (section): Add a noswitch_section alternative.
15136         (SECTION_STYLE): New macro.
15137         (tls_comm_section, comm_section, lcomm_section): Declare.
15138         (bss_noswitch_section, have_global_bss_p): Declare.
15139         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
15140         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
15141         Override.
15142         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
15143         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
15144         Override.
15145
15146 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
15147
15148         * tree-vrp.c (execute_vrp): Return value.
15149         * regrename.c (rest_of_handle_regrename): Ditto.
15150         * tree-into-ssa.c (rewrite_into_ssa): Ditto.
15151         * tree-complex.c (tree_lower_complex): Ditto.
15152         (tree_lower_complex_O0): Ditto.
15153         * tracer.c (rest_of_handle_tracer): Ditto.
15154         * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
15155         * postreload.c (rest_of_handle_postreload): Ditto.
15156         * tree-tailcall.c (execute_tail_recursion): Ditto.
15157         (execute_tail_calls): Ditto.
15158         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
15159         * tree.h (init_function_for_compilation): Ditto.
15160         * ipa-cp.c (ipcp_driver): Ditto.
15161         * tree-scalar-evolution.c (scev_const_prop): Ditto.
15162         * tree-scalar-evolution.h (scev_const_prop): Ditto.
15163         * final.c (compute_alignments): Ditto.
15164         (rest_of_handle_final): Ditto.
15165         (rest_of_handle_shorten_branches): Ditto.
15166         (rest_of_clean_state): Ditto.
15167         * omp-low.c (execute_expand_omp): Ditto.
15168         (execute_lower_omp): Ditto.
15169         * tree-ssa-dse.c (tree_ssa_dse): Ditto.
15170         * ipa-reference.c (static_execute): Ditto.
15171         * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
15172         * reorg.c (rest_of_handle_delay_slots): Ditto.
15173         (rest_of_handle_machine_reorg): Ditto.
15174         * cgraphunit.c (rebuild_cgraph_edges): Ditto.
15175         * flow.c (recompute_reg_usage): Ditto.
15176         (rest_of_handle_remove_death_notes): Ditto.
15177         (rest_of_handle_life): Ditto.
15178         (rest_of_handle_flow2): Ditto.
15179         * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
15180         * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
15181         (do_ssa_store_ccp): Ditto.
15182         (execute_fold_all_builtins): Ditto.
15183         * mode-switching.c (rest_of_handle_mode_switching): Ditto.
15184         * modulo-sched.c (rest_of_handle_sms): Ditto.
15185         * ipa-pure-const.c (static_execute): Ditto.
15186         * cse.c (rest_of_handle_cse): Ditto.
15187         (rest_of_handle_cse2): Ditto.
15188         * web.c (rest_of_handle_web): Ditto.
15189         * tree-stdarg.c (execute_optimize_stdarg): Ditto.
15190         * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
15191         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
15192         * tree-nrv.c (tree_nrv): Ditto.
15193         (execute_return_slot_opt): Ditto.
15194         * tree-ssa-alias.c (compute_may_aliases): Ditto.
15195         (create_structure_vars): Ditto.
15196         * loop-init.c (rtl_loop_init): Ditto.
15197         (rtl_loop_done): Ditto.
15198         (rtl_move_loop_invariants): Ditto.
15199         (rtl_unswitch): Ditto.
15200         (rtl_unroll_and_peel_loops): Ditto.
15201         (rtl_doloop): Ditto.
15202         * gimple-low.c (lower_function_body): Ditto.
15203         (mark_used_blocks): Ditto.
15204         * tree-ssa-sink.c (execute_sink_code): Ditto.
15205         * ipa-inline.c (cgraph_decide_inlining): Ditto.
15206         (cgraph_early_inlining): Ditto.
15207         * global.c (rest_of_handle_global_alloc): Ditto.
15208         * jump.c (cleanup_barriers): Ditto.
15209         (purge_line_number_notes): Ditto.
15210         * ifcvt.c (rest_of_handle_if_conversion): Ditto.
15211         (rest_of_handle_if_after_reload): Ditto.
15212         * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
15213         (tree_ssa_loop_im): Ditto.
15214         (tree_ssa_loop_unswitch): Ditto.
15215         (tree_vectorize): Ditto.
15216         (tree_linear_transform): Ditto.
15217         (tree_ssa_loop_ivcanon): Ditto.
15218         (tree_ssa_empty_loop): Ditto.
15219         (tree_ssa_loop_bounds): Ditto.
15220         (tree_complete_unroll): Ditto.
15221         (tree_ssa_loop_prefetch): Ditto.
15222         (tree_ssa_loop_ivopts): Ditto.
15223         (tree_ssa_loop_done): Ditto.
15224         * predict.c (tree_estimate_probability): Ditto.
15225         * recog.c (split_all_insns_noflow): Ditto.
15226         (rest_of_handle_peephole2): Ditto.
15227         (rest_of_handle_split_all_insns): Ditto.
15228         * tree-eh.c (lower_eh_constructs): Ditto.
15229         * regmove.c (rest_of_handle_regmove): Ditto.
15230         (rest_of_handle_stack_adjustments): Ditto.
15231         * local-alloc.c (rest_of_handle_local_alloc): Ditto.
15232         * function.c (instantiate_virtual_regs): Ditto.
15233         (init_function_for_compilation): Ditto.
15234         (rest_of_handle_check_leaf_regs): Ditto.
15235         * gcse.c (rest_of_handle_jump_bypass): Ditto.
15236         (rest_of_handle_gcse): Ditto.
15237         * ipa-type-escape.c (type_escape_execute): Ditto.
15238         * alias.c (rest_of_handle_cfg): Ditto.
15239         * tree-if-conv.c (main_tree_if_conversion): Ditto.
15240         * profile.c (rest_of_handle_branch_prob): Ditto.
15241         * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
15242         * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
15243         * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
15244         * tree-dfa.c (find_referenced_vars): Ditto.
15245         * except.c (set_nothrow_function_flags): Ditto.
15246         (convert_to_eh_region_ranges): Ditto.
15247         (rest_of_handle_eh): Ditto.
15248         * emit-rtl.c (unshare_all_rtl): Ditto.
15249         (remove_unnecessary_notes): Ditto.
15250         * except.h (set_nothrow_function_flags): Ditto.
15251         (convert_to_eh_region_ranges): Ditto.
15252         * cfgexpand.c (tree_expand_cfg): Ditto.
15253         * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
15254         * tree-ssa-pre.c (do_pre): Ditto.
15255         (execute_fre): Ditto.
15256         * cfgcleanup.c (rest_of_handle_jump): Ditto.
15257         (rest_of_handle_jump2): Ditto.
15258         * tree-sra.c (tree_sra): Ditto.
15259         * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
15260         (execute_mudflap_function_decls): Ditto.
15261         * tree-ssa-copy.c (do_copy_prop): Ditto.
15262         (do_store_copy_prop): Ditto.
15263         * ipa-prop.h (ipcp_driver): Ditto.
15264         * cfglayout.c (insn_locators_initialize): Ditto.
15265         * tree-ssa-forwprop.c
15266         (tree_ssa_forward_propagate_single_use_vars): Ditto.
15267         * cfglayout.h (insn_locators_initialize): Ditto.
15268         * tree-ssa-dce.c (tree_ssa_dce): Ditto.
15269         * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
15270         (execute_late_warn_uninitialized): Ditto.
15271         * rtl.h (cleanup_barriers): Ditto.
15272         (split_all_insns_noflow): Ditto.
15273         (purge_line_number_notes): Ditto.
15274         (unshare_all_rtl): Ditto.
15275         (remove_unnecessary_notes): Ditto.
15276         (recompute_reg_usage): Ditto.
15277         (variable_tracking_main): Ditto.
15278         * integrate.c (emit_initial_value_sets): Ditto.
15279         * integrate.h (emit_initial_value_sets): Ditto.
15280         * tree-optimize.c (execute_free_datastructures): Ditto
15281         (execute_free_cfg_annotations): Ditto.
15282         (execute_fixup_cfg): Ditto.
15283         (execute_cleanup_cfg_pre_ipa): Ditto.
15284         (execute_cleanup_cfg_post_optimizing): Ditto.
15285         (execute_init_datastructures): Ditto.
15286         * tree-object-size.c (compute_object_sizes): Ditto.
15287         * combine.c (rest_of_handle_combine): Ditto.
15288         * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
15289         * bb-reorder.c (duplicate_computed_gotos): Ditto.
15290         (rest_of_handle_reorder_blocks): Ditto.
15291         (rest_of_handle_partition_blocks): Ditto.
15292         * var-tracking.c (variable_tracking_main): Ditto.
15293         * tree-profile.c (tree_profiling): Ditto.
15294         * tree-vect-generic.c (expand_vector_operations): Ditto.
15295         * reg-stack.c (rest_of_handle_stack_regs): Ditto.
15296         * sched-rgn.c (rest_of_handle_sched): Ditto.
15297         (rest_of_handle_sched2): Ditto.
15298         * basic-block.h (free_bb_insn): Ditto.
15299         * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
15300         * tree-cfg.c (execute_build_cfg): Ditto.
15301         (remove_useless_stmts): Ditto.
15302         (split_critical_edges): Ditto.
15303         (execute_warn_function_return): Ditto.
15304         (execute_warn_function_noreturn): Ditto.
15305         * tree-ssa-reassoc.c (execute_reassoc): Ditto.
15306         * cfgrtl.c (free_bb_for_insn): Ditto.
15307         * passes.c (execute_one_pass): Run additional
15308         todos returned by execute function.
15309         * tree-pass.h (struct tree_opt_pass): Make execute
15310         return a value.
15311
15312 2006-03-02  Richard Guenther  <rguenther@suse.de>
15313
15314         * tree-ssa-alias.c (find_used_portions): Consider taking
15315         the address as making the variable not write-only.
15316
15317 2006-03-02  Nick Clifton  <nickc@redhat.com>
15318
15319         * config.gcc (default_use_cxa_atexit): Extend the description of
15320         this configure variable.  Set its default value to "yes" for
15321         Linux, NetBSD and ELF targets on the assumption that they will
15322         use C libraries with the __cxa_atexit function.
15323
15324 2006-03-02  Ben Elliston  <bje@au.ibm.com>
15325
15326         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
15327         parameter as unused to suppress a build warning.
15328
15329 2006-03-02  Ben Elliston  <bje@au.ibm.com>
15330
15331         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
15332         config/dfp-bit.c.
15333
15334 2006-03-01  Roger Sayle  <roger@eyesopen.com>
15335
15336         PR other/26489
15337         * gthr-posix.h (__gthrw2): Define to take three parameters, the
15338         declared name, the weak reference name, and the typeof name.
15339         (__gthrw): Avoid expanding the declared name suffix.
15340         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
15341
15342 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
15343
15344         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
15345         from DWARF 3.
15346         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
15347         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
15348         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
15349         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
15350         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
15351         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
15352         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
15353         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
15354         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
15355         DW_DS_leading_separate, DW_DS_trailing_separate): New.
15356         (DW_END_default, DW_END_big, DW_END_little): New.
15357         (DW_END_lo_user, DW_END_hi_user): Define.
15358         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
15359         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
15360         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
15361         DW_LANG_D): New.
15362
15363 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
15364
15365         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
15366         Update all users.
15367         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
15368         Update all users.
15369         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
15370         Update all users.
15371         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
15372         Update all users.
15373         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
15374         to 'symbol_mem_tag'.
15375         Update all users.
15376         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
15377         rename.
15378
15379 2006-03-01  Roger Sayle  <roger@eyesopen.com>
15380
15381         * builtins.c (fold_builtin_copysign): Delete unreachable code.
15382
15383 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
15384
15385         PR target/25761
15386         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
15387         MACHO_DYNAMIC_NO_PIC_P.
15388         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
15389
15390 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
15391
15392         PR target/26389
15393         * config/darwin-protos.h (darwin_asm_output_anchor):
15394         Declare.
15395         * config/darwin-sections.def (cstring_section):
15396         Add SECTION_MERGE to the flags.
15397         (literal4_section): Likewise.
15398         (literal8_section): Likewise.
15399         (objc_selector_refs_section): Likewise.
15400         (objc_cls_refs_section): Likewise.
15401         * config/darwin.c (darwin_asm_output_anchor): New
15402         function.
15403         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
15404
15405 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
15406
15407         Fix PR tree-optimization/26443
15408         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
15409         to todo and PROP_tmt_usage to properties_destroyed.
15410         * tree-ssa-ccp.c (pass_ccp): Ditto.
15411         (pass_store_ccp): Ditto.
15412         * tree-ssa-dom.c (pass_dominator): Ditto.
15413
15414 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
15415
15416         * tree-ssa-operands.c: Cleanup whitespace.
15417         (get_asm_expr_operands): Move before first invocation.
15418         (get_indirect_ref_operands): Likewise.
15419         (get_tmr_operands): Likewise.
15420         (get_call_expr_operands): Likewise.
15421         (append_def): Likewise.
15422         (append_use): Likewise.
15423         (append_v_may_def): Likewise.
15424         (append_v_must_def): Likewise.
15425         (add_call_clobber_ops): Likewise.
15426         (add_call_read_ops): Likewise.
15427         (add_stmt_operand): Likewise.
15428         (add_virtual_operand): Likewise.
15429         (build_ssa_operands): Likewise.
15430
15431 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
15432
15433         PR middle-end/26022
15434         Revert:
15435         PR middle-end/24437
15436         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
15437         with a call expr to ...
15438         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
15439
15440 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
15441
15442         * tree-vrp.c (extract_range_from_assert): Remove special
15443         handling for types with super-types.
15444
15445 2006-03-01  Ben Elliston  <bje@au.ibm.com>
15446
15447         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
15448         and powerpc64-*-linux* configurations.
15449         * config/t-dfprules: New file.
15450
15451         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
15452         Compile dfp-bit.c from the source directory using -DWIDTH and
15453         $DFP_CFLAGS to control the compilation of that file, rather than
15454         generating width-specific versions in the build directory.
15455         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
15456         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
15457
15458 2006-02-28  Zack Weinberg  <zackw@panix.com>
15459
15460         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
15461         continues to work.
15462
15463 2006-02-28  Eric Christopher  <echristo@apple.com>
15464
15465         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
15466         Set up IN_LIBGCC definition of TARGET_64BIT.
15467         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
15468
15469 2006-02-28  Roger Sayle  <roger@eyesopen.com>
15470
15471         PR middle-end/14752
15472         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
15473         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
15474         cases via the construction of "expr != 0".
15475
15476 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
15477
15478         * alias.c (alias_invariant, alias_invariant_size): Remove.
15479         (record_base_value): Remove.
15480         (memrefs_conflict_p): Don't look at alias_invariant.
15481         (end_alias_analysis): Don't free it.
15482         * alias.h (record_base_value): Remove prototype.
15483
15484 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
15485             Adam Nemet  <anemet@caviumnetworks.com>
15486
15487         * rtl.h (truncated_to_mode): Declare it.
15488         (struct rtl_hooks): Add reg_truncated_to_mode hook.
15489         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
15490         (RTL_HOOKS_INITIALIZER): Include it.
15491         * rtlhooks.c (reg_truncated_to_mode_general): New function.
15492         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
15493         reg_truncated_to_mode.
15494         * rtlanal.c (truncated_to_mode): Define it.
15495         * simplify-rtx.c (simplify_unary_operation_1): Use it.
15496
15497 2006-02-28  Jeff Law  <law@redhat.com>
15498
15499         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
15500         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
15501         the range allowed by TYPE_PRECISION.
15502
15503         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
15504
15505 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
15506
15507         PR tree-optimization/26419
15508         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
15509         values of n.
15510
15511 2006-02-27  Zack Weinberg  <zackw@panix.com>
15512
15513         * doc/md.texi: Fix typo in previous change.
15514
15515 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
15516
15517         * df.c: Remove.
15518
15519 2006-02-27  Zack Weinberg  <zackw@panix.com>
15520
15521         * rtl.def (define_constraint, define_register_constraint)
15522         (define_memory_constraint, define_address_constraint): New MD forms.
15523         * gensupport.c (process_rtx): Put define_constraint etc on the
15524         predicate queue.
15525         * genpreds.c (process_define_predicate): Adjust comment.  Validate
15526         the name, and call validate_exp to validate the expression.
15527         (mark_mode_tests, write_extract_subexp): Can assume correct input.
15528         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
15529         all callers changed.
15530         (validate_exp, needs_variable, struct constraint_data)
15531         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
15532         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
15533         (const_dbl_constraints, constraint_max_namelen)
15534         (have_register_constraints, have_memory_constraints)
15535         (have_address_constraints, have_address_constraints)
15536         (have_extra_constraints, have_const_int_constraints)
15537         (have_const_dbl_constraints, mangle, add_constraint)
15538         (process_define_constraint, process_define_register_constraint)
15539         (write_enum_constraint_num, write_lookup_constraint)
15540         (write_insn_constraint_len, write_regclass_for_constraint)
15541         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
15542         (write_insn_extra_memory_constraint)
15543         (write_insn_extra_address_constraint)
15544         (write_satisfies_constraint_fns): New.
15545         (write_tm_preds_h): If we have new-style constraint definitions,
15546         prototype the functions generated from them, and define the
15547         old constraint interface (still used by generic code) in terms of
15548         those functions.
15549         (write_insn_preds_c): If we have new-style constraint definitions,
15550         generate all relevant functions from those definitions.
15551         (main): Handle define_constraint etc.
15552         * genoutput.c (struct constraint_data, indep_constraints)
15553         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
15554         (mdep_constraint_len): New data structures and functions, defined
15555         #ifdef USE_MD_CONSTRAINTS.
15556         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
15557         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
15558         use new logic to validate operand constraints against constraint
15559         definitions.
15560         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
15561         defined.
15562         * defaults.h: If none of the old-style constraint macros are
15563         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
15564         old-style macros; and poison REG_CLASS_FROM_LETTER,
15565         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
15566         EXTRA_CONSTRAINT.
15567         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
15568         * doc/md.texi: Document new constraint-definition mechanism and the
15569         C interface it provides.  Remove references to old mechanism
15570         elsewhere in the document.
15571         (Machine Constraints): Use pathnames relative to gcc directory,
15572         i.e. config/ARCH/FILE.  Change i386 section to refer to
15573         config/i386/predicates.md; update that section to match docstrings.
15574         * doc/tm.texi: Move all documentation of the old constraint-
15575         definition macros to their own section, clearly mark as obsolete.
15576
15577         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
15578         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
15579         definitions.
15580         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
15581         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
15582         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
15583         constraint strings.
15584         (splits and peepholes): Use satisfies_constraint_*.
15585         * config/i386/i386.c (memory_address_length)
15586         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
15587
15588 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
15589
15590         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
15591         scalar operation to be put back into the loop.
15592
15593 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
15594
15595         PR other/26208
15596         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
15597         (extract_cie_info): Handle S flag in augmentation string.
15598         (execute_cfa_program): If context->signal_frame, execute also
15599         fs->pc == context->ra instructions.
15600         (uw_frame_state_for): If context->signal_frame, don't subtract one
15601         from context->ra to find FDE.
15602         (uw_update_context_1): Set context->signal_frame to
15603         fs->signal_frame.
15604         (_Unwind_GetIPInfo): New function.
15605         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
15606         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
15607         of _Unwind_GetIP.
15608         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
15609         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
15610         * unwind-compat.c (_Unwind_GetIPInfo): New function.
15611         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
15612         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
15613         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
15614         * config/i386/linux-unwind.h (x86_fallback_frame_state,
15615         x86_64_fallback_frame_state): Set fs->signal_frame.
15616         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
15617         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
15618         (frob_update_context): Likewise.  Workaround missing S flag in
15619         Linux 2.6.12 - 2.6.16 kernel vDSOs.
15620         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
15621         Remove the psw_addr + 1 hack.
15622
15623 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
15624
15625         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
15626         with aggregates here.
15627         (find_func_aliases): Remove code for &<aggregate> from here.
15628
15629 2006-02-26  Roger Sayle  <roger@eyesopen.com>
15630
15631         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
15632         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
15633         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
15634         as (X & C) ne/eq 0.
15635
15636 2006-02-26  Roger Sayle  <roger@eyesopen.com>
15637
15638         PR middle-end/19983
15639         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
15640
15641 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
15642
15643         * opts.c (decode_options): Do not handle flag_strength_reduce.
15644         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
15645         and OPT_fstrength_reduce.
15646         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
15647         flag_prefetch_loop_arrays for being nonzero.
15648         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
15649         no-ops.
15650         (fprefetch-loop-arrays-rtl): Removed.
15651         (flag_prefetch_loop_arrays): Do not specify the value.
15652
15653         * doc/passes.texi: Update documentation of loop optimizer
15654         passes.
15655         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
15656         -frerun-loop-opt): Remove.
15657
15658 2006-02-26  Richard Guenther  <rguenther@suse.de>
15659
15660         PR tree-optimization/26421
15661         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
15662         in function calls that are ADDR_EXPRs as using the whole structure.
15663
15664 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
15665
15666         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
15667         * tree-pass.h (pass_loop_optimize): Remove.
15668         * passes.c (pass_loop_optimize): Never run it.
15669         * toplev.c (backend_init): Don't call init_loop.
15670         * opts.c (flag_loop_optimize_set): Remove.
15671         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
15672         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
15673         the old RTL loop optimizer when profiling enabled.
15674         * predict.c (tree_estimate_probability): Always strip builtin_expect.
15675         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
15676         pre-headers for the sake of the old RTL loop optimizer.
15677         * Makefile.in: Remove all references to loop.o.
15678
15679         * doc/invoke.texi: Remove all references to -floop-optimize
15680         and -frerun-loop-opt.
15681
15682 2006-02-26  Zack Weinberg  <zackw@panix.com>
15683
15684         * doc/md.texi (Machine Constraints): Refer to all files with paths
15685         relative to gcc directory (i.e. config/CPU/file).  Add missing
15686         @table @code ... @end table to M32C subsection.
15687
15688 2006-02-26  Roger Sayle  <roger@eyesopen.com>
15689
15690         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
15691         (X & 1) == 0.
15692         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
15693
15694 2006-02-26  Roger Sayle  <roger@eyesopen.com>
15695             James A. Morrison  <phython@gcc.gnu.org>
15696
15697         PR middle-end/21137
15698         * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
15699         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
15700         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
15701         signedness of the shift operation.
15702
15703 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
15704
15705         PR tree-optimization/26359
15706         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
15707
15708 2006-02-25  Roger Sayle  <roger@eyesopen.com>
15709
15710         * simplify-rtx.c (simplify_relational_operation_1): Simplify
15711         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
15712         as X == 0, and some symmetry related transformations.
15713         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
15714
15715 2006-02-25  Roger Sayle  <roger@eyesopen.com>
15716
15717         PR middle-end/23673
15718         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
15719         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
15720         symmetry related transformations.  Fold (X^C1) == C2 as
15721         X == (C1^C2).
15722
15723 2006-02-25  Juergen Weigert  <jw@suse.de>
15724         Richard Guenther  <rguenther@suse.de>
15725
15726         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
15727
15728 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
15729
15730         * combine.c (gen_lowpart_or_truncate): Call
15731         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
15732
15733 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
15734
15735         * doc/invoke.texi: Move -fopenmp description to "Options for
15736         Code Generation".
15737         Remove reference to -lgomp.
15738
15739 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
15740
15741         * doc/install.texi: Require GNU tar version 1.14.
15742
15743 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
15744
15745         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
15746         * doc/invoke.texi (C++ Dialect Options): Document
15747         -fno-use-cxa-get-exception-ptr.
15748         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
15749         * configure: Regenerate.
15750         * c.opt (fuse-cxa-get-exception-ptr): New.
15751         * c-opts.c (c_common_handle_option): Handle
15752         OPT_fuse_cxa_get_exception_ptr.
15753         * c-common.c (flag_use_cxa_atexit): Update documentation.
15754         (flag_use_cxa_get_exception_ptr): New.
15755         * c-common.h (flag_use_cxa_get_exception_ptr): New.
15756         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
15757         documentation.
15758         (C_COMMON_OVERRIDE_OPTIONS): New.
15759
15760 2006-02-24  Roger Sayle  <roger@eyesopen.com>
15761
15762         PR middle-end/24952
15763         * combine.c (try_combine): Explicitly check whether GET_CODE is
15764         a SET or a CLOBBER, instead on checking that it isn't a USE.
15765
15766 2006-02-24  Roger Sayle  <roger@eyesopen.com>
15767
15768         * fold-const.c (fold_comparison): New subroutine of fold_binary
15769         containing transformations common to both the equality and
15770         ordering relational operators, factored out of fold_binary.
15771         (fold_binary): Separate out the equality operators (EQ_EXPR
15772         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
15773         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
15774         transformations common to both.
15775         (fold_div_compare): Fix latent bugs in the previously unreachable
15776         LT_EXPR and GE_EXPR cases.
15777
15778 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
15779
15780         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
15781         decl libname for clog to __clog on AIX.
15782
15783         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
15784
15785 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
15786
15787         PR target/26453
15788         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
15789         output traceback table for thunks.  Localise rs6000_stack_info call.
15790
15791 2006-02-23  Roger Sayle  <roger@eyesopen.com>
15792             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15793
15794         * gthr-posix.h (__gthrw): Fix typo in comment.
15795
15796 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
15797
15798         * doc/cpp.texi (Character sets): Document that we do support
15799         input files to be in any character set.
15800
15801 2006-02-23  Jeff Law  <law@redhat.com>
15802
15803         * tree.h (PHI_ARG_NONZERO): Remove.
15804         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
15805         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
15806         node to the new node.
15807
15808         PR tree-optimization/26425
15809         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
15810         min/max, then assume its varying.
15811
15812 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
15813
15814         PR rtl-optimization/26316
15815         * rtlanal.c (enum may_trap_p_flags): New.
15816         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
15817         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
15818         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
15819         (may_trap_after_code_motion_p): New function.
15820         * loop-invariant.c (find_identical_invariants): Fix dump formating.
15821         (find_invariant_insn): Use may_trap_after_code_motion_p.
15822         * rtl.h (may_trap_after_code_motion_p): Declare.
15823
15824 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
15825
15826         * emit-rtl.c (immed_double_const): Cleanup.
15827
15828 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
15829
15830         Fix PR tree-optimization/26376
15831         * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
15832         remove assert.
15833
15834 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
15835
15836         PR middle-end/26412
15837         * gimplify.c (omp_add_variable): Guard variable size decl test with
15838         DECL_SIZE (decl) check.
15839
15840 2006-02-23  Richard Guenther  <rguenther@suse.de>
15841
15842         PR middle-end/26439
15843         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
15844         like aggregate types.
15845
15846 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
15847
15848         * configure.ac: Add --with{,out}-long-double-128 configure option.
15849         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
15850         * configure: Rebuilt.
15851         * config.in: Rebuilt.
15852         * doc/install.texi (Options specification): Document
15853         --with-long-double-128.
15854
15855         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
15856         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
15857         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
15858         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
15859
15860 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
15861
15862         * config/s390/s390.c (override_options): Handle
15863         TARGET_DEFAULT_LONG_DOUBLE_128.
15864
15865         * config/alpha/alpha.c (override_options): Handle
15866         TARGET_DEFAULT_LONG_DOUBLE_128.
15867
15868         * config/sparc/sparc.c (sparc_override_options): Handle
15869         TARGET_DEFAULT_LONG_DOUBLE_128.
15870
15871 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
15872
15873         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
15874         (real-install-headers-tar, real-install-headers-cpio)
15875         (real-install-headers-cp): New targets.
15876
15877 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
15878
15879         * tree.h (variable_section): Delete.
15880         * varasm.c (variable_section): Delete.
15881
15882 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
15883
15884         * install.texi: Add notes on install.texi2html.
15885         (Building in parallel): Do not use footnotes.
15886
15887 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
15888
15889         PR libgomp/26234
15890         * doc/install.texi (Configuration): Document --disable-libgomp.
15891
15892 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
15893
15894         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
15895
15896 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
15897
15898         * config/i386/sse.md (vec_extractv2df_1_sse): New.
15899         (vec_extractv2df_0_sse): New.
15900
15901 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
15902
15903         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
15904         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
15905         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
15906         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
15907         to the result of the expression.
15908         (def_cfa_1): Adjust.
15909         (frame_pointer_cfa_offset): Rename to...
15910         (frame_pointer_fb_offset): ... this.  Adjust all uses.
15911         (convert_cfa_to_loc_list): Rename to...
15912         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
15913         Pass it on to build_cfa_loc.
15914         (compute_frame_pointer_to_cfa_displacement): Rename to...
15915         (compute_frame_pointer_to_fb_displacement): ... this.  New
15916         offset parameter.  Use it in computation.
15917         (gen_subprogram_die): Compute cfa_fb_offset with the new
15918         macro, and use it to compute the fb loc list and the
15919         displacement.
15920
15921 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
15922
15923         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
15924         replaced with register_operand.
15925         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
15926         non-DREG is expensive.
15927         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
15928         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
15929         involving memory.
15930
15931 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
15932
15933         * doc/install.texi2html: Use set -e.
15934
15935 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
15936
15937         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
15938         (ASM_OUTPUT_SHARED_LOCAL): Delete.
15939         * doc/invoke.texi (-fshared-data): Delete.
15940         * common.opt (fshared-data): Delete.
15941         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
15942         (assemble_static_space): Remove #if 0 code.
15943         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
15944         (ASM_OUTPUT_SHARED_LOCAL): Poison.
15945         * config/cris/cris.h: Remove FIXME.
15946
15947 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
15948
15949         * doc/sourcebuild.texi (Front End Directory): No more double-colon
15950         hooks.
15951
15952 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
15953
15954         PR middle-end/26379
15955         * combine.c (simplify_shift_const_1): Disable nested shifts
15956         optimization for vector shifts.
15957
15958 2006-02-20  Roger Sayle  <roger@eyesopen.com>
15959
15960         PR tree-optimization/26361
15961         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
15962         of unsigned integer types.
15963
15964 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
15965
15966         * tree-chrec.c (eq_evolutions_p): New.
15967         * tree-chrec.h (eq_evolutions_p): Declared.
15968         * tree-data-ref.c: Fix formatting.
15969         (datadep_stats, dependence_stats): New.
15970         (gcd): Moved...
15971         (print_direction_vector): New.
15972         (dump_data_dependence_relation): Use print_direction_vector.
15973         (object_analysis, create_data_ref): Handle COMPONENT_REF.
15974         (compute_subscript_distance): Static.
15975         (initialize_data_dependence_relation): Static.  Get the number
15976         of loops surrounding the references from the callers, and initialize
15977         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
15978         base_object_differ_p analyzers.
15979         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
15980         compute_overlap_steps_for_affine_1_2,
15981         analyze_subscript_affine_affine): Count the classified dependences.
15982         Print a message when a test failed.
15983         (can_use_analyze_subscript_affine_affine): New.
15984         (analyze_siv_subscript): Compute the data dependences on symbolic
15985         scevs that verify can_use_analyze_subscript_affine_affine.
15986         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
15987         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
15988         Handle symbolic scevs.
15989         (analyze_overlapping_iterations): Let symbolic affine scevs to be
15990         analyzed.
15991         (subscript_dependence_tester): Moved...
15992         (build_classic_dist_vector, build_classic_dir_vector): Don't use
15993         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
15994         DDR_SIZE_VECT instead of getting it in parameter.
15995         (subscript_dependence_tester): ... here.  Take as a parameter
15996         loop_nest_depth.  Call build_classic_dist_vector and
15997         build_classic_dir_vector.
15998         (compute_affine_dependence): Update subscript_dependence_tester
15999         parameters.  Update datadep_stats counters.  Call
16000         compute_subscript_distance.
16001         (compute_self_dependence): Save the dist and dir vectors.  Call
16002         compute_subscript_distance.
16003         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
16004         (compute_all_dependences): Reorder parameters as they were before
16005         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
16006         compute_subscript_distance.  Update the use of
16007         compute_affine_dependence and initialize_data_dependence_relation.
16008         (find_data_references_in_loop): Handle COMPONENT_REF.
16009         (compute_data_dependences_for_loop): Initialize dependence_stats.
16010         Don't call build_classic_dist_vector and build_classic_dir_vector.
16011         Update the parameters of initialize_data_dependence_relation and
16012         compute_all_dependences.  Print the statistics from datadep_stats.
16013         (analyze_all_data_dependences): Static.  Not used until the pass for
16014         checking the data dependences is contributed.
16015         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
16016         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
16017         (initialize_data_dependence_relation, compute_affine_dependence,
16018         analyze_all_data_dependences, compute_subscript_distance): Removed.
16019         (print_direction_vector): New.
16020         * lambda.h (gcd): ... here.
16021         (lambda_vector_gcd): Moved here from gcd_vector.
16022         * lambda-code.c (gcd, gcd_vector): Removed.
16023         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
16024         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
16025
16026 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
16027
16028         * ipa-type-escape.c: Tidy some comments and white space.
16029         * tree-ssa-operands.c: Likewise.
16030
16031 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
16032
16033         PR tree-opt/25879
16034         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
16035         (dump_decl_name): Do not walk the decl tree chains.
16036         * tree-pass.h (TDF_CHAIN): Remove.
16037
16038 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
16039
16040         * Makefile.in (C): Remove
16041         (PROTO): Remove
16042         (.PHONY): Remove C and PROTO
16043
16044 2006-02-20  Roger Sayle  <roger@eyesopen.com>
16045
16046         PR middle-end/26236
16047         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
16048         deprecated CHAR_TYPE tree code.
16049
16050 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
16051
16052         * configure.ac (target_list): Add install-info, dvi, html.
16053         * configure: Regenerate.
16054
16055         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
16056         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
16057         treelang/Make-lang.in: Do not use double-colon rules.
16058
16059 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
16060
16061         * tree.h (struct tree_memory_tag): Add is_used_alone member.
16062         (TMT_USED_ALONE): New macro.
16063         * tree-pass.h (PROP_tmt_usage): New property.
16064         (TODO_update_tmt_usage): New todo.
16065         * tree-ssa-alias.c (updating_used_alone): New variable.
16066         (recalculate_used_alone): New function.
16067         (compute_may_aliases): Set updating_used_alone, call
16068         recalculate_used_alone.
16069         * tree-sra.c (pass_sra): Note that this pass destroys
16070         PROP_tmt_usage, and add TODO_update_tmt_usage.
16071         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
16072         * tree-flow.h (updating_used_alone): Prototype.
16073         (recalculate_used_alone): Ditto.
16074         * passes.c (execute_todo): Add code to set updating_used_alone,
16075         and call recalculate.
16076         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
16077         for clobber if used alone, and add assert to verify used_alone
16078         status.
16079
16080 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
16081
16082         * config/s390/s390.c (legitimize_pic_address): Assertions checking
16083         for non tls symbols added.
16084         (legitimize_address): Do nothing for PLUS expressions if one of the
16085         addends is a tls symbol reference.
16086
16087 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
16088
16089         PR bootstrap/25476
16090
16091         * Makefile.in (LDFLAGS): Define from autoconf substitution.
16092
16093         * Makefile.in (BOOTSTRAPPING): New.
16094         (quickstrap): New definition if BOOTSTRAPPING=yes.
16095
16096         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
16097         * configure.ac: Substitute all_selected_languages with the languages
16098         that were configured.  For all the other variables except
16099         lang_specs_files, include all the languages in the tree.
16100         * configure: Regenerate.
16101
16102         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
16103         if there is one.  Run the commands to run fixincludes in the same
16104         subshell.
16105
16106         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
16107         * doc/install.texi: Document exact conventions for searching target tools.
16108         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
16109         something more about building an Ada cross-compiler.  Don't list GNU Make
16110         requirements which affect all platforms.
16111
16112 2006-02-19  Roger Sayle  <roger@eyesopen.com>
16113
16114         PR middle-end/19543
16115         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
16116         only equivalent if the have both the same mode and precision.
16117
16118 2006-02-20  Ben Elliston  <bje@au.ibm.com>
16119
16120         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
16121
16122 2006-02-19  Roger Sayle  <roger@eyesopen.com>
16123             Steven Bosscher  <stevenb.gcc@gmail.com>
16124
16125         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
16126         constant pool references to identify stack mode constants.
16127         * rtlanal.c (constant_pool_constant_p): New predicate to check
16128         whether operand is a floating point constant in the pool.
16129         * rtl.h (constant_pool_constant_p): Prototype here.
16130         * loop.c (scan_loop): Avoid hoisting constants from the constant
16131         pool on STACK_REGS targets.
16132         (load_mems): Likewise.
16133         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
16134         loads into x87 registers expensive in terms of register pressure.
16135
16136 2006-02-19  Roger Sayle  <roger@eyesopen.com>
16137
16138         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
16139         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
16140
16141 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
16142
16143         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
16144         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
16145
16146 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
16147
16148         * doc/invoke.texi: Document -fipa-pta.
16149         * common.opt: Add ipa-pta option.
16150         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
16151         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
16152         (do_ds_constraint): Ditto.
16153         (get_constraint_for): Only add to referenced_vars if
16154         referenced_vars exists.
16155         (insert_into_field_list): Rewrite to do this unsorted.
16156         (insert_into_field_list_sorted): Rename old insert_into_field_list
16157         to this.
16158         (create_function_info_for): Use insert_into_field_list_sorted.
16159         (create_variable_info_for): Rewrite so it uses unsorted version,
16160         since the field list is sorted.
16161         (intra_create_variable_infos): Only add to referenced_vars if
16162         referenced_vars exists.
16163         (ipa_pta_execute): Init heapvars, and delete when done.
16164         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
16165
16166 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16167
16168         * doc/install.texi: Add missing `@samp'.
16169
16170 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
16171
16172         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
16173         Use the arguments.
16174
16175 2006-02-18  Mark Wielaard  <mark@klomp.org>
16176
16177         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
16178         who added new 4.1 features, bug fixes and integration support.
16179
16180 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
16181
16182         PR target/26350
16183         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
16184         MEM for ABI_V4 pic.
16185
16186 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
16187
16188         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
16189         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
16190         (copy_insn_1): Likewise.  Don't copy each field individually.
16191         Reindent.
16192         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
16193         of RTX_SIZE.
16194         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
16195         * rtl.c (rtx_size): Rename variable to...
16196         (rtx_code_size): ...this.
16197         (rtx_size): New function.
16198         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
16199         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
16200         Reindent.
16201         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
16202         * rtl.h (rtx_code_size): New variable.
16203         (rtx_size): Change from a variable to a function.
16204         (RTX_SIZE): Rename to...
16205         (RTX_CODE_SIZE): ...this.
16206
16207         PR target/9703
16208         PR tree-optimization/17106
16209         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
16210         (Anchored Addresses): New section.
16211         * doc/invoke.texi (-fsection-anchors): Document.
16212         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
16213         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
16214         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
16215         * hooks.c (hook_bool_mode_rtx_false): New function.
16216         * hooks.h (hook_bool_mode_rtx_false): Declare.
16217         * gengtype.c (create_optional_field): New function.
16218         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
16219         SYMBOL_REF_IN_BLOCK_P is true.
16220         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
16221         (min_anchor_offset, max_anchor_offset): Likewise.
16222         (use_anchors_for_symbol_p): New hook.
16223         * toplev.c (compile_file): Call output_object_blocks.
16224         (target_supports_section_anchors_p): New function.
16225         (process_options): Check that -fsection-anchors is only used on
16226         targets that support it and when -funit-at-a-time is in effect.
16227         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
16228         if the decl doesn't have one.
16229         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
16230         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
16231         of force_const_mem through use_anchored_address.
16232         (expand_expr_constant): New function.
16233         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
16234         calling expand_expr for INDIRECT_REF.
16235         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
16236         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
16237         * expr.h (use_anchored_address): Declare.
16238         * loop-unroll.c: Don't declare rtx vectors here.
16239         * explow.c: Include output.h.
16240         (validize_mem): Call use_anchored_address.
16241         (use_anchored_address): New function.
16242         * common.opt (-fsection-anchors): New switch.
16243         * varasm.c (object_block_htab, anchor_labelno): New variables.
16244         (hash_section, object_block_entry_eq, object_block_entry_hash)
16245         (use_object_blocks_p, get_block_for_section, create_block_symbol)
16246         (use_blocks_for_decl_p, change_symbol_section): New functions.
16247         (get_variable_section): New function, split out from assemble_variable.
16248         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
16249         use_blocks_for_decl_p say so.  Use change_symbol_section if the
16250         symbol has already been created.
16251         (assemble_variable_contents): New function, split out from...
16252         (assemble_variable): ...here.  Don't output any code for
16253         block symbols; just pass them to place_block_symbol.
16254         Use get_variable_section and assemble_variable_contents.
16255         (get_constant_alignment, get_constant_section, get_constant_size): New
16256         functions, split from output_constant_def_contents.
16257         (build_constant_desc): Create a block symbol if use_object_blocks_p
16258         says so.  Or into SYMBOL_REF_FLAGS.
16259         (assemble_constant_contents): New function, split from...
16260         (output_constant_def_contents): ...here.  Don't output any code
16261         for block symbols; just pass them to place_section_symbol.
16262         Use get_constant_section and get_constant_alignment.
16263         (force_const_mem): Create a block symbol if use_object_blocks_p and
16264         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
16265         (output_constant_pool_1): Add an explicit alignment argument.
16266         Don't switch sections here.
16267         (output_constant_pool): Adjust call to output_constant_pool_1.
16268         Switch sections here instead.  Don't output anything for block symbols;
16269         just pass them to place_block_symbol.
16270         (init_varasm_once): Initialize object_block_htab.
16271         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
16272         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
16273         (place_block_symbol, get_section_anchor, output_object_block)
16274         (output_object_block_htab, output_object_blocks): New functions.
16275         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
16276         (TARGET_ASM_OUT): Include it.
16277         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
16278         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
16279         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
16280         (TARGET_INITIALIZER): Include them.
16281         * rtl.c (rtl_check_failed_block_symbol): New function.
16282         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
16283         (block_symbol, object_block): New structures.
16284         (rtx_def): Add a block_symbol field to the union.
16285         (BLOCK_SYMBOL_CHECK): New macro.
16286         (rtl_check_failed_block_symbol): Declare.
16287         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
16288         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
16289         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
16290         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
16291         * output.h (output_section_symbols): Declare.
16292         (object_block): Name structure.
16293         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
16294         (default_use_anchors_for_symbol_p): Declare.
16295         * Makefile.in (RTL_BASE_H): Add vec.h.
16296         (explow.o): Depend on output.h.
16297         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
16298         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
16299         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
16300         (rs6000_use_blocks_for_constant_p): New function.
16301
16302 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16303
16304         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
16305
16306 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
16307
16308         PR tree-opt/25680
16309         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
16310         IMAGPART_EXPR.
16311
16312 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
16313
16314         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
16315         is_aliased.
16316         Update all users.
16317
16318 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
16319
16320         PR middle-end/26334
16321         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
16322         instead of DECL_REGISTER.
16323
16324 2006-02-18  Olivier Hainque  <hainque@adacore.com>
16325
16326         PR ada/13408
16327         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
16328
16329 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
16330
16331         PR target/24837
16332         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
16333         * opth-gen.awk: Handle Var and InverseMask together.
16334         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
16335         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
16336         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
16337         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
16338         used together.
16339         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
16340         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
16341         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
16342         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
16343         LINUX_DYNAMIC_LINKER): Define.
16344         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
16345         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
16346         TARGET_GLIBC.
16347         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
16348         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
16349         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
16350         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16351         (TARGET_C99_FUNCTIONS): Don't define.
16352         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
16353         GLIBC_DYNAMIC_LINKER.
16354         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
16355         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
16356         GLIBC_DYNAMIC_LINKER64): Define.
16357         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
16358         LINUX_DYNAMIC_LINKER64.
16359         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
16360         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16361         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
16362         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16363         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
16364         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16365         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
16366         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
16367         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
16368         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
16369         and LINUX_DYNAMIC_LINKER32.
16370         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
16371         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16372         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
16373         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16374         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
16375         TARGET_GLIBC.
16376         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
16377         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
16378         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
16379         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
16380         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
16381         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
16382         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
16383         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
16384         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
16385         LINUX_DYNAMIC_LINKER): Define.
16386         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
16387         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
16388         GLIBC_DYNAMIC_LINKER64): Define.
16389         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
16390         LINUX_DYNAMIC_LINKER64.
16391         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
16392         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16393         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
16394         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
16395         LINUX_DYNAMIC_LINKER): Define.
16396         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16397         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
16398         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
16399         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
16400         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
16401         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
16402         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
16403         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
16404         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
16405         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
16406         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16407         * doc/invoke.texi (-muclibc): Remove caveat about supported
16408         targets.
16409
16410 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
16411
16412         * doc/cpp.texi (__TIMESTAMP__): Document.
16413
16414 2006-02-17  Roger Sayle  <roger@eyesopen.com>
16415
16416         PR middle-end/25600
16417         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
16418         C is one less than the width of X (and related transformations).
16419         * simplify-rtx.c (simplify_unary_operation_1): Transform
16420         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
16421         depending on STORE_FLAG_VALUE, were C is one less then the
16422         width of X.
16423
16424 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
16425
16426         Fix PR tree-optimization/26341
16427         * tree-ssa-operands.c (add_virtual_operand): Remove assert
16428         about NAME_MEMORY_TAG's.
16429
16430 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16431
16432         PR target/26255
16433         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
16434         with hardware float support, and software float support.  Add fcpy
16435         alternative to hardware patterns.  Add alternatives to copy between
16436         general and floating-point registers to the 32-bit pattern.
16437         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
16438         secondary reload to load a QI or HI mode constant into a floating
16439         point register.
16440         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
16441         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
16442
16443 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
16444
16445         PR target/26272
16446         * config/rs6000/darwin.md (load_macho_picbase_si): Add
16447         pc to the pattern.
16448         (load_macho_picbase_di): Likewise.
16449
16450 2006-02-16  Jeff Law  <law@redhat.com>
16451
16452         * tree-vrp.c (set_value_range_to_nonnegative): New function.
16453         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
16454         (ssa_name_nonzero_p): Likewise.
16455         (get_value_range): Return NULL if VRP is not running.
16456         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
16457         VRP routines do not discover a range.
16458         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
16459         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
16460         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
16461         (tree_expr_nonnegative_p): Similarly.
16462         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
16463         (restore_nonzero_vars_to_original_value): Remove.
16464         (unsafe_associative_fp_binop): Remove.
16465         (tree_ssa_dominator_optimize): Remove initialization and
16466         finalization of nonzero_vars and nonzero_vars_stack.
16467         (dom_opt_initialize_block): No longer push marker on
16468         nonzero_vars_stack.
16469         (dom_opt_finalize_block): No longer call
16470         restore_nonzero_vars_to_original_value.
16471         (record_equivalences_from_phis): No longer look for
16472         nonzero PHI arguments.
16473         (cprop_into_successor_phis): No longer propagate nonzero
16474         property into PHI arguments.  Lose unused argument.  Caller
16475         updated.
16476         (record_equivalences_from_stmt): No longer record nonzero
16477         values for SSA_NAMEs.
16478         (lookup_avail_expr): No longer use nonzero_vars.
16479
16480         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
16481         for sizetype when sizetype is unsigned.
16482
16483 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
16484
16485         PR rtl-optimization/25603
16486         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
16487         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
16488         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
16489         with new meaning of SETS.
16490
16491 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
16492
16493         PR target/20353
16494         PR target/24578
16495         PR target/24837
16496         * config/linux.opt: New file.
16497         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
16498         LINUX_DYNAMIC_LINKER): Define.
16499         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
16500         * config.gcc (*-*-linux*): Define extra_options.
16501         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
16502         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
16503         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
16504         GLIBC_DYNAMIC_LINKER.
16505         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
16506         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16507         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
16508         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
16509         * doc/invoke.texi (GNU/Linux Options): New section.
16510
16511 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
16512
16513         * config/sparc/sparc.md (setjmp): Rewrite.
16514         (setjmp_32): Delete.
16515         (setjmp_64): Likewise.
16516
16517 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
16518
16519         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
16520          previous change.
16521
16522 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
16523
16524         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
16525         read-write uses.
16526
16527 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
16528
16529         PR rtl-optimization/26296
16530         * Makefile.in (loop-invariant.c): Add except.h dependency.
16531         * loop-invariant.c: Include except.h.
16532         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
16533
16534 2005-02-16  Paul Brook  <paul@codesourcery.com>
16535
16536         * reload1.c (emit_reload_insns): Invalidate dead input registers used
16537         for reloads.
16538
16539 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
16540
16541         PR rtl-optimization/25636
16542         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
16543         when deciding whether an insn is an initializing insn.
16544
16545 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
16546
16547         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
16548         (tree_code_size): Ditto.
16549         * tree.h (struct tree_memory_tag): Remove parent_var.
16550         (struct tree_struct_field_tag): New.
16551         (SFT_OFFSET): New.
16552         (SFT_SIZE): New.
16553         (union tree_node): Add sft member.
16554         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
16555         specially here.
16556         (create_sft): Add size and offset argument, set SFT_OFFSET and
16557         SFT_SIZE.
16558         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
16559         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
16560         * tree-flow-inline.h (get_subvar_at): Update for
16561         SFT_OFFSET/SFT_SIZE.
16562         (var_can_have_subvars): Ditto.
16563         (overlap_subvar): Ditto.
16564         * print-tree.c (print_node): Print out interesting things for
16565         SFT's.
16566         * tree-flow.h (struct subvar): Remove offset and size members.
16567         * tree-ssa-operands.c (get_expr_operands): Update for
16568         get_indirect_ref_operands changes.
16569         (get_indirect_ref_operands): Call add_virtual_operand instead of
16570         add_stmt_operand.  Only recurse on base var if requested.
16571         (access_can_touch_variable): New function.
16572         (add_stmt_operand): Split virtual operand handling into ...
16573         (add_virtual_operand): Here.  Add offset, size, and for_clobber
16574         arguments.  Prune alias sets.
16575         (add_call_clobber_ops): Call add_virtual_operand.
16576
16577 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
16578
16579         PR middle-end/26300
16580         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
16581
16582         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
16583         than TREE_CODE as index into omp_clause_num_ops array.
16584
16585 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
16586
16587         PR rtl-optimization/26184
16588         * modulo-sched.c (generate_reg_moves): Free bitmap vector
16589         uses_of_defs.
16590         * modulo-sched.c (sms_schedule): Free g_arr pointer.
16591         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
16592         must_precede, must_follow and tobe_scheduled.
16593
16594         PR other/26147
16595         * opts.c (common_handle_option): Free new_option pointer.
16596         * df-core.c (df_analyze): Free postorder pointer.
16597
16598 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
16599
16600         * Makefile.in: Fix the examples about the use of stamps
16601
16602 2006-02-15  Michael Matz  <matz@suse.de>
16603
16604         PR middle-end/22275
16605
16606         * stor-layout.c (layout_decl): Zero-width bitfields aren't
16607         influenced by maximum_field_alignment or DECL_PACKED.
16608         (update_alignment_for_field): Ditto.
16609         (place_field): Ditto.
16610         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
16611         this behaviour.
16612
16613 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
16614
16615         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
16616         (debug_flow_info): Pass it.
16617         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
16618         * bb-reorder.c (reorder_basic_blocks): Likewise.
16619         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
16620         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
16621         * flow.c (life_analysis, recompute_reg_usage): Likewise.
16622         * gcse.c (gcse_main, bypass_jumps): Likewise.
16623         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
16624         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
16625         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
16626         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
16627         * rtl.h (dump_flow_info): Adjust prototype.
16628         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
16629         * var-tracking.c (variable_tracking_main): Likewise.
16630         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
16631         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
16632         options.
16633
16634 2006-02-15  Marcin Dalecki <martin@dalecki.de>
16635
16636         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
16637         construction.
16638
16639 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
16640
16641         PR tree-optimization/26209
16642         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
16643         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
16644         eh edges.
16645         * tree-cfg.c (replace_uses_by): Do not alter cfg.
16646
16647 2006-02-14  Roger Sayle  <roger@eyesopen.com>
16648
16649         PR middle-end/23670
16650         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
16651         (X,Y) and the corresponding symmetry related transformations.
16652         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
16653         (X,Y) and its symmetry related transformations.
16654
16655 2006-02-14  Roger Sayle  <roger@eyesopen.com>
16656
16657         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
16658         and GEU.
16659
16660 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
16661
16662         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
16663
16664 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16665
16666         PR bootstrap/26053
16667         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
16668         support COMDAT group.
16669         * configure: Regenerate.
16670
16671 2006-02-14  Roger Sayle  <roger@eyesopen.com>
16672
16673         PR middle-end/26279
16674         PR middle-end/26280
16675         PR middle-end/26283
16676         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
16677
16678 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
16679
16680         Fix PR tree-optimization/26260
16681
16682         * doc/invoke.texi (max-fields-for-field-sensitive): Document
16683         param.
16684         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
16685         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
16686         * tree-ssa-structalias.c (create_variable_info_for): Use
16687         MAX_FIELDS_FOR_FIELD_SENSITIVE.
16688
16689 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
16690
16691         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
16692         Document.
16693         * tree-ssa-loop-niter.c (number_of_iterations_ne,
16694         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
16695         of the ending condition.
16696         * tree-ssa-loop-manip.c: Include params.h.
16697         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
16698         tree_unroll_loop): New functions.
16699         * tree-pass.h (pass_loop_prefetch): Declare.
16700         * loop.c (rest_of_handle_loop_optimize): Test for
16701         -fprefetch-loop-arrays-rtl.
16702         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
16703         * timevar.def (TV_TREE_PREFETCH): New timevar.
16704         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
16705         pass_loop_prefetch): New.
16706         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
16707         (cleanup_tree_cfg_loop): Call scev_reset.
16708         * common.opt (fprefetch-loop-arrays-rtl): Add.
16709         * tree-ssa-loop-prefetch.c: New file.
16710         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
16711         (new_temp_expr_table): Initialize expr_vars.
16712         (free_temp_expr_table): Cleanup expr_vars.
16713         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
16714         expressions from being merged into one.
16715         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
16716         (struct tree_niter_desc): Add control, bound and cmp fields.
16717         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
16718         Declare.
16719         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
16720         (tree-cfgcleanup.o): Add SCEV_H dependency.
16721         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
16722         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
16723
16724 2006-02-14  Richard Guenther  <rguenther@suse.de>
16725
16726         PR tree-optimization/26258
16727         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
16728         in PHI argument processing.
16729
16730 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
16731
16732         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
16733         new expression in the requested machine mode.
16734
16735 2006-02-13  Roger Sayle  <roger@eyesopen.com>
16736
16737         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
16738         directly, instead let do_compare_rtx_and_jump handle this for us.
16739         * expr.c (expand_expr_real_1): Likewise.
16740         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
16741         before do_jump_by_parts_greater.
16742         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
16743         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
16744
16745 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16746
16747         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
16748
16749 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
16750
16751         PR rtl-optimization/26235
16752         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
16753         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
16754         format.
16755
16756 2006-02-13  Jeff Law  <law@redhat.com>
16757
16758         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
16759         TRUTH_XOR_EPR.
16760
16761 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
16762
16763         PR middle-end/26092
16764         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
16765         twice if decl is a builtin.  When trying again, call get_callee_fndecl
16766         first to verify it is still a builtin.
16767
16768 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
16769
16770         * dwarf2out.c (base_type_die): Don't add AT_name here.
16771         (subrange_type_die): Don't add AT_name here.
16772         (modified_type_die): Rearrange code flow.  Do add AT_name here.
16773
16774 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
16775
16776         PR rtl-optimization/26247
16777         PR rtl-optimization/26248
16778         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
16779
16780 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
16781
16782         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
16783         * config/fixtfdi.c: Likewise.
16784         * config/fixunstfdi.c: Likewise.
16785         * config/floatditf.c: Likewise.
16786
16787 2006-02-13  Roger Sayle  <roger@eyesopen.com>
16788
16789         PR middle-end/24427
16790         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
16791         into (X,C2) if C1 is a subset of the bits of C2.  Transform
16792         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
16793         (X&(C1&~C2))|C2.
16794         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
16795
16796 2006-02-13  Josh Conner  <jconner@apple.com>
16797
16798         PR target/25376
16799         * varasm.c (function_section): Check for section name before
16800         calling select_section on targets that define
16801         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
16802         unlikely_text_section instead of hot_function_section if
16803         first_function_block_is_cold.
16804
16805 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
16806
16807         PR middle-end/25335
16808         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
16809
16810 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
16811
16812         PR rtl-optimization/26222
16813         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
16814         after tree->rtl expansion.
16815         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
16816         before passing it to emit_move_insn.
16817
16818 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16819
16820         * doc/invoke.texi (-Write-strings): Document that it is enabled by
16821         default.
16822         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
16823         Clarify documentation.
16824         * c-common.h (warn_write_strings): Remove.
16825         * c-common.c (warn_write_strings): Likewise.
16826         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
16827         default for C++.
16828
16829 2006-02-12  Roger Sayle  <roger@eyesopen.com>
16830
16831         PR middle-end/25724
16832         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
16833         (do_jump_parts_zero_rtx): New function renamed from
16834         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
16835         (do_jump_parts_equality_rtx): New function split out from
16836         do_jump_parts_equality.  Old implementation renamed as above.
16837         Call do_jump_parts_zero_rtx if either operand is zero.
16838         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
16839         do all of the heavy lifting.
16840         (do_compare_rtx_and_jump): Handle multi-word comparisons by
16841         calling either do_jump_by_parts_greater_rtx or
16842         do_jump_by_parts_equality_rtx.
16843         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
16844         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
16845         moved to do_compare_rtx_and_jump, call it directly.
16846         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
16847         mode argument.  Call do_compare_rtx_and_jump.
16848         (emit_case_nodes): Update calls to do_jump_if_equal.
16849
16850 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
16851
16852         PR rtl-optimization/26225
16853         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
16854
16855 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
16856
16857         PR rtl-optimization/26232
16858         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
16859
16860 2006-02-11  Jason Merrill  <jason@redhat.com>
16861
16862         PR tree-opt/24365
16863         * tree-inline.c (declare_return_variable): Just don't use the
16864         modify target if it's a gimple complex reg and the return slot
16865         isn't.
16866
16867 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16868
16869         * doc/contrib.texi: Update my entry.
16870
16871 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
16872
16873         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
16874
16875 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
16876
16877         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
16878         expensive.
16879
16880 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
16881
16882         * doc/invoke.texi (-floop-optimize2): Removed.
16883         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
16884         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
16885         Test flag_branch_on_count_reg only if HAVE_doloop_end.
16886         * common.opt (floop-optimize2): Removed.
16887         (fmove-loop-invariants): Enabled by default.
16888
16889 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
16890
16891         * tree-if-conv.c (combine_blocks): Free the result of
16892         get_loop_exit_edges.
16893
16894 2006-02-10  Jeff Law  <law@redhat.com>
16895
16896         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
16897
16898         PR tree-optimization/26213
16899         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
16900         loop trying to follow SSA_NAME_VALUE chains.
16901
16902 2006-02-10  Richard Guenther  <rguenther@suse.de>
16903
16904         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
16905         deal with structures that end in implicitly variable sized arrays.
16906
16907 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
16908
16909         PR rtl-optimization/24762
16910         * df-scan.c (df_bb_refs_record): Record correct registers defined on
16911         eh edges.
16912
16913 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
16914
16915         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
16916         (struct ivopts_data): Add regs_used field.
16917         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
16918         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
16919         instead of loop_data->regs_used;
16920         (free_loop_data): Do not free aux fields for loops.
16921         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
16922         and tree_ssa_iv_optimize_finalize.
16923
16924 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
16925
16926         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
16927
16928 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
16929
16930         PR target/26141
16931         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
16932         computing the effective result type.
16933
16934 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
16935
16936         PR inline-asm/16194
16937         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
16938         (tree_overlaps_hard_reg_set): Declare.
16939         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
16940         type and signature to match function type expected by walk_tree.
16941         (tree_overlaps_hard_reg_set): New function.
16942         (decl_conflicts_with_clobbers_p): Rename to:
16943         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
16944         Use tree_overlaps_hard_reg_set.  Changed caller.
16945         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
16946         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
16947         * cris.c (cris_md_asm_clobbers): Likewise.
16948
16949 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
16950
16951         * reload1.c (emit_input_reload_insns): Delete code that tries to
16952         inherit using find_equiv_reg.
16953
16954 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16955
16956         * c-common.h (flag_const_strings): Don't declare.
16957         * c-common.c (flag_const_strings): Remove.
16958         * c.opt (fconst_strings): Remove.
16959         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
16960         <OPT_Wwrite_strings>: Don't set flag_const_strings.
16961         (c_common_init_options): Don't set flag_const_strings.
16962         * doc/invoke.texi (-fno-const-strings): Remove documentation.
16963
16964 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
16965
16966         * arm.md (tlobits_cbranch): New pattern.
16967         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
16968         testing a single bit.
16969
16970 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
16971
16972         PR tree-opt/26179
16973         * tree-ssa-pre.c (create_component_ref_by_pieces):
16974         Handle RETURN_DECL like VAR_DECL.
16975
16976 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
16977
16978         PR middle-end/26134
16979         * fold-const.c (fold_indirect_ref_1): Fold
16980         "*(foo *)&complexfoo" to "__real__ complexfoo"
16981         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
16982
16983 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
16984
16985         * tree-flow-inline.h (var_can_have_subvars):
16986         Volatile variables should not have subvariables.
16987
16988 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
16989
16990         PR 26180
16991         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
16992         multiplying unsigned values.
16993         Tidy comments.
16994
16995 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16996
16997         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
16998
16999 2006-02-08  Jason Merrill  <jason@redhat.com>
17000
17001         PR c++/25979
17002         * tree.def: Elaborate on difference from MODIFY_EXPR.
17003         * doc/c-tree.texi (INIT_EXPR): Likewise.
17004         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
17005         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
17006         (gimplify_target_expr): Likewise.
17007         (gimplify_cond_expr): Remove target handling.
17008         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
17009         (gimplify_expr): Clobber it here.
17010         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
17011         Do return slot optimization if we have an INIT_EXPR.
17012
17013         PR tree-opt/24365
17014         * tree-inline.c (declare_return_variable): Also clear
17015         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
17016
17017         PR c++/16405
17018         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
17019
17020         PR middle-end/22439
17021         * gimplify.c (gimplify_one_sizepos): Fix typo.
17022
17023 2006-02-08  Jeff Law  <law@redhat.com>
17024
17025         PR tree-optimization/21417
17026         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
17027         across a backedge if the control statement at the end of the
17028         block is data dependent on other statements in the same block.
17029         (record_temporary_equivalences_from_stmts): Remove over-conservative
17030         test for threading across backedges.
17031
17032         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
17033         control statement, handle all three special cases in the same
17034         manner as they all have the same desired solution.  No longer
17035         special case edge flag updating when the post dominator is
17036         the exit block.
17037
17038 2006-02-08  Roger Sayle  <roger@eyesopen.com>
17039
17040         * tree.def (CHAR_TYPE): Remove.
17041         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
17042         * dwarf2out.c (base_type_die, is_base_type): Likewise.
17043         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
17044         (gen_string_type_die): Delete unreachable function.
17045
17046         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
17047         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
17048         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
17049         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
17050         * builtins.c (type_to_class): Likewise.
17051         * fold-const.c (fold_convert, build_range_check,
17052         merge_ranges): Likewise.
17053         * expr.c (count_type_elements): Likewise.
17054         * c-pretty-print.c (pp_c_type_specifier): Likewise.
17055         * stor-layout.c (layout_type): Likewise.
17056         * ipa-type-escape.c (type_to_consider): Likewise.
17057         * gimplify.c (omp_firstprivatize_type_sizes,
17058         gimplify_type_sizes): Likewise.
17059         * explow.c (promote_mode): Likewise.
17060         * tree-sra.c (is_sra_scalar_type): Likewise.
17061         * varasm.c (output_constant): Likewise.
17062         * tree-inline.c (remap_type_1): Likewise.
17063         * convert.c (convert_to_pointer, convert_to_real,
17064         convert_to_integer, convert_to_complex): Likewise.
17065
17066 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
17067
17068         * df-scan.c (df_def_record_1): A set destination may
17069         be a parallel regardless of mode.
17070
17071 2006-02-08  Roger Sayle  <roger@eyesopen.com>
17072
17073         PR target/22209
17074         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
17075         * config/mips/_tilib.c: Remove.
17076         * config/fixtfdi.c: New libgcc source file.
17077         * config/fixunstfdi.c: New source file.
17078         * config/floatditf.c: New source file.
17079         * config/floatunditf.c: New souce file.
17080         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
17081         files above instead of config/mips/_tilib.c.
17082         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
17083
17084 2006-02-08  Jeff Law  <law@redhat.com>
17085
17086         PR tree-optimization/26169
17087         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
17088         threading jumps.
17089
17090 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
17091
17092         * df.h (DF_REG_SIZE): Return the length of the initialized
17093         part of the array.
17094
17095 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
17096
17097         * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
17098         __muldf3): Return a correctly signed zero.
17099
17100 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
17101
17102         * passes.c (register_one_dump_file): Accept the current properties
17103         instead of pass number.  Adjust call to dump_register.  Remove
17104         duplicated code.
17105         (register_dump_files): Now a wrapper around...
17106         (register_dump_files_1): ... this one.  Do not modify the pass
17107         structure.
17108         (next_pass_1): Cosmetic fix.
17109         (execute_todo): Keep second parameter only.  Use curr_properties
17110         instead of fetching it from the pass structure.  Check and set
17111         last_verified.
17112         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
17113         instead of fetching it from the pass structure.  Fix calls to
17114         execute_todo.  Update curr_properties and initialize .vcg RTL dump
17115         after running the pass.  Reset last_verified.
17116         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
17117         at the beginning.
17118         (FIRST_AUTO_NUMBERED_DUMP): New.
17119         (dump_register): Remove "num" parameter, assign it within the
17120         function.
17121         (get_dump_file_name): Modify template for dumps.
17122         * tree-dump.h (dump_register): Adjust prototype.
17123         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
17124         (PROP_trees): Add PROP_gimple_lomp.
17125         (TODO_set_props): New.
17126         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
17127         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
17128         * cfgexpand.c (pass_expand): Destroy PROP_trees.
17129
17130 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
17131
17132         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
17133         (sparc64-*-linux*): Likewise.
17134         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
17135         * config/sparc/t-linux: New file.
17136         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
17137         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
17138         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
17139         -m32 -mlong-double-128.
17140
17141         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
17142         * config/alpha/t-linux: New file.
17143         * config/alpha/libgcc-alpha-ldbl.ver: New file.
17144
17145         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
17146         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
17147         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
17148         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
17149         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
17150         (CPP_ARCH32_SPEC): Remove.
17151
17152 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
17153
17154         PR tree-optimization/26145
17155         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
17156         bbs pointer.
17157
17158 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17159
17160         PR target/26109
17161         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
17162         >= 240000 when generating code for SOM runtime.
17163         (output_indirect_call): Don't use "b,l" instruction for indirect calls
17164         to $$dyncall when generating code for SOM runtime..
17165
17166 2006-02-07  Dirk Mueller  <dmueller@suse.com>
17167
17168         PR c++/18150
17169         * doc/invoke.texi (-Wsequence-point): Update documentation
17170         that -Wsequence-point is implemented for C++ as well.
17171
17172 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
17173
17174         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
17175         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
17176         (LIB_SPEC): Likewise.
17177         * doc/invoke.texi (SPARC options): Document -pthread.
17178
17179 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
17180
17181         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
17182         PIC addresses.
17183
17184 2006-02-07  Roger Sayle  <roger@eyesopen.com>
17185
17186         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
17187         Correct comment describing BOOLEAN_TYPE.
17188
17189 2006-02-07  Dirk Mueller  <dmueller@suse.com>
17190
17191         * c.opt: C++ frontend supports -Wdiv-by-zero.
17192         * c-opts.c (c_common_handle_option): Remove dead case.
17193
17194 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
17195
17196         * configure.ac (TLS assembler check): Do not enable TLS by
17197         default on SPARC/Solaris before version 10.
17198         * configure: Regenerate.
17199
17200 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
17201
17202         * doc/invoke.texi (xl-compat): Document conversion and support
17203         routine names.
17204
17205 2006-02-07  Jeff Law  <law@redhat.com>
17206
17207         * tree-vrp.c (find_conditional_asserts): Update comments.
17208         (simplify_stmt_for_jump_threading): New.
17209         (identify_jump_threads, finalize_jump_threads): New.
17210         (vrp_finalize): Call identify_jump_threads.
17211         (execute_vrp): Call finalize_jump_threads.
17212         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
17213         (vrp_element, vrp_data, vrp_element_p): Remove.
17214         (vrp_hash_elt, vrp_variables_stack): Remove.
17215         (vrp_hash, vrp_eq, record_range): Remove.
17216         (simplify_cond_and_lookup_avail_expr): Remove.
17217         (extract_range_from_cond): Remove.
17218         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
17219         (simplify_stmt_for_jump_threading): New.
17220         (dom_thread_across_edge): New wrapper.
17221         (tree_ssa_dominator_optimize): No longer initialize or
17222         finalize any of the VRP datastructures.  Remove iteration
17223         step and simplify as a result of removal of iteration step.
17224         (pass_dominator): Perform a cfg cleanup after DOM.
17225         (dom_opt_finalize_block): Use the new common routines
17226         for threading jumps.  Simplify stack management slightly.
17227         No longer need to unwind VRP state.
17228         (record_equivalences_from_incoming_edge): No longer record
17229         VRP information.
17230         (eliminate_redundant_computations): No longer call
17231         simplify_cond_and_lookup_avail_expr.
17232         * tree-flow.h (potentially_threadable_block): Prototype.
17233         (thread_across_edge): Likewise.
17234         * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
17235         (tree-ssa-threadedge.o): Add dependencies.
17236         * tree-ssa-threadedge.c: New file.
17237         * passes.c (init_optimization_passes): Merge PHIs before
17238         calling VRP.  Run VRP again late in the SSA optimization pipeline.
17239
17240 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
17241
17242         * df-core.c (df_set_blocks): Do not dereference function pointers.
17243         (df_finish1): Likewise.
17244         (df_hybrid_search_forward): Likewise.
17245         (df_hybrid_search_backward): Likewise.
17246         (df_iterative_dataflow): Likewise.
17247         (df_analyze_problem): Likewise.
17248         (df_compact_blocks): Likewise.
17249         (df_dump): Likewise.
17250         * df-scan.c (df_rescan_blocks): Likewise.
17251         (df_record_entry_block_defs): Likewise.
17252
17253         * genconditions.c (write_conditions): Guard the definition of
17254         'insn_conditions' with the check on GCC version.
17255         (write_writer): Guard the traversal 'insn_conditions' with
17256         the check on GCC version.
17257
17258 2006-02-07  Richard Guenther  <rguenther@suse.de>
17259
17260         PR c++/26140
17261         Revert
17262         2006-01-30  Richard Guenther  <rguenther@suse.de>
17263         PR c++/23372
17264         * gimplify.c (gimplify_target_expr): Handle easy cases
17265         without creating a temporary.
17266
17267 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
17268
17269         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
17270         use of float in probability computations.  Use edge probabilities
17271         in place of statically computed probabilities.
17272         (min_spec_prob): New static variable.
17273         (schedule_insns): Initialize it.
17274         (GET_SRC_PROB): Removed.
17275         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
17276
17277 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
17278
17279         PR debug/24444
17280         * config/ia64/unwind-ia64.c: Revert last change.
17281         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
17282         (INCOMING_FRAME_SP_OFFSET): Define.
17283
17284 2006-02-06  Roger Sayle  <roger@eyesopen.com>
17285
17286         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
17287
17288 2006-02-07  Ben Elliston  <bje@au.ibm.com>
17289
17290         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
17291         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
17292         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
17293         (ix86_return_in_memory): Handle TDmode.
17294         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
17295         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
17296
17297 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
17298
17299         * reorg.c (dbr_schedule): Use dump_file instead of file.
17300
17301 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
17302
17303         PR target/25917
17304         * config/ia64/predicates.md (extr_len_operand): New predicate.
17305         * config/ia64/ia64.md (extv): Tighten constraints.
17306         (extzv): Ditto.
17307         (*tbit_and_2): Ditto.
17308         (*tbit_and_3): Ditto.
17309         (*tbit_or_2): Ditto.
17310         (*tbit_or_3): Ditto.
17311         (*bit_zero): Ditto.
17312         (*bit_one): Ditto.
17313
17314 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
17315
17316         PR target/23359
17317         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
17318
17319 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
17320
17321         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
17322         loop_optimizer_init and loop_optimizer_finalize
17323         * tree-ssa-sink.c (execute_sink_code): Ditto.
17324         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
17325         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
17326         tree_ssa_loop_done): Ditto.
17327         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
17328         * sched-ebb.c: Include output.h.
17329         (schedule_ebbs): Do not use dump argument.
17330         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
17331         * loop.c (loop_dump_stream): Removed.
17332         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
17333         argument.
17334         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
17335         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
17336         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
17337         loop_iterations, strength_reduce, record_biv, record_giv,
17338         final_giv_value, check_final_value, check_ext_dependent_givs,
17339         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
17340         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
17341         dump_file instead of loop_dump_stream.
17342         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
17343         argument dump_file.
17344         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
17345         dump argument.
17346         * flow.c (life_analysis, rest_of_handle_life): Ditto.
17347         * haifa-sched.c: Include output.h
17348         (schedule_insns, sched_init): Do not use dump argument.
17349         * mode-switching.c (optimize_mode_switching): Ditto.
17350         * modulo-sched.c (stats_file): Removed.
17351         (print_node_sched_params): Do not call argument dump_file.
17352         (sms_schedule_by_order, loop_canon_p, sms_schedule,
17353         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
17354         of stats_file.
17355         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
17356         use dump argument.
17357         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
17358         rtl_loop_init, rtl_loop_done): Ditto.
17359         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
17360         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
17361         Ditto.
17362         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
17363         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
17364         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
17365         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
17366         * emit-rtl.c (renumber_insns): Ditto.
17367         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
17368         expand_gimple_basic_block, tree_expand_cfg): Ditto.
17369         * regclass.c (regclass): Ditto.
17370         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
17371         remove_ssa_form, rewrite_out_of_ssa): Ditto.
17372         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
17373         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
17374         Ditto.
17375         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
17376         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
17377         to regclass.
17378         * gcse.c (gcse_file, debug_stderr): Removed.
17379         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
17380         rest_of_handle_gcse): Do not use dump argument.
17381         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
17382         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
17383         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
17384         compute_code_hoist_vbeinout, compute_code_hoist_data,
17385         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
17386         compute_store_table, build_store_vectors, insert_insn_start_bb,
17387         insert_store, remove_reachable_equiv_notes, replace_store_insn,
17388         store_motion): Use dump_file instead of gcse_file.
17389         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
17390         * profile.c (profile_dump_file): Removed.
17391         (branch_prob): Use dump_file instead of profile_dump_file.
17392         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
17393         dump_file.
17394         * tree-ssa-copy.c (dump_copy_of): Ditto.
17395         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
17396         dump file to life_analysis.
17397         * bt-load.c (branch_target_load_optimize): Ditto.
17398         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
17399         renumber_insns.
17400         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
17401         regclass, dbr_schedule): Declaration changed.
17402         * sched-int.h (sched_init): Declaration changed.
17403         * tree-profile.c (tree_profile_dump_file): Removed.
17404         (tree_profile_hooks): Removed profile_dump_file hook.
17405         * rtl-profile (rtl_profile_dump_file): Removed.
17406         (rtl_profile_hooks): emoved profile_dump_file hook.
17407         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
17408         changed.
17409         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
17410         * tree-cfg.c (build_tree_cfg): Ditto.
17411         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
17412         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
17413         Declaration changed.
17414         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
17415         life_analysis and schedule_insns.
17416         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
17417         life_analysis.
17418         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
17419         dbr_schedule.
17420         * config/mips/mips.c (mips_reorg): Ditto.
17421         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
17422         schedule_ebbs.
17423
17424 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
17425
17426         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
17427         (s390_mangle_fundamental_type): New.
17428         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
17429         Define.
17430
17431         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
17432         (alpha_mangle_fundamental_type): New.
17433         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
17434         Define.
17435
17436         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
17437         Define.
17438         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
17439         Define.
17440         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
17441         (sparc_mangle_fundamental_type): New.
17442
17443 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
17444
17445         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
17446         (s390x-*-linux*): Likewise.
17447         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
17448         * config/s390/t-linux: New file.
17449
17450 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
17451
17452         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
17453         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
17454
17455 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
17456
17457         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
17458         (ANTIC_SAFE_LOADS): New macro.
17459         (find_or_generate_expression): Add prototype.
17460         (set_contains_value): Allow null set for sake of not always having
17461         to allocate ANTIC_SAFE_LOADS.
17462         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
17463         Allow COMPONENT_REF too.
17464         (valid_in_set): Allow COMPONENT_REF.
17465         Check ANTIC_SAFE_LOADS too.
17466         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
17467         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
17468         rename.
17469         (can_PRE_operation): Add COMPONENT_REF.
17470         (create_component_ref_by_pieces): New function.
17471         (create_expression_by_pieces): Use create_component_ref_by_pieces.
17472         (insert_aux): Move AGGREGATE_TYPE_P check here.
17473         (compute_avail): Set bb local stmt uids.
17474         (pass_pre): Use TODO_update_ssa_only_virtuals.
17475
17476 2006-02-06  Ben Elliston  <bje@au.ibm.com>
17477
17478         * configure.ac: Unconditionally disable decimal float by default.
17479         * configure: Regenerate.
17480
17481 2006-02-06  Ben Elliston  <bje@au.ibm.com>
17482
17483         * read-rtl.c (read_name): Terminate reading on EOF.
17484
17485 2006-02-06  Ben Elliston  <bje@au.ibm.com>
17486
17487         * dfp.c (decimal_real_arithmetic): Change second argument type
17488         from int to enum tree_code. Do not always return true, but now
17489         return result of any call to decimal_do helper functions.
17490         * dfp.h (decimal_real_arithmetic): Update prototype.
17491
17492 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
17493
17494         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
17495
17496 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
17497
17498         PR tree-opt/25251
17499         * tree-cfg.c (cleanup_dead_labels): Also don't remove
17500         forced labels.
17501
17502 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
17503
17504         * tree-vrp.c (cfg_loops): Removed.
17505         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
17506         Use current_loops instead of cfg_loops.  Pass flags to
17507         loop_optimizer_init.
17508         * cfgloopmanip.c (fix_loop_structure): Update only available
17509         information.
17510         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
17511         loop_optimizer_init.
17512         * modulo-sched.c (build_loops_structure): Removed.
17513         (sms_schedule): Use loop_optimizer_init.
17514         * loop-init.c (loop_optimizer_init): Use flags to determine
17515         which properties of loops to prepare.
17516         (rtl_loop_init): Pass flags to loop_optimizer_init.
17517         * tree-ssa-sink.c (execute_sink_code): Ditto.
17518         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
17519         * tree-ssa-pre.c (init_pre): Ditto.
17520         * cfgloop.h (LOOPS_NORMAL): New.
17521         (loop_optimizer_init): Declaration changed.
17522
17523 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17524
17525         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
17526         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
17527         pa/t-pa.
17528         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
17529         pa/t-pa.
17530         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
17531         pa/x-ada.
17532         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
17533         * pa/t-pa64: Delete quadlib.c rule.
17534         * pa/x-ada: Revert last change.
17535         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
17536
17537 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
17538
17539         PR rtl-optimization/26087
17540         * rtlanal.c (canonicalize_condition): Do not cross basic block
17541         boundaries.
17542
17543 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
17544
17545         PR debug/24444
17546         * config/ia64/ia64.c: Include debug.h.
17547         (MAX_ARTIFICIAL_LABEL_BYTES): New.
17548         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
17549         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
17550         (process_epilogue, process_set, process_for_unwind_directive):
17551         Output unwind info only if requested.  Add CFA info if requested.
17552         Add new arguments as needed.  Adjust callers.
17553         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
17554         incorrect default.
17555         (DWARF2_FRAME_INFO): Define to zero.
17556         * config/ia64/unwind-ia64.c: Remove code that compensated for
17557         the CFA offset error fixed above.
17558         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
17559         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
17560         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
17561         -funwind-tables and -fexceptions to enable frame info.
17562         (dwarf2out_frame_init): Define initial CFA even if
17563         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
17564         DWARF2_UNWIND_INFO is nonzero, not just defined.
17565         (dwarf2out_frame_finish): Output non-EH call frame info only
17566         if DWARF2_FRAME_INFO is nonzero.
17567         (convert_cfa_to_loc_list,
17568         compute_frame_pointer_to_cfa_displacement): Define even if
17569         unwind info is not supported.
17570         (gen_subprogram_die): Use the above unconditionally.  Remove
17571         legacy alternate code.
17572         * toplev.c (compile_file): Compile in call to
17573         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
17574         (lang_dependent_init): Ditto for dwarf2out_frame_init.
17575
17576 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
17577             Jakub Jelinek  <jakub@redhat.com>
17578
17579         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
17580         IBM extended float format long double as "g" on powerpc*-linux.
17581
17582 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17583
17584         PR target/25926
17585         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
17586         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
17587
17588 2006-02-03  Jason Merrill  <jason@redhat.com>
17589
17590         PR c++/25979
17591         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
17592
17593         PR middle-end/25977
17594         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
17595         on the return slot if it's an NRV.
17596
17597 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
17598
17599         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
17600         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
17601         rewrite_use): Do not handle USE_OUTER.
17602         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
17603         add_iv_outer_candidates, may_replace_final_value,
17604         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
17605         (find_interesting_uses_op): Functionality of
17606         find_interesting_uses_outer_or_nonlin moved here.
17607         (find_interesting_uses_outside): Use find_interesting_uses_op.
17608
17609 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
17610
17611         PR target/25960
17612         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
17613
17614 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
17615             Ulrich Weigand  <uweigand@de.ibm.com>
17616
17617         PR target/25864
17618         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
17619         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
17620         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
17621         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
17622         and dxr fields.
17623         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
17624         (s390_rtx_costs): Use the new fields to calculate rtx costs.
17625         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
17626         Define secondary reloads for TFmode moves.
17627         (constant_modes): Add TFmode.
17628         (NR_C_MODES): Set to 8.
17629         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
17630         builtin define.
17631         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
17632         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
17633         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
17634         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
17635         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
17636         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
17637         (FPR mode macro): Add TFmode.
17638         (DSF mode macro): New.
17639         (<de>, <dee> mode attributes): Removed.
17640         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
17641         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
17642         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
17643         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
17644         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
17645         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
17646         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
17647         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
17648         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
17649         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
17650         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
17651         "*negabs<mode>2", "sqrt<mode>2"):
17652         Changed <de> to <xde>. R constraint replaced by <Rf>.
17653         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
17654         <Rf>.
17655         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
17656         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
17657         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
17658         splitters.
17659         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
17660         "extenddftf2", "extendsftf2"): New expanders.
17661         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
17662         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
17663         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
17664         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
17665         New options.
17666         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
17667         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
17668         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
17669         __floatditf): Add a GCC_4.1.0 symbol version tag.
17670         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
17671         the new options.
17672
17673 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
17674
17675         PR target/25377
17676         * config/i386/i386.c (ix86_function_ok_for_sibcall):
17677         Use targetm.binds_local_p instead of TREE_PUBLIC.
17678
17679 2006-02-02  Roger Sayle  <roger@eyesopen.com>
17680
17681         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
17682         on INTEGER_TYPEs to indicate that it denotes a character type.
17683         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
17684         signed_char_type_node, unsigned_char_type_node and char_type_node.
17685         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
17686         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
17687         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
17688
17689 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
17690             Daniel Berlin  <dberlin@dberlin.org>
17691
17692         * tree-tailcall.c (arg_needs_copy_p): New function.
17693         (eliminate_tail_call): Use arg_needs_copy_p.
17694         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
17695         (add_virtual_phis): New function.
17696
17697 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
17698
17699         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
17700         #ignore instead of #scratch for %g7 .register directive.
17701
17702 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
17703
17704         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
17705         object files.
17706
17707 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
17708
17709         * flow.c (calculate_global_regs_live): Assert that there aren't any
17710         EDGE_FAKE edges.
17711
17712 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
17713
17714         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
17715         what its name says.
17716         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
17717         bsi_after_labels iterator.
17718         * tree-if-conv.c (find_phi_replacement_condition,
17719         replace_phi_with_cond_modify_expr): Likewise.
17720         * tree-scalar-evolution.c (scev_const_prop): Likewise.
17721         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
17722
17723 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
17724
17725         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
17726
17727 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
17728
17729         PR 25990
17730         * tree-cfg.c (move_block_to_fn): Clear out the basic block
17731         array after growing it.
17732
17733 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
17734
17735         PR middle-end/24901
17736         * fold-const.c (fold_checksum_tree): Change type of buf.
17737
17738 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
17739
17740         * reload.c (push_secondary_reload): Initialize t_icode.
17741
17742 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
17743
17744         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
17745         -msoft-float -mlong-double-128 only issue a warning, but don't
17746         swich to DFmode long double.
17747
17748 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
17749
17750         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
17751         has a constant equivalent, iterate over equivalents for arg0,
17752         calling simplify_relational_operation and if there's a result
17753         cheaper than X, apply fold_rtx and return the result.
17754
17755 2006-02-01  Jan Hubicka  <jh@suse.cz>
17756
17757         * opts.c (no_unit_at_a_time_default): New global variable.
17758         (decode_options): Use it.
17759         * opts.h (no_unit_at_a_time_default): Declare.
17760
17761 2006-02-01  Paul Brook  <paul@codesourcery.com>
17762
17763         * function.c (assign_parm_setup_reg): Use function argument promotion
17764         rules.
17765         * expr.c (expand_expr_real_1): Use function argument promotion rules
17766         for PARM_DECLs.
17767
17768 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
17769
17770         * gcc.c (process_command): Change j to 'unsigned int'.
17771
17772 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
17773
17774         PR middle-end/26001
17775         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
17776         Use the corrected index for the character
17777         out of the string constant.
17778
17779 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
17780
17781         * mode-switching.c (optimize_mode_switching): Fix size
17782         allocated for bb_info[n_entities].
17783
17784 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
17785
17786         * gcc.c (main): Correct type that is allocated for
17787         explicit_link_files.
17788
17789 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
17790
17791         * config/s390/s390.c (init_alignment_context): Set
17792         ALIAS_SET_MEMORY_BARRIER on the MEM.
17793         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
17794
17795 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
17796
17797         PR middle-end/25933
17798         * loop-unroll.c (unroll_loop_runtime_iterations): Free
17799         dom_bbs pointer.
17800         * tree-ssa-live.c (type_var_init): Allocate bitmap after
17801         call to tpa_init.
17802
17803 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
17804
17805         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
17806         * regrename.c: Ditto.
17807         * tree-ssa-loop-im.c: Ditto.
17808         * tree-dump.c: Ditto.
17809         * tree-complex.c: Ditto.
17810         * genrecog.c: Ditto.
17811         * tree-ssa-threadupdate.c: Ditto.
17812         * tracer.c: Ditto.
17813         * java/class.c: Ditto.
17814         * java/jcf-parse.c: Ditto.
17815         * java/resource.c: Ditto.
17816         * java/except.c: Ditto.
17817         * java/jvspec.c: Ditto.
17818         * java/jcf-write.c: Ditto.
17819         * java/jcf-path.c: Ditto.
17820         * java/gjavah.c: Ditto.
17821         * java/zextract.c: Ditto.
17822         * java/jcf-io.c: Ditto.
17823         * java/jcf.h: Ditto.
17824         * java/buffer.c: Ditto.
17825         * java/lang.c: Ditto.
17826         * java/parse-scan.y: Ditto.
17827         * java/lex.c: Ditto.
17828         * java/lex.h: Ditto.
17829         * cfgloopmanip.c: Ditto.
17830         * postreload-gcse.c: Ditto.
17831         * tree-ssa-loop-manip.c: Ditto.
17832         * postreload.c: Ditto.
17833         * tree-ssa-loop-ch.c: Ditto.
17834         * loop.c: Ditto.
17835         * ipa-cp.c: Ditto.
17836         * cppspec.c: Ditto.
17837         * diagnostic.c: Ditto.
17838         * final.c: Ditto.
17839         * genoutput.c: Ditto.
17840         * gcc.c: Ditto.
17841         * cfghooks.c: Ditto.
17842         * cfgloopanal.c: Ditto.
17843         * objc/objc-act.c: Ditto.
17844         * gcov.c: Ditto.
17845         * genextract.c: Ditto.
17846         * genautomata.c: Ditto.
17847         * pretty-print.c: Ditto.
17848         * genemit.c: Ditto.
17849         * cgraphunit.c: Ditto.
17850         * flow.c: Ditto.
17851         * df-scan.c: Ditto.
17852         * haifa-sched.c: Ditto.
17853         * dominance.c: Ditto.
17854         * dbxout.c: Ditto.
17855         * tree-ssa-loop-ivopts.c: Ditto.
17856         * df-core.c: Ditto.
17857         * mode-switching.c: Ditto.
17858         * modulo-sched.c: Ditto.
17859         * graph.c: Ditto.
17860         * ipa-pure-const.c: Ditto.
17861         * cse.c: Ditto.
17862         * fix-header.c: Ditto.
17863         * web.c: Ditto.
17864         * tree-stdarg.c: Ditto.
17865         * ipa-utils.c: Ditto.
17866         * loop-init.c: Ditto.
17867         * ipa-inline.c: Ditto.
17868         * cfganal.c: Ditto.
17869         * global.c: Ditto.
17870         * alloc-pool.c: Ditto.
17871         * dwarf2out.c: Ditto.
17872         * opts.c: Ditto.
17873         * genattrtab.c: Ditto.
17874         * tree-ssa-loop-ivcanon.c: Ditto.
17875         * predict.c: Ditto.
17876         * timevar.c: Ditto.
17877         * lcm.c: Ditto.
17878         * fortran/gfortranspec.c: Ditto.
17879         * regmove.c: Ditto.
17880         * local-alloc.c: Ditto.
17881         * langhooks.c: Ditto.
17882         * function.c: Ditto.
17883         * tree-vectorizer.c: Ditto.
17884         * gcse.c: Ditto.
17885         * ipa-type-escape.c: Ditto.
17886         * alias.c: Ditto.
17887         * tree-if-conv.c: Ditto.
17888         * profile.c: Ditto.
17889         * ipa.c: Ditto.
17890         * tree-data-ref.c: Ditto.
17891         * loop-unroll.c: Ditto.
17892         * treelang/treetree.c: Ditto.
17893         * calls.c: Ditto.
17894         * bt-load.c: Ditto.
17895         * ggc-common.c: Ditto.
17896         * except.c: Ditto.
17897         * coverage.c: Ditto.
17898         * cselib.c: Ditto.
17899         * tree-cfgcleanup.c: Ditto.
17900         * tree-ssa-pre.c: Ditto.
17901         * cfgcleanup.c: Ditto.
17902         * loop-invariant.c: Ditto.
17903         * loop-iv.c: Ditto.
17904         * ipa-prop.c: Ditto.
17905         * print-tree.c: Ditto.
17906         * conflict.c: Ditto.
17907         * ggc-page.c: Ditto.
17908         * sched-deps.c: Ditto.
17909         * regclass.c: Ditto.
17910         * tree-object-size.c: Ditto.
17911         * combine.c: Ditto.
17912         * bb-reorder.c: Ditto.
17913         * resource.c: Ditto.
17914         * var-tracking.c: Ditto.
17915         * cfgloop.c: Ditto.
17916         * df-problems.c: Ditto.
17917         * reg-stack.c: Ditto.
17918         * tlink.c: Ditto.
17919         * gccspec.c: Ditto.
17920         * sched-rgn.c: Ditto.
17921         * tree-ssa-structalias.c: Ditto.
17922         * tree-ssa-reassoc.c: Ditto.
17923         * config/darwin-c.c: Ditto.
17924         * config/darwin.c: Ditto.
17925         * config/arm/arm.c: Ditto.
17926         * cfgrtl.c: Ditto.
17927         * collect2.c: Ditto.
17928         * reload1.c: Ditto.
17929
17930 2006-01-31  Nicolas Pitre  <nico@cam.org>
17931
17932         * arm.md (smaxsi3): Make aware of smax_m1.
17933         (smax_m1): New.
17934
17935 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
17936
17937         * config/m68k/lb1sf68.asm: Use moveq to load small constants.
17938
17939 2006-01-31  Richard Guenther  <rguenther@suse.de>
17940
17941         * doc/invoke.texi (-msselibm): Document.
17942         * target.h (expand_library_builtin): New target hook.
17943         * builtins.c (expand_builtin): Use expand_library_builtin.
17944         (default_expand_library_builtin): New function.
17945         * gcc.c (LINK_GCC_MATH_SPEC): Define.
17946         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
17947         (link_gcc_math_spec): Declare.
17948         (static_specs): Add link_gcc_math_spec.
17949         * expr.h (default_expand_library_builtin): Declare.
17950         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
17951         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
17952         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
17953         * config/i386/i386.opt (msselibm): New target option.
17954         * config/i386/i386.c (ix86_builtin_function_variants): New array.
17955         (ix86_init_sse_abi_builtins): New function.
17956         (ix86_expand_library_builtin): Likewise.
17957         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
17958         (override_options): Handle error conditions wrt -msselibm.
17959         (ix86_builtins): Add function codes for SSE2 ABI builtins.
17960         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
17961         * doc/extend.texi (__builtin_sse2_*): Document new target specific
17962         builtins.
17963
17964 2006-01-31  Richard Guenther  <rguenther@suse.de>
17965         Paolo Bonzini  <bonzini@gnu.org>
17966
17967         * doc/install.texi (--disable-libgcc-math): Document.
17968
17969 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
17970
17971         * expr.h (expand_normal): new inline function.
17972         * builtins.c: use it, use EXPAND_NORMAL explicitely.
17973         * dojump.c: use it.
17974         * dwarf2out.c: use it.
17975         * expr.c: use it.
17976         * calls.c: use it.
17977         * expmed.c: use it.
17978         * except.c: use it.
17979         * config/sparc/sparc.c: use it.
17980         * config/i386/i386.c: use it.
17981         * config/rs6000/rs6000.c: use it.
17982         * config/arm/arm.c: use it.
17983         * config/mips/mips.c: use it.
17984         * stmt.c: use it, use EXPAND_NORMAL explicitely.
17985
17986 2006-01-30  Roger Sayle  <roger@eyesopen.com>
17987
17988         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
17989         argv to the appropriate type.
17990
17991 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
17992
17993         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
17994         unreachable code.
17995
17996 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17997
17998         PR target/26018
17999         * config/s390/s390.c (struct machine_function): New flag
18000         decomposed_literal_pool_addresses_ok_p.
18001         (s390_reorg): Set it before final stage of literal pool transforms.
18002         (s390_decompose_address): Only accept displacements of the form
18003         (minus (label_ref ...) (label_ref ...)) if that flag is set.
18004
18005 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
18006
18007         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
18008         the comparison routine return.
18009
18010 2006-01-30  Michael Matz  <matz@suse.de>
18011
18012         * global.c (find_reg): Only evict for global regs.
18013         Take n_refs into account and dump more info.
18014
18015 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
18016
18017         PR target/14798:
18018         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
18019         (pragma_trap, pragma_nosave_low_regs): Likewise.
18020         (current_function_anonymous_args): Likewise.
18021         (sh_deferred_function_attributes): New variable.
18022         (sh_deferred_function_attributes_tail): Likewise.
18023         (print_operand): For '@', look up trap_exit attribute.
18024         (calc_live_regs): Look up trapa_handler attribute.  For trapa
18025         handlers, save/restore fpscr, but don't do any other
18026         interrupt-specific saves.
18027         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
18028         Fix check for partially saved registers to check for SHmedia.
18029         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
18030         (sh_output_function_epilogue): Don't clear any of the removed
18031         variables.
18032         (sh_insert_attributes): Don't check pragma_interrupt.
18033         Insert deferred attributes.  Check that interrupt attribute is
18034         present for other attributes that require its presence.
18035         (sh_attribute_table): Add new attributes trapa_handler and
18036         nosave_low_regs.
18037         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
18038         Don't check for pragma_interrupt.  Don't store argument.
18039         * sh.h (pragma_interrupt, sp_switch): Don't declare.
18040         (sh_deferred_function_attributes): Declare.
18041         (sh_deferred_function_attributes_tail): Likewise.
18042         * sh.md (sp_switch_1): Add operand.  Change generator caller.
18043         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
18044         (*return_i): Don't use when trap_exit attribute is in effect.
18045         (*return_trapa): New insn pattern.
18046         * sh-c.c: New file.
18047         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
18048         setting c_target_objs and cxx_target_objs.
18049         * t-sh: Add rule for sh-c.o.
18050
18051 2006-01-30  Richard Guenther  <rguenther@suse.de>
18052
18053         PR c++/23372
18054         * gimplify.c (gimplify_target_expr): Handle easy cases
18055         without creating a temporary.
18056
18057 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
18058
18059         * vec.h (safe_grow): Remove duplicated line.
18060
18061 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
18062
18063         PR 25874
18064         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
18065         (expand_omp): ... here.
18066         (expand_omp_parallel): Only remove barriers for combined
18067         parallel+workshare constructs.
18068
18069 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
18070
18071         Revert
18072
18073         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
18074         * tree.c (build_qualified_type): Chain the new type to the original
18075         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
18076         a POINTER_TYPE or a REFERENCE_TYPE respectively.
18077         (build_pointer_type_for_mode): Only return unqualified types.
18078         (build_reference_type_for_mode): Likewise.
18079
18080 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
18081
18082         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
18083         * Makefile.in (CXX_COMPAT_WARN): Define.
18084         * configure: Regenerate.
18085
18086 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
18087
18088         PR tree-opt/25911
18089         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
18090         to an if check.
18091
18092 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18093
18094         * toplev.c: Fix thinko.
18095
18096 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18097             Marcin Dalecki  <martin@dalecki.de>
18098
18099         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
18100         (push_srcloc): Use XNEW.
18101         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
18102
18103 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
18104
18105         * df-core.c (df_set_blocks): Deleted all variable.
18106
18107 2006-01-28  Ian Lance Taylor  <ian@airs.com>
18108
18109         * cgraphunit.c (cgraph_assemble_pending_functions): Call
18110         cgraph_output_pending_asms.
18111
18112 2006-01-28  Zack Weinberg  <zackw@panix.com>
18113
18114         * c.opt: Add -W(no-)overlength-strings.
18115         * doc/invoke.texi: Document it.
18116         * c-opts.c (c_common_handle_option): -pedantic implies
18117         -Woverlength-strings, if not explicitly disabled already.
18118         (c_common_post_options): -Woverlength-strings defaults to off, and
18119         is always off for C++.
18120         * c-common.c (fix_string_type): Issue warning about strings longer
18121         than is portable only if warn_overlength_strings.  Rearrange code
18122         a little for clarity.
18123         * configure.in: Check for -Wno-overlength-strings as well before
18124         enabling -pedantic in stage 1.
18125         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
18126         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
18127
18128         * genconditions.c (write_header, write_one_condition)
18129         (write_conditions, write_writer): Consolidate very long strings
18130         that were broken up to fit in C89 portable limit.  Don't use
18131         printf when fputs will do.
18132
18133 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
18134
18135         * combine.c (simplify_comparison <AND>): Check
18136         TRULY_NOOP_TRUNCATION before start using a subreg.
18137
18138         * config/mips/mips.md (*branch_zero<mode>,
18139         *branch_zero<mode>_inverted, *branch_equality<mode>,
18140         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
18141         Remove mode check from comparisons.
18142
18143 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
18144
18145         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
18146
18147 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
18148
18149         * expmed.c (const_mult_add_overflow_p): Remove.
18150         * expr.h: Remove the prototype for const_mult_add_overflow_p.
18151
18152         * recog.c (validate_replace_rtx_subexp): Remove.
18153         * recog.h: Remove the prototype for
18154         validate_replace_rtx_subexp.
18155
18156         * integrate.h: Remove the prototype for
18157         copy_decl_for_inlining.
18158         * rtl.h: Remove the prototype for mark_constant_function.
18159         * tree-vectorizer.h: Remove the prototype for
18160         vect_strip_conversion.
18161
18162         * modulo-sched.c (create_partial_schedule,
18163         free_partial_schedule, reset_partial_schedule): Make them
18164         static.
18165
18166         * hooks.c (hook_bool_rtx_int_false): Remove.
18167         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
18168
18169 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
18170
18171         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
18172         and -mlong-double-128 are incompatible.
18173         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
18174         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
18175         (TARGET_LIBGCC2_CFLAGS): Define.
18176         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
18177         (TARGET_LIBGCC2_CFLAGS): Same.
18178         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
18179
18180 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
18181
18182         PR c/19606.
18183         * c-typeck.c (build_binary_op): Perform implicit casts of
18184         operands before shortening them.
18185
18186         * cfgloopmanip.c (split_loop_bb): Remove.
18187         * cfgloop.h: Remove the prototype for split_loop_bb.
18188
18189         * cfgloop.c (flow_loop_outside_edge_p): Remove.
18190         * cfgloop.h: Remove the prototype for
18191         flow_loop_outside_edge_p.
18192
18193         * emit-rtl.c (init_virtual_regs): Make it static.
18194         * function.h: Remove the prototype for init_virtual_regs.
18195
18196         * recog.c (peephole2_optimize): Make it static.
18197         * recog.h: Remove the prototype for peephole2_optimize.
18198
18199 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
18200
18201         * df-scan.c (df_record_entry_block_defs): Check if
18202         INCOMING_RETURN_ADDR_RTX is defined.
18203
18204 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
18205             Kenneth Zadeck <zadeck@naturalbridge.com>
18206
18207         PR rtl-optimization/24762
18208         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
18209         * targhooks.c (hook_void_bitmap): New hook prototype.
18210         * targhoohs.h (hook_void_bitmap): Ditto.
18211         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
18212         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
18213         * target.h (live_on_entry): New function pointer.
18214         * df-scan.c (df_all_hard_regs): Removed.
18215         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
18216         (df_scan_free_internal): Added df->entry_block_defs.
18217         (df_scan_alloc): Ditto.
18218         (df_scan_dump): Ditto.
18219         (df_uses_record): Plumbed flag field properly thru calls.
18220         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
18221         This part fixes PR24762.
18222         (df_bb_refs_record): Added code to make the frame and arg
18223         pointers live in EH blocks.
18224         (df_refs_record): Added call to df_record_entry_block_defs.
18225         (df_record_entry_block_defs): New function.
18226         * df-core.c: Added comments to describe new artifical defs.
18227         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
18228         (entry_block_defs): New field in struct df.
18229         (df_all_hard_regs): Deleted.
18230         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
18231         * df-problems.c (df_ru_bb_local_compute_process_def):
18232         Added code to handle artifical defs in the entry to a function.
18233         (df_ru_bb_local_compute): Ditto.
18234         (df_rd_bb_local_compute_process_def): Ditto.
18235         (df_rd_bb_local_compute): Ditto.
18236         (df_lr_bb_local_compute): Ditto.
18237         (df_ur_bb_local_compute): Ditto.
18238         (df_urec_bb_local_compute): Ditto.
18239         (df_chain_create_bb): Ditto.
18240         (df_ur_local_finalize): Removed entry.
18241         (df_urec_init): Ditto.
18242         (df_urec_local_finalize): Ditto.
18243         (df_ri_bb_compute): Added detection of last use of pseudos.
18244         * Makefile.in (df-scan.o): Updated dependencies.
18245         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
18246         * config/mips/mips.c (mips_set_live_on_entry): Added.
18247         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
18248         for target hook.
18249         * dce.c (marked_insn_p): Added code to handle artifical defs.
18250
18251 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
18252
18253         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
18254         intrinsic.
18255         (_mm_cvtsi128_si64): Likewise.
18256         (_mm_cvtsd_si64): Likewise.
18257         (_mm_cvttsd_si64): Likewise.
18258         (_mm_cvtsi64_sd): Likewise.
18259         (_mm_cvtsi64_si128): Likewise.
18260         * config/i386/mmintrin.h (_m_from_int64): Likewise.
18261         (_mm_cvtsi64_m64): Likewise.
18262         (_m_to_int64): Likewise.
18263         (_mm_cvtm64_si64): Likewise.
18264         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
18265         (_mm_cvttss_si64): Likewise.
18266         (_mm_cvtsi64_ss): Likewise.
18267         (_mm_cvtss_f32): Likewise.
18268
18269 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
18270
18271         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
18272         for pragma redefine_extname.
18273
18274 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
18275
18276         PR target/25864
18277         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
18278         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
18279         -mno-minimal-toc to previous content.
18280         (bispecs): Remove goal.
18281         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
18282         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
18283         compatibility aliases on powerpc-*-*gnu*.
18284         * config/rs6000/libgcc-ppc-glibc.ver: New file.
18285         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
18286         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
18287         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
18288         (ldblspecs): New goal.
18289         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
18290         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
18291         _df_to_tf.
18292         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
18293         L_sf_to_tf or L_df_to_tf is defined.
18294
18295 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
18296             Alan Modra  <amodra@bigpond.net.au>
18297
18298         PR target/25864
18299         * config/rs6000/linux.h (POWERPC_LINUX): Define.
18300         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
18301         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
18302         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
18303         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
18304         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
18305         (rs6000_override_options): Initialize rs6000_ieeequad.
18306         Initialize TFmode format to ibm_extended_format if not
18307         TARGET_IEEEQUAD.
18308         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
18309         ieeelongdouble.
18310         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
18311         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
18312         (function_arg_advance): IBM long double passed in two FPRs, not
18313         split.
18314         (function_arg): IBM long double passed in FPRs.
18315         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
18316         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
18317         Only multireg GPR aligned.
18318         (rs6000_init_libfuncs): Enable IBM long double functions if not
18319         IEEEQUAD.
18320         (rs6000_generate_compare): Use IBM long double compare if not
18321         TARGET_IEEEQUAD.
18322         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
18323         (TARGET_IEEEQUAD): Define.
18324         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
18325         not TARGET_IEEEQUAD.
18326         * config/rs6000/rs6000.md: Enable TFmode patterns if
18327         !TARGET_IEEEQUAD.
18328         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
18329         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
18330         and -mlong-double-128 are incompatible.
18331         * doc/invoke.texi (-mabi): Collect options together.  Add
18332         ibmlongdouble and ieeelongdouble.
18333
18334 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
18335
18336         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
18337         opaque type.
18338         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
18339         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
18340         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
18341         * rtl.h (rtunion_def): Remove rt_ptr.
18342         (X0PTR): Delete.
18343         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
18344         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
18345         * config/i386/winnt.c (i386_pe_mark_dllexport)
18346         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
18347
18348 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
18349
18350         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
18351
18352 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
18353
18354         PR other/24829
18355         PR target/24831
18356         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
18357         pthread_key_delete.  From John David Anglin.  gthrw-ify
18358         pthread_getunique_np only if it it's not a macro.  Delete
18359         UNUSED macro.
18360         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
18361         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
18362         __gthread_objc_condition_signal, __gthread_key_delete): Add
18363         "__attribute__ ((__unused__))" to unused arguments.
18364         (__gthread_recursive_mutex_init_function): Add missing return.
18365         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
18366         gthr-posix95.h: Use macro-based approach for name redirection
18367         on targets missing weakref.
18368
18369 2006-01-26  Zack Weinberg  <zackw@panix.com>
18370
18371         * genconditions.c (write_header): In generated code, #ifdef out
18372         all includes and fake declarations, except includes of bconfig.h
18373         and system.h, unless GCC_VERSION >= 3001.  Do not include
18374         gensupport.h in any case.
18375         (write_conditions): Generate a definition of struct c_test.  Add
18376         a comment to the generated #endif.
18377         (write_one_condition): Escape backslashes in string too.
18378         (write_writer): Generated code must escape backslashes and quote
18379         marks (but not newlines) in the strings it writes.
18380         * Makefile.in (build/gencondmd.o): Update dependencies.
18381
18382 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
18383
18384         PR target/25961
18385         * Makefile.in (insn-automata.o): Add header file dependencies.
18386         * genautomata.c: Add includes.
18387
18388 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
18389
18390         PR target/25961
18391         * Makefile.in (insn-automata.o): Add -Wno-error flag.
18392
18393 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
18394
18395         * configure.ac: Expect target tools paths to be passed from the toplevel
18396         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
18397         AS_SET_VAR_IF.
18398         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
18399
18400 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
18401
18402         PR c/25892
18403         * c.opt (Wpointer-sign): Init to -1.
18404         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
18405         OPT_pedantic, to 0 otherwise.
18406         * doc/invoke.texi: Update.
18407
18408 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
18409
18410         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
18411         constants provided by 80387 instructions in the destination mode.
18412
18413 2006-01-26  Richard Guenther  <rguenther@suse.de>
18414             Andrew Pinski  <pinskia@physics.uc.edu>
18415
18416         PR tree-opt/21470
18417         partial PR tree-opt/17064
18418         * tree-ssa-structalias.c (intra_create_variable_infos):
18419         Create heap variables for incoming parameters if
18420         flag_argument_noalias > 1.
18421         (find_what_p_points_to): Look through default defs of
18422         parameter decls.
18423
18424 2006-01-26  Jeff Law  <law@redhat.com>
18425
18426         PR ada/25900
18427         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
18428         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
18429         within the VR_RANGE, use the VR_RANGE as the result, not the
18430         VR_ANTI_RANGE.
18431         (adjust_range_with_scev): Reject ranges from SCEV which are out of
18432         bounds for the type.
18433
18434 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
18435
18436         * tree-ssa-alias.c (maybe_create_global_var): Change
18437         subvar walking to an assertion that we don't have subvar'd variables.
18438
18439 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
18440
18441         PR C/25861
18442         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
18443         Use a new variable, inner.  PARM_DECLs are always non-weak.
18444
18445 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
18446
18447         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
18448         --disable-checking.
18449
18450 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
18451
18452         * config/mips/mips.md (*clear_upper32): New combiner pattern.
18453
18454 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
18455
18456         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
18457         (smax_insn, smin_insn, smax_0, smin_0): New.
18458
18459 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
18460
18461         PR target/25947
18462         * config/cris/cris.c (cris_order_for_addsi3): New function.
18463         * config/cris/cris-protos.h: Prototype it.
18464         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
18465         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
18466         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
18467         (split for "op.S1 [rx=rx+i],ry (swapped)")
18468         (split for "op(s|u).S1 [rx=rx+i],ry")
18469         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
18470         Apply cris_order_for_addsi3 when generating addsi3 insns.
18471
18472 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
18473
18474         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
18475         (TREE_BLOCK): Add call to EXPR_CHECK.
18476
18477 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
18478
18479         PR 25886
18480         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
18481         * tree-pretty-print.c (dump_omp_clause): Extract from ...
18482         (dump_omp_clauses): ... here.
18483         (dump_generic_node): Handle OMP_CLAUSE.
18484         * tree.c (omp_clause_num_ops): New.
18485         (omp_clause_code_name): New.
18486         (tree_code_size): Handle OMP_CLAUSE.
18487         (tree_size): Likewise.
18488         (make_node): Document handling of OMP_CLAUSE.
18489         (tree_node_structure): Handle OMP_CLAUSE.
18490         (omp_clause_check_failed): New.
18491         (omp_clause_range_check_failed): New.
18492         (omp_clause_operand_check_failed): New.
18493         (build_omp_clause): New.
18494         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
18495         * tree.h (enum omp_clause_code): Declare.
18496         (OMP_CLAUSE_SUBCODE_CHECK): Define.
18497         (OMP_CLAUSE_RANGE_CHECK): Define.
18498         (OMP_CLAUSE_ELT_CHECK): Define.
18499         (omp_clause_check_failed): Declare.
18500         (omp_clause_operand_check_failed): Declare.
18501         (omp_clause_range_check_failed): Declare.
18502         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
18503         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
18504         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
18505         (OMP_CLAUSE_LASTPRIVATE): Likewise.
18506         (OMP_CLAUSE_IF_EXPR): Likewise.
18507         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
18508         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
18509         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
18510         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
18511         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
18512         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
18513         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
18514         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
18515         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
18516         (OMP_CLAUSE_CODE): Define.
18517         (OMP_CLAUSE_SET_CODE): Define.
18518         (OMP_CLAUSE_CODE): Define.
18519         (OMP_CLAUSE_OPERAND): Define.
18520         (struct tree_omp_clause): Declare.
18521         (union tree_node): Add field 'omp_clause'.
18522         * treestruct.def (TS_OMP_CLAUSE): Define.
18523         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
18524         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
18525         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
18526         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
18527         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
18528         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
18529         (OMP_CLAUSE): Define.
18530         * print-tree.c (print_node): Handle OMP_CLAUSE.
18531         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
18532         * c-typeck.c: Likewise.
18533         * gimplify.c: Likewise.
18534         * c-omp.c: Likewise.
18535         * tree-nested.c: Likewise.
18536         * tree-inline.c: Likewise.
18537         * c-parser.c: Likewise.
18538         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
18539         clauses.
18540
18541 2006-01-25  Roger Sayle  <roger@eyesopen.com>
18542
18543         PR rtl-optimization/25703
18544         * combine.c (try_combine): Handle zero_extract and strict_low_part
18545         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
18546
18547 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
18548
18549         * global.c: Fix comment typos.
18550
18551 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
18552
18553         PR target/25758
18554         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
18555         Use output_addr_const instead of assemble_name.
18556
18557 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
18558
18559         * Makefile.in (sched-vis.o): Update dependencies.
18560         * haifa-sched.c (sched_finish): Clear current_sched_info.
18561         * cfg.c (dump_bb_info): New, split from dump_flow_info.
18562         (dump_flow_info): Call it.
18563         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
18564         a slim RTL dump.
18565         * basic-block.h (dump_bb_info): Declare.
18566         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
18567         option, and apply options only for dump files whose TDF_RTL,
18568         TDF_TREE, or TDF_IPA bits match.
18569         * rtl.h: Declare new functions exported from sched-vis.c.
18570         * sched-vis.c: Enable also if scheduling is not used.
18571         (print_value): Print the mode of registers if not inside scheduling.
18572         (print_insn): Make it work outside the scheduler.  Beautify the output
18573         a bit.
18574         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
18575
18576 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
18577
18578         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
18579         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
18580         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
18581         depending on the value of CONSTANT_POOL_ADDRESS_P.
18582         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
18583         SYMBOL_REF_DECL.
18584         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
18585         rather than SYMBOL_REF_DECL.
18586         (rtx_constant_pool): Remove const_rtx_sym_htab.
18587         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
18588         (init_varasm_status): Don't initialize const_rtx_sym_htab.
18589         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
18590         Remove handling of const_rtx_sym_htab.
18591         (find_pool_constant): Delete.
18592         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
18593         rather than find_pool_constant.
18594         (get_pool_constant_for_function): Delete.
18595         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
18596         find_pool_constant.
18597         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
18598         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
18599         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
18600         (SYMBOL_REF_CONSTANT): New macro.
18601         (get_pool_constant_for_function): Delete.
18602         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
18603         rather than SYMBOL_REF_DECL.
18604         (i386_pe_mark_dllimport): Likewise.
18605         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
18606         rather than SYMBOL_REF_DECL.
18607         * config/darwin.c (machopic_indirect_data_reference): Likewise.
18608         (machopic_indirect_call_target): Likewise.
18609
18610 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
18611
18612         * flow.c (delete_noop_moves): Add missing EOL to dump message.
18613
18614 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
18615
18616         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
18617
18618 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
18619
18620         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
18621
18622 2006-01-24  David Daney  <ddaney@avtrex.com>
18623
18624         PR java/25816
18625         * configure.ac (enable_tls): New enable option.
18626         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
18627         * configure: Regenerate.
18628         * doc/install.texi (--enable-tls): Document new option.
18629         (--disable-tls): Ditto.
18630
18631 2006-01-24  Richard Henderson  <rth@redehat.com>
18632
18633         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
18634         * alias.c (true_dependence): Respect it.
18635         (canon_true_dependence, write_dependence_p): Likewise.
18636         * builtins.c (get_builtin_sync_mem): Set it.
18637
18638 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
18639
18640         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
18641         efficient way.
18642
18643 2006-01-24  DJ Delorie  <dj@redhat.com>
18644
18645         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
18646         for storing constants in single-bit bitfields.
18647
18648 2006-01-25  Ben Elliston  <bje@au.ibm.com>
18649
18650         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
18651
18652 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
18653
18654         PR tree-opt/25860
18655         * tree-ssa-pre.c (phi_translate): Return NULL
18656         for AGGREGATE_TYPE's.
18657
18658 2006-01-24  Zack Weinberg  <zackw@panix.com>
18659
18660         * genautomata.c (process_state_for_insn_equiv_partition):
18661         Use xcalloc for insn_arcs_array.
18662         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
18663         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
18664
18665 2006-01-24  Richard Henderson  <rth@redhat.com>
18666
18667         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
18668         update all callers.
18669
18670 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
18671
18672         PR rtl-optimization/25890
18673         PR rtl-optimization/25905
18674         * combine.c (expand_compound_operation, expand_field_assignment):
18675         Fail if the bitfield's final position is out of bounds.
18676
18677 2006-01-24  Ian Lance Taylor  <ian@airs.com>
18678
18679         PR middle-end/25930
18680         * cgraphunit.c (cgraph_output_in_order): Don't clear
18681         cgraph_asm_nodes until after asm strings have been output.
18682
18683 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
18684
18685         * fix-header.c (read_scan_file): Add new parameter imultilib when
18686         calling register_include_chains.
18687
18688 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
18689
18690         * omp-low.c: Update documentation.
18691
18692 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
18693             Daniel Berlin  <dberlin@dberlin.org>
18694
18695         PR tree-opt/25315
18696         PR tree-opt/25857
18697         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
18698         return from the function.
18699
18700 2006-01-22  Zack Weinberg  <zackw@panix.com>
18701
18702         * rtl.def (match_code): Add second argument.
18703         * genpreds.c (write_extract_subexp): New function.
18704         (write_match_code): Add path argument.  Use write_extract_subexp.
18705         (write_predicate_expr): Pass path to write_match_code.
18706         (mark_mode_tests): MATCH_CODE applied to a subexpression does
18707         not perform a mode test.
18708         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
18709         a subexpression does not constrain the top-level code set.
18710         * read-rtl.c (read_rtx_variadic): New function.
18711         (read_rtx_1): Use it; allow AND and IOR to be variadic.
18712         * doc/md.texi: Document new notation.
18713         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
18714         (cmpsi_operand): ... here, using new notation.
18715
18716 2006-01-22  Zack Weinberg  <zackw@panix.com>
18717
18718         * varray.c: Remove GENERATOR_FILE #ifdefs.
18719
18720 2006-01-22  Zack Weinberg  <zackw@panix.com>
18721
18722         * genautomata.c (output_reserved_units_table): Emit nothing if
18723         description->query_units_num is zero.  Remove extra blank line.
18724         (output_cpu_unit_reservation_p): Short circuit
18725         if description->query_units_num is zero.
18726
18727 2006-01-22  Zack Weinberg  <zackw@panix.com>
18728
18729         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
18730         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
18731         nor any of the random handful of variables that used to be necessary
18732         when this program was linked with rtlanal.o.  Prune set of forward
18733         function declarations.
18734         (struct attr_desc): Remove static_p field.
18735         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
18736         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
18737         (attr_string): Do not read the character one past the length of
18738         the string.
18739         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
18740         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
18741         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
18742         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
18743         (make_automaton_attrs): New.
18744         (main): Do not call into genautomata.  Call local gen_bypass
18745         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
18746         Remove special case for insn_alts.
18747         * genautomata.c: Include gensupport.h; not genattrtab.h nor
18748         varray.h (leftover from previous change).  Prune set of forward
18749         function declarations.  Remove state_alts fields from all
18750         structures.  Remove state_alts_table from struct automaton.
18751         Make everything except main static.  Do not maintain num_dfa_decls.
18752         Do not maintain state_alts fields of various structures.
18753         (process_decls): Don't validate condexp for dm_insn_reserv decls.
18754         (add_arc): Remove state_alts argument.  All callers updated.
18755         (output_reserved_units_table): Emit #ifdef here...
18756         (output_tables): ...not here.  Don't generate state_alts tables.
18757         (expand_automata): Don't generate attributes.
18758         (write_automata): Don't generate state_alts functions.
18759         (main): New function.
18760         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
18761         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
18762         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
18763         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
18764         (BYPASS_P_FUNC_NAME, output_state_alts_table)
18765         (output_automata_list_state_alts_code, output_internal_state_alts_func)
18766         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
18767         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
18768         Delete.
18769         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
18770         * genattrtab.h: Delete file.
18771         * Makefile.in (OBJS-common): Add insn-automata.o.
18772         (insn-automata.o): New rule.
18773         (simple_generated_c): Add insn-automata.c.
18774         (build/genattrtab.o, build/genautomata.o): Update dependencies.
18775         (genprogmd): Add automata.
18776         (build/genattrtab): Needs no extra objects nor libraries.
18777         (build/genautomata): Needs build/vec.o and -lm.
18778
18779 2006-01-22  Zack Weinberg  <zackw@panix.com>
18780
18781         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
18782         (output_dfa_max_issue_rate, locked_states_num): Delete.
18783         (struct automaton): Add locked_states field.
18784         (output_dead_lock_vect): Save number of locked states in
18785         automaton->locked_states.  If it is zero, don't print anything.
18786         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
18787         (output_internal_dead_lock_func): Only test the dead_lock_vect
18788         for automata that have locked states.
18789         (output_statistics): Always print the number of locked states for
18790         each automaton.  Calculate total number of locked states here.
18791         (write_automata): Don't call output_dfa_max_issue_rate.
18792         * genattrtab.c: Define length_unit_log as a const variable.
18793         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
18794         max_insn_queue_index const.
18795         * final.c (length_unit_log): Declare const.
18796         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
18797
18798 2006-01-22  Zack Weinberg  <zackw@panix.com>
18799
18800         * genautomata.c: Include vec.h, not varray.h.
18801         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
18802         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
18803         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
18804         VEC_* macros operating on appropriately typed vectors, or to
18805         malloced arrays when the size is known in advance.  Const-ify
18806         many char* variables and function arguments.  No functional changes.
18807         * Makefile.in (build/varray.o): Delete rule.
18808         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
18809         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
18810
18811 2006-01-22  Zack Weinberg  <zackw@panix.com>
18812
18813         * gensupport.c: Define get_insn_name and record_insn_name here.
18814         (read_md_rtx): Call record_insn_name as appropriate.
18815         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
18816         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
18817         * genpreds.c, genrecog.c: Don't define get_insn_name nor
18818         record_insn_name.
18819         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
18820         (BUILD_VARRAY): Delete.
18821         (genprognormal): Rename genprogmd.  Fold in all programs from
18822         genprognoprint; also attrtab.
18823         (build/genattrtab): Just mention genautomata.o and varray.o.
18824         Reorganize a bit, add comments to make the categories clearer.
18825
18826 2006-01-22  Zack Weinberg  <zackw@panix.com>
18827
18828         * genconditions.c (condition_table, add_condition): Delete.
18829         (write_conditions): Don't emit n_insn_conditions nor
18830         insn_elision_unavailable.  Issue the gcc version #ifdef here,
18831         inside the table, with no #else clause ...
18832         (write_header): ...not here.
18833         (write_writer): New function.
18834         (main): Don't initialize condition_table.  Use add_c_test.
18835         Call write_writer.
18836         * gensupport.c (init_md_reader_args_cb): Handle multiple input
18837         files on the command line.
18838         (maybe_eval_c_test): Don't check insn_elision_unavailable.
18839         Return -1 if there is no entry in the table, don't abort.
18840         (add_c_test, traverse_c_tests): New functions.
18841         * gensupport.h (insn_elision_unavailable, insn_conditions)
18842         (n_insn_conditions): Delete declarations.
18843         (add_c_test, traverse_c_tests): Declare.
18844         * read-rtl.c: Include gensupport.h.
18845         (read_conditions): New function.
18846         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
18847         (read_rtx_1): If we get EOF when we were looking for an initial
18848         open paren, return 0.  Call read_conditions when appropriate.
18849         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
18850         dummy-conditions.o.  Eliminate references to insn-conditions.o,
18851         or change them to build/gencondmd.o, as appropriate.  Remove
18852         insn-constants.h from $(simple_generated_h) and insn-conditions.c
18853         from $(simple_generated_c).  For all files remaining in those
18854         two lists, add insn-conditions.md to the generator command line.
18855         Give insn-constants.h/s-constants their own rules.  Add rules
18856         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
18857         (build/read-rtl.o): Depend on gensupport.h.
18858         (genprognormal): Include preds.
18859         (genprogearly): Rename genprognoprint; only difference is now that
18860         they don't link with $(BUILD_PRINT).
18861         * dummy-conditions.c: Delete.
18862
18863 2006-01-22  Zack Weinberg  <zackw@panix.com>
18864
18865         * genextract.c: Don't include insn-config.h.  Do include vec.h.
18866         Declare vectors of int, char, and locstr.
18867         (locstr): New typedef.
18868         (struct extraction): Make all array fields into bare pointers.
18869         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
18870         (insn_code_number): Delete.
18871         (accum_extract): New struct.
18872         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
18873         (gen_insn): Take insn_code_number as an argument.  Use an
18874         accum_extract structure instead of loading data directly into
18875         a struct extraction, and having to know how big it might get.
18876         (walk_rtx): Operate entirely on an accum_extract structure.
18877         (print_path): Avoid unnecessary use of printf.
18878         (print_header): New function, split out of main.  Distinguish
18879         more carefully between an unrecognizable insn and an insn that
18880         has the code number of a define_expand.
18881         (main): Pass insn_code_number to gen_insn.  Call print_header
18882         only after parsing.  Avoid unnecessary use of printf.
18883         * Makefile.in (build/vec.o): New rule.
18884         (build/genextract): Depend on build/vec.o.
18885         (build/genextract.o): Don't depend on insn-config.h.
18886
18887 2006-01-22  Zack Weinberg  <zackw@panix.com>
18888
18889         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
18890         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
18891         practical.  Eliminate per-generator-program link rules.
18892
18893 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
18894
18895         PR middle-end/24437
18896         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
18897         with a call expr to ...
18898         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
18899
18900 2006-01-23  Richard Guenther  <rguenther@suse.de>
18901
18902         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
18903         before make_edge with conditional EDGE_TRUE_VALUE.
18904
18905 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
18906         Jan Hubicka  <jh@suse.cz>
18907         Richard Guenther  <rguenther@suse.de>
18908
18909         PR rtl-optimization/25654
18910         * cfgexpand.c (aggregate_contains_union_type): New function.
18911         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
18912         for structure variables that contain a union type.
18913
18914 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
18915
18916         * gengtype.c (new_structure): Return the structure.
18917         (create_option): Add an extra "next" argument.
18918         (create_field): New function.
18919         (adjust_field_rtx_def): Use create_option and create_field.
18920         Remove a now-unnecessary call to find_structure.
18921         (adjust_field_tree_def): Likewise.
18922         (note_yacc_type): Remove an unnecessary call to find_structure.
18923         * gengtype.h (new_structure): Return the structure.
18924         (create_option): Add an extra argument.
18925         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
18926         (option): Adjust calls to create_option.
18927
18928 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
18929
18930         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
18931
18932 2006-01-22  Paul Brook  <paul@codesourcery.com>
18933         Peter Barada  <peter@the-baradas.com>
18934
18935         * config/m68k/m68k.md: Add Coldfire FPU support.
18936         Define FP mode macro and associated attributes.
18937         Use it for float mode patterns.
18938         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
18939         (LIBCALL_VALUE): Use m68k_libcall_value.
18940         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
18941         (m68k_function_value): Ditto.
18942         (emit_move_sequence): Ditto.
18943         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
18944         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
18945         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
18946         (MULTILIB_EXCEPTIONS): Ditto.
18947         * config/m68k/m68k.opt: Add mcfv4e.
18948         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
18949         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
18950         (m68k_output_function_prologue): Save ColdFire FPU registers.
18951         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
18952         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
18953         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
18954         ColdFire FPU registers.
18955         (m68k_libcall_value, m68k_function_value): New functions.
18956         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
18957         (LIBCALL_VALUE): Use m68k_libcall_value.
18958         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
18959         (MASK_COLDFIRE): Add MASK_CFV4E.
18960         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
18961         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
18962         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
18963         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
18964         (GO_IF_LEGITIMATE_ADDRESS): Use it.
18965         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
18966         * doc/invoke.tex: Document -mcfv4e on m68k.
18967
18968 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
18969
18970         * doc/contribute.texi: Change CVS to SVN and update the corresponding
18971         URL.
18972
18973 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18974
18975         PR c++/16190
18976         * c-opts.c (c_common_handle_option): Don't include
18977         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
18978         * doc/invoke.texi (C++ Dialect Options): Document that
18979         -Wnon-virtual-dtor is no longer included in -Wall.
18980
18981 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
18982
18983         * gcov.c (print_version), gcov-dump.c (print_version),
18984         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
18985         dates.
18986
18987 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
18988
18989         * df-scan.c (problem_SCAN): Added NULL reset function.
18990         (df_scan_reset_blocks): Added code to call reset block function
18991         (df_bb_refs_delete) Fixed comment.
18992         (df_insn_refs_delete): Made tolerant of deleting non existent info
18993         for dataflow problems that need to be reset.
18994         * df-core.c (df_set_blocks): Ditto.
18995         * df.h (struct df_problem): Added reset_fun.
18996         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
18997         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
18998         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
18999         functions to clear out all references to def-use or use-def chains.
19000
19001 2006-01-21  Ben Elliston  <bje@au.ibm.com>
19002
19003         * varasm.c (assemble_real): Initialise data array.
19004
19005 2006-01-20  Paul Brook  <paul@codesourcery.com>
19006
19007         Merge from csl-arm-branch.
19008         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
19009         * config/arm/arm.md (movdi): Force operands[1] to a register
19010         if we have a non-register source.
19011         (*arm_movdi, *movdf_soft_insn): Require that one of the
19012         operands be a register.
19013         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
19014         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
19015
19016 2006-01-20  DJ Delorie  <dj@redhat.com>
19017
19018         * varasm.c (initializer_constant_valid_p): Allow pointers
19019         initialized from integer constants of lesser precision.
19020         (output_constant): Allow non-int-sized pointer modes to be
19021         initialized from integer constants.
19022
19023 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
19024
19025         PR libstdc++/25524
19026         * cppdefault.h (struct default_include): Add multilib flag.
19027         * cppdefault.c (cpp_include_defaults): Set it.
19028         * c.opt (-imultilib): New option.
19029         * c-opts.c (imultilib): New.
19030         (c_common_handle_option): Handle -imultilib.
19031         (c_common_post_options): Likewise.
19032         * c-incpath.c (add_standard_paths, register_include_chains):
19033         Likewise.
19034         * c-incpath.h (register_include_chains): Add extra parameter.
19035         * gcc.c (do_spec_1): Generate -imultilib option.
19036         (The Specs Language): Update %I description.
19037         (process_command): Update copyright notice.
19038         * doc/cppopts.texi (-imultilib): Document.
19039         * doc/invoke.texi (-imultilib): Include in option summary.
19040         (%I): Update specs documentation.
19041
19042 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
19043
19044         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
19045
19046 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
19047
19048         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
19049         label numbers.
19050
19051 2006-01-20  Richard Guenther  <rguenther@suse.de>
19052         Steven Bosscher <stevenb.gcc@gmail.com>
19053
19054         PR rtl-optimization/24626
19055         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
19056         EDGE_TRUE_VALUE if in RTL mode.
19057
19058         Revert
19059         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
19060         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
19061
19062 2006-01-20  Dirk Mueller  <dmueller@suse.com>
19063
19064         PR c++/5520
19065         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
19066         instead of a special NOP marker.
19067         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
19068         NOP marker handling.
19069         * c-common.h (empty_body_warning): Add forward declaration.
19070         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
19071         Now uses IS_EMPTY_STMT() instead of special NOP markers.
19072
19073 2006-01-20  Paul Brook  <paul@codesourcery.com>
19074
19075         * Makefile.in (lang_checks): Keep going if mkdir fails.
19076
19077 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
19078
19079         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
19080         be able to clean out basic block when not necessary.
19081         (df_scan_free): Fixed to properly delete information if df is
19082         unused before calling df_finish.
19083         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
19084         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
19085         or comment typos.
19086         (df_bb_refs_delete): New function.
19087         (df_refs_delete): Moved per block code to df_bb_refs_delete.
19088         * df-core.c (df_set_blocks): Added code to properly clean out
19089         unused blocks if they are not part of the blocks to consider.
19090         Added additional null check.
19091         (df_compact_blocks): Added basic block parameter to free_bb_fun to
19092         be able to clean out basic block when not necessary
19093         * df.h (df_free_bb_function): Ditto.
19094         (df_bb_refs_delete): New function.
19095         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
19096         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
19097         basic block parameter to be able to clean out basic block when not
19098         necessary.
19099         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
19100         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
19101         Fixed to properly delete information if df is unused before
19102         calling df_finish.
19103
19104 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
19105
19106         PR rtl-optimization/25799
19107         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
19108         Corrected confluence operator to remove bits from op2 before oring
19109         with op1 rather than removing bits from op1.
19110         (df_ru_transfer_function): Corrected test on wrong bitmap which
19111         caused infinite loop.  Both of these problems were introduced in
19112         the dataflow rewrite.
19113
19114 2006-01-19  DJ Delorie  <dj@redhat.com>
19115
19116         * reload1.c (find_reload_regs): Note the details of reload
19117         failures in the dump file.
19118         (spill_failure): Likewise.
19119
19120 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
19121
19122         * loop-iv.c: Include df.h and hashtab.h.
19123         (enum iv_grd_result): New enum.
19124         (DF_REF_IV, DF_REF_IV_SET): New macros.
19125         (struct biv_entry): New.
19126         (df, bivs): New global variables.
19127         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
19128         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
19129         Removed.
19130         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
19131         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
19132         analyzed_for_bivness_p, record_biv): New functions.
19133         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
19134         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
19135         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
19136         UD chains.
19137         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
19138         analysed.
19139         (iv_number_of_iterations): Use new interface to iv analysis.
19140         * loop-unroll.c: Do not include varray.h.
19141         (analyze_iv_to_split_insn): Use new interface to iv
19142         analysis.
19143         * loop-unswitch.c (may_unswitch_on): Ditto.
19144         * df.c (df_bitmaps_free): Only work for bbs for that structures are
19145         allocated.
19146         (df_bb_modify): Realloc tables to the new index.
19147         (df_find_use): New function.
19148         * df.h (df_find_use): Declare.
19149         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
19150         outmode.
19151         * cfgloop.h (struct rtx_iv): Remove analysed field.
19152         (iv_get_reaching_def): Removed.
19153         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
19154         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
19155         (loop-iv.o): Add df.h and hashtab.h dependency.
19156         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
19157
19158 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
19159
19160         PR target/25668
19161         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
19162         Double TFmode.
19163         (__floatundisf, __floatundidf): Likewise.
19164         * libgcc2.h (IS_IBM_EXTENDED): Define.
19165
19166 2006-01-19  DJ Delorie  <dj@redhat.com>
19167
19168         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
19169
19170 2006-01-19  Paul Brook  <paul@codesourcery.com>
19171
19172         * config/arm/arm.c (arm_compute_func_type): Treat all functions
19173         as nothrow when unwinding tables are disabled.
19174
19175 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19176
19177         PR testsuite/25171
19178         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
19179         of bit-field" when in system header.
19180
19181 2006-01-19  DJ Delorie  <dj@redhat.com>
19182
19183         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
19184         the 16 bit shift limit of the m16c.
19185
19186 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
19187
19188         PR target/22099
19189         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
19190         * config/i386/i386.c (output_set_got): Output the label if we have one
19191         for the TARGET_DEEP_BRANCH_PREDICTION case.
19192
19193 2006-01-19  Jan Hubicka  <jh@suse.cz>
19194             H.J. Lu  <hongjiu.lu@intel.com>
19195             Evandro Menezes <evandro.menezes@amd.com>
19196
19197         * invoke.texi (generic): Document
19198         (i686) Update.
19199         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
19200         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
19201         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
19202         (x86_use_incdec, x86_pad_returns): New variables
19203         (TARGET_CPU_DEFAULT_generic): New constant
19204         (TARGET_CPU_DEFAULT_NAMES): Add generic.
19205         (enum processor_type): Add generic32 and generic64.
19206         * i386.md (cpu attribute): Add generic32/generic64
19207         (movhi splitter): Behave sanely when both partial_reg_dependency and
19208         partial_reg_stall are set.
19209         (K8 splitters): Enable for generic as well.
19210         * predicates.md (incdec_operand): Use TARGET_INCDEC
19211         (aligned_operand): Avoid memory mismatch stalls.
19212         * athlon.md: Enable for generic64, new patterns for 128bit moves.
19213         * ppro.md: Enable for generic32
19214         * i386.c (generic64_cost, generic32_cost): New.
19215         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
19216         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
19217         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
19218         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
19219         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
19220         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
19221         x86_partial_reg_dependency, x86_memory_mismatch_stall,
19222         x86_accumulate_outgoing_args, x86_prologue_using_move,
19223         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
19224         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
19225         Enable for generic.
19226         (x86_use_incdec, x86_pad_returns): New.
19227         (override_options): Add generic32 and generic64, translate "generic"
19228         to generic32/generic64 and "i686" to "generic32", refuse
19229         "generic32"/"generic64" as arch target.
19230         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
19231         (ix86_reorg): Honor PAD_RETURNS.
19232
19233 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
19234
19235         * tree-pretty-print.c (dump_generic_node): Handle
19236         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
19237         * cgraph.c (cgraph_expand_queue): Rename from
19238         cgraph_analyze_queue.  Update all users.
19239         * cgraphunit.c (cgraph_assemble_pending_functions): Process
19240         cgraph_expand_queue.
19241         (cgraph_expand_all_functions): Likewise.
19242         (cgraph_finalize_pending_functions): Remove.  Update callers.
19243
19244         * tree.h (OMP_DIRECTIVE_P): Define.
19245         (OMP_PARALLEL_FN): Define.
19246         (OMP_PARALLEL_DATA_ARG): Define.
19247         (OMP_SECTIONS_SECTIONS): Define.
19248         * tree-pass.h (pass_expand_omp): Declare.
19249         * omp-low.c (struct omp_region): Declare.
19250         (struct omp_context): Remove fields 'parallel_type',
19251         'parallel_start_ix' and 'parallel_start_additional_args'.
19252         Update all users.
19253         (struct omp_for_data): Rename from struct expand_omp_for_data.
19254         (omp_regions): New static variable.
19255         (root_omp_region): New static variable.
19256         (find_omp_clause): Make static.
19257         (is_in_combined_parallel_ctx): Remove.
19258         (is_combined_parallel): New.
19259         (extract_omp_for_data): Move earlier in the file.
19260         (workshare_safe_to_combine_p): New.
19261         (get_ws_args_for): New.
19262         (determine_parallel_type): Move earlier in the file.
19263         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
19264         child function.
19265         (omp_copy_decl): Likewise.
19266         (create_omp_child_function): Likewise.
19267         (lookup_omp_region): New.
19268         (dump_omp_region): New.
19269         (debug_omp_region): New.
19270         (debug_all_omp_regions): New.
19271         (new_omp_region): New.
19272         (scan_omp_parallel): If parallel_nesting_level > 1, the
19273         directive is nested within another parallel directive.
19274         Set OMP_PARALLEL_FN.
19275         (scan_omp_for): Do not try to handle combined parallel+for
19276         cases.
19277         Remove FIXME comment.
19278         (scan_omp_nested): Remove.
19279         (scan_omp_1): Do not call scan_omp_nested when
19280         parallel_nesting_level is > 1.
19281         Do not change the DECL_CONTEXT of local variables found.
19282         (lookup_decl_in_outer_ctx): New.
19283         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
19284         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
19285         (lower_reduction_clauses): Rename from expand_reduction_clauses.
19286         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
19287         If CTX is nested, lookup VAR in the outer context when
19288         building copy assignment.
19289         (lower_send_clauses): Rename from expand_send_clauses.
19290         If CTX is nested, lookup VAR in the outer context when
19291         building copy assignments.
19292         (lower_send_shared_vars): Rename from expand_send_shared_vars.
19293         If CTX is nested, lookup VAR in the outer context when
19294         building copy assignments.
19295         (expand_parallel_call): Rename from build_parallel_call.
19296         Handle combined parallel+workshare cases.
19297         Re-implement to emit code into the CFG.
19298         (list2chain): New.
19299         (expand_omp_parallel): Re-implement to emit code into the CFG.
19300         Call move_sese_region_to_fn to outline the sub-graph
19301         containing the parallel region.
19302         (expand_omp_for_1): Remove.
19303         (expand_omp_for_generic): Re-implement to emit code into the
19304         CFG.
19305         (expand_omp_for_static_nochunk): Likewise.
19306         (expand_omp_for_static_chunk): Likewise.
19307         (expand_omp_for): Likewise.
19308         (expand_omp_sections): Likewise.
19309         (remove_exit_barriers): New.
19310         (expand_omp_synch): New.
19311         (expand_omp): New.
19312         (build_omp_regions_1): New.
19313         (build_omp_regions): New.
19314         (execute_expand_omp): New.
19315         (gate_expand_omp): New.
19316         (pass_expand_omp): Define.
19317         (lower_omp_sections): Rename from expand_omp_sections.
19318         Set OMP_SECTIONS_SECTIONS.
19319         (lower_omp_single_simple): Rename from expand_omp_single_simple.
19320         (lower_omp_single_copy): Rename from expand_omp_single_copy.
19321         (lower_omp_single): Rename from expand_omp_simple.
19322         (lower_omp_master): Rename from expand_omp_master.
19323         (lower_omp_ordered): Rename from expand_omp_ordered.
19324         (lower_omp_critical): Rename from expand_omp_critical.
19325         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
19326         (lower_omp_for): Re-implement.
19327         (lower_omp_parallel): Re-implement.
19328         (lower_regimplify): Rename from expand_regimplify.
19329         (lower_omp_1): Rename from expand_omp_1.
19330         If there are syntax errors in the program, replace every
19331         OpenMP directive with NOP.
19332         Call lower_omp_* instead of expand_omp_*.
19333         (lower_omp): Rename from expand_omp.
19334
19335         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
19336         * tree-gimple.h (enum omp_parallel_type): Remove.
19337         (gimple_boolify): Declare extern.
19338         (find_omp_clause, determine_parallel_type): Remove.
19339
19340         * gimple-low.c (lower_omp_directive): New.
19341         (lower_stmt): Call it.
19342         (record_vars_into): Move from ...
19343         (record_vars): ... here.
19344         Call record_vars_into with current_function_decl.
19345
19346         * gimplify.c (struct gimplify_ctx): Remove fields
19347         combined_pre_p and combined_ctxp.  Update users.
19348         (get_formal_tmp_var): Add documentation.
19349         (gimple_boolify): Make extern.
19350         (gimplify_expr_in_ctx): Remove.  Update callers.
19351         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
19352         will always be a BIND_EXPR.
19353         (gimplify_expr): Handle OMP_RETURN_EXPR.
19354         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
19355         (OMP_PARALLEL): Add 3 operands.
19356         (OMP_SECTIONS): Add 1 operand.
19357         (OMP_RETURN_EXPR): Define.
19358
19359         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
19360         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
19361         * tree-iterator.c (alloc_stmt_list): Assert that we are not
19362         creating a circular free list.
19363         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
19364
19365         * tree-flow.h (move_sese_region_to_fn): Declare.
19366         (record_vars_into): Declare.
19367         * tree-cfg.c (make_omp_sections_edges): New.
19368         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
19369         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
19370         OMP_SECTIONS and OMP_SECTION.
19371         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
19372         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
19373         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
19374         (gather_blocks_in_sese_region): New.
19375         (struct move_stmt_d): Declare.
19376         (move_stmt_r): New.
19377         (move_block_to_fn): New.
19378         (move_sese_region_to_fn): New.
19379
19380         * passes.c (init_optimization_passes): Schedule
19381         pass_expand_omp after pass_init_datastructures.
19382
19383         * tree-ssa-operands.c (get_expr_operands): Handle
19384         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
19385         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
19386
19387 2006-01-19  Jeff Law  <law@redhat.com>
19388
19389         * tree-vrp.c (extract_range_from_assert): Refine the result range
19390         if the variable referenced by the ASSERT_EXPR has a range and
19391         either the tentative result range or the previous range is a
19392         VR_ANTI_RANGE.
19393
19394 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
19395
19396         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
19397
19398 2006-01-19  Jan Hubicka  <jh@suse.cz>
19399
19400         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
19401
19402 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
19403
19404         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
19405         (expand_compound_operation, expand_field_assignment): Fail if the
19406         bit lengths of an extract operation are out of range.
19407         (make_extraction): Compute wanted_inner_mode based on the position
19408         and length of the extraction.  Make it extraction_mode for non-constant
19409         positions, and do not modify offset in that case.  When generating a
19410         new MEM, use a mode that can hold the extraction while keeping correct
19411         alignment.  Remove code that supported MEMs wrapped by USEs.
19412         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
19413
19414 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
19415
19416         * config/s390/s390.md ("Y", "y"): New mode attribute.
19417         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
19418         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
19419         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
19420         "*addsi3_imm_cc", "*addsi3_carry1_cc",
19421         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
19422         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
19423         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
19424         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
19425         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
19426         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
19427         "addsi3", "subsi3"): Insn patterns removed.
19428         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
19429         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
19430         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
19431         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
19432         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
19433         "*sub<mode>3_cconly2"): New insn patterns.
19434         ("addsi3", "subsi3"): New expanders.
19435
19436 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
19437
19438         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
19439         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
19440         existing STMT_VINFO_VECTYPE if available.
19441         (vect_mark_relevant): Add special handling for stmts that are
19442         marked as STMT_VINFO_IN_PATTERN_P.
19443         (vect_analyze_loop): Call vect_pattern_recog.
19444         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
19445         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
19446         stmt_info.
19447         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
19448         (vect_recog_func_ptr): New function-pointer type.
19449         * tree-vect-patterns.c: New file.
19450         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
19451         (vect_recog_dot_prod_pattern, vect_pattern_recog):
19452         (vect_pattern_recog_1): New functions.
19453         (vect_pattern_recog_funcs): New array of function pointers.
19454
19455         * tree-vectorizer.h (ternary_op): New enum value.
19456         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
19457         declaration. Revised documentation. Removed redundant dump prints.
19458         Removed redundant argument. Added support for reduction patterns.
19459         (vectorizable_reduction): Added support for reduction patterns.
19460         (vect_transform_stmt): Added support for patterns.
19461
19462         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
19463         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
19464         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
19465         (expand_widen_pattern_expr): New function.
19466         (init_optabs): Initialize new optabs udot_prod_optab,
19467         sdot_prod_optab.
19468         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
19469         (sdot_prod_optab, udot_prod_optab): Define new optabs.
19470         (expand_widen_pattern_expr): New function declaration.
19471         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
19472         tree-codes.
19473         * tree-inline.c (estimate_num_insns_1): Added cases for new
19474         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
19475         * tree-pretty-print.c (dump_generic_node): Likewise.
19476         (op_prio): Likewise.
19477         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
19478         * tree-ssa-operands.c (get_expr_operands): Added case for
19479         DOT_PROD_EXPR.
19480         * tree-vect-patterns.c (widened_name_p): New function.
19481         (vect_recog_dot_prod_pattern): Added function implementation.
19482         * tree-vect-transform.c (get_initial_def_for_reduction): Added
19483         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
19484         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
19485         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
19486
19487         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
19488         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
19489         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
19490         (init_optabs): Initialize new optabs widen_ssum_optab,
19491         widen_usum_optab.
19492         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
19493         (widen_ssum_optab, widen_usum_optab): Define new optabs.
19494         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
19495         use instead of type of def.
19496         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
19497         function implementation.
19498         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
19499         widen_ssumv8hi): New.
19500
19501         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
19502         patterns.
19503
19504 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
19505
19506         PR c/25805
19507         * c-decl.c (add_flexible_array_elts_to_size): New function.
19508         (finish_decl): Use it.
19509
19510 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
19511
19512         * diagnostic.h: Include options.h.
19513         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
19514         dependancies for diagnostic.h.
19515         * Makefile.in (DIAGNOSTIC_H): Add options.h.
19516
19517 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
19518
19519         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
19520         (ssa_ro_call_cache_valid): Ditto.
19521         * tree-ssa-alias.c (sort_tags_by_id): New function.
19522         (init_transitive_clobber_worklist): Ditto.
19523         (add_to_worklist): Ditto.
19524         (mark_aliases_call_clobbered): Ditto.
19525         (compute_tag_properties): Ditto.
19526         (set_initial_properties): Ditto.
19527         (compute_call_clobbered): Ditto.
19528         (compute_may_aliases):  Call compute_call_clobbered and grouping.
19529         (compute_flow_sensitive_aliasing): Remove clobbering related code.
19530         (compute_flow_insensitive_aliasing): Grouping now happens in our
19531         caller.
19532         (setup_pointers_and_addressables): Remove clobbering related code.
19533         (add_may_alias): Ditto.
19534         (replace_may_alias): Ditto.
19535         (get_nmt_for): Ditto.
19536         (create_global_var):
19537         (is_escape_site): Return an escape_type enumeration.
19538         * tree-flow-inline.h (is_call_clobbered): Global var does not
19539         imply call clobbered.
19540         (mark_call_clobbered): Take a reason for marking this. Remove
19541         marking of globalness, and cache invalidation.
19542         (clear_call_clobbered): Remove cache invalidation code.
19543         * tree-dfa.c (dump_variable): If details is on, dump the reason
19544         for escaping.
19545         * tree-outof-ssa.c (create_temp): Copy escape mask from original
19546         variable.
19547         * tree-flow.h (struct ptr_info_def): Add escape mask member.
19548         (struct var_ann_d): Ditto.
19549         (enum escape_type): New.
19550         (mark_call_clobbered): Adjust prototype.
19551         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
19552         are never call clobbered.
19553         Record reasons for escaping.
19554         * tree-ssa-structalias.h (is_escape_site): Update prototype.
19555         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
19556         (ssa_ro_call_cache_valid): Ditto.
19557         (clobbered_v_may_defs): Ditto.
19558         (clobbered_vuses): Ditto.
19559         (ro_call_vuses): Ditto.
19560         (clobber_stats): New.
19561         (init_ssa_operands): Zero out clobber stats.
19562         (fini_ssa_operands): Print out clobber stats.
19563         (get_call_expr_operands): Pass callee fndecl to
19564         add_call_read_ops).
19565         (add_call_clobber_ops): Remove use of cache.
19566         Add use of PURE_CONST information.
19567         (add_call_read_ops): Remove use of cache.
19568         Add use of static not_read information.
19569
19570 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
19571
19572         Introduce TLS descriptors for i386 and x86_64.
19573         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
19574         (TARGET_ANY_GNU_TLS): New macro.
19575         (enum tls_dialect): Added TLS_DIALECT_GNU2.
19576         (struct machine_function): Add tls_descriptor_call_expanded_p.
19577         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
19578         (ix86_current_function_calls_tls_descriptor): Likewise.
19579         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
19580         (override_options): Introduce gnu2 tls dialect.
19581         (ix86_frame_pointer_required): Functions containing TLSCALLs are
19582         not leaves.
19583         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
19584         Likewise.
19585         (legitimize_tls_address): Adjust logic for GNU2 TLS.
19586         (ix86_init_machine_status): Initialize new field.
19587         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
19588         (ix86_tls_module_base): New.
19589         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
19590         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
19591         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
19592         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
19593         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
19594         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
19595         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
19596         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
19597         * config/i386/predicates.md (tls_modbase_operand): New.
19598         (tp_or_register_operand): New.
19599
19600 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
19601
19602         * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
19603         (look_for_address_of): Ditto.
19604         (ipa_init): Walk the function decls.
19605         (static_execute): Don't set readonly on FUNCTION_DECL's.
19606
19607 2006-01-18  Roger Sayle  <roger@eyesopen.com>
19608
19609         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
19610         for shifts where the source and destination registers are different.
19611
19612 2006-01-18  Paul Brook  <paul@codesourcery.com>
19613
19614         Merge from csl-arm-branch.
19615         2005-03-14  Julian Brown  <julian@codesourcery.com>
19616         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
19617         (aeabi_llsl): Likewise.
19618         (ashrdi3): Likewise.
19619         (aeabi_lasr): Likewise.
19620         (lshrdi3): Likewise.
19621         (aeabi_llsr): Likewise.
19622         2005-03-10  Julian Brown  <julian@codesourcery.com>
19623         * config.gcc: Disable shared libgcc for SymbianOS.
19624         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
19625
19626 2006-01-18  DJ Delorie  <dj@redhat.com>
19627
19628         * c-pragma.c (handle_pragma_diagnostic): New.
19629         (init_pragma): Register it.
19630         * doc/extend.texi: Document it.
19631
19632         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
19633         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
19634         (diagnostic_context): Add classify_diagnostic[].
19635         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
19636         as errors if they're overridden to DK_WARNING.
19637         (diagnostic_initialize): Initialize classify_diagnostic[].
19638         (diagnostic_set_kind_override): New.
19639         (diagnostic_report_diagnostic): Check for kind changes.
19640         * opts.c (common_handle_option): Take lang_mask.  Update callers.
19641         Handle OPT_Werror_.
19642         * common.opt (Werror=): New.
19643         * doc/invoke.texi: Document -Werror=*
19644
19645 2006-01-18  Jeff Law  <law@redhat.com>
19646
19647         * tree-vrp.c (test_for_singularity): Correct test for new
19648         min limit.  Use operand_equal_p rather than pointer equality
19649         for testing if new min/max values are equal.
19650
19651         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
19652         using range information until after propagation and folding.
19653
19654 2006-01-18  Richard Henderson  <rth@redhat.com>
19655             Aldy Hernandez  <aldyh@redhat.com>
19656             Jakub Jelinek  <jakub@redhat.com>
19657             Diego Novillo  <dnovillo@redhat.com>
19658
19659         * omp-low.c: New file.
19660         * c-omp.c: New file.
19661
19662 2006-01-18  Richard Henderson  <rth@redhat.com>
19663             Jakub Jelinek  <jakub@redhat.com>
19664             Diego Novillo  <dnovillo@redhat.com>
19665
19666         * doc/invoke.texi: Document -fopenmp.
19667         * tree-dump.h (debug_function): Declare.
19668         * hooks.c (hook_bool_tree_bool_false): New function.
19669         (hook_tree_tree_null): Remove.
19670         (hook_tree_tree_tree_null): New.
19671         * hooks.h: Update to match.
19672         * tree-pretty-print.c (debug_tree_chain): New.
19673         (print_generic_expr): Handle TDF_CHAIN.
19674         (dump_generic_node): Handle BLOCK.
19675         Do not abort with incomplete SWITCH_EXPRs.
19676         Do not dump body of an OpenMP directive if TDF_SLIM is given.
19677         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
19678         print space after directive name.
19679         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
19680         Handle OMP_MASTER and OMP_ORDERED.
19681         Handle printing of OMP_BODY just in one place, goto
19682         dump_omp_body in the rest of OMP_* nodes that have
19683         OMP_BODY.
19684         Don't handle clause nodes here.  Update omp statements to
19685         use dump_omp_clauses.
19686         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
19687         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
19688         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
19689         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
19690         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
19691         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
19692         Adjust output for GOMP_PARALLEL.
19693         (dump_omp_clauses): New.
19694         (print_declaration): Dump DECL_VALUE_EXPR.
19695         (op_symbol_1): Split out of op_symbol.
19696         (dumping_stmts): Remove.  Update all users.
19697         * cgraph.c (cgraph_analyze_queue): New.
19698         (cgraph_add_new_function): New.
19699         * cgraph.h (cgraph_analyze_queue): Declare.
19700         (cgraph_add_new_function): Declare.
19701         (cgraph_lower_function): Remove.
19702         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
19703         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
19704         and TYPE_P nodes in its default clause.
19705         (empty_body_p): New.
19706         (tree_range_check_failed): New.
19707         (build5_stat): New.
19708         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
19709         OMP_CLAUSE_REDUCTION_MERGE,
19710         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
19711         OMP_CLAUSE_PRIVATE_DEBUG,
19712         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
19713         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
19714         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
19715         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
19716         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
19717         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
19718         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
19719         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
19720         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
19721         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
19722         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
19723         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
19724         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
19725         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
19726         (TREE_RANGE_CHECK): New.
19727         (empty_body_p): Declare.
19728         (enum omp_clause_default_kind): New.
19729         (build_string_literal): Declare.
19730         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
19731         (build5_stat, build5): Declare.
19732         * tree-pass.h (TDF_CHAIN): Define.
19733         * tree-pass.h (PROP_gimple_lomp): Define.
19734         (pass_lower_omp): Declare.
19735         * diagnostic.h (debug_tree_chain): Declare.
19736         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
19737         mode_for_size.
19738         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
19739         * builtins.c (build_string_literal): Make extern.
19740         * gcc.c (include_spec_function): New.
19741         (static_spec_functions): Add it.
19742         (main): Move load of libgomp.spec ...
19743         (LINK_COMMAND_SPEC): ... here.
19744         (link_gomp_spec): New.
19745         (static_specs): Include it.
19746         (LINK_COMMAND_SPEC): Add link_gomp.
19747         (GOMP_SELF_SPECS): New.
19748         (driver_self_specs): Include it.
19749         (switch_matches): Don't mark inline.
19750         (main): Load libgomp.spec.
19751         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
19752         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
19753         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
19754         * tree-gimple.h (enum omp_parallel): Declare.
19755         (determine_parallel_type): Declare.
19756         (omp_firstprivatize_variable): Declare.
19757         (omp_reduction_init): Declare.
19758         (diagnose_omp_structured_block_errors): Declare.
19759         (struct walk_stmt_info): Add want_return_expr.
19760         (struct walk_stmt_info): Add want_bind_expr, want_locations.
19761         (find_omp_clause): Declare.
19762         (insert_field_into_struct): Declare.
19763         (struct walk_stmt_info): Move from tree-nested.c
19764         (walk_stmts): Declare.
19765         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
19766         to 200505.
19767         * cgraphunit.c (cgraph_lower_function): Make static.
19768         (cgraph_finalize_pending_functions): New.
19769         (cgraph_finalize_function): Call it.
19770         (cgraph_finalize_compilation_unit): Likewise.
19771         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
19772         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
19773         (BT_FN_UINT_UINT): New.
19774         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
19775         DEF_FUNCTION_TYPE_VAR_4): Document.
19776         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
19777         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
19778         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
19779         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
19780         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
19781         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
19782         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
19783         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
19784         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
19785         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
19786         into separate files.
19787         (DEF_GOMP_BUILTIN): New.
19788         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
19789         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
19790         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
19791         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
19792         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
19793         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
19794         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
19795         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
19796         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
19797         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
19798         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
19799         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
19800         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
19801         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
19802         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
19803         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
19804         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
19805         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
19806         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
19807         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
19808         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
19809         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
19810         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
19811         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
19812         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
19813         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
19814         * sync-builtins.def: New file, moved from builtins.def.
19815         * omp-builtins.def: New file, moved from builtins.def.
19816         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
19817         * gimple-low.c (lower_function_body): Clear data.
19818         (lower_stmt): Do not handle COMPOUND_EXPR.
19819         Remove call to print_node_brief.
19820         * c-tree.h (c_finish_omp_clauses): New prototype.
19821         (C_DECL_THREADPRIVATE_P): Define.
19822         (lookup_name_no_remap, c_omp_remap_private): Remove
19823         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
19824         (check_for_loop_decls): Update decl.
19825         (lookup_name_no_remap, c_omp_remap_private): Declare.
19826         (build_indirect_ref, build_modify_expr, pushdecl,
19827         pushdecl_top_level): Move to c-common.h.
19828         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
19829         before the switch, but just in the 2 places that need it.
19830         * c-decl.c (diagnose_mismatched_decls): Do not check for
19831         mismatched thread-local attributes when OLDDECL is marked
19832         threadprivate and NEWDECL has no thread-local attributes.
19833         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
19834         (c_gimple_diagnostics_recursively): Rename from
19835         c_warn_unused_result_recursively.  Invoke
19836         diagnose_omp_structured_block_errors.
19837         (check_for_loop_decls): Return a singular decl found.
19838         * langhooks.c (lhd_omp_predetermined_sharing): Return
19839         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
19840         (lhd_omp_firstprivatize_type_sizes): New.
19841         (lhd_omp_assignment): New.
19842         (lhd_omp_predetermined_sharing): New.
19843         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
19844         (struct lang_hooks_for_types): Add
19845         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
19846         omp_predetermined_sharing, omp_disregard_value_expr,
19847         omp_private_debug_clause, omp_clause_default_ctor,
19848         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
19849         (c_finish_omp_clauses): New.
19850         (c_finish_bc_stmt): Diagnose break within omp for.
19851         (c_begin_omp_parallel, c_finish_omp_parallel): New.
19852         (build_unary_op): Return error_mark after reporting
19853         a readonly_error.
19854         (build_modify_expr): Likewise.
19855         * gimplify.c: Include optabs.h and pointer-set.h.
19856         (enum gimplify_omp_var_data): Declare.
19857         (struct gimplify_omp_ctx): Declare.
19858         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
19859         and combined_ctxp.
19860         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
19861         (push_gimplify_context, pop_gimplify_context): Allow nesting.
19862         (splay_tree_compare_decl_uid): New.
19863         (new_omp_context): New.
19864         (delete_omp_context): New.
19865         (gimple_add_tmp_var): Call omp_add_variable.
19866         (gimplify_bind_expr): Likewise.
19867         (gimplify_var_or_parm_decl): If omp_notice_variable returned
19868         true, disregard DECL_VALUE_EXPR on the decl if any.
19869         (gimplify_expr_in_ctx): New.
19870         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
19871         omp_add_variable, omp_notice_variable, omp_is_private
19872         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
19873         gimplify_adjust_omp_clauses, gimplify_omp_parallel
19874         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
19875         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
19876         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
19877         gimplify_omp_atomic): New.
19878         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
19879         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
19880         OMP_CRITICAL and OMP_ATOMIC.
19881         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
19882         * c-pragma.h (enum pragma_kind): Add
19883         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
19884         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
19885         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
19886         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
19887         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
19888         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
19889         PRAGMA_OMP_THREADPRIVATE.
19890         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
19891         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
19892         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
19893         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
19894         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
19895         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
19896         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
19897         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
19898         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
19899         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
19900         * tree-ssa-dce.c (find_control_dependence): Do not assume that
19901         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
19902         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
19903         OpenMP directives.
19904         (struct nesting_info): Add field_map,
19905         suppress_expansion, debug_var_chain.
19906         (create_nesting_tree): Initialize them.
19907         (lookup_field_for_decl): Use field_map.
19908         (get_nonlocal_debug_decl, get_local_debug_decl): New.
19909         (convert_local_omp_clauses): New.
19910         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
19911         (walk_body): Split out of walk_function.
19912         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
19913         (convert_nonlocal_reference): Handle omp statements.
19914         (convert_local_reference): Likewise.
19915         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
19916         (unnest_nesting_tree): New.
19917         (lower_nested_functions): Call it.
19918         (insert_field_into_struct): Make extern.
19919         (struct walk_stmt_info): Move to tree-gimple.h.
19920         (walk_stmts): Make extern.
19921         * omp-builtins.def: New file.
19922         * tree-iterator.c (expr_only): Clarify comment.
19923         * c-common.h (pushdecl_top_level, pushdecl,
19924         build_modify_expr, build_indirect_ref,
19925         c_finish_omp_master, c_finish_omp_critical,
19926         c_finish_omp_ordered, c_finish_omp_barrier,
19927         c_finish_omp_atomic, c_finish_omp_flush,
19928         c_finish_omp_for, c_split_parallel_clauses,
19929         omp_clause_default_kind, c_omp_sharing_predetermined,
19930         c_omp_remap_decl): Declare.
19931         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
19932         (OBJS-common): Add omp-low.o.
19933         (c-omp.o, omp-low.o): Add.
19934         (gimplify.o): Add dependency on $(OPTABS_H).
19935         (GTFILES): Add omp-low.c.
19936         (gt-stringpool.h): Add.
19937         * tree-cfg.c (set_bb_for_stmt): Do not update the
19938         block-to-labels map if we are currently expanding to RTL.
19939         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
19940         checks.
19941         Handle IDENTIFIER_NODE.
19942         (tree_verify_flow_info): Do not ICE when emitting error
19943         messages about invalid labels.
19944         (dump_function_to_file): Reset CFUN before emitting the body
19945         of the function.
19946         (debug_function): New.
19947         * passes.c (init_optimization_passes): Schedule
19948         pass_lower_omp.
19949         * langhooks-def.h (lhd_omp_predetermined_sharing,
19950         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
19951         Declare.
19952         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
19953         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
19954         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
19955         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
19956         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
19957         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
19958         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
19959         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
19960         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
19961         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
19962         (LANG_HOOK_DECLS): Use them.
19963
19964 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
19965             Richard Henderson  <rth@redhat.com>
19966             Jakub Jelinek  <jakub@redhat.com>
19967             Diego Novillo  <dnovillo@redhat.com>
19968
19969         * c-parser.c (pragma_omp_clause): Define.
19970         (c_parser_declaration_or_fndef): Document OpenMP syntax.
19971         (c_parser_compound_statement): Likewise.
19972         (c_parser_statement): Likewise.
19973         (c_parser_pragma): Handle omp pragmas.
19974         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
19975         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
19976         (c_parser_omp_clause_name, check_no_duplicate_clause,
19977         c_parser_omp_variable_list,
19978         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
19979         c_parser_omp_clause_copyprivate,
19980         c_parser_omp_clause_default,
19981         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
19982         c_parser_omp_clause_lastprivate,
19983         c_parser_omp_clause_nowait,
19984         c_parser_omp_clause_num_threads,
19985         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
19986         c_parser_omp_clause_reduction,
19987         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
19988         c_parser_omp_all_clauses, c_parser_omp_structured_block,
19989         c_parser_omp_atomic, c_parser_omp_barrier,
19990         c_parser_omp_critical, c_parser_omp_flush,
19991         c_parser_omp_for_loop, c_parser_omp_for,
19992         c_parser_omp_master, c_parser_omp_ordered,
19993         c_parser_omp_sections_scope, c_parser_omp_sections,
19994         c_parser_omp_parallel, c_parser_omp_single,
19995         c_parser_omp_construct, c_parser_omp_threadprivate): New.
19996         * c-pragma.c (init_pragma): Do omp pragma registration here.
19997         * c.opt (fopenmp): New flag.
19998
19999 2006-01-18  Eric Christopher  <echristo@apple.com>
20000
20001         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
20002         * config/darwin.h (GOMP_SELF_SPECS): Define.
20003
20004 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
20005
20006         * rtl.h: Remove the prototype for reg_alloc.
20007
20008 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20009
20010         PR target/25731
20011         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
20012         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
20013         sjlj and dwarf2 exception handling.
20014         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
20015         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
20016         * pa/pa.c (function_value): Treat complex and vector types as
20017         aggregates.
20018         (function_arg): Likewise.  Only pass scalar floats in the floating
20019         point argument registers.
20020         * pa/t-slibgcc-dwarf-ver: New file.
20021         * pa/t-slibgcc-sjlj-ver: New file.
20022         * pa/t-slibgcc-elf-ver: Delete file.
20023
20024 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
20025
20026         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
20027         unlikely_test_section_p test.
20028
20029 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
20030
20031         * mode-switching.c (optimize_mode_switching): Make it static.
20032         * basic-block.h: Remove the prototype for
20033         optimize_mode_switching.
20034
20035         * modulo-sched.c (sms_schedule): Make it static.
20036         * rtl.h: Remove the prototype for sms_schedule.
20037
20038         * postreload-gcse.c (gcse_after_reload_main): Make it static.
20039         * rtl.h: Remove the prototype for gcse_after_reload_main.
20040
20041         * reg-stack.c (reg_to_stack): Make it static.
20042         * rtl.h: Remove the prototype for reg_to_stack.
20043
20044         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
20045         Make them static.
20046         * rtl.h: Remove the prototypes for regrename_optimize and
20047         copyprop_hardreg_forward.
20048
20049 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
20050
20051         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
20052         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
20053         Test against the appropriate null constant for the mode.
20054         If 'fixup_overlap' is true, swap the operands if they overlap.
20055         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
20056         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
20057         alpha_split_tmode_pair and adjust for above change.
20058         * config/alpha/alpha.md (movtf_internal): Adjust call to
20059         alpha_split_tfmode_pair and rely on it to swap the operands.
20060         (movti_internal): New insn and post-reload splitter.
20061         (movti): New expander.
20062
20063 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
20064
20065         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
20066         operands.
20067
20068 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
20069
20070         * rtlanal.c (global_reg_mentioned_p_1,
20071         global_reg_mentioned_p): Remove.
20072         * rtl.h: Remove the prototype for global_reg_mentioned_p.
20073
20074         * flow.c (initialize_uninitialized_subregs): Make it static.
20075         * rtl.h: Remove the prototype for
20076         initialize_uninitialized_subregs.
20077
20078         * function.c (instantiate_virtual_regs): Make it static.
20079         * function.h: Remove the prototype for
20080         instantiate_virtual_regs.
20081
20082         * regmove.c (regmove_optimize, combine_stack_adjustments):
20083         Make them static.
20084         * rtl.h: Remove the prototypes for regmove_optimize and
20085         combine_stack_adjustments.
20086
20087 2006-01-17  Roger Sayle  <roger@eyesopen.com>
20088
20089         * config/i386/i386.c (COSTS_N_BYTES): New macro.
20090         (size_cost): Encode costs in bytes so that a reg-reg addition is
20091         equivalent to COSTS_N_INSNS(1).
20092         (override_options): Use the size_cost.branch_cost as the default
20093         ix86_branch_cost when optimizing for size.
20094
20095 2006-01-18  Ben Elliston  <bje@au.ibm.com>
20096
20097         * Makefile.in (D32PBIT_FUNCS): New.
20098         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
20099         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
20100         D64PBIT_FUNCS and D128PBIT_FUNCS.
20101         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
20102         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
20103         D128PBIT are set.
20104         (decnumber_dep): Define.
20105         * doc/libgcc.texi (Decimal float library routines): New node.
20106         * config/dfp-bit.h, config/dfp-bit.c: New files.
20107
20108 2006-01-18  Ben Elliston  <bje@au.ibm.com>
20109
20110         * expr.c (emit_move_change_mode): Always adjust addresses, not
20111         just during reload.  Copy replacements only during reload.
20112         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
20113         emit_move_via_integer.
20114
20115 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
20116
20117         * Makefile.in (check-%, check-consistency): Use $${srcdir}
20118         instead of $(srcdir) and ${srcdir}.
20119
20120 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
20121
20122         PR target/592
20123         PR middle-end/11135
20124         * arm.h (struct machine_function): Add pic_reg.
20125         * arm.c (arm_pic_register): Make unsigned.
20126         (arm_override_options): Only set arm_pic_register if
20127         TARGET_SINGLE_PIC_BASE.
20128         (use_return_insn): Only test for a pic register if it is fixed.
20129         (arm_compute_save_reg0_reg12_mask): Likewise.
20130         (thumb_compute_save_reg_mask): Likewise.
20131         (legitimate_pic_operand): Factor out some known invariants.
20132         (legitimize_pic_address): If we don't have a fixed pic register,
20133         then set up a pseudo in the function entry sequence.  Handle the
20134         pic base being in a pseudo.
20135         (arm_load_pic_register): Handle the pic register being in a pseudo.
20136         (arm_expand_prologue): Only set up the pic register if it is fixed.
20137         (thumb_expand_prologue): Likewise.
20138         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
20139         (pic_load_addr_based_insn): Likewise.
20140         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
20141         fixed.
20142
20143 2006-01-18  Ben Elliston  <bje@au.ibm.com>
20144
20145         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
20146         decimal float modes for all floating point registers.
20147
20148         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
20149         match_code "mem" with match_test "macho_lo_sum_memory_operand".
20150
20151 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
20152
20153         PR c/25682
20154         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
20155         even when the pointer is not NULL.
20156
20157 2006-01-16  Ian Lance Taylor  <ian@airs.com>
20158
20159         * common.opt (ftoplevel-reorder): New option.
20160         * cgraph.c (cgraph_asm_nodes): New global variable.
20161         (cgraph_asm_last_node): New static variable.
20162         (cgraph_order): New global variable.
20163         (cgraph_create_node): Set new order field.
20164         (cgraph_varpool_node): Likewise.
20165         (decide_is_variable_needed): Return true if not
20166         flag_toplevel_reorder.
20167         (cgraph_add_asm_node): New function.
20168         * cgraph.h (struct cgraph_node): Add order field.
20169         (struct cgraph_varpool_node): Add order field.
20170         (struct cgraph_asm_node): Define.
20171         (cgraph_asm_nodes, cgraph_order): Declare.
20172         (cgraph_add_asm_node): Declare.
20173         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
20174         function.
20175         (cgraph_varpool_assemble_pending_decls): Call it.
20176         (cgraph_output_pending_asms): New static function.
20177         (cgraph_finalize_compilation_unit): Call it.
20178         (struct cgraph_order_sort): Define.
20179         (cgraph_output_in_order): New static function.
20180         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
20181         !flag_toplevel_reorder case.
20182         * c-parser.c: Include "cgraph.h".
20183         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
20184         assemble_asm.
20185         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
20186         than -fno-unit-at-a-time.
20187         * doc/invoke.texi (Option Summary): Mention
20188         -fno-toplevel-reorder.
20189         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
20190         -funit-at-a-time documentation.
20191
20192 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
20193             Kazu Hirata  <kazu@codesourcery.com>
20194
20195         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
20196
20197 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
20198
20199         * Makefile.in (FUNCTION_H): New.  Use it instead of
20200         function.h throughout the file.
20201         * function.h: Include tree.h.
20202
20203 2006-01-17  Ben Elliston  <bje@au.ibm.com>
20204
20205         * recog.c: Separate some functions with whitespace.
20206
20207 2006-01-16  Richard Henderson  <rth@redhat.com>
20208
20209         Merge from gomp branch:
20210         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
20211         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
20212         and rename from struct inline_data.  Rename callee* to dst*;
20213         caller* to src*; add copy_decl hook, transform_call_graph_edges,
20214         transform_new_cfg, transform_return_to_modify, and
20215         transform_lang_insert_block flags; remove cloning_p, versioning_p,
20216         update_clones_p.
20217         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
20218         (copy_decl_for_dup): Remove.
20219         * tree-inline.c (struct inline_data): Move to header.
20220         (insert_decl_map): Export.
20221         (remap_decl): Update for member name changes.  Use copy_decl hook.
20222         Allow for replacement to be a non-decl.  Remove dead code.
20223         (remap_type_1): Check for existing mapping.
20224         (remap_type): Export.
20225         (remap_decls): Update for member name changes.
20226         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
20227         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
20228         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
20229         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
20230         (tree_function_versioning, build_duplicate_type): Likewise.
20231         (copy_body_r): Likewise.  Export.
20232         (copy_decl_for_dup): Split into ...
20233         (copy_decl_for_dup_finish, copy_decl_to_var,
20234         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
20235         (replace_ref_tree, inlining_p): Remove.
20236
20237 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
20238
20239         * ifcvt.c (if_convert): Make it static.
20240         * rtl.h: Remove the prototype for if_convert.
20241
20242         * local-alloc.c (local_alloc): Make it static.
20243         * rtl.h: Remove the prototype for local_alloc.
20244
20245         * loop.c (loop_optimize): Make it static.
20246         * cfgloop.h: Remove the prototype for loop_optimize.
20247         * rtl.h: Likewise.
20248
20249 2006-01-16  DJ Delorie  <dj@redhat.com>
20250
20251         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
20252         mems.
20253
20254 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20255
20256         * pa.md: Disparage copies between general and floating-point registers
20257         in 32-bit move patterns.
20258
20259 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
20260
20261         PR testsuite/25741
20262         * Makefile.in (check-%): Depend on site.exp instead of
20263         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
20264         directories.
20265
20266 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
20267
20268         * global.c (global_alloc): Make it static.
20269         * rtl.h: Remove the prototype for global_alloc.
20270
20271 2006-01-16  Richard Guenther  <rguenther@suse.de>
20272
20273         * tree-ssa-alias.c (struct used_part): Add write_only field.
20274         (get_or_create_used_part_for): Initialize it to true.
20275         (create_overlap_variables_for): Don't create structure variables
20276         for structures that only are written to.
20277         (find_used_portions): Handle MODIFY_EXPR to track whether a
20278         structure is only written to.
20279
20280 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
20281
20282         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
20283         static.
20284         * basic-block.h: Remove the prototype for
20285         partition_hot_cold_basic_blocks.
20286
20287 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
20288
20289         * cppspec.c (lang_specific_spec_functions): Remove.
20290         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
20291         * gcc.h (lang_specific_spec_functions): Remove.
20292         * gccspec.c (lang_specific_spec_functions): Remove.
20293
20294 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
20295
20296         * combine.c (record_value_for_reg): Invalidate registers
20297         if INSN is null.
20298         (record_dead_and_set_regs_1): Likewise, by passing them to
20299         record_value_for_reg.
20300         (record_dead_and_set_regs): Invalidate stores made by a
20301         call.  We do not combine across a call, but we still
20302         relied on equivalences.
20303
20304 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
20305
20306         * tree-vrp.c (extract_range_from_binary_expr): Cope with
20307         vrp_int_const_binop returning non-constant nodes.
20308
20309 2006-01-16  Paul Brook  <paul@codesourcery.com>
20310
20311         * config/m68k/m68k.c (output_move_const_into_data_reg):
20312         Output correct mnemonic for mvz and mvs.
20313
20314 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
20315
20316         * rtl-factoring.c: Add sequence abstraction algorithm.
20317         * cfgcleanup.c (outgoing_edges_match): Extra checks.
20318         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
20319         ABNORMAL edges.
20320         (block_has_preserve_label): New function.
20321         * common.opt: Register new pass.
20322         * Makefile.in: Ditto.
20323         * passes.c: Ditto.
20324         * timevar.def: Ditto.
20325         * tree-pass.h: Ditto.
20326         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
20327         * rtl.h (make_jump_insn_raw): Add forward decl.
20328         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
20329
20330 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
20331             Roger Sayle  <roger@eyesopen.com>
20332
20333         * fold-const.c (fold_minmax): New static function.
20334         (fold_binary) <MIN_EXPR>: Call it.
20335         <MAX_EXPR>: Likewise.
20336         * stor-layout.c (place_field): Use DECL_SIZE consistently
20337         in the computation of the new record size.
20338
20339 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
20340
20341         * cse.c (cse_condition_code_reg): Make it static.
20342         * rtl.h: Remove the prototype for cse_condition_code_reg.
20343
20344         * combine.c (combine_instructions): Make it static.
20345         * rtl.h: Remove the prototype for combine_instructions.
20346
20347 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20348
20349         PR target/25168
20350         * tree.c (get_file_function_name_long): Concatenate the first global
20351         object name with a string derived from the input filename of the object
20352         for type "F".
20353
20354 2006-01-16  Ben Elliston  <bje@au.ibm.com>
20355
20356         * config/i386/winnt-stubs.c: Update FSF address.
20357         * config/xtensa/ieee754-df.S: Ditto.
20358         * config/xtensa/ieee754-sf.S: Ditto.
20359
20360 2006-01-14  Ian Lance Taylor  <ian@airs.com>
20361
20362         * ifcvt.c (noce_init_if_info): New static function, broken out of
20363         noce_process_if_block.
20364         (noce_process_if_block): Call noce_init_if_info.
20365         (check_cond_move_block): New static function.
20366         (cond_move_process_if_block): New static function.
20367         (process_if_block): Call cond_move_process_if_block.
20368
20369 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
20370
20371         * cselib.c (hash_table): Rename to cselib_hash_table.
20372         (cselib_clear_table, discard_useless_values,
20373         remove_useless_values, cselib_lookup_mem, cselib_lookup,
20374         cselib_init, cselib_finish): Adjust uses of hash_table.
20375
20376 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
20377
20378         PR tree-optimization/25485
20379         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
20380         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
20381         is known to be false and true, respectively.
20382
20383 2006-01-14  Richard Guenther  <rguenther@suse.de>
20384
20385         PR tree-optimization/22548
20386         PR tree-optimization/22555
20387         PR tree-optimization/22501
20388         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
20389         * params.def (salias-max-array-elements): New parameter.
20390         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
20391         * doc/invoke.texi (salias-max-array-elements): Document.
20392         * tree-flow-inline.h (var_can_have_subvars): We also handle
20393         arrays now.
20394         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
20395         COMPONENT_REF.
20396         * tree-ssa-structalias.c (params.h): Include.
20397         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
20398         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
20399         (get_constraint_for): For ADDR_EXPR operating on something
20400         containing an ARRAY_REF, add all subvars to the solution.
20401         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
20402         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
20403         for creating MUST_DEFs.
20404         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
20405
20406 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
20407
20408         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
20409         functions.
20410         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
20411         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
20412         number_of_iterations_le): New functions.
20413         (number_of_iterations_special): Removed.
20414         (number_of_iterations_exit): Do not use number_of_iterations_special.
20415         * tree.c (unsigned_type_for): Always return integer type.
20416
20417 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
20418         Richard Guenther  <rguenther@suse.de>
20419
20420         PR rtl-optimization/24257
20421         * gcse.c (find_moveable_store): Only consider a store movable
20422         when the SET_SRC of the insn can be assigned to a register.
20423
20424 2006-01-14  Ian Lance Taylor  <ian@airs.com>
20425
20426         * tree.c (tree_not_class_check_failed): New function.
20427         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
20428         (tree_not_class_check_failed): Declare.
20429
20430 2006-01-13  Ian Lance Taylor  <ian@airs.com>
20431
20432         * reload1.c (do_output_reload): Add assertion rejecting a
20433         CALL_INSN.
20434
20435 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
20436
20437         * combine.c (struct reg_stat): Add new fields truncation_label and
20438         truncated_to_mode.
20439         (record_value_for_reg): Reset truncated_to_mode.
20440         (record_truncated_value): New function.
20441         (check_promoted_subreg): Call it.  Rename to check_conversions.
20442         (combine_instructions): Rename check_promoted_subreg to
20443         check_conversions.
20444         (reg_truncated_to_mode): New function.
20445         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
20446         (gen_lowpart_or_truncate): New function.
20447         (force_to_mode): Use it instead of gen_lowpart.
20448
20449 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
20450
20451         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
20452         VAR is a tag, not its type tag.
20453
20454 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
20455
20456         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
20457         alternatives to match style of other entries.
20458         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
20459
20460 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
20461
20462         PR tree-optimization/25771
20463         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
20464         SSA_NAMES.
20465
20466 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
20467
20468         PR tree-opt/24365
20469         * tree-inline.c (declare_return_variable): If the return variable
20470         was marked as a non gimple complex, set the return slot variable
20471         to be a non gimple comple variable.
20472
20473 2006-01-13  Richard Guenther  <rguenther@suse.de>
20474
20475         * builtins.c (expand_builtin_sincos): New function.
20476         (expand_builtin_mathfn_3): Remove dead code, sin and cos
20477         do not set errno.
20478         (expand_builtin): Expand sincos using expand_builtin_sincos.
20479
20480 2006-01-12  DJ Delorie  <dj@redhat.com>
20481
20482         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
20483         shift counts, separate SI shifts for m32c vs m16c, pass shift type
20484         so that constant shifts can be split.
20485         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
20486         (m32c_valid_pointer_mode): Make static.
20487         (shift_gen_func_for): New.
20488         (m32c_prepare_shift): Use it.  Split large const shifts into
20489         multiple shifts.
20490         * config/m32c/predicates.md (shiftcount_operand): Allow more
20491         general operands.
20492         (longshiftcount_operand): New.
20493         * doc/md.texi (Machine Constraints): Document In6.
20494
20495 2006-01-13  Ben Elliston  <bje@au.ibm.com>
20496
20497         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
20498         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
20499         documentation.
20500
20501 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
20502
20503         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
20504         to try to avoid clobbering pieces of structures when we know
20505         something about the whole structure.
20506         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
20507
20508 2006-01-13  Ben Elliston  <bje@au.ibm.com>
20509
20510         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
20511         return in memory, as this is no limitation is no longer present.
20512
20513 2006-01-12  DJ Delorie  <dj@redhat.com>
20514
20515         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
20516         mova with fb, and for fb+0 -> An.
20517
20518         * config/m32c/mov.md (peephole2): Fix enabling logic.
20519
20520         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
20521         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
20522         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
20523         FINI_ARRAY_SECTION_ASM_OP): Define.
20524
20525         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
20526         variable.
20527         (m32c_legitimize_reload_address): New logic to reload FB to An.
20528         (m32c_output_reg_push): Add newline.
20529         (m32c_output_reg_pop): Likewise.
20530
20531 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
20532
20533         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
20534
20535 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
20536
20537         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
20538
20539 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
20540
20541         * config/sh/predicates.md (sh_rep_vec): Add parallel to
20542         match_code.
20543
20544 2006-01-11  Ben Elliston  <bje@au.ibm.com>
20545
20546         * rtlanal.c (find_reg_note): Assert insn is not null.
20547
20548 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
20549
20550         * df-scan.c (df_hard_reg_init): Move declaration of i outside
20551         ifdef.
20552
20553 2006-01-11  Jeff Law  <law@redhat.com>
20554
20555         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
20556         hold edge pairs.
20557         (mark_threaded_blocks, register_jump_thread): New functions.
20558         (thread_through_all_blocks): Remove unwanted argument.  No
20559         longer rely on e->aux to communicate thread target info.
20560         Call mark_threaded_blocks.  Release the threaded_blocks
20561         bitmap and threaded_edges vector when complete.
20562         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
20563         (threaded_blocks): Remove.
20564         (tree_ssa_dominator_optimize): Remove initialization and
20565         finalization of threaded_blocks.  Simplify call to
20566         thread_through_all_blocks.
20567         (thread_across_edge): Call register_jump_thread rather than
20568         storing thread information into e->aux.
20569         (free_all_edge_infos): Simplify now that e->aux is no longer
20570         used to communicate with thread_through_all_blocks.
20571         * tree-flow.h (thread_through_all_blocks): Update prototype.
20572         (register_jump_thread): Prototype.
20573
20574 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
20575
20576         * df-core.c (df_compact_blocks, df_bb_replace): Use
20577         SET_BASIC_BLOCK instead of BASIC_BLOCK.
20578
20579 2006-01-11  Richard Guenther  <rguenther@suse.de>
20580
20581         PR tree-optimization/25734
20582         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
20583         stop propagation after successful propagation to the LHS.
20584
20585 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
20586
20587         * basic-block.h (control_flow_graph): Change the type of
20588         x_basic_block_info to VEC(basic_block,gc) *.
20589         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
20590         basic_block_info.
20591         (SET_BASIC_BLOCK): New.
20592         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
20593         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
20594         * cfgbuild.c (find_basic_blocks): Likewise.
20595         * cfglayout.c (fixup_reorder_chain): Likewise.
20596         * cfgrtl.c (create_basic_block_structure,
20597         rtl_create_basic_block): Likewise.
20598         * ifcvt.c (find_if_case_1): Likewise.
20599         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
20600         Likewise.
20601
20602 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
20603
20604         * Makefile.in: Removed rotted odf.c entry.
20605
20606 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
20607
20608         PR target/25706
20609         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
20610         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
20611         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
20612         output pattern modifier, not %e.
20613         * config/cris/cris.c (cris_op_str): Update comment about pattern
20614         modifier.
20615         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
20616         before falling through into...
20617         <case 'E'>: Redefined from old 'e' case.
20618
20619 2006-01-11  Jan Hubicka  <jh@suse.cz>
20620
20621         PR target/25042
20622         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
20623
20624 2006-01-11  Jan Hubicka  <jh@suse.cz>
20625
20626         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
20627         * i386.c (x86_decompose_lea): Kill.
20628         (ix86_rtx_costs): Kill.
20629
20630 2006-01-11  Jan Hubicka  <jh@suse.cz>
20631
20632         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
20633         * cgraph.h (cgraph_node): Add inline_decl.
20634         (cgraph_insert_node_to_hashtable): Declare.
20635         (save_inline_function_body): Declare.
20636         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
20637         clones.
20638         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
20639         (cgraph_function_versioning): Update call of tree_function_versioning.
20640         (save_inline_function_body): New function.
20641         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
20642         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
20643         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
20644         (cgraph_default_inline_p): Likewise.
20645         (cgraph_decide_inlining_incrementally): Likewise.
20646         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
20647         (copy_bb): Kill saving; do updating of clones.
20648         (copy_cfg_body): Kill saving.
20649         (initialize_inlined-parameters): Likewise.
20650         (expand_call_inline): Likewise.
20651         (save_body): Kill.
20652         (tree_function_versioning): New parameter "update_clones".
20653         (inlining_p): Kill saving.
20654         * tree-inline.h (tree_function_versioning): Update prototype.
20655         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
20656         saving.
20657
20658 2006-01-11  Ian Lance Taylor <ian@airs.com>
20659
20660         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
20661         Allow undoing set of machine mode.
20662         (do_SUBST): Use enums instead of is_int.
20663         (do_SUBST_MODE): New function.
20664         (SUBST_MODE): New macro.
20665         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
20666         reg and trying to replace reg_regno_rtx with a new register.
20667         (undo_all): Use new enums, handle undoing a PUT_MODE change.
20668         (simplify_set): Use SUBST_MODE.
20669         (distribute_notes): Remove code that tried to update reg notes
20670         for regno_reg_rtx changes.
20671
20672 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
20673
20674         PR tree-optimization/23109
20675         PR tree-optimization/23948
20676         PR tree-optimization/24123
20677
20678         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
20679         * tree-cfg.c (single_noncomplex_succ): New.
20680         * tree-flow.h (single_noncomplex_succ): Declare it.
20681         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
20682         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
20683         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
20684         insert_bb, register_division_in, insert_reciprocals,
20685         replace_reciprocal, free_bb): New.
20686         (execute_cse_reciprocals_1): Rewritten.
20687         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
20688         Do not commit any edge insertion.  Always compute dominators and
20689         create the allocation pool.
20690         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
20691         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
20692         * targhooks.c (default_min_divistions_for_recip_mul): New.
20693         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
20694         * passes.c (init_optimization_passes): Run recip after tree loop
20695         optimizations.
20696         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
20697
20698 2006-01-11  Danny Berlin <dberlin@dberlin.org>
20699             Kenneth Zadeck <zadeck@naturalbridge.com>
20700
20701         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
20702         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
20703         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
20704         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
20705         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
20706         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
20707         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
20708         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
20709         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
20710         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
20711         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
20712         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
20713         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
20714         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
20715         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
20716         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
20717         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
20718         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
20719         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
20720         DF_SCAN_POST_ALLOC): New macros.
20721         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
20722         df_free_bb_function, df_local_compute_function, df_init_function,
20723         df_dataflow_function, df_confluence_function_0,
20724         df_confluence_function_n, df_transfer_function,
20725         df_finalizer_function, df_free_function, df_dump_problem_function,
20726         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
20727         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
20728         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
20729         df_urec_bb_info, ) New types.
20730         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
20731         variables.
20732         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
20733         df_analyze_simple_change_some_blocks,
20734         df_analyze_simple_change_one_block, df_compact_blocks,
20735         df_bb_replace, df_bb_regno_last_use_find,
20736         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
20737         df_insn_regno_def_p, df_find_def, df_find_use,
20738         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
20739         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
20740         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
20741         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
20742         debug_df_chain, df_get_dependent_problem, df_chain_create,
20743         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
20744         df_grow_bb_info, df_chain_dump, df_print_bb_index,
20745         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
20746         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
20747         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
20748         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
20749         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
20750         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
20751         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
20752         df_ref_remove, df_insn_refs_delete, df_refs_delete,
20753         df_reorganize_refs, df_set_state, df_hard_reg_init,
20754         df_read_modify_subreg_p) New public functions.
20755         * df-core.c: The core dataflow solver and glue routines for rtl
20756         dataflow.
20757         (df_init, df_add_problem, df_set_blocks, df_finish,
20758         df_hybrid_search_forward, df_hybrid_search_backward,
20759         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
20760         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
20761         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
20762         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
20763         df_reg_defined, df_find_use, df_reg_used, df_dump,
20764         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
20765         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
20766         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
20767         debug_df_useno, reset_df_after_reload): New functions.
20768         * df-scan.c: The scanning fuctions, once in df.c, completely
20769         rewritten so that they now fully model the functionality of
20770         register usage at the backend.
20771         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
20772         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
20773         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
20774         df_grow_insn_info, df_rescan_blocks, df_ref_create,
20775         df_get_artificial_defs, df_get_artificial_uses,
20776         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
20777         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
20778         df_refs_delete, df_reorganize_refs, df_set_state,
20779         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
20780         df_def_record_1, df_defs_record, df_uses_record,
20781         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
20782         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
20783         df_record_exit_block_uses, df_hard_reg_init): New functions.
20784
20785         * df-problems.c: Seven concrete dataflow problems that use the
20786         scanning in df-scan.c and are solved by the engine in df-core.c.
20787         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
20788         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
20789         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
20790         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
20791         df_ru_free_bb_info, df_ru_alloc,
20792         df_ru_bb_local_compute_process_def,
20793         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
20794         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
20795         df_ru_transfer_function, df_ru_free, df_ru_dump,
20796         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
20797         df_rd_free_bb_info, df_rd_alloc,
20798         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
20799         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
20800         df_rd_transfer_function, df_rd_free, df_rd_dump,
20801         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
20802         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
20803         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
20804         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
20805         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
20806         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
20807         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
20808         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
20809         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
20810         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
20811         df_urec_mark_reg_change, df_urec_check_earlyclobber,
20812         df_urec_mark_reg_use_for_earlyclobber,
20813         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
20814         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
20815         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
20816         df_urec_dump, df_urec_add_problem, df_chain_alloc,
20817         df_chain_create_bb_process_use, df_chain_create_bb,
20818         df_chain_finalize, df_chain_free, df_chains_dump,
20819         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
20820         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
20821         df_reg_lifetime): New functions.
20822         * df.c: Deleted file.
20823         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
20824         consistent with new df api.
20825         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
20826         rest_of_handle_sms): Ditto.
20827         * web.c (unionfind_union, union_defs, entry_register, web_main):
20828         Ditto.
20829         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
20830         invariant_expr_equal_p, find_defs, check_dependencies,
20831         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
20832         free_inv_motion_data, move_loop_invariants): Ditto.
20833         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
20834         Update dependencies.
20835         (odf.c): Added defective entry that was deleted later in day.
20836         * sched-deps.c (sched_analyze_1): Ditto.
20837
20838 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
20839
20840         * tree-ssa-operands.c (get_expr_operands): Record addressable
20841         variables directly.  Do not call add_stmt_operands for CONST_DECLs
20842         and ARRAY_DECLs.
20843         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
20844         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
20845
20846 2006-01-11  Ben Elliston  <bje@au.ibm.com>
20847
20848         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
20849         function returns true in the positive case.
20850
20851 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20852
20853         PR target/20754
20854         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
20855         for SI, DI, SF and DF modes.  Add alternatives to copy between
20856         general and floating point registers to the 32-bit patterns.
20857         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
20858         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
20859         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
20860         generating 64-bit code.
20861         * config/pa/pa.c (output_move_double): Handle copies between general
20862         and floating registers.
20863
20864 2006-01-10  Stuart Hastings  <stuart@apple.com>
20865
20866         * config/i386/i386.md (set_got): Update.
20867         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
20868         (builtin_setjmp_receiver): Mach-O support.
20869         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
20870         (GOT_SYMBOL_NAME): Define.
20871         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
20872         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
20873         * config/i386/i386.c (override_options): Revise for Darwin.
20874         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
20875         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
20876         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
20877         * config/i386/i386-protos.h (output_set_got): Likewise.
20878         * config/darwin.c (machopic_legitimize_pic_address): Update
20879         regs_ever_live[].
20880
20881 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
20882
20883         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
20884         when MODE isn't BLKmode.
20885
20886 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
20887
20888         PR rtl-optimization/25367
20889         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
20890
20891 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
20892
20893         PR target/25718
20894         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
20895         for a negative bound.
20896
20897 2006-01-10  Richard Guenther  <rguenther@suse.de>
20898
20899         * tree-ssa-structalias.c (get_constraint_for_component_ref):
20900         Never override with anything constraint.
20901
20902 2006-01-10  Jan Beulich  <jbeulich@novell.com>
20903
20904         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
20905         256 bits when optimize_size.
20906
20907 2006-01-10  Jan Beulich  <jbeulich@novell.com>
20908
20909         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
20910         MASK_ALIGN_DOUBLE.
20911         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
20912         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
20913         arguments.
20914
20915 2006-01-10  Ben Elliston  <bje@au.ibm.com>
20916
20917         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
20918         float modes.
20919         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
20920         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
20921         (USE_FP_FOR_ARG): Reject decimal float modes.
20922         (function_arg_advance): Likewise.
20923         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
20924         (rs6000_handle_altivec_attribute): Do not permit decimal floating
20925         point types in AltiVec vectors.
20926         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
20927         (rs6000_libcall_value): Likewise.
20928
20929 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
20930
20931         * config/xtensa/ieee754-df.S: New file.
20932         * config/xtensa/ieee754-sf.S: New file.
20933         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
20934         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
20935         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
20936
20937 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
20938
20939         * config/sh/predicates.md (binary_float_operator,
20940         binary_logical_operator, commutative_float_operator,
20941         equality_comparison_operator, greater_comparison_operator,
20942         less_comparison_operator, logical_operator,
20943         noncommutative_float_operator, shift_operator,
20944         symbol_ref_operand, unary_float_operator): Remove redundant
20945         conditionals.
20946
20947 2006-01-09  Jeff Law  <law@redhat.com>
20948
20949         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
20950         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
20951         now unused arguments.  Callers updated.
20952         (eliminate_redundant_computations): Remove now unused arguments,
20953         callers updated.
20954         (local_fold): Remove, no longer used.
20955         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
20956         and moved to...
20957         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
20958         (simplify_cond): New function.
20959         (forward_propagate_into_cond): Call simplify_cond.
20960
20961 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
20962
20963         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
20964         (*vec_extractv2di_1_sse): New.
20965
20966 2006-01-09  Ben Elliston  <bje@au.ibm.com>
20967
20968         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
20969
20970 2006-01-08  Richard Guenther  <rguenther@suse.de>
20971
20972         * tree-ssa-structalias.c (get_constraint_for): Remove
20973         anyoffset argument.
20974         (get_constraint_for_component_ref): Likewise.
20975         (do_deref): Likewise.
20976         (get_constraint_for): Likewise.
20977         (do_structure_copy): Likewise.
20978         (handle_ptr_arith): Likewise.
20979         (find_func_aliases): Likewise.  Remove unused need_anyoffset
20980         variable.
20981
20982 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
20983             Kaz Kojima  <kkojima@gcc.gnu.org>
20984
20985         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
20986         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
20987         (EXTRA_CONSTRAINT_C16): Remove.
20988         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
20989         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
20990         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
20991         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
20992         constants of SHmedia.  Handle nested constant expressions of
20993         SHmedia correctly.
20994         (andcosts): Fix the costs for SHmedia constants.
20995         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
20996         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
20997         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
20998         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
20999         (movv4hi_i, movv2si_i): Likewise.
21000         (movsi_const): Adjust the second operand of ior so to match with
21001         the Csu constraint.
21002         (movdi_const, movdi_const_32bit): Likewise.
21003         (movdi_const_16bit+1): Don't sign-extend LOW.
21004         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
21005         step.
21006         (*double_shori): Fix the split condition.  Use GEN_INT instead
21007         of get_int_mode calls.  Mask lower 16-bit of the argument of
21008         the last GEN_INT.
21009         (sym2GOTPLT): Remove.
21010         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
21011         gen_rtx_UNSPEC.
21012         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
21013         instead of EXTRA_CONSTRAINT_C16.
21014
21015 2006-01-07  Ian Lance Taylor  <ian@airs.com>
21016             David Edelsohn  <edelsohn@gnu.org>
21017
21018         PR rtl-optimization/25662
21019         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
21020         for constant operands instead of simplify_gen_binary.
21021         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
21022         after trying simplify_binary_operation
21023
21024 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
21025
21026         * tree.c (iterative_hash_expr): Hash decls based on UID.
21027
21028 2006-01-06  Eric Christopher  <echristo@apple.com>
21029
21030         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
21031         (TARGET_UNWIND_EMIT): Fix spelling.
21032         * target.h (gcc_target): Add except_table_label.
21033         * except.c (output_function_exception_table): Use.
21034         * varasm.c (default_emit_except_table_label): New.
21035         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
21036         define.
21037         (asm_out): Add here.
21038         * output.h (default_emit_except_table_label): Prototype.
21039         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
21040         * config/darwin.c (darwin_emit_except_table_label): Define.
21041         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
21042
21043 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
21044
21045         PR tree-optimization/18527
21046         * tree-ssa-loop-niter.c (number_of_iterations_cond,
21047         number_of_iterations_special, number_of_iterations_exit):
21048         Move base and step of an iv to a single structure.  Add
21049         no_overflow flag, and use it in # of iterations analysis.
21050         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
21051         folded_casts argument.
21052         (simple_iv): Pass base and step in a structure.  Set no_overflow
21053         flag.
21054         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
21055         Evaluate expensiveness of computing # of iterations instead of
21056         the final expression.
21057         * tree-scalar-evolution.h (affine_iv): New structure.
21058         (simple_iv): Declaration changed.
21059         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
21060         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
21061         find_givs_in_stmt): Changed due to simple_iv change.
21062
21063 2006-01-06  Jeff Law  <law@redhat.com>
21064
21065         PR ada/24994
21066         * tree-cfg.c (bsi_replace): Rename final argument from
21067         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
21068         change (stmt -> orig_stmt).
21069         * tree-eh.c (verify_eh_throw_stmt_node): New function.
21070         (bsi_remove): Add new argument.  Remove EH information
21071         if requested.
21072         (verify_eh_throw_table_statements): New function.
21073         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
21074         updated.
21075         * tree-optimize.c (execute_free_cfg_annotations): Verify
21076         the EH throw statement table after removing annotations.
21077         * except.h (verify_eh_throw_table_statements): Prototype.
21078         * tree-flow.h (bsi_remove): Update prototype.
21079         * tree-vrp.c (remove_range_assertions): Add new argument to
21080         bsi_remove call.
21081         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
21082         * tree-complex.c (expand_complex_div_wide): Likewise.
21083         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
21084         * tree-tailcall.c (eliminate_tailcall): Likewise.
21085         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
21086         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
21087         * tree-nrv.c (tree_nrv): Likewise.
21088         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
21089         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
21090         (combine_blocks): Likewise.
21091         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
21092         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
21093         (cleanup_control_flow): Likewise.
21094         (remove_forwarder_block): Likewise.
21095         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
21096         * tree-sra.c (sra_replace): Likewise.
21097         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
21098         (forward_propagate_single_use_vars): Likewise.
21099         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
21100         * tree-inline.c (expand_call_inline): Likewise.
21101         * tree-vect-transform.c (vect_transform_loop): Likewise.
21102         * tree-outof-ssa.c (rewrite_trees): Likewise.
21103         * tree-cfg.c (make_goto_expr_edges): Likewise.
21104         (cleanup_dead_labels): Likewise.
21105         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
21106         (bsi_move_before, bsi_move_after): Likewise.
21107         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
21108         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
21109
21110 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
21111
21112         PR tree-opt/25528
21113         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
21114         and IMAGPART_EXPR.
21115         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
21116         on non gimple variables.  Also add checks at the top for decls and
21117         mtags.
21118         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
21119         complex types.
21120         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
21121         and IMAGPART_EXPR for creating MUST_DEFs.
21122         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
21123         and NAME_MEMORY_TAG separately from the DECLs.
21124
21125 2006-01-06  Richard Guenther  <rguenther@suse.de>
21126
21127         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
21128         annotation, if necessary.
21129         * tree-ssa-pre.c (create_expression_by_pieces): Remove
21130         redundant calls to update_stmt.
21131         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
21132         Likewise.
21133
21134 2006-01-05  Richard Henderson  <rth@redhat.com>
21135
21136         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
21137
21138 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
21139
21140         * c-typeck.c: Update copyright date.
21141
21142 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
21143
21144         * c-typeck.c (build_c_cast): Always warn when casting
21145         from a pointer to an integer of different size, even if
21146         the node was constant.
21147
21148 2006-01-05  Richard Guenther  <rguenther@suse.de>
21149
21150         PR tree-optimization/22555
21151         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
21152         if one structure field is an array.
21153         * tree-ssa-operands.c (get_expr_operands): Continue scanning
21154         operands even if we found a subvar, but ignore VOPs in this
21155         case.
21156         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
21157         for renaming.
21158         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
21159
21160 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
21161
21162         PR middle-end/24998
21163         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
21164
21165 2006-01-05  Richard Guenther  <rguenther@suse.de>
21166             Diego Novillo  <dnovillo@redhat.com>
21167
21168         * tree-pass.h (TODO_remove_unused_locals): Define.
21169         * gimple-low.c (expand_var_p, remove_useless_vars,
21170         pass_remove_useless_vars): Remove.  Update all users.
21171         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
21172         (remove_unused_locals): New function.
21173         * tree-flow.h (remove_unused_locals): Declare.
21174         * passes.c (execute_todo): Call remove_unused_locals if
21175         TODO_remove_unused_locals is set.
21176         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
21177         * tree-ssa-dce.c (pass_dce): Likewise.
21178         * tree-outof-ssa.c (pass_del_ssa): Likewise.
21179
21180 2006-01-05  Richard Guenther  <rguenther@suse.de>
21181
21182         * tree-flow.h (struct fieldoff): Decompose field to
21183         type, size and decl.
21184         * tree-ssa-alias.c (create_sft): Take type as parameter.
21185         (create_overlap_variables_for): Store type, size and decl
21186         in the fieldoff structure.
21187         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
21188         of struct fieldoff.
21189         (push_fields_onto_fieldstack): Likewise.
21190         (create_variable_info_for): Likewise.  Use offset for the
21191         SFT name if the decl is not available.
21192
21193 2006-01-04  Paul Brook  <paul@codesourcery.com>
21194
21195         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
21196
21197 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
21198
21199         * lambda-code.c (can_put_in_inner_loop): Relax
21200         restrictions.
21201         (can_put_after_inner_loop): New function.
21202         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
21203         (perfect_nestify): Change to make copies and modify uses.
21204
21205 2006-01-04  Richard Henderson  <rth@redhat.com>
21206
21207         Merge from gomp branch:
21208         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
21209         via integer constant.
21210         (pragma_lex): Remove.
21211         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
21212         rather than parsing it.
21213         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
21214         handle_pragma_extern_prefix): Add %< %> quotes.
21215         (registered_pragmas): New.
21216         (c_register_pragma_1): New.
21217         (c_register_pragma): Use it.
21218         (c_register_pragma_with_expansion): Likewise.
21219         (c_invoke_pragma_handler): New.
21220         (init_pragma): Use cpp_register_deferred_pragma directly for
21221         pch_preprocess.
21222         * c-pragma.h (enum pragma_kind): New.
21223         (pragma_handler): New.
21224         (c_invoke_pragma_handler): Declare.
21225         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
21226         CPP_PRAGMA_EOL.
21227         * c-common.h (c_common_pch_pragma): Update decl.
21228         * Makefile.in (c-parser.o): Update dependencies.
21229         (GTFILES): Add c-pragma.h.
21230         * c-parser.c (struct c_token): Add pragma_kind.
21231         (struct c_parser): Add in_pragma.
21232         (c_lex_one_token): Always initialize keyword and pragma_kind.
21233         Extract data for CPP_PRAGMA.
21234         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
21235         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
21236         Don't allow CPP_PRAGMA_EOL if in_pragma.
21237         (c_parser_consume_pragma): New.
21238         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
21239         (c_parser_skip_to_end_of_parameter): Likewise.
21240         (c_parser_skip_to_end_of_block_or_statement): Likewise.
21241         (c_parser_skip_to_pragma_eol): New.
21242         (c_parser_external_declaration): Handle CPP_PRAGMA.
21243         (c_parser_compound_statement_nostart): Likewise.
21244         (c_parser_statement_after_labels): Likewise.
21245         (c_parser_pragma): New.
21246         (pragma_lex): Likewise.
21247         (c_parser_pragma_pch_preprocess): New.
21248         (c_parser_new): Merge into ...
21249         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
21250
21251 2006-01-04  Jeff Law  <law@redhat.com>
21252
21253         PR ada/24994
21254         * tree-cfg.c (bsi_replace): Remove the original statement
21255         from the EH throw statement table.
21256
21257 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
21258
21259         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
21260         make the prototype extern "C" and add throw ().
21261
21262         PR target/25554
21263         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
21264         and pos non-negative and pos + len <= 32.
21265         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
21266         drop pos + len < HOST_BITS_PER_WIDE_INT test.
21267         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
21268
21269         PR c/25559
21270         * c-common.c (handle_vector_size_attribute): Reject zero vector size
21271         as well as sizes not multiple of component size.
21272
21273         PR debug/25562
21274         * function.c (instantiate_expr): New function.
21275         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
21276         walk its DECL_VALUE_EXPR with instantiate_expr.
21277
21278         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
21279         DW_OP_deref{,_size} if address isn't going to be added.
21280
21281 2006-01-04  Ben Elliston  <bje@au.ibm.com>
21282
21283         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
21284         * config/fp-bit.c: Likewise.
21285
21286 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
21287
21288         * dominance.c: Add comment about why we use DFS numbering
21289         of dominance tree.
21290
21291 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
21292             Richard Henderson  <rth@redhat.com>
21293
21294         Merge from gomp-branch:
21295         * varasm.c (assemble_variable): Handle thread-local COMMON data.
21296         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
21297
21298 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
21299
21300         PR rtl-optimization/25578
21301         * combine.c (combine_simplify_rtx, force_to_mode): Don't
21302         pass a parameter to simplify_shift_const if changing ASHIFTRT
21303         to LSHIFTRT.
21304
21305 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
21306
21307         * builtins.c (get_builtin_sync_mem): New function.
21308         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
21309         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
21310         Call get_builtin_sync_mem to generate mem rtx.
21311
21312 2006-01-03  Richard Guenther  <rguenther@suse.de>
21313
21314         PR c/25183
21315         * stmt.c (add_case_node): Make sure to clear overflow flags
21316         from ranges.
21317
21318 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
21319
21320         Merge from gomp-branch.
21321         * config/sparc/sync.md: New file.
21322         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
21323         UNSPECV_LDSTUB): New constants.
21324         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
21325         * config/sparc/predicates.md (memory_reg_operand): New predicate.
21326         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
21327         prototype.
21328
21329 2006-01-03  Roger Sayle  <roger@eyesopen.com>
21330
21331         * combine.c (reg_subword_p): New predicate to test whether the
21332         destination of a set refers to a subword/piece of a register.
21333         (try_combine): Generalize the code to merge the setting of a
21334         pseudo to a constant followed by a set of a subword of that
21335         register to a constant.
21336
21337 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
21338
21339         * basic-block.h (control_flow_graph): Change the type of
21340         x_label_to_block_map to VEC(basic_block,gc) *.
21341         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
21342         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
21343
21344         * tree-ssa-propagate.c (cfg_blocks): Change the type to
21345         VEC(basic_block,heap) *.
21346         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
21347         ssa_prop_fini): Adjust the uses of cfg_blocks.
21348
21349 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
21350
21351         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
21352         COMPONENT_REFs.
21353         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
21354         hashing trees instead of a pointer hash.
21355         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
21356         compare for MEM_EXPR.
21357
21358         PR rtl-optimization/25130
21359         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
21360         when comparing MEMs for GCSE
21361
21362 2006-01-03  Ben Elliston  <bje@au.ibm.com>
21363
21364         * targhooks.h (default_decimal_float_supported_p): Declare.
21365         * targhooks.c (default_decimal_float_supported_p): Define.
21366         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
21367         `default_decimal_float_supported_p'.
21368         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
21369
21370 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
21371
21372         * combine.c (apply_distributive_law <SUBREG>): Check
21373         TRULY_NOOP_TRUNCATION.
21374
21375 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
21376
21377         * dwarf2out.c (have_switched_text_section): Delete.
21378         (have_multiple_function_sections): New.
21379         (have_location_lists): Make 'bool'.
21380         (add_AT_loc_list): Use 'true' not '1'.
21381         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
21382         (output_loc_list): Use have_multiple_function_sections.
21383         (output_ranges): Likewise.
21384         (dwarf2out_begin_function): Set have_multiple_function_sections if
21385         necessary.
21386         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
21387         Check function_section rather than DECL_SECTION_NAME.
21388         (dwarf2out_finish): Use have_multiple_function_sections.
21389         Don't clear have_location_lists.
21390
21391 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
21392             Jan Hubicka  <jh@suse.cz>
21393
21394         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
21395         case of conditional jump jumping to the next instruction.
21396         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
21397         cases of conditional jump jumping to the next instruction.
21398
21399 2006-01-02  Jan Hubicka  <jh@suse.cz>
21400
21401         * i386.c (*_cost): Add COSTS_N_INSNS.
21402         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
21403
21404 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
21405
21406         PR target/25259
21407         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
21408
21409 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
21410
21411         * config/arm/arm.c (all_fpus): Fix comment typo.
21412         * config/darwin.c: Likewise.
21413         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
21414         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
21415         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
21416
21417 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
21418
21419         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
21420         (rs6000_split_compare_and_swapqhi): New.
21421         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
21422         (sync_compare_and_swapqhi_internal): New.
21423         * config/rs6000/rs6000-protos.h: Declare.