OSDN Git Service

2005-04-11 Daniel Berlin <dberlin@dberlin.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
2         
3         Fix PR tree-optimization/20612
4         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
5         handling
6         (perfect_nestify): preheaderbb is *not* part of loop of the
7         old destination.
8
9 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
10
11         * tree-ssa-alias.c (may_alias_p): If the variable
12         is a global variable and the pointer is parameter
13         and -fargument-noalias-global is used, then
14         the pointer cannot alias the variable.
15
16 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
17
18         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
19         * config/sparc/sparc.h: Likewise.
20         * config/sparc/sparc.md: Likewise.
21
22 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
23
24         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
25
26         * tree-vrp.c: Fix a comment typo.
27
28 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
29
30         PR tree-optimization/20920
31         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
32         SSA_NAME flows through an abnormal edge.
33         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
34         through abnormal edges.
35         (maybe_add_assert_expr): Likewise.
36
37 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
38
39         * config/s390/s390.h (s390_tune_string, s390_arch_string)
40         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
41         (s390_stack_size_string, s390_stack_guard_string, target_flags)
42         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
43         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
44         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
45         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
46         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
47         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
48         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
49         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
50         (TARGET_HANDLE_OPTION): Likewise.
51         (s390_tune): Initialize to PROCESSOR_max.
52         (s390_arch_string): Make static.
53         (s390_tune_string, s390_warn_framesize_string): Delete.
54         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
55         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
56         (s390_handle_arch_option, s390_handle_option): New functions.
57         (override_options): Remove parsing of option strings.
58         * config/s390/s390.opt: New file.
59
60 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
61
62         * tree-complex.c (expand_vector_operations): Call
63         update_stmt_if_modified.
64
65 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
66
67         * tree-vect-analyze (vect_determine_vectorization_factor):
68         Do not use GET_MODE_NUNITS.
69         * tree-vect-transform.c (vect_get_vec_def_for_operand,
70         (vectorizable_load, vect_transform_loop): Likewise.
71
72 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
73
74         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
75         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
76         * optabs.h (enum optab_index): Add new OTI_lceil.
77         (lceil_optab): Define corresponding macro.
78         * optabs.c (init_optabs): Initialize lceil_optab.
79         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
80         and lceildi2 patterns.
81         * builtins.c (expand_builtin_int_roundingfn): Handle
82         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
83         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
84         BUILT_IN_LLCEIL{,F,L}.
85         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
86         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
87         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
88         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
89         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
90         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
91         into lceil built-in function and (long long int)ceil{,f,l} into
92         llceil built-in function.
93         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
94         BUILT_IN_LLCEIL.
95
96 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
97
98         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
99         zero.
100
101 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
102
103         * config/arm/arm.c: Fix a comment typo.
104         * doc/tree-ssa.texi: Fix a typo.
105
106 2005-04-10  Steven Bosscher  <stevenb@suse.de>
107
108         * cselib.c (clear_table): Rename to cselib_clear_table.
109         * cselib.h (cselib_clear_table): Add prototype.
110         * gcse.c (gcse_main): Make 'f' argument unused.
111         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
112         of each basic block instead.
113         (compute_sets, compute_hash_table_work): Likewise.
114         (constprop_register): Change int 'alter_jumps' argument to bool.
115         (do_local_cprop): Likewise.
116         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
117         the insn chain.  Explicitly clear the cselib tables after finishing
118         one basic block.  Make sure there are no unterminated libcall blocks.
119         Update compute_sets call.
120         (cprop): Walk basic blocks instead of the insn chain.
121         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
122         Likewise.
123         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
124         one_cprop_pass calls.
125
126 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
127
128         * combine.c (combine_simplify_rtx): Remove a transformation that
129         relies on an invalid assumption about rtl sign-extension semantics.
130
131 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
132
133         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
134         to build_int_cst_wide.
135
136 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
137
138         PR target/20126
139         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
140         set the original address pseudo to the correct value before the
141         original insn, if possible, and leave the insn alone, otherwise
142         create a new pseudo, set it and replace it in the insn.
143         * recog.c (validate_change_maybe_volatile): New.
144         * recog.h (validate_change_maybe_volatile): Declare.
145
146 2005-04-09  Caroline Tice  <ctice@apple.com>
147
148         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
149         Remove targetm.have_named_sections test.
150         (fix_edges_for_rarely_executed_code): Likewise.
151         (insert_section_boundary_note): Likewise.
152         (reorder_basic_blocks): Check partitioning flag before calling
153         verify_hot_cold_block_grouping.
154         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
155         the function struct rather than global variables.
156         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
157         (COLD_END_LABEL): Likewise
158         (cold_text_section_label): New static global variable.
159         (cold_end_label): Likewise.
160         (dwarf2out_switch_text_section): Get hot/cold section labels from
161         the function struct rather than global variables.
162         (output_aranges): Use cold_text_section_label and cold_end_label;
163         check partitioning flag before putting out delta.
164         (output_ranges): Remove incorrect code attempting to use
165         hot/cold labels.
166         (output_line_info): Get cold section label from function struct.
167         (add_location_or_const_value_attribute): Likewise.
168         (get_subprogram_die): Get hot/cold section labels from function struct.
169         (dwarf2out_var_location): Likewise.
170         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
171         write out cold_text_section_label if partition flag is set.
172         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
173         * function.h (struct function): Add new fields to point to hot/cold
174         section labels: hot_section_label, cold_section_label,
175         hot_section_end_label and cold_section_end_label; also add new field
176         for cold text section name, unlikely_text_section_name.
177         * opts.c (decode_options): Turn off partitioning flag if
178         !targetm.have_named_sections.
179         * output.h (hot_section_label): Remove.
180         (hot_section_end_label): Remove.
181         (cold_section_end_label): Remove.
182         (unlikely_section_label): Remove.
183         (unlikely_text_section_name): Remove.
184         * passes.c (rest_of_handle_final):  Remove code that frees
185         unlikely_text_section_name.
186         * varasm.c (unlikely_section_label): Remove.
187         (hot_section_label): Remove.
188         (hot_section_end_label): Remove.
189         (cold_section_end_label): Remove.
190         (unlikely_text_section_name):  Remove.
191         (initialize_cold_section_name): Modify to call
192         targetm.strip_name_encoding; to store cold section name in current
193         function struct, if it exists; and to only use the decl_section_name
194         if flag_named_sections is true.
195         (unlikely_text_section): Modify to get section name out of current
196         function struct, if there is one; otherwise build it from
197         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
198         (in_unlikely_text_section): Likewise.
199         (named_section): Modify to get/put cold section name in current function
200         struct, if there is one.
201         (function_section):  Change 'bool unlikely' to 'int reloc'; check
202         targetm.have_named_sections before calling named_section.
203         (current_function_section): Likewise.
204         (assemble_start_function): Modify to get/put unlikely_text_section_name
205         in current function struct; modify to get hot/cold section labels
206         from function struct; initialize labels using 
207         ASM_GENERATE_INTERNAL_LABEL;
208         test partitioning flag before writing out hot section label.
209         (assemble_end_function): Test partitioning flag before writing out
210         hot/cold section labels.
211         (default_section_type_flags_1):  Modify to use array instead of
212          char* for unlikely_text_section_name; set flags correctly for
213          cold text section if there is not a current function decl.
214
215 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
216
217         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
218         and TI_VA_LIST_FPR_COUNTER_FIELD.
219         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
220         * tree-pass.h (pass_stdarg): Add.
221         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
222         * tree-stdarg.c: New file.
223         * tree-stdarg.h: New file.
224         * Makefile.in (OBJS-common): Add tree-stdarg.o.
225         (tree-stdarg.o): Add dependencies.
226         * function.h (struct function): Add va_list_gpr_size and
227         va_list_fpr_size fields.
228         * function.c (allocate_struct_function): Initialize them.
229         * target.h (struct gcc_target): Add stdarg_optimize_hook.
230         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
231         (TARGET_INITIALIZER): Add it.
232
233         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
234         va_list_{g,f}pr_counter_field.
235         (ix86_setup_incoming_varargs): Don't do anything if reg_save
236         area will not be used.  Only save registers that tree-stdarg.c
237         detected they need saving.
238         (ix86_va_start): Don't set up fields that won't be used.
239
240         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
241         va_list_{g,f}pr_counter_field.
242         (setup_incoming_varargs): Don't do anything if reg_save
243         area will not be used.  Only save registers that tree-stdarg.c
244         detected they need saving.
245         (rs6000_va_start): Don't set up fields that won't be used.
246
247         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
248         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
249         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
250         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
251
252 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
253
254         PR target/20795
255         * config/i386/i386.c (construct_container): Pass empty aligned
256         struct, union or class in memory.
257
258 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
259
260         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
261         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
262         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
263         config/rs6000/predicates.md: Fix comment typos.
264
265         * sched-int.h (haifa_insn_data): Remove blockage and units.
266         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
267         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
268         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
269
270 2005-04-09  Jan Hubicka  <jh@suse.cz>
271             Steven Bosscher  <stevenb@suse.de>
272
273         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
274         * cfgloop.c (get_loop_exit_edges): Likewise.
275         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
276         (unloop): Likewise.
277         * loop-unroll.c (analyze_insns_in_loop): Likewise.
278         * tree-cfg.c (dump_cfg_status): Likewise.
279
280 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
281
282         * config/rs6000/predicates.md (altivec_register_operand): Remove
283         redundant match_code test.
284         (gpc_reg_operand): Same.
285         (cc_reg_operand): Same.
286         (cc_reg_not_cr0_operand): Same.
287
288 2005-04-09  Jan Hubicka  <jh@suse.cz>
289
290         Forgotten hunk from my last merge patch:
291         * final.c (output_addr_const): Do not call mark_referenced.
292
293 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
294
295         * doc/tree-ssa.texi: Add immediate use documentation.
296
297 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
298
299         * arm.c (FL_WBUF): Define.
300         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
301         (arm_is_6_or_7): Delete.
302         (arm_tune_wbuf): New.
303         (arm_override_options): Set arm_tune_wbuf.
304         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
305         (arm_is_6_or_7): Delete declaration.
306         (arm_tune_wbuf): New declartion.
307         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
308         (model_wbuf): Derive from arm_tune_wbuf.
309         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
310         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
311         (arm740t): Mark CPUs as having a write buffer.
312
313 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
314
315         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
316         of 'const_double_operand' in operand 2 constraints.  Update enable
317         condition.
318
319 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
320
321         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
322         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
323         * optabs.h (enum optab_index): Add new OTI_lfloor.
324         (lfloor_optab): Define corresponding macro.
325         * optabs.c (init_optabs): Initialize lfloor_optab.
326         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
327         and lfloordi2 patterns.
328         * builtins.c (expand_builtin_int_roundingfn): New prototype.
329         (expand_builtin_int_roundingfn): New function.
330         (fold_builtin_int_roundingfn): New prototype.
331         (fold_builtin_int_roundingfn): New function, renamed from
332         fold_builtin_lround.
333         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
334         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
335         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
336         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
337         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
338         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
339         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
340         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
341         into lfloor built-in function and (long long int)floor{,f,l} into
342         llfloor built-in function.
343         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
344         BUILT_IN_LLFLOOR.
345
346 2005-04-08  Ian Lance Taylor  <ian@airs.com>
347
348         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
349         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
350         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
351         (DO_COND, DO_BODY): Likewise.
352         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
353         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
354         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
355         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
356         (build_continue_stmt, build_break_stmt): Don't declare.
357         (c_do_switch_warnings): Update declaration.
358         * c-gimplify.c (enum bc_t): Remove.
359         (struct c_gimplify_ctx, ctxp): Remove.
360         (push_context, pop_context): Remove static functions.
361         (c_genericize): Don't call push_context or pop_context.
362         (begin_bc_block, finish_bc_block): Remove static functions.
363         (build_bc_goto): Likewise.
364         (gimplify_c_loop): Likewise.
365         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
366         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
367         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
368         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
369         * c-common.c (c_do_switch_warnings): Rename from
370         c_do_switch_warnings_1.
371         (c_do_switch_warnings) [old version]: Remove.
372         (c_do_switch_expr_warnings): Remove.
373         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
374         function instead of c_do_switch_expr_warnings.
375         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
376         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
377         * c-pretty-print.c (pp_c_statement): Likewise.
378         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
379
380 2005-04-08  Devang Patel  <dpatel@apple.com>
381
382         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
383         While selecting replacement condition pay attention to loop header.
384
385 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
386
387         Merge from tree-cleanup-branch: VRP, store CCP, store
388             copy-prop, incremental SSA updating of FUD chains and
389             newly exposed symbols.
390
391         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
392         (OBJS-common): Add tree-vrp.o.
393         (tree-vrp.o): New rule.
394         * basic-block.h (nearest_common_dominator_for_set): Declare.
395         * common.opt (ftree-store-ccp): New flag.
396         (ftree-copy-prop): New flag.
397         (ftree-vrp): New flag.
398         (ftree-store-copy-prop): New flag.
399         * dominance.c (nearest_common_dominator_for_set): New.
400         * domwalk.c (walk_dominator_tree): Only traverse
401         statements in blocks marked in walk_data->interesting_blocks.
402         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
403         * fold-const.c (fold): Handle ASSERT_EXPR.
404         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
405         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
406         flag_tree_vrp at -O2.
407         * timevar.def (TV_TREE_VRP): Define.
408         (TV_TREE_COPY_PROP): Define.
409         (TV_TREE_STORE_COPY_PROP): Define.
410         (TV_TREE_SSA_INCREMENTAL): Define.
411         (TV_TREE_STORE_CCP): Define.
412         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
413         to kill_redundant_phi_nodes from comment.
414         (verify_expr): Handle ASSERT_EXPR.
415         * tree-dfa.c (mark_new_vars_to_rename): Remove second
416         argument.  Update all users.
417         (mark_call_clobbered_vars_to_rename): Remove.  Update all
418         users.
419         * tree-flow-inline.h (unmodifiable_var_p): New.
420         * tree-flow.h (enum value_range_type): Declare.
421         (struct value_range_def): Declare.
422         (value_range): Declare.
423         (remove_all_phi_nodes_for): Remove.  Update all users.
424         (find_phi_node_for): Declare.
425         (add_type_alias): Declare.
426         (count_uses_and_derefs): Declare.
427         (kill_redundant_phi_nodes): Remove.
428         (rewrite_into_ssa): Remove.
429         (rewrite_def_def_chains): Remove.
430         (update_ssa, register_new_name_mapping, create_new_def_for,
431         need_ssa_update_p, name_registered_for_update_p,
432         release_ssa_name_after_update_ssa, dump_repl_tbl,
433         debug_repl_tbl, dump_names_replaced_by,
434         debug_names_replaced_by, mark_sym_for_renaming,
435         mark_set_for_renaming, get_current_def, set_current_def,
436         get_value_range, dump_value_range, debug_value_range,
437         dump_all_value_ranges, debug_all_value_ranges,
438         expr_computes_nonzero, loop_depth_of_name,
439         unmodifiable_var_p): Declare.
440         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
441         ASSERT_EXPR.
442         * tree-into-ssa.c (block_defs_stack): Update comment.
443         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
444         syms_to_rename, names_to_release, repl_tbl,
445         need_to_initialize_update_ssa_p, need_to_update_vops_p,
446         need_to_replace_names_p): New locals.
447         (NAME_SETS_GROWTH_FACTOR): Define.
448         (struct repl_map_d): Declare.
449         (struct mark_def_sites_global_data): Add field
450         interesting_blocks.
451         (enum rewrite_mode): Declare.
452         (REGISTER_DEFS_IN_THIS_STMT): Define.
453         (compute_global_livein): Use last_basic_block instead of
454         n_basic_blocks.
455         (set_def_block): Remove last argument.  Update all callers.
456         (prepare_use_operand_for_rename): Remove.  Update all callers.
457         (prepare_def_operand_for_rename): Remove.  Update all callers.
458         (symbol_marked_for_renaming): New.
459         (is_old_name): New.
460         (is_new_name): New.
461         (repl_map_hash): New.
462         (repl_map_eq): New.
463         (repl_map_free): New.
464         (names_replaced_by): New.
465         (add_to_repl_tbl): New.
466         (add_new_name_mapping): New.
467         (mark_def_sites): Assume that all the operands in the
468         statement are in normal form.
469         (find_idf): Assert that the block in the stack is valid.
470         (get_default_def_for): New.
471         (insert_phi_nodes_for): Add new argument 'update_p'.
472         Add documentation.
473         If update_p is true, add a new mapping between the LHS of
474         each new PHI and the name that it replaces.
475         (insert_phi_nodes_1): Only call find_idf if needed.
476         (get_reaching_def): Call get_default_def_for.
477         (rewrite_operand): Remove.
478         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
479         and REWRITE_THIS_STMT are false.
480         Assume that all the operands in the statement are in
481         normal form.
482         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
483         (rewrite_virtual_phi_arguments): Remove.
484         (invalidate_name_tags): Remove.
485         (register_new_update_single, register_new_update_set,
486         rewrite_update_init_block, replace_use,
487         rewrite_update_fini_block, rewrite_update_stmt,
488         rewrite_update_phi_arguments): New.
489         rewrite_blocks): Remove argument 'fix_virtual_phis'.
490         Add arguments 'entry', 'what' and 'blocks'.
491         Initialize the dominator walker according to 'what' and
492         'blocks'.
493         Start the dominator walk at 'entry'.
494         (mark_def_site_blocks): Add argument 'interesting_blocks'.
495         Use it to configure the dominator walker.
496         (rewrite_into_ssa): Remove argument 'all'.
497         Make internal.
498         (rewrite_all_into_ssa): Remove.
499         (rewrite_def_def_chains): Remove.
500         (mark_def_interesting, mark_use_interesting,
501         prepare_phi_args_for_update, prepare_block_for_update,
502         prepare_def_site_for, prepare_def_sites,
503         dump_names_replaced_by, debug_names_replaced_by,
504         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
505         delete_update_ssa, create_new_def_for,
506         register_new_name_mapping, mark_sym_for_renaming,
507         mark_set_for_renaming, need_ssa_update_p,
508         name_registered_for_update_p, ssa_names_to_replace,
509         release_ssa_name_after_update_ssa,
510         insert_updated_phi_nodes_for, update_ssa): New.
511         * tree-loop-linear.c (linear_transform_loops): Call
512         update_ssa instead of rewrite_into_ssa.
513         * tree-optimize.c (vars_to_rename): Remove.
514         Update all users.
515         (init_tree_optimization_passes): Replace
516         pass_redundant_phi with pass_copy_prop.
517         Add pass_vrp.
518         Replace pass_ccp with pass_store_ccp.
519         Add pass_store_copy_prop after pass_store_ccp.
520         (execute_todo): If the TODO_ flags don't include updating
521         the SSA form, assert that it does not need to be updated.
522         Call update_ssa instead of rewrite_into_ssa and
523         rewrite_def_def_chains.
524         If TODO_verify_loops is set, call verify_loop_closed_ssa.
525         (tree_rest_of_compilation):
526         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
527         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
528         TODO_cleanup_cfg): Renumber.
529         (TODO_verify_loops, TODO_update_ssa,
530         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
531         TODO_update_ssa_only_virtuals): Define.
532         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
533         Declare.
534         * tree-phinodes.c (make_phi_node): Update documentation.
535         (remove_all_phi_nodes_for): Remove.
536         (find_phi_node_for): New.
537         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
538         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
539         (interpret_rhs_modify_expr): Likewise.
540         * tree-sra.c (decide_instantiations): Mark all symbols in
541         SRA_CANDIDATES for renaming.
542         (mark_all_v_defs_1): Rename from mark_all_v_defs.
543         (mark_all_v_defs): New function.  Update all users to call it 
544         with the whole list of scalarized statements, not just the
545         first one.
546         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
547         (compute_flow_insensitive_aliasing): If the tag is
548         unmodifiable and the variable isn't or vice-versa, don't
549         make them alias of each other.
550         (setup_pointers_and_addressables): If the type tag for
551         VAR is about to change, mark the old one for renaming.
552         (add_type_alias): New.
553         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
554         (ccp_lattice_t): Rename from latticevalue.
555         (value): Remove.  Update all users.
556         (const_val): New local variable.
557         (do_store_ccp): New local variable.
558         (dump_lattice_value): Handle UNINITIALIZED.
559         (debug_lattice_value): New.
560         (get_default_value): Re-write.
561         (set_lattice_value): Re-write.
562         (def_to_varying): Remove.  Update all users.
563         (likely_value): Return VARYING for statements that make
564         stores when STORE_CCP is false.
565         Return VARYING for any statement other than MODIFY_EXPR,
566         COND_EXPR and SWITCH_EXPR.
567         (ccp_initialize): Re-write.
568         (replace_uses_in, replace_vuse_in, substitute_and_fold):
569         Move to tree-ssa-propagate.c.
570         (ccp_lattice_meet): Handle memory stores when
571         DO_STORE_CCP is true.
572         (ccp_visit_phi_node): Likewise.
573         (ccp_fold): Likewise.
574         (evaluate_stmt): Likewise.
575         (visit_assignment): Likewise.
576         (ccp_visit_stmt): Likewise.
577         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
578         into DO_STORE_CCP.
579         (do_ssa_ccp): New.
580         (pass_ccp): Use it.
581         (do_ssa_store_ccp): New.
582         (gate_store_ccp): New.
583         (pass_store_ccp): Declare.
584         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
585         (may_propagate_copy): Reformat.
586         Don't abort if ORIG is a virtual and DEST isn't.
587         If NEW does not have alias information but DEST does,
588         copy it.
589         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
590         copy_prop_kind, which_copy_prop): Declare.
591         (stmt_may_generate_copy, get_copy_of_val,
592         get_last_copy_of, set_copy_of_val, dump_copy_of,
593         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
594         copy_prop_visit_stmt, copy_prop_visit_phi_node,
595         init_copy_prop, fini_copy_prop, execute_copy_prop,
596         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
597         store_copy_prop): New.
598         (pass_copy_prop, pass_store_copy_prop): Declare.
599         * tree-ssa-dom.c (struct opt_stats_d): Add fields
600         'num_const_prop' and 'num_copy_prop'.
601         (cprop_operand): Update them.
602         (dump_dominator_optimization_stats): Dump them.
603         (tree_ssa_dominator_optimize): Call update_ssa instead of
604         rewrite_into_ssa.
605         (loop_depth_of_name): Declare extern.
606         (simplify_cond_and_lookup_avail_expr): Guard against NULL
607         values for LOW or HIGH.
608         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
609         (record_equivalences_from_stmt): Call expr_computes_nonzero.
610         (cprop_operand): Only propagate if VAL != OP.
611         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
612         statement for renaming.
613         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
614         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
615         add_type_alias if necessary.
616         Call mark_new_vars_to_rename.
617         (tree_ssa_iv_optimize): If new symbols need to be renamed,
618         mark every statement updated, call update_ssa and
619         rewrite_into_loop_closed_ssa.
620         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
621         from LIVEIN if VAR is a virtual.
622         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
623         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
624         (get_call_expr_operands): Reformat statement.
625         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
626         symbols.
627         * tree-ssa-propagate.c (ssa_prop_init): Initialize
628         SSA_NAME_VALUE for every name.
629         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
630         get_value_loaded_by): New.
631         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
632         substitute_and_fold): Move from tree-ssa-ccp.c.
633         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
634         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
635         get_value_loaded_by, replace_uses_in, substitute_and_fold):
636         Declare.
637         * tree-ssa.c (verify_use): Fix error message.
638         (propagate_into_addr, replace_immediate_uses, get_eq_name,
639         check_phi_redundancy, kill_redundant_phi_nodes,
640         pass_redundant_phi): Remove.  Update all users.
641         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
642         add_type_alias, if necessary.
643         * tree-vectorizer.h (struct _stmt_vect_info): Update
644         documentation for field 'memtag'.
645         * tree-vrp.c: New file.
646         * tree.def (ASSERT_EXPR): Define.
647         * tree.h (ASSERT_EXPR_VAR): Define.
648         (ASSERT_EXPR_COND): Define.
649         (SSA_NAME_VALUE_RANGE): Define.
650         (struct tree_ssa_name): Add field 'value_range'.
651         (PHI_REWRITTEN): Remove.
652         (struct tree_phi_node): Remove field 'rewritten'.
653         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
654         -ftree-store-copy-prop): Document.
655         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
656         Document usage of update_ssa.
657
658 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
659
660         PR target/20814
661         * config/rs6000/predicates.md (altivec_register_operand): Accept
662         SUBREG. 
663         (and64_operand): Do not limit CONST_INT to mask64_operand.
664         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
665         (and_operand): Do not limit CONST_INT to mask_operand.
666
667 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
668
669         PR rtl-optimization/20466
670         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
671         for overlap of the address of each list member.
672         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
673
674 2005-04-08  Mike Stump  <mrs@apple.com>
675
676         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
677         
678         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
679         instead of 4.
680
681 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
682
683         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
684
685         * function.c (push_function_context_to): Don't set
686         contains_functions.
687         * function.h (function): Remove contains_functions.
688         (current_function_contains_functions): Remove.
689
690         * function.h (function): Remove instrument_entry_exit.
691         (current_function_instrument_entry_exit): Remove.
692
693         * function.h (nonlocal_labels): Remove.
694
695         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
696
697         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
698         (check_attr_value, write_attr_get, write_expr_attr_cache,
699         find_attr, make_internal_attr): Don't reference negative_ok or
700         unsigned_p.
701         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
702         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
703         (ATTR_STATIC): Adjust the value.
704
705         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
706
707 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
708
709         * config/s390/tpf.h (ASM_SPEC): Define.
710
711 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
712
713         * tree-flow.h: Remove the prototype for
714         redirect_immediate_uses.
715         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
716
717 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
718
719         * arm.c (arm_const_double_by_parts): New function.
720         * arm-protos.h (arm_const_double_by_parts): Add prototype.
721         * arm.md (define_split for 64-bit constants): Add another one.
722
723 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
724
725         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
726
727 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
728
729         * system.h: Revert last change.
730
731 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
732
733         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
734         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
735         (TARGET_SWITCHES): Delete.
736         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
737         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
738         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
739         * config/xtensa/xtensa.opt: New file.
740
741 2005-04-08  Ben Elliston  <bje@au.ibm.com>
742
743         * config/fp-bit.c: Include L_mul_tf in #endif comment.
744         * config/fp-bit.h: Tidy comments.
745
746 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
747
748         * system.h: Poison PARAMS.
749
750 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
751
752         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
753         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
754         (TARGET_SWITCHES): Delete.
755         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
756         * config/vax/vax.opt: New file.
757
758 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
759
760         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
761
762 2005-04-07  Ian Lance Taylor  <ian@airs.com>
763
764         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
765         define.
766         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
767         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
768         Likewise.
769
770 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
771
772         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
773         all immediate uses in PHI nodes.
774
775 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
776
777         * arm.c (arm_const_double_inline_cost): Handle any constant by
778         using gen_lowpart and gen_highpart_mode.
779         (note_invalid_constants): All constants in an RTX with a constraint
780         that permits memory are now pushed to the constant pool.
781         (output_move_double): Delete code to handle reg to reg and 
782         constant to reg moves.
783         (const_double_needs_minipool, output_mov_immediate): Delete.
784         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
785         CONST_INT and CONST_VECTOR.
786         * arm.md (ANY64): New mode macro.
787         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
788         (movdf_soft_insn): Split reg-reg and const-reg moves.
789         (split patterns for 64-bit constant and register moves): New.
790         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
791         (cirrus_movdf_hard_insn): Likewise.
792         * fpa.md (movdf_fpa): Likewise.
793         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
794         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
795         constraints.
796         (movv2si_internal_2): Likewise.
797         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
798         (movdf_vfp): Likewise.
799         * arm-protos.h (output_mov_immediate): Delete prototype.
800
801 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
802
803         PR target/20093
804         * simplify-rtx.c (simplify_unary_operation_1): Check
805         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
806
807 2005-04-06  James E Wilson  <wilson@specifixinc.com>
808
809         PR target/20717
810         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
811         ADDR_EXPR.
812
813 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
814
815         * coverage.h (GCOV_TYPE_NODE): Delete.
816         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
817         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
818         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
819         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
820         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
821
822 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
823
824         PR other/20792
825         * Makefile.in (gcc.pot): Remove options.c dependency.
826         * optc-gen.awk: Don't quote help strings with N_().
827
828 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
829
830         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
831         the function returns a pointer type.
832
833 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
834
835         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
836         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
837         * doc/invoke.texi: Documnet salias-max-implicit-fields.
838         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
839         explicit_uses members.
840         (get_or_create_used_part_for): Initialize new fields.
841         (fieldoff_compare): New function.
842         (create_overlap_variables_for): Count number of fields, use
843         heuristic to determine whether to create subvars for vars with
844         only implicit uses.
845         Sort the field list by offset and avoid creating duplicate SFT's.
846
847 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
848
849         * c.opt (-F): Remove trailing whitespace from help string.
850         (-finput-charset): Use a tab to separate the switch name and help
851         string.
852         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
853         (-ftree-vectorizer-verbose): Likewise.
854
855 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
856
857         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
858         a PHI argument where a use occurs instead of all PHI arguments.
859
860 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
861
862         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
863         scope.
864
865 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
866
867         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
868         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
869         config/bfin/bfin.h: Fix comment typos.
870
871 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
872
873         * doc/install.texi: Update the URL for Jacks.
874         * doc/sourcebuild.texi: Likewise.
875
876 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
877
878         PR target/17245
879         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
880         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
881
882 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
883
884         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
885
886 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
887
888         * config/v850/v850-protos.h (override_options): Delete.
889         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
890         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
891         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
892         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
893         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
894         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
895         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
896         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
897         (OVERRIDE_OPTIONS): Delete.
898         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
899         (small_memory_info): Remove the value field.
900         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
901         TARGET_NO_APP_REGS.
902         * config/v850/v850.c (small_memory): Remove the value field.
903         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
904         (override_options): Delete.
905         (v850_handle_memory_option, v850_handle_option): New functions.
906         * config/v850/v850.opt: New file.
907
908 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
909
910         * config.host: Add a section for generic hosts, and a subsection
911         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
912         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
913         * config/host-darwin.h: New.
914         * config/x-darwin: New.
915         * config/i386/host-i386-darwin.c: New.
916         * config/i386/x-darwin: New.
917         * config/rs6000/host-darwin.c: Include host-darwin.h.
918         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
919         (darwin_rs6000_gt_pch_use_address): Likewise.
920         * config/rs6000/x-darwin: Change name of .o built, update
921         dependencies for changes to rs6000/host-darwin.c.
922
923 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
924
925         PR target/17824
926         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
927
928 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
929
930         * tree-vect-analyze.c (vect_analyze_loop_form): Call
931         split_loop_exit_edge instead of loop_split_edge_with. 
932
933 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
934
935         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
936         UNSPEC_SET_VSCR): New constants, used throughout.
937         (*andc3_v4sf): New.
938         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
939         Replace with...
940         (altivec_vspltis<VI_char>): ... this pattern, using
941         a QImode const_int_operand for the immediate.
942         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
943         define_expands.
944
945 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
946
947         PR target/17822
948         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
949
950 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
951
952         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
953
954 2005-04-06  Ben Elliston  <bje@au.ibm.com>
955
956         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
957         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
958         macros as living in "this file" and not gcc.h.
959
960 2005-04-06  Ben Elliston  <bje@au.ibm.com>
961
962         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
963         -ftree-live_range_split.  Perhaps renamed at some point?
964
965 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
966
967         PR target/20625
968         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
969         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
970
971 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
972
973         * tree-flow.h (number_of_iterations_cond): Declaration removed.
974         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
975         (number_of_iterations_special): New function.
976         (number_of_iterations_exit): Use number_of_iterations_special.
977         Use simplify_using_outer_evolutions only at -O3.
978         (number_of_iterations_cond, tree_simplify_using_condition,
979         simplify_using_initial_conditions, loop_niter_by_eval,
980         compare_trees, can_count_iv_in_wider_type_bound,
981         simplify_using_outer_evolutions): Use fold_build.
982
983 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
984
985         * doc/install.texi (Configuration): Document --with-java-home.
986
987 2005-04-05  Richard Henderson  <rth@redhat.com>
988
989         PR target/20342
990         PR target/20447
991         * config/i386/i386.c (print_operand): Handle vector zeros.
992         (ix86_split_to_parts): Handle CONST_VECTOR.
993         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
994         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
995         what modes to tie for MMX and SSE registers.
996         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
997         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
998         to vector modes as well.
999         * config/i386/predicates.md (const0_operand): Handle VOIDmode
1000         properly as an input mode.
1001
1002 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
1003
1004         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
1005
1006 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
1007
1008         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
1009
1010 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
1011
1012         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
1013         and local functions, set sse_nregs to 8 and float_in_sse.
1014         (function_arg_advance, function_arg): If float_in_sse, pass
1015         SFmode and DFmode arguments in SSE registers.
1016         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
1017
1018         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
1019         of -funit-at-a-time.
1020
1021 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
1022
1023         * config/i386/i386-protos.h (ix86_function_value): Accept two
1024         arguments, like the target macro.
1025         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
1026         * config/i386/i386.c (ix86_function_value): Accept the second
1027         argument of the target macro.
1028         (ix86_function_ok_for_sibcall): Pass a function pointer to
1029         ix86_function_value.
1030         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
1031         call to ix86_value_regno).
1032         (ix86_value_regno): Add support for returning floating point values
1033         in SSE registers.
1034
1035 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
1036
1037         PR tree-optimization/20076
1038         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
1039         that call __builtin_return or __builtin_apply_args.
1040
1041 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
1042
1043         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
1044         Use immediate use iterator.
1045         (stmt_is_bumper_for_loop): Use immediate use iterator.
1046         * predict.c (strip_builtin_expect): Use update_stmt.
1047         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
1048         on all elements of a STATEMENT_LIST.
1049         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
1050         (bsi_remove): Remove imm_use links and mark the stmt as modified.
1051         (bsi_replace): Mark stmt as modified and the update it.
1052         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
1053         (expand_complex_libcal): Call update_stmt.
1054         (expand_complex_comparison): Call mark_stmt_modified.
1055         (expand_complex_operations_1): Call update_stmt_if_modified.
1056         (expand_vector_operations_1): Call mark_stmt_modified.
1057         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
1058         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
1059         add_immediate_use, redirect_immediate_use,
1060         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
1061         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
1062         (mark_new_vars_to_rename): Call update_stmt.
1063         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
1064         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.  
1065         Ignore PHI nodes.
1066         (unmodify_stmt): Delete.
1067         (update_stmt): New.  Force an update of a stmt.
1068         (update_stmt_if_modified): update a stmt if it is out of date.
1069         (get_stmt_operands): Verify stmt is NOT modified. 
1070         (stmt_modified_p): Update comment.
1071         (delink_imm_use): Remove a use node from its immuse list.
1072         (link_imm_use_to_list): Link a use node to a specific list.
1073         (link_imm_use): Link a node to the correct list.
1074         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
1075         it in the correct list, if appropriate.
1076         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
1077         (relink_imm_use): Link a use node in place of another node in a list.
1078         (relink_imm_use_stmt): LInk a node in place of another node, and set
1079         the stmt pointer.
1080         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
1081         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
1082         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
1083         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
1084         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
1085         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
1086         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
1087         (has_zero_uses): New.  Return true if there are no uses of a var.
1088         (has_single_use): New.  Return true if there is only a single use of a
1089         variable.
1090         (single_imm_use): New.  Return the simgle immediate use.
1091         (num_imm_uses): New.  Return the number of immediate uses.
1092         (get_v_must_def_ops): Use is now a pointer.
1093         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
1094         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of 
1095         the use node.
1096         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
1097         (delink_stmt_imm_use): Delink all immuses from a stmt.
1098         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
1099         * tree-flow.h (struct dataflow_d): Delete.
1100         (immediate_use_iterator_d): New.  Immediate use iterator struct.
1101         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
1102         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
1103         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe 
1104         iteration.
1105         (struct stmt_ann_d): Remove dataflow_t from struct.
1106         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
1107         (if_convertible_phi_p): Use FAST immuse iterator.
1108         (if_convertible_loop_p): Don't call compute_immediate_uses.
1109         (replace_phi_with_cond_modify_expr): Call update_stmt.
1110         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call 
1111         update_stmt_if_modified.
1112         (rewrite_all_into_ssa): Initialize ssa operands.
1113         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
1114         compute_immediate_uses.
1115         * tree-optimize.c (execute_todo): Call verify_ssa whenever the 
1116         ssa_property is available.
1117         (execute_one_pass):  Change parameters passed to execute_todo.
1118         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
1119         (remove_ssa_form): Call fini_ssa_operands.
1120         (insert_backedge_copies): Delete call to modify_stmt.
1121         * tree-phinodes.c (make_phi_node): Initialize use nodes.
1122         (release_phi_node): Delink any use nodes before releasing.
1123         (resize_phi_node): Relink any use nodes.
1124         (remove_phi_arg_num): Delink the use node.
1125         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
1126         (remove_all_phi_nodes_for): Release phi node first.
1127         * tree-pretty-print.c (dump_generic_node): Print stmt address.
1128         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
1129         (scalarize_use, scalarize_copy): Call update_stmt.
1130         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
1131         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
1132         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
1133         (ccp_initialize): Remove call to compute_immediate_uses.
1134         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
1135         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified 
1136         stmts.
1137         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
1138         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
1139         (eliminate_redundant_computations): Call mark_stmt_modified.
1140         (cprop_operand): Call mark_stmt_modified.
1141         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
1142         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
1143         (dse_optimize_stmt): Use new immuse interface.
1144         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
1145         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
1146         (substitute_single_use_vars): Use new immuse interface.
1147         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
1148         and compute_immediate_uses.
1149         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse 
1150         interface.
1151         (rewrite_mem_refs): Call update_stmt.
1152         (determine_lsm): Remove call to compute_imm_uses and free_df.
1153         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
1154         (try_unroll_loop_completely): Call update_stmt.
1155         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
1156         (rewrite_use_compare): Call update_stmt.
1157         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
1158         (rewrite_use) : Call update_stmt.
1159         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
1160         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call 
1161         update_stmt.
1162         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
1163         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
1164         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
1165         use nodes.
1166         (initialize_vuse_operand): New.  Initialize a vuse operand.
1167         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
1168         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
1169         (finalize_ssa_defs): Use stmt parameter.
1170         (correct_use_link): Ensure a use node is in the correct list, and has
1171         the correct stmt pointer.
1172         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
1173         finalize_ssa_v_must_defs): Also initialize use nodes.
1174         (finalize_ssa_stmt_operands): Pass extra stmt operands.
1175         (build_ssa_operands): Seperate parsing from final operand construction.
1176         (parse_ssa_operands): New.  Parse entry point for operand building.
1177         (swap_tree_operands): New.  Swap 2 tree operands.
1178         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
1179         operands.
1180         (get_expr_operands): Call swap_tree_operands when needed.
1181         (copy_virtual_operands): Use initialize routines for virtual use ops.
1182         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
1183         (verify_abort): New.  Issue imm_use error.
1184         (verify_imm_links): New Verify imm_use links for a var.
1185         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
1186         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
1187         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
1188         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
1189         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
1190         (NULL_USE_OPERAND_P) Define.
1191         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
1192         use node.
1193         (struct vuse_operand_type): New struct.
1194         (SET_USE): Call set_ssa_use_from_ptr.
1195         (USE_STMT): Define.
1196         (PHI_ARG_INDEX_FROM_USE): Define.
1197         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi 
1198         argument via SET_USE, not PHI_ARG_DEF_TREE.
1199         * tree-ssa-pre.c (eliminate): Call update_stmt.
1200         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
1201         call free_df.
1202         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
1203         (nearest_common_dominator_of_uses): Use imm_use iterator.
1204         (statement_sink_location): Use imm_use iterator and interface.
1205         (execute_sink_code): Don't call compute_immediate_uses or free-df.
1206         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
1207         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
1208         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
1209         (verify_ssa): Ensure no stmt is marked modify after optimization pass
1210         if new parameter is true.
1211         (init_tree_ssa): Don't initialize operand cache here.
1212         (delete_tree_ssa): Don't destroy operand cache here.
1213         (propagate_into_addr): Pass in a use pointer, return true if anything
1214         was changed.
1215         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
1216         (check_phi_redundancy): Use imm_use iterator.
1217         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or 
1218         free_df.
1219         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
1220         (release_ssa_name): Delink node and all elements in its imm_use list.
1221         * tree-tailcall.c (adjust_return_value): Call update_stmt.
1222         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
1223         * tree-vectorizer.c (need_imm_uses_for): Delete.
1224         (vectorize_loops): Dont call compute_immediate_uses or free_df.
1225         * tree.h (struct ssa_imm_use_d): Define.
1226         (SSA_NAME_IMM_USE_NODE): Define.
1227         (struct tree_ssa_name): Add imm_use node.
1228         (PHI_DF): Delete.
1229         (PHI_ARG_IMM_USE_NODE): Define.
1230         (struct phi_arg_d): Add imm_use node.
1231         (struct tree_phi_node): Remove struct dataflow_d element.
1232         (TDF_STMTADDR): Define.
1233
1234 2005-04-05  Dale Johannesen  <dalej@apple.com>
1235
1236         * doc/invoke.texi (Optimization Options):  Remove
1237         duplicate -fcse-follow-jumps.  Add -fweb.
1238         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
1239         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
1240
1241 2005-04-05  Per Bothner  <per@bothner.com>
1242
1243         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
1244         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
1245         (warn_uninit): Get EXPR_LOCUS from context now instead.
1246         This fixes a USE_MAPPED_LOCATION testsuite failure.
1247
1248         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
1249
1250 2005-04-05  Per Bothner  <per@bothner.com>
1251
1252         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
1253         of the artification 'return 0' in main() to BUILTINS_LOCATION.
1254         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
1255         before warning. 
1256
1257 2004-04-05  Devang Patel  <dpatel@apple.com>
1258
1259         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
1260         (lhsr<mode>3): ... new name.
1261         (altivec_vsra<VI_char>): Rename to ..
1262         (ashr<mode>3): ... new name.
1263         * config/rs6000/rs6000.c (builtin_description): Rename shift
1264         operations.
1265         
1266 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
1267
1268         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
1269         gen_lowpart_for_combine.
1270         * cse.c (gen_lowpart_if_possible): Move...
1271         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
1272         gen_lowpart_SUBREG.
1273         (gen_lowpart_no_emit_general): Use it.
1274
1275 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1276
1277         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
1278         overriding.
1279
1280 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
1281
1282         * system.h: Fix typo.
1283
1284 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1285
1286         * config/bfin/bfin-modes.def: New file.
1287         * config/bfin/bfin-protos.h: New file.
1288         * config/bfin/bfin.c: New file.
1289         * config/bfin/bfin.h: New file.
1290         * config/bfin/bfin.md: New file.
1291         * config/bfin/bfin.opt: New file.
1292         * config/bfin/crti.s: New file.
1293         * config/bfin/crtn.s: New file.
1294         * config/bfin/elf.h: New file.
1295         * config/bfin/lib1funcs.asm: New file.
1296         * config/bfin/predicates.md: New file.
1297         * config/bfin/t-bfin: New file.
1298         * config/bfin/t-bfin-elf: New file.
1299         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
1300         Document new attributes.
1301         (interrupt, interrupt_handler, saveall): Update documentation for
1302         these attributes.
1303         * doc/install.texi (Specific): Add entry for the Blackfin.
1304         * doc/invoke.texi (Blackfin Options): New section.
1305         * doc/md.texi (Blackfin family): New section to document constraints.
1306         * config.gcc: Add bfin*-* and bfin*-elf configurations.
1307
1308 2005-04-05  Olivier Hainque  <hainque@adacore.com>
1309         
1310         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
1311         match what the system unwinder expects.
1312         * config/mips/mips.c (mips_frame_set): If we're saving the return
1313         address register and the dwarf return address column number differs
1314         from the hard register number, adjust the note reg to refer to the
1315         former.
1316
1317 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
1318
1319         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
1320         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
1321         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1322         (processor_type): New enum.
1323         (mn10300_processor): New variable.
1324         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
1325         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
1326         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1327         (PROCESSOR_DEFAULT): New macro.
1328         * config/mn10300/mn10300.c (mn10300_processor): New variable.
1329         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1330         (mn10300_handle_option, mn10300_override_options): New functions.
1331         * config/mn10300/mn10300.opt: New file.
1332
1333 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1334             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
1335
1336         PR tree-optimization/19903
1337         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
1338         that don't fit in their type after conversion.
1339
1340 2005-04-05  Uros Bizjak <uros@kss-loka.si>
1341
1342         PR target/20421
1343         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
1344         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
1345         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
1346         flag here. Implement using define_insn_and_split.  
1347         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
1348         (frndintxf2_mask_pm_i387): New insn patterns.
1349         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
1350         Do not set ix86_optimize_mode_switching flag.
1351         (ceilsf2, ceildf2, ceilxf2): Same.
1352         (btruncsf2, btruncdf2, btruncxf2): Same.
1353         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
1354
1355 2005-04-05  Ian Lance Taylor  <ian@airs.com>
1356
1357         PR debug/9963
1358         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
1359         i386_pe_record_external_function.
1360         (i386_pe_record_external_function): Update declaration.
1361         * config/i386/winnt.c (struct extern_list): Add decl field.
1362         (i386_pe_record_external_function): Add decl parameter.
1363         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
1364         identifier.
1365         * config/i386/i386-protos.h (i386_pe_record_external_function):
1366         Update declaration.
1367
1368 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
1369
1370         * config/m68k/m68k-protos.h: Add a prototype for
1371         valid_dbcc_comparison_p_2.
1372         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
1373         extend_operator, const_uint32_operand, const_sint32_operand,
1374         general_src_operand, nonimmediate_src_operand,
1375         memory_src_operand, post_inc_operand, pre_dec_operand,
1376         pcrel_address): Move to predicates to predicates.md.
1377         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
1378         * config/m68k/m68k.md: Include predicates.md.
1379         * config/m68k/predicates.md: New.
1380
1381 2005-04-04  Roger Sayle  <roger@eyesopen.com>
1382
1383         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
1384
1385         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
1386
1387 2005-04-04  Ian Lance Taylor  <ian@airs.com>
1388
1389         * c-typeck.c (struct c_switch): Rename switch_stmt field to
1390         switch_expr.
1391         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
1392         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
1393         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
1394         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
1395         * c-common.c (c_do_switch_warnings_1): New static function broken
1396         out of c_do_switch_warnings.
1397         (c_do_switch_warnings): Call c_do_switch_warnings_1.
1398         (c_do_switch_expr_warnings): New function.
1399         * c-common.h (c_do_switch_expr_warnings): Declare.
1400
1401 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
1402             Daniel Jacobowitz  <dan@codesourcery.com>
1403
1404         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
1405         trapping divide.
1406         * rtlanal.c (may_trap_p): Same.
1407
1408 2005-04-04  Dale Johannesen  <dalej@apple.com>
1409
1410         * ChangeLog:  remove reference to ChangeLog.12.
1411
1412 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
1413
1414         CRIS epilogue as RTL.
1415         * config/cris/cris.md: Change all 0 in unspec 0 to
1416         CRIS_UNSPEC_PLT.
1417         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
1418         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
1419         patterns.
1420         ("return"): Change to define_expand.  Call cris_expand_return for
1421         actual expansion.
1422         ("*return_expanded"): New pattern.
1423         ("epilogue"): New define_expand.
1424         * config/cris/cris.h (PREDICATE_CODES): Add
1425         cris_load_multiple_op.
1426         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
1427         type.
1428         (enum cris_retinsn_type): New.
1429         (struct machine_function): New member return_type.
1430         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
1431         (cris_target_asm_function_epilogue): Remove, moving RTLified
1432         contents to...
1433         (cris_expand_epilogue): New function.
1434         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
1435         (cris_gen_movem_load, cris_load_multiple_op)
1436         (cris_return_address_on_stack_for_return, cris_expand_return): New
1437         functions.
1438         (cris_target_asm_function_prologue)
1439         (cris_initial_frame_pointer_offset): Call
1440         cris_reg_saved_in_regsave_area instead of complicated expression.
1441         Call cris_return_address_on_stack instead of an expression.
1442         (cris_print_operand) <case 'o', case 'O'>: New cases.
1443         (cris_return_address_on_stack): Change return-type to bool.
1444         (cris_simple_epilogue): Ditto.  Return false if registers are
1445         saved.
1446         * config/cris/cris-protos.h (cris_simple_epilogue)
1447         (cris_return_address_on_stack): Adjust prototype return type.
1448         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
1449         (cris_return_address_on_stack_for_return): New prototypes.
1450
1451 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
1452
1453         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
1454         gpr_or_int12_operand.
1455
1456         * config/frv/frv-protos.h: Add a prototype to
1457         frv_legitimate_memory_operand and frv_const_unspec_p.
1458         (frv_unspec): Move from frv.c.
1459         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
1460         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
1461         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
1462         gpr_or_fpr_operand, gpr_or_int12_operand,
1463         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
1464         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
1465         int6_operand, int5_operand, uint5_operand, uint4_operand,
1466         uint1_operand, int_2word_operand, uint16_operand,
1467         upper_int16_operand, integer_register_operand,
1468         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
1469         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
1470         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
1471         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
1472         move_destination_operand, movcc_fp_destination_operand,
1473         frv_function_symbol_referenced_p, move_source_operand,
1474         condexec_dest_operand, condexec_source_operand,
1475         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
1476         const_unspec_operand, gpr_or_memory_operand,
1477         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
1478         icc_operand, fcc_operand, cc_operand, icr_operand,
1479         fcr_operand, cr_operand, call_operand, sibcall_operand,
1480         symbolic_operand, relational_operator,
1481         integer_relational_operator, float_relational_operator,
1482         ccr_eqne_operator, minmax_operator,
1483         condexec_si_binary_operator, condexec_si_media_operator,
1484         condexec_si_divide_operator, condexec_si_unary_operator,
1485         condexec_sf_conv_operator, condexec_sf_add_operator,
1486         condexec_memory_operand, intop_compare_operator, acc_operand,
1487         even_acc_operand, quad_acc_operand, accg_operand: Move to
1488         predicates.md.
1489         * config/frv/frv.h (PREDICATE_CODES): Remove.
1490         * config/frv/frv.md: Include predicates.md.
1491         * config/frv/predicates.md: New.
1492
1493 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
1494
1495         PR target/19537
1496         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
1497         * tree-ssa-loop-ivopts.c: Include langhooks.h.
1498         (add_standard_iv_candidates_for_size): New function, extracting code
1499         from add_standard_iv_candidates and parameterizing it by type size.
1500         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
1501
1502 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
1503
1504         * system.h (GCOV_SIZE_TYPE): Unposion.
1505         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
1506         (GCOV_TYPE_SIZE): ...this new macro.
1507         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
1508         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
1509         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
1510         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
1511         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
1512         instead of unsigned_intSI_type_node.
1513         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
1514         (rtl_gen_one_value_profiler_no_edge_manipulation)
1515         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
1516         * value-prof.c: Include coverage.h.
1517
1518 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
1519             Diego Novillo <dnovillo@redhat.com>
1520             
1521         Fix PR tree-optimization/20703
1522         Fix PR tree-optimization/20725
1523         
1524         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
1525         (create_expression_by_pieces): Ditto.
1526         (valid_in_set): Ditto. Also handle tcc_declaration.
1527         (find_or_generate_expression): Handle comparison class.
1528         (insert_into_preds_of_block): Ditto.
1529         (insert_aux): Ditto.
1530         (create_value_expr_from): Handle comparison class, recursively
1531         handle reference nodes.
1532         (compute_avail): Handle comparison classes, rewrite a little cleaner.
1533         (execute_pre): Fix spacing.
1534         (do_fre): Renamed to execute_fre.
1535
1536 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1537
1538         * doc/invoke.texi (SPARC options): Document that
1539         -mlittle-endian is not supported on Linux either.
1540
1541 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1542
1543         PR target/4198
1544         PR target/12027
1545         * config.gcc (Obsolete configurations): Remove
1546         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
1547         (sparclite-*-coff*): Delete.
1548         (sparclite-*-elf*): Likewise.
1549         (sparc86x-*-elf*): Likewise.
1550         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
1551         * config/sparc/lite.h: Delete.
1552         * config/sparc/litecoff.h: Likewise.
1553         * config/sparc/liteelf.h: Likewise.
1554         * config/sparc/sp86x-elf.h: Likewise.
1555         * config/sparc/t-sparclite: Likewise.
1556         * config/sparc/t-sp86x: Likewise.
1557
1558 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
1559
1560         * config/s390/s390-protos.h: (s390_comparison,
1561         s390_alc_comparison, s390_slb_comparison, const0_operand,
1562         consttable_operand, larl_operand, s_operand,
1563         shift_count_operand, bras_sym_operand, load_multiple_operation,
1564         store_multiple_operation, s390_plus_operand): Remove prototypes.
1565         (s390_legitimate_address_without_index_p): New prototype.
1566         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
1567         to s390.h.
1568         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
1569         const0_operand, consttable_operand, larl_operand, s_operand,
1570         shift_count_operand, bras_sym_operand, load_multiple_operation,
1571         store_multiple_operation, s390_plus_operand): Move to
1572         predicates.md.
1573         (check_mode): Remove.
1574         (s390_branch_condition_mask): Remove 'static'. Move prototype to
1575         s390-protos.h.
1576         (s390_legitimate_address_without_index_p): New.
1577         * config/s390/s390.h (PREDICATE_CODES): Remove.
1578         * config/s390/s390.md: Include predicates.md.
1579         * config/s390/predicates.md: New.
1580
1581 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1582
1583         PR target/20446
1584         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
1585         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
1586         (NEED_INDICATE_EXEC_STACK): Define to 1.
1587         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
1588         (NEED_INDICATE_EXEC_STACK): Define to 1.
1589         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
1590         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
1591         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
1592         (pic_helper_emitted_p): New global.
1593         (emit_pic_helper): New function extracted from...
1594         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
1595         Do not call emit_pic_helper if delay_pic_helper is true.
1596         (sparc_expand_prologue): Pass 'false' to load_pic_register.
1597         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
1598         (sparc_file_end): New function.
1599
1600 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
1601
1602         * config/mcore/mcore-protos.h: Remove the prototypes for
1603         mcore_arith_reg_operand, mcore_general_movsrc_operand,
1604         mcore_general_movdst_operand, mcore_reload_operand,
1605         mcore_arith_J_operand, mcore_arith_K_operand,
1606         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
1607         mcore_arith_K_S_operand, mcore_arith_imm_operand,
1608         mcore_arith_any_imm_operand, mcore_arith_O_operand,
1609         mcore_literal_K_operand, mcore_addsub_operand,
1610         mcore_compare_operand, mcore_load_multiple_operation,
1611         mcore_store_multiple_operation, mcore_call_address_operand.
1612         Add a prototype for const_ok_for_mcore.
1613         * config/mcore/mcore.c (mcore_call_address_operand,
1614         mcore_general_movsrc_operand, mcore_general_movdst_operand,
1615         mcore_arith_reg_operand, mcore_reload_operand,
1616         mcore_arith_J_operand, mcore_arith_K_operand,
1617         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
1618         mcore_arith_M_operand, mcore_arith_imm_operand,
1619         mcore_arith_any_imm_operand, mcore_arith_O_operand,
1620         mcore_literal_K_operand, mcore_addsub_operand,
1621         mcore_compare_operand, mcore_load_multiple_operation,
1622         mcore_store_multiple_operation): Move to predicates.md.
1623         (const_ok_for_mcore): Export.
1624         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
1625         * config/mcore/mcore.md: Include predicates.md.
1626         * config/mcore/predicates.md: New.
1627
1628         * config/mcore/predicates.md: Fix a comment typo.
1629
1630 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
1631             Adrian Straetling  <straetling@de.ibm.com>
1632
1633         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
1634         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
1635         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
1636         attribute.
1637         ("imul"): Removed from "type" attribute.
1638         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
1639         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"): 
1640         Changed type to imulsi.
1641         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
1642
1643 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
1644
1645         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
1646         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
1647         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
1648         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
1649         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
1650         (TARGET_SWITCHES, mcore_stack_increment_string)
1651         (TARGET_OPTIONS): Delete.
1652         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
1653         than *_BIT constants.
1654         (TARGET_8ALIGN): #undef old definition before redefining to 1.
1655         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
1656         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
1657         (mcore_override_options): Delete mcore_stack_increment code.
1658         Change use of M340_BIT to MASK_M340.
1659         * config/mcore/mcore.opt: New file.
1660
1661 2005-04-04  Ian Lance Taylor  <ian@airs.com>
1662
1663         * config/arm/arm.c (replace_symbols_in_block): Remove static
1664         function.
1665
1666 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
1667
1668         * config/fr30/fr30-protos.h: Remove the prototypes for
1669         stack_add_operand, add_immediate_operand,
1670         high_register_operand, low_register_operand, call_operand,
1671         di_operand, and nonimmediate_di_operand.
1672         * config/fr30/fr30.c (stack_add_operand,
1673         add_immediate_operand, high_register_operand,
1674         low_register_operand, call_operand, di_operand,
1675         nonimmediate_di_operand): Move to predicates.md.
1676         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
1677         * config/fr30/fr30.md: Include predicates.md.
1678         * config/fr30/predicates.md: New.
1679
1680         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
1681         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
1682         mcore_call_address_operand.
1683
1684         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
1685         general_movsrc_operand.
1686
1687 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
1688
1689         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
1690         after freeing.
1691
1692 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
1693
1694         PR target/14812
1695         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
1696         a negated value.
1697
1698 2005-04-04  Richard Henderson  <rth@redhat.com>
1699             Jakub Jelinek  <jakub@redhat.com>
1700
1701         PR rtl-optimization/16104
1702         * fold-const.c (fold_unary): Fix folding of vector conversions.
1703
1704 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
1705
1706         * config.gcc (xstormy16-*-elf): Set extra_options.
1707         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
1708         * config/stormy16/stormy16.opt: New file.
1709
1710 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
1711
1712         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
1713         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
1714         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
1715         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
1716         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
1717         (TARGET_UNIX_ASM): Delete.
1718         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
1719         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
1720         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
1721         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1722         * config/pdp11/pdp11.opt: New file.
1723
1724 2005-04-03  Roger Sayle  <roger@eyesopen.com>
1725             Alexandre Oliva  <aoliva@redhat.com>
1726
1727         PR c++/19199
1728         * fold-const.c (non_lvalue): Split tests into...
1729         (maybe_lvalue_p): New function.
1730         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
1731         C++ front-end prior to lowering into gimple form.
1732
1733 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1734
1735         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
1736         BUILT_IN_STRNCASECMP): New.
1737         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
1738         and strndup.
1739
1740 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
1741
1742         PR target/14812
1743         * arm.md (addsi3_compare0_for_combiner): Delete.
1744         (addsi3_compare0_scratch_for_combiner): Delete.
1745         (cmpsi_neg_shiftsi): Delete.
1746         (compare_negsi_si): New pattern.
1747         (cmpsi_negshiftsi_si): New pattern.
1748         (negated_cbranchsi4): Restrict to equality_operator.
1749         
1750         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
1751         template.
1752
1753 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
1754
1755         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
1756         Fix comment typos.
1757
1758         * doc/install.texi: Fix a typo.
1759
1760 2005-04-03  Steven Bosscher  <stevenb@suse.de>
1761
1762         PR middle-end/20648
1763         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
1764         a computed goto if the edge to the computed goto block has
1765         incoming abnormal edges.  Clarify how the function works.
1766
1767 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
1768
1769         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
1770         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
1771         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
1772         hash_scan_set, reg_set_between_after_reload_p,
1773         reg_used_between_after_reload_p, get_avail_load_store_reg,
1774         eliminate_partially_redundant_load): Likewise.
1775         * postreload.c (reload_cse_simplify_set,
1776         reload_combine_note_use): Likewise.
1777         * predict.c (predict_insn, expected_value_to_br_prob,
1778         propagate_freq, expensive_function_p): Likewise.
1779         * print-rtl.c (print_rtx): Likewise.
1780         * profile.c (instrument_edges, instrument_values,
1781         compute_branch_probabilities, branch_prob, union_groups,
1782         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
1783         * protoize.c (in_system_include_dir, file_could_be_converted,
1784         file_normally_convertible, gen_aux_info_file, seek_to_line,
1785         do_cleaning): Likewise.
1786         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
1787         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
1788         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1789
1790 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
1791
1792         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
1793         * modulo-sched.c (undo_replace_buff_elem): New structure.
1794         (kernel_number_of_cycles, ps_unschedule_node,
1795         undo_generate_reg_moves,free_undo_replace_buff,
1796         undo_permute_partial_schedule,  loop_single_full_bb_p,
1797         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
1798         build_loops_structure, get_sched_window): New.
1799         (generate_reg_moves): Return undo_replace_buff_elem and other
1800         fixes.
1801         (generate_prolog_epilog): Remove old loop versioning.
1802         (sms_schedule): Use loop information and loop_version.
1803         (sms_schedule_by_order): Split part of it to get_sched_window.
1804         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
1805         cfg_layout_finalize and free_dominance_info before/after SMS.
1806
1807 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
1808
1809         * cfghooks.c (lv_flush_pending_stmts,
1810         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
1811         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
1812         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
1813         lv_add_condition_to_bb,
1814         lv_adjust_loop_header_phi, extract_cond_bb_edges,
1815         flush_pending_stmts): New in cfg_hooks structure.
1816         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
1817         extract_cond_bb_edges, lv_adjust_loop_header_phi,
1818         lv_add_condition_to_bb): New declarations.
1819         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
1820         bool.
1821         (loop_version): Declare.
1822         * cfgloopmanip.c (cfghooks.h): Include.
1823         (duplicate_loop_to_header_edge): Change return type to bool.
1824         (loop_version, lv_adjust_loop_entry_edge): Move here.
1825         * cfgrtl.c (cfgloop.h): Include.
1826         (rtl_verify_flow_info_1): Fix.
1827         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
1828         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
1829         initialization.
1830         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
1831         tree_lv_add_condition_to_bb): New.
1832         (tree_cfg_hooks): Add new hooks to initialization.
1833         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
1834         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
1835
1836 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
1837
1838         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
1839         xstormy16_below100_or_register,
1840         xstormy16_splittable_below100_or_register, and
1841         nonimmediate_nonstack_operand.
1842
1843         * config/stormy16/stormy16-protos.h: Remove the prototypes for
1844         xstormy16_ineqsi_operator, equality_operator,
1845         inequality_operator, shift_operator,
1846         xstormy16_below100_operand, xstormy16_below100_or_register,
1847         xstormy16_splittable_below100_or_register,
1848         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
1849         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
1850         equality_operator, inequality_operator,
1851         xstormy16_below100_operand, xstormy16_below100_or_register,
1852         xstormy16_splittable_below100_or_register,
1853         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
1854         nonimmediate_nonstack_operand, shift_operator): Move to
1855         predicates.md.
1856         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
1857         * config/stormy16/stormy16.md: Include predicates.md.
1858         * config/stormy16/predicates.md: New.
1859
1860 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1861
1862         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
1863         small_int, large_int, reg_or_0_operand, simple_memory_operand,
1864         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
1865         move_operand, power_of_2_operand): Move to predicates.md.
1866         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
1867         PREDICATE_CODE): Remove.
1868         * config/iq2000/iq2000.md: Include predicates.md.
1869         * config/iq2000/predicates.md: New.
1870
1871 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
1872
1873         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
1874         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
1875         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
1876         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
1877         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
1878         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
1879         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
1880         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1881         (TARGET_M68HC11): Delete.
1882         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
1883         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
1884         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
1885         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1886         (nb_soft_regs): Delete.
1887         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
1888         (m68hc11_override_options): Remove the code that caters for MASK_M6811
1889         and MASK_M6812 being set simultaneously.  Change the code that sets
1890         the default m68hc11_soft_reg_count to use integers instead of strings.
1891         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
1892         m68hc11_soft_reg_count (which now has an int type) as the number
1893         of soft registers.
1894         * config/m68hc11/m68hc11.opt: New file.
1895
1896 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1897
1898         * config/fr30/fr30.h (PREDICATE_CODES): Remove
1899         fp_displacement_operand, sp_displacement_operand.
1900
1901         * config/m68hc11/m68hc11-protos.h: Add a prototype for
1902         m68hcc_auto_inc_p.
1903         Remove the prototypes for tst_operand, cmp_operand,
1904         stack_register_operand, d_register_operand,
1905         hard_addr_reg_operand, splitable_operand,
1906         m68hc11_logical_operator, m68hc11_arith_operator,
1907         m68hc11_non_shift_operator, m68hc11_shift_operator,
1908         m68hc11_unary_operator, m68hc11_eq_compare_operator,
1909         non_push_operand, hard_reg_operand, and
1910         reg_or_some_mem_operand.
1911         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
1912         extern.
1913         (tst_operand, cmp_operand, non_push_operand,
1914         splitable_operand, reg_or_some_mem_operand,
1915         stack_register_operand, d_register_operand,
1916         hard_addr_reg_operand, hard_reg_operand,
1917         m68hc11_eq_compare_operator, m68hc11_logical_operator,
1918         m68hc11_arith_operator, m68hc11_non_shift_operator,
1919         m68hc11_shift_operator, m68hc11_unary_operator): Move to
1920         predicates.md.
1921         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
1922         * config/m68hc11/m68hc11.md: Include predicates.md.
1923         * config/m68hc11/predicates.md: New.
1924
1925 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1926
1927         PR debug/19345
1928         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
1929         change checked in along with 2005-03-03's patch for debug/20253.
1930         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
1931         (remap_decl): Insert type decl in map earlier.
1932
1933 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1934
1935         PR tree-optimization/20640
1936         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
1937         post-dominator if it has phi nodes.
1938         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
1939         before dead statements.
1940
1941 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1942
1943         PR middle-end/20491
1944         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
1945
1946 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1947
1948         PR rtl-optimization/20290
1949         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
1950         in every iteration if the entry point is the exit test.
1951
1952 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
1953
1954         * config/cris/cris.md (attribute "length"): Define.
1955
1956 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
1957
1958         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
1959         (word_offset_memref_operand): New.
1960         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
1961         (indexed_or_indirect_operand): Delete.
1962         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
1963         (indexed_or_indirect_operand): Delete.
1964
1965         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
1966
1967         PR 20650
1968         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
1969         a register.
1970
1971         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
1972         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
1973
1974 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1975
1976         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
1977
1978 2005-04-01  Ian Lance Taylor  <ian@airs.com>
1979
1980         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
1981         (rus, prus): Remove static variables.
1982         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
1983         (process_command): Permit report_times and use_pipes together.
1984
1985 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1986
1987         * c-decl.c (validate_proto_after_old_defn): Look at
1988         TYPE_MAIN_VARIANT of argument types.
1989
1990 2005-04-01  Paul Brook  <paul@codesourcery.com>
1991
1992         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
1993         (arm_output_function_epilogue): Allow call_via_SP.
1994         (thumb_call_via_reg, arm_file_end): Ditto.
1995         * config/arm/arm.h (struct machine_function): Include space for SP.
1996         (thumb_call_via_label): Update declaration.
1997
1998 2005-04-01  Ian Lance Taylor  <ian@airs.com>
1999
2000         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
2001         doing a peephole optimization, once again put any notes in the
2002         proper position.
2003
2004 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2005
2006         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
2007
2008 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
2009
2010         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
2011         (block_alloc, find_free_reg): Likewise.
2012         * loop-doloop.c (doloop_modify): Likewise.
2013         * loop-invariant.c (record_use): Likewise.
2014         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
2015         get_iv_value, canon_condition, eliminate_implied_condition,
2016         eliminate_implied_condition, simplify_using_initial_values,
2017         shorten_into_mode, canonicalize_iv_subregs,
2018         iv_number_of_iterations): Likewise.
2019         * loop-unroll.c (expand_var_during_unrolling): Likewise.
2020         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
2021         unswitch_loop): Likewise.
2022         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
2023         move_movables, replace_call_address, find_and_verify_loops,
2024         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
2025         record_giv, final_giv_value, general_induction_var,
2026         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
2027         loop_giv_dump): Likewise.
2028
2029         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
2030         GCOV_CHECK_WRITING): Remove.
2031         (gcov_position, gcov_rewrite): Use gcc_assert.
2032         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
2033         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
2034         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
2035         gcc_assert.
2036
2037 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2038
2039         * tree-inline.c: Fix a typo.
2040
2041 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
2042
2043         * configure.ac (enable-checking): Explicitly set all variables for
2044         collective switch values.  Alphabetize variables. Rename
2045         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
2046         synonym for 'no'.
2047         * doc/install.texi (enable-checking): Update documentation.
2048         * configure: Rebuilt.
2049
2050 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2051
2052         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
2053         possible.
2054
2055 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
2056
2057         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
2058         Also reject cases where this pattern will cause load delay stalls
2059         unless optimizing for size and it will produce a shorter sequence.
2060         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
2061         variants to avoid pre-adjusting the base when possible.
2062
2063 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
2064
2065         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
2066         the frame and argument pointers.
2067         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
2068         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
2069         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
2070         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
2071         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
2072         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
2073
2074 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
2075
2076         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
2077         with entry for selectany attribute.
2078         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
2079         Declare.
2080         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
2081         (i386_pe_asm_named_section): Handle sections generated by
2082         selectany attribute.
2083         * doc/extend.texi (selectany): Document attribute.
2084
2085 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
2086             Jan Hubicka  <jh@suse.cz>
2087
2088         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
2089         to fix addresses involving EBP and ESP.
2090         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
2091         for SUBREGed registers.
2092         (legitimate_address_p): Accept SUBREGed registers.
2093
2094 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
2095
2096         PR c++/19406
2097         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
2098         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
2099         for FIELD_DECLs.
2100
2101 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2102
2103         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
2104
2105 2005-04-01  James E Wilson  <wilson@specifixinc.com>
2106
2107         PR c++/20505
2108         * dwarf2out.c (rtl_for_decl_init): New function.
2109         (rtl_for_decl_location): Extracted from here.
2110         (tree_add_const_value_attribute): Call rtl_for_decl_init and
2111         add_const_value_attribute.  Delete initializer_constant_valid_p call.
2112
2113 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2114
2115         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
2116         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
2117         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
2118         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
2119         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
2120         config/i386/i386.md, config/rs6000/predicates.md,
2121         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
2122         config/s390/s390.c, config/stormy16/stormy16.c,
2123         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
2124         typos.
2125
2126 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
2127
2128         PR c/17855
2129         * gimplify.c (gimplify_expr): Create a temporary for lvalue
2130         COND_EXPR and CALL_EXPR.
2131
2132 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2133
2134         PR target/20632
2135         * genautomata.c (first_cycle_unit_presence): Check all alternative
2136         states for unit presence.
2137
2138         * doc/md.texi: Remove remark about impossibility to query unit
2139         presence in non nondeterministic automaton state.
2140         
2141         * config/ia64/ia64.c (get_template): Change order of unit querying.
2142
2143 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2144
2145         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
2146         obsolete comment.
2147
2148 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
2149
2150         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
2151         flag for edges outside any loops.
2152
2153 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
2154
2155         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
2156
2157 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2158
2159         * tree-ssa-alias.c: Follow spelling conventions.
2160         * doc/tree-ssa.texi: Fix a typo.
2161
2162 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
2163
2164         * postreload-gcse.c: Include target.h.
2165         (gcse_after_reload_main): Return early if we cannot modify jumps.
2166         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
2167
2168 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
2169
2170         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
2171         expensive operations.
2172
2173 2005-03-31  Ian Lance Taylor  <ian@airs.com>
2174
2175         * collect2.c (lderrout): New variable.
2176         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
2177         if it is set, to stderr.
2178         (handler): Unlink lderrout if it is set.
2179         (dump_file): Add "to" parameter.  Change all callers.
2180         (main): Initialize lderrout.
2181         (collect_execute): Add errname parameter.  Change all callers.
2182         Rename redir parameter to outname.  Never pass
2183         PEX_STDERR_TO_STDOUT to pex_run.
2184         * collect2.h (collect_execute, dump_file): Update declarations.
2185         * tlink.c (tlink_execute): Add errname parameter.  Change all
2186         callers.
2187         (do_tlink): Check lderrout as well as ldout.
2188
2189 2005-03-31  Caroline Tice  <ctice@apple.com>
2190
2191         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
2192         (bb-reorder.o): Add errors.h to list of requirements.
2193         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
2194         profiledbootstrap flags.
2195         * bb-reorder.c (errors.h): Add new include.
2196         (struct bbro_basic_block_data_def): Add new field, in_trace.
2197         (add_unlikely_executed_notes):  Remove function.
2198         (mark_bb_for_unlikely_executed_section): Remove function.
2199         (insert_section_boundary_note): New function.
2200         (verify_hot_cold_block_grouping): New function.
2201         (push_to_next_round_p): Remove variables and tests that push all
2202         cold blocks to last round.
2203         (find_traces): Remove code that added extra round of trace finding
2204         when doing partitioning.
2205         (find_traces_1_round) :  Remove variable last_round;  add code to 
2206         update new struct field, in_trace; correct trace_length where it was 
2207         incorrect before (after call to copy_bb); change code that pushed all 
2208         cold blocks to last round. Instead verify that all blocks going into 
2209         a trace belong in the same partition.
2210         (connect_traces): Modify to connect the traces in two passes, if the
2211         function contains both hot and cold blocks.  The first pass connects 
2212         all the traces for blocks in the partition that the first block in 
2213         the function belongs to; the second pass connnects all the traces 
2214         containing blocks that belong in the other partition.
2215         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
2216         code that automatically put the first block in a function into the
2217         hot partition if the function had any hot blocks.
2218         (fix_crossing_unconditional_branches): Check number of succ edges 
2219         before attempting to get one.
2220         (fix_edges_for_rarely_executed_code):  Update comment describing
2221         function.
2222         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
2223         remove call to add_unlikely_executed_notes; add call to 
2224         verify_hot_cold_block_grouping.
2225         (duplicate_computed_gotos): Don't change computed goto if it's a 
2226         crossing edge.
2227         (partition_hot_cold_basic_blocks):  Update function comment.
2228         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from 
2229         condition.
2230         (try_forward_edges): Likewise.
2231         (merge_blocks_move_predecessor_nojumps): Likewise.
2232         (merge_blocks_move_successor_nojumps): Likewise.
2233         (merge_blocks_move): Likewise.
2234         (try_crossjump_bb): Likewise.
2235         * cfglayout.c (update_unlikely_executed_notes): Remove function.
2236         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
2237         notes to cold bb's; remove call to update_unlikely_executed_notes.
2238         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2239         NOTE_INSN_SWITCH_TEXT_SECTIONS.
2240         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
2241         function declaration.
2242         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
2243         from consideration.
2244         (rtl_can_merge_blocks): Remove redundancy from condition.
2245         (try_redirect_by_replacing_jump): Likewise.
2246         (force_nonfallthru_and_redirect): Remove code for adding
2247         UNLIKELY_EXECUTED_CODE notes to cold bb's.
2248         (commit_one_edge_insertion): Likewise.
2249         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
2250         * dbxout.c (FORCE_TEXT): Replace function_section with 
2251         current_function_section.
2252         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
2253         function, switch_text_section.
2254         (struct xcoff_debug): Likewise.
2255         (dbxout_function_end): Add code to put out label diffs for both
2256         hot and cold sections.
2257         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
2258         for new debug_hooks funciton, switch_text_section..
2259         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
2260         switch_text_section.
2261         * dwarf2out.c (struct dw_fde_struct):  Add five new fields: 
2262         dw_fde_hot_section_label, dw_fde_hot_section_end_label, 
2263         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and 
2264         dw_fde_switched_sections.
2265         (output_call_frame_info):  Add test to see if function switches text
2266         sections in the middle; if so, use appropriate extra hot and cold 
2267         section labels to compute size deltas for the hot and cold sections.
2268         (dwarf2out_begin_prologue): Add code to initialize new fields in 
2269         dw_fde_struct.
2270         (dwarf2out_switch_text_section): New function (invoked through 
2271         debug_hook); updates new fields in dw_fde_struct appropriately and
2272         increments separate_line_info_table_in_use.
2273         (dwarf2_debug_hooks): Initialize switch_text_section function to be
2274         dwarf2out_switch_text_section.
2275         (struct var_loc_node): Add new field, section_label.
2276         (output_aranges): Add code to check whether in hot or cold section and
2277         use the appropriate label in calculating deltas.
2278         (output_ranges): Likewise.
2279         (output_line_info): Add code to check which section we're in and
2280         use appropriate hot/cold label.
2281         (add_location_or_constant_value_attribute): Likewise.
2282         (gen_subprogam_die): Modify arange attributes to use correct labels.
2283         (dwarf2out_begin_block): Change call to function_section into call to
2284         current_function_section.
2285         (dwarf2out_end_block): Likewise.
2286         (dwarf2out_source_line): Likewise.
2287         (dwarf2out_var_location): Add code to check whether in hot or cold 
2288         section and use the appropriate label.
2289         * except.c (output_function_exception_table): Change call to 
2290         function_section into call to current_function_section.
2291         * final.c (profile_function): Likewise.
2292         (scan_ahead_for_unlikely_executed_note): Remove function.
2293         (final_scan_insn):  Remove calls to 
2294         scan_ahead_for_unlikely_executed_note, and related code for switching 
2295         to cold section, except for the single time 
2296         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to 
2297         debug_hooks->switch_text_sections; replace appropriate calls to 
2298         function_section with calls to current_function_section.
2299         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add 
2300         test_bb to condition.
2301         (find_if_case_2): Likewise.
2302         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2303         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
2304         * opts.c (decode_options): Change warning about hot/cold partitioning
2305         with exceptionss to inform (so as not to cause bootstrap failures);
2306         remove warning about partitioning with DWARF debug info.
2307         * output.h (current_function_section): Add new function decl.
2308         (insert_section_boundary_note): Likewise.
2309         (enum in_section): Move this declaration here from varasm.c.
2310         (unlikely_section_label): Likewise.
2311         (unlikely_text_section_name): Likewise.
2312         (last_text_section_name): New global variable.
2313         (last_text_section): Likewise.
2314         (hot_section_label): Likewise.
2315         (hot_section_end_label): Likewise.
2316         (cold_section_end_label): Likewise.
2317         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
2318         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
2319         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
2320         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note 
2321         insn from consideration.
2322         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function, 
2323         switch_text_section.
2324         * varasm.c (basic-block.h): Add new include.
2325         (unlikely_section_label_printed): Remove global variable.
2326         (unlikely_section_label): Make global variable not be static any more.
2327         (unlikely_text_section_name): Likewise.
2328         (hot_section_end_label): New global variable (not static)
2329         (first_function_block_is_cold): Likewise.
2330         (hot_section_label): Likewise.
2331         (cold_section_end_label): Likewise..
2332         (last_text_section): New global variable, not static.
2333         (last_text_section_name): New global variable, not static.
2334         (initialize_cold_section_name): New function.
2335         (enum in_section): Move declaration to output.h.
2336         (text_section): Update last_text_section.
2337         (unlikely_text_section): Replace code to determine cold section name 
2338         with call to initialize_cold_section_name; Add code to update 
2339         last_text_section; remove code for printing out label.
2340         (named_section_real): Add code to update last_text_section and 
2341         last_text_section_name as appropriate.
2342         (function_section): Change test for 'unlikely' to depend on
2343         first_function_block_is_cold (moved old test to 
2344         current_function_section).
2345         (current_function_section): New function.
2346         (assemble_start_function): Move code that frees 
2347         unlikely_text_section_name; initialize hot_section_end_label; 
2348         print hot and cold section labels at the start of the function; 
2349         set first_function_block_is_cold, if appropriate; initialize l
2350         ast_text_section; add call to insert_section_boundary_note.
2351         (assemble_end_function):  Add code to write out hot and cold section
2352         end labels.
2353         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
2354         switch_text_section.
2355         * config/darwin.c (machopic_select_section): Replace incorrect 
2356         function in base_funs; update reloc for cold sections if necessary.
2357         * config/darwin.h (SECTION_FUNCTION):  Add code to update 
2358         last_text_section if appropriate.
2359         (text_unlikely_section): Remove.
2360         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
2361         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
2362         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
2363         partitioning for this architecture.
2364
2365 2005-03-31  Olivier Hainque  <hainque@adacore.com>
2366
2367         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
2368         defined and non-zero.
2369
2370 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2371
2372         PR c++/18644
2373         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
2374         semantics. 
2375
2376 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
2377
2378         PR target/20611
2379         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
2380         label operand.  Remove (use (unspec..)).  Don't emit a label on
2381         the offset word.
2382         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
2383         generate inline label for load_toc_v4_PIC_1b.
2384         (rs6000_emit_load_toc_table): Likewise.
2385
2386 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2387
2388         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
2389         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
2390
2391 2005-03-29  Devang Patel  <dpatel@apple.com>
2392
2393         * tree-sra.c (decide_block_copy): Disable scalarization of
2394         sub-elements.
2395         
2396 2005-03-30  Stuart Hastings  <stuart@apple.com>
2397             Dale Johannesen  <dalej@apple.com>
2398
2399         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
2400         * print-tree.c (print_node):  Add case STATEMENT_LIST.
2401
2402 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
2403
2404         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
2405         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
2406         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
2407         is given with "powerpc64*" or "all", or when --with-cpu chooses
2408         a 64-bit cpu.
2409
2410 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
2411
2412         PR debug/20268
2413         * dwarf2out.c (add_high_low_attributes): New function, extracted from
2414         gen_lexical_block_die.
2415         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
2416
2417 2005-03-31  Jan Hubicka  <jh@suse.cz>
2418
2419         2004-11-02  Jan Hubicka  <jh@suse.cz>
2420
2421         * cgraph.c (cgraph_varpool_node_name): New function.
2422         (dump_cgraph_varpool_node): New function.
2423         (dump_varpool): New function.
2424         * cgraphunit.c (cgraph_optimize): Dump varpool.
2425
2426         2004-10-16  Jan Hubicka  <jh@suse.cz>
2427
2428         * cgraph.c (decide_is_variable_needed): New function.
2429         (cgraph_varpool_finalize_decl): Use it.
2430         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
2431         unit-at-a-time.
2432         * final.c (output_addr_const): Do not call mark_referenced.
2433         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
2434         always go via cgraph.
2435         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
2436         (check_global_declarations): Ifdef out code clearing DECL_RTL.
2437         * tree-optimize.c (execute_inline): Mark functions called.
2438         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
2439
2440         2004-10-11  Jan Hubicka  <jh@suse.cz>
2441
2442         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
2443         (cgraph_varpool_last_needed_node): New static variable.
2444         (enqueue_needed_varpool_node): Break out from ...; add items to the
2445         end of queue; update first pointers.
2446         (cgraph_varpool_mark_needed_node): ... here.
2447         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
2448         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
2449         * cgraph.h (cgraph_varpool_node): Add analyzed field.
2450         (cgraph_varpool_first_unanalyzed_node): Declare.
2451         * cgraphunit.c: Include output.h.
2452         (cgraph_varpool_analyze_pending_decls): New function.
2453         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
2454         for errors, analyze pending decls.
2455         (cgraph_finalize_compilation_unit): Only analyze decls.
2456         (cgraph_optimize): Assemble the decls after expanding.
2457
2458 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
2459
2460         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
2461         subvars get marked properly in tags for grouping.
2462         (add_pointed_to_var): Mark only actual pointed to
2463         variables/subvars in addresses needed.
2464         (create_overlap_variables_for): Clear call clobbered on original
2465         variable.
2466         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
2467         addresable vars with subvars into list.
2468         * tree-ssa.c (verify_ssa_name): Verify original is not used where
2469         subvar should be.
2470
2471 2005-03-30  Richard Henderson  <rth@redhat.com>
2472
2473         * cgraph.h (struct cgraph_node): Add alias.
2474         * varasm.c (assemble_alias): Set it.
2475         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
2476         avoid calling cgraph_expand_function.
2477
2478 2005-03-30  Tom Tromey  <tromey@redhat.com>
2479
2480         * tree.def (FILE_TYPE): Removed.
2481         * typeclass.h (enum type_class): Removed file_type_class.
2482         * dwarf2out.c (is_base_type): Updated.
2483         (gen_type_die): Likewise.
2484         * dbxout.c (dbxout_type): Updated.
2485         * builtins.c (type_to_class): Updated.
2486         * tree.c (type_contains_placeholder_1): Updated.
2487         * config/sparc/sparc.c (sparc_type_code): Updated.
2488         * config/ia64/ia64.c (hfa_element_mode): Updated.
2489         * expr.c (count_type_elements): Updated.
2490         * stor-layout.c (layout_type): Updated.
2491         * tree-inline.c (remap_type): Updated.
2492         * tree-pretty-print.c (dump_generic_node): Updated.
2493
2494 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
2495
2496         * builtins.c (expand_builtin_powi): Fix mode of
2497         2nd argument to match int.
2498         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
2499         2nd argument type to int.
2500         * libgcc2.c: Change prototype of __powi* functions to use
2501         int.
2502
2503 2005-03-30  Dale Johannesen  <dalej@apple.com>
2504
2505         PR middle-end/19225
2506         * calls.c (expand_call):  Flush pending deferrals before
2507         throwing call.
2508
2509 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2510
2511         PR c/772
2512         PR c/17913
2513         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
2514         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
2515         c_label_context, label_context_stack): New.
2516         * c-decl.c (define_label): Check for jumps into statement
2517         expressions.  Add label to list of defined labels.
2518         (start_function): Push context on label_context_stack.
2519         (finish_function): Pop context from label_context_stack.
2520         * c-typeck.c (label_context_stack): New.
2521         (c_finish_goto_label): Check for jumps into statement
2522         expressions.  Add label to list of jumped to labels.
2523         (struct c_switch): Add blocked_stmt_expr.
2524         (c_start_case): Initialize it.
2525         (do_case): Check it.
2526         (c_finish_case): Verify !blocked_stmt_expr.
2527         (c_begin_stmt_expr):  Push context on label_context_stack.
2528         Increment blocked_stmt_expr.  Mark labels jumped to from outside
2529         as undefinable.
2530         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
2531         defined in the statement expression and no longer jumpable to.
2532         Mark labels jumped to from just outside the statement expression
2533         as again definable.  Pop context from label_context_stack.
2534         * doc/extend.texi (Statement Exprs): Update.
2535
2536 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2537
2538         PR c/20368
2539         * c-decl.c (start_function): Check for old_decl being
2540         error_mark_node.
2541
2542 2005-03-30  Ian Lance Taylor  <ian@airs.com>
2543
2544         * final.c (final): Remove prescan parameter.  Change all callers.
2545         (final_scan_insn): Remove prescan parameter.  Change all callers.
2546
2547 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
2548
2549         * tree-vectorizer.c: Fix comment typos.
2550
2551 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
2552
2553         * tree-scalar-evolution.c (instantiate_parameters_1): Return
2554         as soon as a chrec_dont_know is detected.
2555
2556 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
2557
2558         Merge from csl-arm-branch.
2559         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
2560
2561         * tlink.c (recompile_files): Do not assume that "rename" can
2562         overwrite an existing file.
2563
2564 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
2565
2566         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
2567         * gcc/configure: Regenerate.
2568
2569 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
2570
2571         * doc/install.texi: Update binutils requirement for powerpc*-linux.
2572
2573         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
2574
2575         * calls.c (struct arg_data): Update "partial" comment.
2576         (load_register_parameters): Update "nregs" comment.
2577
2578 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2579
2580         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
2581         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
2582         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
2583         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
2584         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
2585         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
2586         than target_flags & 0.
2587         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
2588         (iq2000_arch, iq2000_parse_cpu): Delete.
2589         (TARGET_HANDLE_OPTION): Override default.
2590         (iq2000_handle_option): New function.
2591         (override_options): Remove -march= and -mcpu= handling.
2592         * config/iq2000/iq2000.opt: New file.
2593
2594 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2595
2596         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
2597         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
2598         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
2599         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
2600         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
2601         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
2602         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
2603         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
2604         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
2605         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
2606         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
2607         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
2608         (c4x_rpts_cycles_string, c4x_cpu_version_string)
2609         (TARGET_OPTIONS): Delete.
2610         (c4x_rpts_cycles, c4x_cpu_version): Declare.
2611         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
2612         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
2613         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
2614         (c4x_cpu_version_string): Delete.
2615         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2616         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
2617         equivalent -mcpu= option.
2618         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
2619         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
2620         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
2621         or clearing the appropriate MASK_* bit.
2622         (c4x_file_start): Use c4x_cpu_version.
2623         * config/c4x/c4x.opt: New file.
2624
2625 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2626
2627         * doc/options.texi: Document the new MaskExists flag.
2628         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
2629         if the option has the MaskExists flag.
2630
2631 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2632
2633         * opt-functions.awk (flag_set_p, test_flag): New functions.
2634         (switch_flags): Use them.
2635         * opth-gen.awk: Use flag_set_p to check for flags.
2636         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
2637
2638 2005-03-30  Ian Lance Taylor  <ian@airs.com>
2639
2640         * config.host (i[34567]86-*-mingw32*): Don't set
2641         host_can_use_collect2 to no.
2642
2643 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
2644
2645         PR target/20203
2646         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
2647         Remove convert_memory_address call duplicating that in memory_address.
2648
2649 2005-03-29  Richard Henderson  <rth@redhat.com>
2650
2651         PR c/20519
2652         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
2653         (build_compound_literal): Likewise.  Propagate decl type into the
2654         initializer.
2655         (finish_decl): Likewise.  Use new return value from complete_array_type
2656         for zero sized arrays.
2657         (complete_array_type): Move ...
2658         * c-common.c (complete_array_type): ... here.  Change first argument
2659         to pointer-to-type-node.  Consistently use sizetype for the index
2660         except for zero sized arrays.  Detect zero sized arrays for pedantic
2661         mode diagnostics.  Create a new type node instead of modifying the
2662         old node in place.
2663         * c-tree.h (complete_array_type): Move decl ...
2664         * c-common.h (complete_array_type): ... here.
2665
2666 2005-03-29  Richard Henderson  <rth@redhat.com>
2667
2668         PR tree-opt/19108
2669         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
2670
2671 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
2672
2673         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
2674         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
2675         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
2676         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
2677
2678 2005-03-29  Eric Christopher  <echristo@redhat.com>
2679
2680         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
2681         truthvalue conversion removal.
2682
2683 2005-03-29  Ian Lance Taylor  <ian@airs.com>
2684
2685         PR bootstrap/14316
2686         * collect2.c: Never include <vfork.h>.
2687         (VFORK_STRING, vfork): Don't define.
2688         (pid): Remove global variable.
2689         (handler): Call raise instead of kill (getpid(), ...).
2690         (collect_wait): Add pex parameter.  Change all callers.  Use
2691         pex_get_status rather than pwait.
2692         (do_wait): Add pex parameter.  Change all callers.
2693         (collect_execute): Return struct pex_obj * rather than void.  Use
2694         pex routines rather than pexecute.
2695         (fork_execute): Get pex_obj from collect_execute, and pass it to
2696         do_wait.
2697         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
2698         Only declare quit_handler if SIGQUIT is defined.
2699         (scan_libraries): Likewise.
2700         * collect2.h (collect_execute): Update declaration.
2701         (collect_wait): Update declaration.
2702         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
2703         pass it to collect_wait.
2704
2705 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
2706
2707         PR c/20672
2708         * c-parser.c (c_parser_compound_statement_nostart): Give error
2709         message for EOF instead of just setting parser->error.
2710
2711 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
2712
2713         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
2714         (slpeel_update_phi_nodes_for_guard1): New function.
2715         (slpeel_update_phi_nodes_for_guard2): New function.
2716         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
2717         of slpeel_update_phi_nodes_for_guard.
2718         (vectorize_loops): Remove call to loop_closed_rewrite.
2719         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
2720         assertion.
2721
2722 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
2723
2724         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
2725         (TARGET_LITTLE_ENDIAN): New macro.
2726         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
2727         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
2728         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
2729         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
2730         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
2731         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
2732         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
2733         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
2734         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
2735         (TARGET_OPTIONS): Delete.
2736         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
2737         (CACHE_FLUSH_TRAP): Turn into an integer.
2738         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
2739         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
2740         -mflush-trap is in use.
2741         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
2742         (m32r_cache_flush_trap_string): Delete.
2743         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
2744         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
2745         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
2746         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2747         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
2748         -mmodel= and -msdata= handling from...
2749         (m32r_init): ...here.
2750         * config/m32r/m32r.opt: New file.
2751
2752 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
2753
2754         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
2755         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
2756         * tree-vect-analyze.c (vect_object_analysis): additional parm
2757         pass back a "struct ptr_info_def *" with the points-to info.
2758         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
2759         statement using info returned from vect_object_analysis.
2760         * tree-vect-transform.c (update_vuses_to_preheader): New function.
2761         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
2762         for virtual uses and defs when creating a replacement vector
2763         reference.  Call duplicate_ssa_name_ptr_info to define points-to
2764         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
2765         (vectorizable_store): copy_virtual_operands and update
2766         definition statements.
2767         (vectorizable_load): copy_virtual_operands.  Remove call to
2768         mark_call_clobbered_vars_to_rename for call to "const" builtin.
2769         * tree-vectorizer.c (vectorize_loops): Remove calls to
2770         rewrite_into_ssa and bitmap_clear (vars_to_rename).
2771         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
2772         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
2773         define macro STMT_VINFO_PTR_INFO for use in accessing.
2774         * tree.h add export of duplicate_ssa_name_ptr_info.
2775         * rs6000.c (altivec_init_builtins): Declare builtin function
2776         __builtin_altivec_mask_for_load to be "const".
2777
2778 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
2779
2780         PR middle-end/20622
2781         * cgraph.h (struct cgraph_varpool_node): Add alias field.
2782         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
2783         assemble_variable on aliases.
2784         * varasm.c (assemble_alias): Set node->alias.
2785         * toplev.c (wrapup_global_declarations): Don't call
2786         rest_of_decl_compilation on aliases again.
2787
2788 2005-03-29  Paul Brook  <paul@codesourcery.com>
2789
2790         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
2791         * config/arm/arm.c (arm_dbx_register_number): New function.
2792         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
2793
2794 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
2795
2796         PR middle-end/20263
2797         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
2798         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
2799
2800 2005-03-29  Dale Johannesen <dalej@apple.com>
2801
2802         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
2803         $(TREE_H) and $(COVERAGE_H).
2804         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
2805         * opts.c (common_handle_option): Enable tree-based value transforms.
2806         * toplev.c (process_options): Ditto.
2807         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
2808         refers to references to this type.
2809         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
2810         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
2811         for may_be_more, may_be_less.
2812         (rtl_gen_pow2_profiler): Adjust.
2813         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
2814         (rtl_gen_one_value_profiler): Adjust.
2815         (rtl_gen_const_delta_profiler): Adjust.
2816         * tree-profile.c (tree_gen_interval_profiler): Implement.
2817         (tree_gen_pow2_profiler): Ditto.
2818         (tree_gen_one_value_profiler): Ditto.
2819         (tree_profiling): New.
2820         (pass_tree_profile): Reference it.
2821         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
2822         tree.h, gcov-io.h.
2823         (insn_divmod_values_to_profile): Rename to
2824         rtl_divmod_values_to_profile. Adjust.
2825         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
2826         (insn_prefetch_values_to_profile): Adjust.
2827         (rtl_value_profile_transformations): Adjust.
2828         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
2829         (gen_mod_pow2): Rename to rtl_mod_pow2.
2830         (gen_mod_subtract): Rename to rtl_mod_subtract.
2831         (divmod_fixed_value_transform): Rename to
2832         rtl_divmod_fixed_value_transform.
2833         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
2834         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
2835         (rtl_find_values_to_profile): Adjust.
2836         (tree_value_profile_transformations): Implement.
2837         (tree_divmod_values_to_profile): New.
2838         (tree_values_to_profile): New.
2839         (tree_divmod_fixed_value): New.
2840         (tree_mod_pow2): New.
2841         (tree_mod_subtract): New.
2842         (tree_divmod_fixed_value_transform): New.
2843         (tree_mod_pow2_value_transform): New.
2844         (tree_mod_subtract_transform): New.
2845         (tree_find_values_to_profile): Implement.
2846         * profile.c (instrument_values):  Free histograms.
2847         (compute_value_histograms): Adjust. Implement tree version.
2848
2849 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
2850
2851         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
2852         * config/i386/i386.c (output_fix_trunc): Add new round_mode
2853         variable.  Output "fldcw" depending on round_mode.
2854         * config/i386/i386.md (UNSPEC_FIST): New.
2855         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
2856         New isns patterns to implement lrint and llrint built-ins as x87
2857         intrinsic function.
2858         (fistdi2, fist<mode>2 splitters): New splitters.
2859         (lrint<mode>2): New expanders.
2860
2861 2005-03-28  Ian Lance Taylor  <ian@airs.com>
2862
2863         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
2864         0 when calling final_scan_insn.
2865
2866 2005-03-28  Jan Hubicka  <jh@suse.cz>
2867
2868         PR middle-end/20635
2869         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
2870         as needed.
2871
2872         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
2873         types where possible.
2874
2875 2005-03-26  Per Bothner  <per@bothner.com>
2876
2877         Make -f[no-]show-column also control non-cpp diagnostics.
2878         * c.opt (fshow-column): Move option from here ...
2879         * common.opt (fshow-column): ... to here.
2880         * diagnostic.c (diagnostic_build_prefix): Only print column number
2881         if flag_show_column.
2882
2883 2005-03-27  Steven Bosscher  <stevenb@suse.de>
2884
2885         * vax-protos.h (vax_output_int_move, vax_output_int_add,
2886         vax_output_conditional_branch): New prototypes.
2887         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
2888         extracted from vax.md mov and add patterns.
2889         (vax_output_conditional_branch): New function to output conditional
2890         branch instructions.
2891         * vax.md: Use mode macros for arithmetic and mov patterns.
2892         Use code macros for the jump patterns.
2893
2894 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
2895
2896         * Makefile.in (libbackend.o): Depend on version files;
2897         add custom generation command.
2898
2899 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
2900
2901         PR target/20636
2902         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
2903         sure that we have a REG before getting its REGNO.
2904
2905 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2906
2907         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
2908         * builtins.def (BUILT_IN_STRNDUP): New.
2909
2910 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
2911
2912         PR tree-optimization/20470
2913         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
2914         ABS(x-y).
2915
2916 2005-03-25  Mike Stump  <mrs@apple.com>
2917
2918         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
2919         sized objects.
2920
2921 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
2922
2923         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
2924         Use our own structure definitions.
2925
2926         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
2927         (fix_truncdfsi2): Allow registers or memory as destination.
2928         When TARGET_PPC_GFXOPT, generate simplified pattern.
2929         (fix_truncdfsi2_internal): Use define_insn_and_split.
2930         (fix_truncdfsi2_internal_gfxopt): New.
2931         (fctiwz): Don't confuse register allocation by giving it no choices.
2932         (stfiwx): New.
2933         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
2934         (EXTRA_MEMORY_CONSTRAINT): Likewise.
2935         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
2936         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
2937
2938 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2939
2940         * dominance.c (free_dominance_info): Speed up by freeing et
2941         data structures without maintaining other nodes.
2942         * et-forest.c (et_free_tree_force): New.
2943         * et-forest.h: Add a prototype for et_free_tree_force.
2944
2945         * tree.c (get_set_constructor_bits,
2946         get_set_constructor_bytes): Remove.
2947         * tree.h: Remove the corresponding prototypes.
2948
2949 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
2950
2951         PR target/15491
2952         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
2953         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
2954         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
2955         PRE_DEC, NEG and NOT.
2956
2957 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2958
2959         * fold-const.c: Convert uses of fold (build (...)) to
2960         fold_buildN.
2961
2962 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
2963
2964         PR rtl-optimization/20249
2965         * cse.c (insert_regs): Do not record equivalence of registers in
2966         different modes.
2967
2968 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2969
2970         * emit-rtl.c (reverse_comparison): Remove.
2971         * rtl.h: Remove the corresponding prototype.
2972
2973 2005-03-24  James E Wilson  <wilson@specifixinc.com>
2974
2975         * doc/install.texi (--enable-altivec): Delete docs.
2976
2977 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
2978
2979         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
2980         SFmode and DFmode before reload when
2981         flag_unsafe_math_optimizations not enabled.
2982
2983 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
2984
2985         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
2986
2987         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
2988         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
2989
2990 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2991
2992         * configure.ac (enable-checking): Add 'runtime' option.
2993         * doc/install.texi (enable-checking): Document 'runtime' checking.
2994         * tsystem.h (gcc_assert, gcc_unreachable): Define.
2995         * config.in: Regenerated.
2996         * configure: Regenerated.
2997
2998 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
2999
3000         * optabs.h (enum optab_index): Remove OTI_llrint.
3001         (llrint_optab): Remove macro.
3002         * optabs.c (init_optabs): Remove llrint_optab initialization.
3003         * genopinit.c (optabs): Remove llrint_optab implementation.
3004         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
3005         using lrint_optab.
3006
3007 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
3008
3009         PR rtl-optimization/20532
3010         * simplify-rtx.c (simplify_binary_operation_1): Protect from
3011         overflow when adding coefficients for PLUS or MINUS.
3012         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
3013         two as multiplier.
3014
3015 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3016
3017         * langhooks.h (truthvalue_conversion): Remove.
3018         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
3019         LANG_HOOKS_TRUTHVALUE_CONVERSION.
3020         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
3021         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
3022         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3023
3024 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
3025
3026         * params.def: Fix a typo.
3027         * config/mips/mips.c: Follow the spelling convensions.
3028         * doc/invoke.texi: Fix typos.
3029
3030 2005-03-18  Dale Johannese  <dalej@apple.com>
3031
3032         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
3033
3034 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
3035
3036         Fix PR tree-optimization/20601
3037
3038         * tree-ssa-pre.c (insert_aux): Add missing condition to
3039         constification.
3040
3041 2005-03-23  Ian Lance Taylor  <ian@airs.com>
3042
3043         * final.c (final_scan_insn): Don't remove no-op instructions.
3044         * reload1.c (reload): Remove simple no-op instructions even when
3045         not optimizing.
3046
3047 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
3048
3049         PR tree-optimization/20501
3050         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
3051         reporting that peeling for alignment is applied moved to...
3052         * (vect_analyze_data_refs_alignment): Here.
3053
3054 2005-03-23  Ian Lance Taylor  <ian@airs.com>
3055
3056         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
3057
3058 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3059
3060         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
3061         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
3062
3063 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
3064
3065         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
3066         imply that this is called once, independent of asms in code.
3067         Adjust to now being pased output and input lists.  Mention helper
3068         function decl_overlaps_hard_reg_set_p.
3069         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
3070         hook_tree_tree_identity and to take three trees, returning third.
3071         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
3072         prototype.
3073         * stmt.c: include hard-reg-set.h before tree.h.
3074         (decl_overlaps_hard_reg_set_p): New function, broken out from...
3075         (decl_conflicts_with_clobbers_p): Call
3076         decl_overlaps_hard_reg_set_p.
3077         (expand_asm_operands): Pass output and input lists in call to
3078         targetm.md_asm_clobbers.
3079         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
3080         hook_tree_tree_tree_tree_3rd_identity.
3081         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
3082         parameters.
3083         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
3084         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
3085         parameters, first two unused.
3086         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
3087         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
3088         in constraint letters and MOF is not mentioned as a asm-declared
3089         register in neither of the input and output lists.
3090
3091 2005-03-23  DJ Delorie  <dj@redhat.com>
3092
3093         * optabs.c (expand_binop): Make sure the first subword's result
3094         gets stored.
3095
3096 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3097
3098         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
3099         Call c_common_truthvalue_conversion rather than
3100         lang_hooks.truthvalue_conversion.
3101         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
3102         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
3103         c-typeck.c.
3104         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
3105         c_common_truthvalue_conversion.
3106         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
3107         c_parser_conditional_expression, c_parser_binary_expression): Call
3108         c_objc_common_truthvalue_conversion.
3109         * c-typeck.c (build_unary_op): Call
3110         c_objc_common_truthvalue_conversion.
3111         (build_conditional_expr): Do not call
3112         lang_hooks.truthvalue_conversion.
3113         (build_binary_op): Call c_common_truthvalue_conversion.
3114         (c_objc_common_truthvalue_conversion): Moved from
3115         c-objc-common.c.  Call default_function_array_conversion instead
3116         of default_conversion.
3117
3118 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3119
3120         * c-common.h (default_conversion): Remove.
3121         (perform_integral_promotions): Add.
3122         * c-tree.h (default_conversion): Add.
3123         * c-typeck.c (perform_integral_promotions): New, split out from
3124         default_conversion.
3125         * c-common.c (check_case_value): Use perform_integral_promotions,
3126         not default_conversion.
3127         (c_add_case_label): Don't continue processing case label after
3128         found to be pointer.
3129
3130 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
3131
3132         * gcc.c (do_spec_1): Do not add a -L path for a directory in
3133         the prefix list if we have already added a multilib directory
3134         based on that path.
3135         (main): Do not add MD_EXEC_PREFIX to the list of directories to
3136         search with -L.
3137
3138 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3139
3140         * reload1.c (indirect_symref_ok, reload_obstack): Make them
3141         static.
3142         * reload.h: Remove the prototype for indirect_symref_ok.
3143
3144         * reload1.c (indirect_symref_ok): Make it global.
3145         * reload.h: Add a prototype for indirect_symref_ok.
3146
3147 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3148
3149         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
3150         ashlhi3 expander.
3151
3152 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3153
3154         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
3155
3156 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
3157
3158         * c-opts.c (c_common_parse_file): Only start/end main source file
3159         if debug hooks says the writer wants it.
3160         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
3161         member.
3162         (xcoff_debug_hooks): Ditto.
3163         * debug.c (do_nothing_hooks): Ditto.
3164         * debug.h (gcc_debug_hooks): Ditto.
3165         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
3166         * sdbout.c (sdb_debug_hooks): Ditto.
3167         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
3168
3169 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
3170
3171         * doc/extend.texi: Deprecate C++ min/max operators.
3172
3173 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
3174
3175         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
3176         artificial original candidates.
3177
3178 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
3179             Jan Hubicka  <jh@suse.cz>
3180             Steven Bosscher <stevenb@suse.de>
3181
3182         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
3183         call cost based on argument sizes.
3184         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
3185         inlining.
3186         * params.def: (max-inline-inssn-single): Set to 450.
3187         (max-inline-insns-auto): Set to 90.
3188         (max-inline-insns-recursive): Set to 450
3189         (max-inline-insns-recursive-auto): Set to 450.
3190         (large-function-insns): Set to 2700.
3191         (inline-call-cost): New parameter.
3192         * tree-inline.c (estimate_move_cost): New function.
3193         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
3194         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
3195         based on arguments.
3196         * tree-inline.h (estimate_move_cost): Declare.
3197         * invoke.texi: (max-inline-inssn-single): Change default to 450.
3198         (max-inline-insns-auto): Change default to 90.
3199         (max-inline-insns-recursive): Change default to 450
3200         (max-inline-insns-recursive-auto): Change default to 450.
3201         (large-function-insns): Change default to 2700.
3202         (inline-call-cost): Document new parameter.
3203
3204 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
3205
3206         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
3207         (TARGET_DEFAULT): Delete.
3208         * config/i860/i860.opt: New file.
3209
3210 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
3211
3212         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
3213         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
3214         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
3215         (frv_sched_lookahead): Delete.
3216         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
3217         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
3218         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
3219         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
3220         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
3221         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
3222         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
3223         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
3224         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
3225         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
3226         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
3227         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
3228         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
3229         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
3230         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
3231         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
3232         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
3233         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
3234         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
3235         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
3236         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
3237         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
3238         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
3239         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
3240         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
3241         (frv_sched_lookahead): Delete.
3242         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
3243         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3244         (frv_handle_option): New function.  Move -mcpu= handling from...
3245         (frv_override_options): ...here.  Remove handling of other
3246         TARGET_OPTIONS.
3247         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
3248         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
3249         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
3250         and TARGET_NO_MULTI_CE.
3251         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
3252         !TARGET_VLIW_BRANCH.
3253         * config/frv/frv.opt: New file.
3254
3255 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3256
3257         * fold-const.c (fold_ternary): Take decomposed arguments of
3258         CALL_EXPR.
3259         (fold): Update a call to fold_ternary.
3260
3261         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
3262         * tree.h: Add corresponding prototypes.
3263
3264 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
3265
3266         PR target/20561
3267         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
3268         between jump table and its label.
3269         * final.c (shorten_branches): Handle notes in between ADDR_VEC
3270         resp. ADDR_DIFF_VEC and the label preceeding it.
3271         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
3272         is emitted in the right section.
3273
3274 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3275
3276         * fold-const.c (fold_unary, fold_binary): Update comments
3277         about arguments.
3278
3279 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
3280
3281         PR rtl-optimization/20527
3282         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
3283         REG_INC note, test that the register also isn't mentioned in PRED
3284         or SUCC.
3285
3286 2005-03-22  Ben Elliston  <bje@au.ibm.com>
3287
3288         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
3289         and definition.
3290
3291 2005-03-21  Mike Stump  <mrs@apple.com>
3292
3293         * varasm.c (default_assemble_visibility): Remove extra ().
3294
3295 2005-03-21  Roger Sayle  <roger@eyesopen.com>
3296
3297         PR middle-end/20557
3298         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
3299         to determine whether a block can be duplicated, rather than test
3300         whether the block contains noncopyable insns ourselves.
3301
3302 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3303
3304         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
3305         predicates.
3306
3307 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3308
3309         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
3310
3311 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3312
3313         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
3314         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
3315         * config/fr30/fr30.opt: New file.
3316
3317 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
3318
3319         Fix PR tree-optimization/20542
3320
3321         * tree-flow-inline.h (overlap_subvar): Move to here.
3322         * tree-ssa-operands.c: From here.
3323         * tree-flow.h (overlap_subvar): Declare.
3324         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
3325         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
3326         for variables with subvars.
3327
3328 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
3329
3330         PR middle-end/20177
3331         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
3332         * modulo-sched.c (const_iteration_count): Return on NULL
3333         pre-header.
3334         (print_node_sched_params): Return on NULL dump_file.
3335         (generate_reg_moves): Handle reg-anti dependencies and disregard
3336         closing branch when generating register moves.
3337         (sms_schedule): Mark the SMSed block dirty.
3338         * passes.c (rest_of_handle_sms): Call update_life_info for all
3339         basic-blocks.
3340         * testsuite/gcc.dg/20050321-1.c: New test.
3341
3342 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
3343
3344         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
3345         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
3346         movqi_internal): Likewise.
3347
3348 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
3349
3350         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
3351         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
3352         xtensa_b4const): Delete prototypes.
3353         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
3354         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
3355         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
3356         xtensa_extra_constraint): New prototypes.
3357         (add_operand, arith_operand, nonimmed_operand, mem_operand,
3358         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
3359         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
3360         move_operand, const_float_1_operand, fpmem_offset_operand,
3361         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
3362         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
3363         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
3364         argument type to HOST_WIDE_INT.
3365         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
3366         xtensa_mask_immediate): Likewise.
3367         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
3368         Likewise.  Also make these functions static.
3369         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
3370         (xtensa_const_ok_for_letter_p): New.
3371         (add_operand, arith_operand, nonimmed_operand, mem_operand,
3372         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
3373         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
3374         move_operand, const_float_1_operand, fpmem_offset_operand,
3375         branch_operator, ubranch_operator, boolean_operator): Move to
3376         predicates.md.
3377         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
3378         (xtensa_mem_offset): Change return type to bool.
3379         (xtensa_extra_constraint): New.
3380         (gen_int_relational): Update type of const_range_p function pointer.
3381         Use xtensa_b4const_or_zero.
3382         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
3383         xtensa_const_ok_for_letter_p.  Update comments.
3384         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
3385         (PREDICATE_CODES): Delete.
3386         * config/xtensa/xtensa.md: Include predicates.md.
3387         * config/xtensa/predicates.md: New file.
3388
3389 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3390
3391         * config/v850/v850-protos.h: Remove the prototypes for
3392         reg_or_int9_operand, reg_or_const_operand,
3393         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
3394         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
3395         movsi_source_operand, power_of_two_operand,
3396         not_power_of_two_operand, special_symbolref_operand,
3397         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
3398         register_is_ok_for_epilogue.
3399         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
3400         reg_or_int9_operand, reg_or_const_operand,
3401         call_address_operand, special_symbolref_operand,
3402         movsi_source_operand, power_of_two_operand,
3403         not_power_of_two_operand, register_is_ok_for_epilogue,
3404         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
3405         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
3406         predicates.md.
3407         * config/v850/v850.h (PREDICATE_CODES): Remove.
3408         * config/v850/v850.md: Include predicates.md.
3409         * config/v850/predicates.md: New.
3410
3411 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
3412
3413         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
3414         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
3415         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
3416         (itoolsdir, itoolsdatadir): Move definition above new first use.
3417         (install-itoolsdirs): New rule.
3418         (install-mkheaders): Depend on install-itoolsdirs, not
3419         install-include-dir.
3420
3421 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3422
3423         * tree-into-ssa.c: Remove obsolete comments.
3424
3425 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
3426
3427         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
3428         unrolling if -fpeel-loops is specified, too.
3429         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3430         Remove superfluous check for flag_unroll_loops.
3431
3432 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
3433
3434         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
3435         (lrint_optab, llrint_optab): Define corresponding macros.
3436         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
3437         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
3438         pattern and llrint_optab using llrintdi2 patterns.
3439         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
3440         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
3441         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
3442         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
3443         flag_unsafe_math_optimizations is set.
3444
3445 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
3446
3447         * combine.c (combine_simplify_rtx, simplify_if_then_else,
3448         simplify_logical, if_then_else_cond, known_cond,
3449         simplify_comparison): Adjust calls to reverse_comparison.
3450         Don't use combine_reversed_comparison_code).
3451         (combine_reversed_comparison_code): Remove.
3452         (reversed_comparison): Using reversed_comparison_code, move it...
3453         * jump.c (reversed_comparison): ... here.
3454         * rtl.h (reversed_comparison): Add prototype.
3455
3456 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3457
3458         * builtins.c (fold_builtin): Take decomposed arguments of
3459         CALL_EXPR.
3460         * fold-const.c (fold_ternary): Update a call to fold_builtin.
3461         * gimplify.c (gimplify_call_expr): Likewise.
3462         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
3463         * tree.h: Update the prototype of fold_builtin.
3464
3465 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
3466
3467         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
3468         * rtlhooks.c (gen_lowpart_no_emit_general): New.
3469         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
3470         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
3471         * simplify-rtx.c (simplify_binary_operation_1): Use it.
3472
3473 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3474
3475         * builtins.c (fold_builtin_1): Take decomposed arguments of
3476         CALL_EXPR.
3477         (fold_builtin): Update a call to fold_builtin_1.
3478
3479 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
3480
3481         PR other/20564
3482         * gcov.c (output_lines): Only output function block summary when
3483         outputting branch information.
3484         * doc/gcov.texi: Document format of preamble and additional block
3485         information lines.
3486
3487 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3488
3489         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
3490         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
3491         the defaults false if BITS_PER_UNIT != 8.
3492         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
3493         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
3494         than BITS_PER_UNIT != 8.
3495         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
3496         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
3497         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
3498         #undefs.
3499         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
3500         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
3501
3502 2005-03-20  Roger Sayle  <roger@eyesopen.com>
3503
3504         PR middle-end/20539
3505         * fold-const.c (fold_binary): Fix type mismatch between
3506         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
3507         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
3508         for non-truth-valued expressions.
3509
3510         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
3511         and FUNCTION_DECL in the main switch.
3512         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
3513         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
3514         we also need to convert their operands to match.
3515         <TRUTH_NOT_EXPR>: Likewise.
3516
3517 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
3518
3519         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
3520         diagnostic without checking whether an lvalue.
3521         * c-common.h (lvalue_p): Remove.
3522         (enum lvalue_use): Update comment.
3523         (lvalue_or_else): Replace by lvalue_error.
3524         * c-typeck.c (lvalue_p): Make static.
3525         (lvalue_or_else): New.  Call lvalue_error.
3526
3527 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
3528
3529         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
3530         (function_arg_advance): Use rs6000_parm_start.
3531         (function_arg, rs6000_arg_partial_bytes): Likewise.
3532
3533 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
3534
3535         * c-common.c (check_case_value): Adjust comment about stripping
3536         NOPs.
3537         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
3538         * c-typeck.c (default_conversion, convert_arguments,
3539         build_modify_expr, convert_for_assignment, store_init_value,
3540         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
3541         manually.  Remove inaccurate comments.
3542
3543 2005-03-20  Roger Sayle  <roger@eyesopen.com>
3544             Joseph S. Myers  <joseph@codesourcery.com>
3545
3546         * varasm.c (do_assemble_alias): Restore comment describing function.
3547         Annotate the target parameter as potentially unused.
3548
3549 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3550
3551         PR target/18551
3552         * config/avr/avr.c (avr_output_function_prologue): Do not use
3553         current_function_name() in a label, use a local label instead.
3554
3555 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
3556
3557         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
3558         flag_finite_math_only, not flag_unsafe_math_optimizations.
3559
3560 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3561
3562         * builtins.c (fold_builtin_1): Update a call to
3563         targetm.fold_builtin.
3564         * hooks.c (hook_tree_tree_bool_null): Rename to
3565         hook_tree_tree_tree_bool_null.  Take one more argument of type
3566         tree.
3567         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
3568         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
3569         hook_tree_tree_tree_bool_null.
3570         * target.h (gcc_target): Update the prototype of fold_builtin.
3571         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
3572         arguments of CALL_EXPR.
3573         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
3574         new prototype.
3575
3576 2005-03-20  Jan Hubicka  <jh@suse.cz>
3577
3578         * cgraph.h (cgraph_node): Add prev_clone pointer.
3579         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
3580         (cgraph_clone_node): Produce doubly linked chain.
3581
3582 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
3583
3584         * c-common.c (handle_aligned_attribute, check_function_sentinel,
3585         get_nonnull_operand, handle_sentinel_attribute,
3586         check_function_arguments_recurse): Do not strip NOPS from
3587         INTEGER_CSTs.
3588         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
3589         Likewise.
3590         * c-format.c (get_constant): Likewise.
3591         * c-parser.c (c_parser_postfix_expression): Likewise.
3592         * c-typeck.c (set_init_index): Likewise.
3593         (convert_arguments): Don't check for NOP_EXPR containing integer
3594         constant.
3595
3596 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3597
3598         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
3599         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
3600         Take decomposed arguments of CALL_EXPR.
3601         (fold_builtin_1): Update calls to the functions mentioned
3602         above.
3603
3604 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
3605
3606         * c-decl.c (check_bitfield_type_and_width): Require bit-field
3607         width to have integer type.
3608         (build_enumerator): Require enumerator value to have integer type.
3609
3610 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
3611
3612         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
3613         to __builtin_inff.
3614
3615 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
3616
3617         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
3618         std=iso9899:199x): Correct descriptions.
3619
3620 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
3621
3622         * config.gcc: Consistently use solaris2.1[0-9]* instead of
3623         solaris2.1[0-9].
3624
3625 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3626
3627         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
3628         of CALL_EXPR.
3629         (expand_builtin_memcpy, fold_builtin_1): Update calls to
3630         fold_builtin_memcpy.
3631
3632         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
3633         arguments of CALL_EXPR.
3634         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
3635         fold_builtin_found, fold_builtin_1): Update calls to
3636         fold_trunc_transparent_mathfn.
3637
3638 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3639
3640         PR middle-end/20493
3641         * fold-const.c (fold_widened_comparison): Don't optimize casts of
3642         function pointers on targets that require function pointer
3643         canonicalization.
3644         (fold_sign_changed_comparison): Likewise.
3645
3646 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
3647
3648         * combine.c (try_combine): When changing the mode of a hard reg, make
3649         sure that doing so is valid.
3650
3651 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
3652
3653         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
3654         (TARGET_HANDLE_OPTION): Override default.
3655         (avr_handle_option): New function.
3656         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
3657         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
3658         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
3659         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
3660         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
3661         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
3662         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
3663         (TARGET_OPTIONS): Delete.
3664         * config/avr/avr.opt: New file.
3665
3666 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3667
3668         * config/m32r/m32r-protos.h: Remove the prototypes for
3669         call_address_operand, symbolic_operand, seth_add3_operand,
3670         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
3671         reg_or_uint16_operand, reg_or_cmp_int16_operand,
3672         two_insn_const_operand, move_src_operand,
3673         move_double_src_operand, move_dest_operand,
3674         eqne_comparison_operator, signed_comparison_operator,
3675         large_insn_p, conditional_move_operand, carry_compare_operand,
3676         m32r_block_immediate_operand, extend_operand,
3677         reg_or_eq_int16_operand, int8_operand, and
3678         reg_or_zero_operand.
3679         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
3680         seth_add3_operand, int8_operand, cmp_int16_operand,
3681         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
3682         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
3683         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
3684         move_double_src_operand, move_dest_operand,
3685         eqne_comparison_operator, signed_comparison_operator,
3686         extend_operand, small_insn_p, large_insn_p,
3687         conditional_move_operand, carry_compare_operand,
3688         m32r_block_immediate_operand): Move to predicates.md.
3689         (MAX_MOVE_BYTES): Move to m32r.h.
3690         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
3691         * config/m32r/m32r.md: Include predicates.md.
3692         * config/m32r/predicates.md: New.
3693
3694 2005-03-18  James E Wilson  <wilson@specifixinc.com>
3695
3696         PR c++/19769
3697         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
3698         origin.
3699
3700 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3701
3702         * config/mn10300/mn10300-protos.h: Remove the prototypes for
3703         call_address_operand, const_8bit_operand.
3704         * config/mn10300/mn10300.c (call_address_operand,
3705         const_8bit_operand, const_1f_operand): Move to predicates.md.
3706         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
3707         * config/mn10300/mn10300.md: Include predicates.md.
3708         * config/mn10300/predicates.md: New.
3709
3710 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
3711
3712         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
3713         declarations in diagnostics and %E for identifiers, not %s.
3714
3715 2005-03-18  Jan Hubicka  <jh@suse.cz>
3716             Dale Johannesen  <dalej@apple.com>
3717
3718         * basic-block.h (scale_bbs_frequencies_int,
3719         scale_bbs_frequencies_gcov_type): Declare.
3720         * cfg.c (RDIV): New macro.
3721         (update_bb_frequency_for_threading): Fix.
3722         * basic-block.h (scale_bbs_frequencies_int,
3723         scale_bbs_frequencies_gcov_type): New.
3724         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
3725         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
3726         scale_bbs_frequencies_int.
3727         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
3728
3729 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3730
3731         * config/m32r/m32r-protos.h: Remove the prototypes for
3732         call_address_operand, symbolic_operand, seth_add3_operand,
3733         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
3734         reg_or_uint16_operand, reg_or_cmp_int16_operand,
3735         two_insn_const_operand, move_src_operand,
3736         move_double_src_operand, move_dest_operand,
3737         eqne_comparison_operator, signed_comparison_operator,
3738         large_insn_p, conditional_move_operand, carry_compare_operand,
3739         m32r_block_immediate_operand, extend_operand,
3740         reg_or_eq_int16_operand, int8_operand, and
3741         reg_or_zero_operand.
3742         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
3743         seth_add3_operand, int8_operand, cmp_int16_operand,
3744         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
3745         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
3746         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
3747         move_double_src_operand, move_dest_operand,
3748         eqne_comparison_operator, signed_comparison_operator,
3749         extend_operand, small_insn_p, large_insn_p,
3750         conditional_move_operand, carry_compare_operand,
3751         m32r_block_immediate_operand): Move to predicates.md.
3752         (MAX_MOVE_BYTES): Move to m32r.h.
3753         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
3754         * config/m32r/m32r.md: Include predicates.md.
3755         * config/m32r/predicates.md: New.
3756
3757         * config/pa/pa-protos.h: Add prototypes for magic_milli and
3758         shadd_constant_p.
3759         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
3760         symbolic_operand, symbolic_memory_operand,
3761         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
3762         indexed_memory_operand, move_dest_operand, move_src_operand,
3763         prefetch_cc_operand, prefetch_nocc_operand,
3764         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
3765         arith_operand, arith11_operand, pre_cint_operand,
3766         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
3767         ireg_operand, int5_operand, uint5_operand, int11_operand,
3768         uint32_operand, arith5_operand, and_operand, ior_operand,
3769         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
3770         pc_or_label_operand, div_operand, plus_xor_ior_operator,
3771         shadd_operand, movb_comparison_operator,
3772         cmpib_comparison_operator): Move to predicates.md.
3773         (magic_milli, shadd_constant_p): Make it extern.
3774         * config/pa/pa.h (PREDICATE_CODES): Remove.
3775         * config/pa/pa.md: Include predicates.md.
3776         * config/pa/predicates.md: New.
3777
3778         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
3779         predicate.
3780
3781 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3782
3783         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
3784         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
3785         config/alpha/freebsd.h, config/alpha/linux.h,
3786         config/alpha/netbsd.h, config/alpha/osf5.h,
3787         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
3788         config/h8300/h8300-protos.h, config/h8300/h8300.c,
3789         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
3790         doc/cppopts.texi: Update copyright.
3791
3792 2005-03-18  Jan Hubicka  <jh@suse.cz>
3793
3794         PR middle-end/20225
3795         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
3796         too late.
3797         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
3798         called too late.
3799
3800 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3801
3802         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
3803         VEC_safe_push.
3804
3805 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
3806
3807         * combine.c (gen_binary): Remove.
3808         (known_cond, simplify_shift_const, find_split_point,
3809         combine_simplify_rtx, simplify_if_then_else, simplify_set,
3810         simplify_logical, expand_field_assignment, extract_left_shift,
3811         force_to_mode, if_then_else_cond, apply_distributive_law,
3812         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
3813         simplify_comparison, reversed_comparison): Replace with
3814         simplify_gen_binary, simplify_gen_relational or
3815         distribute_and_simplify_rtx.
3816         (distribute_and_simplify_rtx): New function.
3817
3818 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
3819             Paolo Bonzini  <gcc.gnu.org>
3820
3821         * calls.c (setjmp_call_p, special_function_p): Update comments
3822         at the head of the functions.
3823
3824 2005-03-18  Jan Hubicka  <jh@suse.cz>
3825
3826         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
3827
3828         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
3829         function body should be released; do not proactively release function
3830         bodies in non-unit-at-a-time mode.
3831
3832 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
3833
3834         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
3835         mno-fp-ret-in-387 multilib variants.
3836
3837 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
3838
3839         * common.opt (m): Remove.
3840         * opts.c (handle_option): Pass 'm' options to set_target_switch if
3841         table lookup fails.
3842         (common_handle_option): Remove OPT_m case.
3843
3844 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3845
3846         * builtins.c (fold_builtin_bitop): Take decomposed arguments
3847         of CALL_EXPR.
3848         (fold_builtin_1): Update a call to fold_builtin_bitop.
3849
3850         * builtins.c (fold_builtin_signbit): Take decomposed arguments
3851         of CALL_EXPR.
3852         (fold_builtin_1): Update a call to fold_builtin_signbit.
3853
3854 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
3855
3856         PR tree-optimization/20474
3857         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
3858         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
3859
3860 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3861
3862         * config/h8300/h8300-protos.h: Remove prototypes for
3863         general_operand_src, general_operand_dst, single_one_operand,
3864         single_zero_operand, call_insn_operand,
3865         two_insn_adds_subs_operand, small_call_insn_operand,
3866         jump_address_operand, bit_operand, bit_memory_operand,
3867         stack_pointer_operand, const_int_gt_2_operand,
3868         const_int_ge_8_operand, const_int_qi_operand,
3869         const_int_hi_operand, incdec_operand, bit_operator,
3870         nshift_operator, eqne_operator, gtle_operator,
3871         gtuleu_operator, iorxor_operator.
3872         Add prototypes for h8sx_shift_type h8sx_classify_shift and
3873         h8300_ldm_stm_parallel.
3874         * config/h8300/h8300.c (h8sx_shift_type,): Move to
3875         h8300-protos.h.
3876         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
3877         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
3878         (h8300_ldm_stm_parallel): Make it extern.
3879         (h8300_ldm_parallel, h8300_stm_parallel,
3880         h8300_return_parallel, general_operand_src,
3881         general_operand_dst, h8300_dst_operand, h8300_src_operand,
3882         nibble_operand, reg_or_nibble_operand, single_one_operand,
3883         single_zero_operand, call_insn_operand,
3884         two_insn_adds_subs_operand, small_call_insn_operand,
3885         jump_address_operand, bit_operand, bit_memory_operand,
3886         stack_pointer_operand, const_int_gt_2_operand,
3887         const_int_ge_8_operand, const_int_qi_operand,
3888         const_int_hi_operand, incdec_operand, eqne_operator,
3889         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
3890         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
3891         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
3892         nshift_operator): Move to predicates.md.
3893         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
3894         * config/h8300/h8300.md: Include predicates.md.
3895         * config/h8300/predicates.md: New.
3896
3897 2005-03-17  Richard Henderson  <rth@redhat.com>
3898
3899         * config.gcc (ia64*-*-hpux*): Add extra_options.
3900         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
3901         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3902         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
3903         (ia64_tls_size_string, ia64_tune_string): Remove.
3904         (ia64_tune): Init to PROCESSOR_ITANIUM2.
3905         (TARGET_DEFAULT_TARGET_FLAGS): New.
3906         (TARGET_HANDLE_OPTION): New.
3907         (ia64_override_options): Move options parsing ...
3908         (ia64_handle_option): ... here.  New.
3909         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
3910         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
3911         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
3912         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
3913         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
3914         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
3915         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
3916         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
3917         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
3918         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
3919         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
3920         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
3921         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
3922         TARGET_EARLY_STOP_BITS): Remove.
3923         (TARGET_ILP32): Default false.
3924         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
3925         (enum ia64_inline_type): New.
3926         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3927         * config/ia64/ia64.md: Update for new definitions of
3928         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
3929         * config/ia64/ia64.opt: New file.
3930         * config/ia64/ilp32.opt: New file.
3931
3932 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3933
3934         PR target/18380
3935         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
3936
3937 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3938
3939         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
3940         instead of MASK_H8300S.
3941         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
3942         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
3943         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
3944         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
3945         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
3946         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
3947         TARGET_SWITCHES): Remove.
3948         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
3949         TARGET_H8300SX.
3950         * config/h8300/h8300.opt: New.
3951
3952         * config/alpha/alpha.opt, config/arc/arc.opt,
3953         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
3954         notices.
3955
3956 2005-03-17  Ian Lance Taylor  <ian@airs.com>
3957
3958         * gmon.c: Remove.
3959
3960 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
3961
3962         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
3963         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
3964         (TARGET_HANDLE_OPTION): Override default.
3965         (arc_handle_option): New function.
3966         (arc_init): Remove code to set arch_cpu_string.
3967         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
3968         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
3969         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
3970         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
3971         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
3972         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
3973         (arc_rodata_string, TARGET_OPTIONS): Delete.
3974         * config/arc/arc.opt: New file.
3975
3976 2005-03-17  Richard Henderson  <rth@redhat.com>
3977
3978         * doc/extend.texi (Weak Pragmas): New section.
3979         (attribute alias): Clarify that target must be in the same
3980         translation unit.
3981
3982 2005-03-17  Richard Henderson  <rth@redhat.com>
3983
3984         * config/alpha/alpha.opt: New file.
3985         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
3986         of alpha_cpu.
3987         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
3988         alpha_fprm_string, alpha_fptm_string): Make static.
3989         (alpha_tls_size_string): Remove.
3990         (alpha_handle_option): New.
3991         (override_options): Update for alpha_cpu/alpha_tune split.
3992         (alpha_file_start): Likewise.
3993         (TARGET_DEFAULT_TARGET_FLAGS): New.
3994         (TARGET_HANDLE_OPTION): New.
3995         * config/alpha/alpha.h (alpha_tune): Declare.
3996         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
3997         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
3998         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
3999         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
4000         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
4001         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
4002         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
4003         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
4004         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
4005         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
4006         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
4007         (TARGET_DEFAULT): Remove MASK_FP.
4008         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
4009         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
4010         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
4011         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
4012         alpha_tls_size_string): Remove.
4013         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
4014         (attribute tune): Rename from attribute cpu.
4015         * config/alpha/ev4.md: Update to match.
4016         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
4017         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
4018         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
4019         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
4020         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
4021         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
4022
4023 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
4024
4025         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
4026         and return without creating new state if before_nops_num is nonzero.
4027         * config/ia64/ia64.md (first_insn): New attribute.
4028         (alloc): Set it to yes.
4029
4030 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
4031
4032         * tree-vectorizer.c (new_vec_stmt_info): Initialize
4033         STMT_VINFO_SUBVARS to NULL.
4034         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
4035
4036 2005-03-16 Dale Johannesen  <dalej@apple.com>
4037
4038         * rtlanal.c (find_first_parameter_load):  Rewrite to
4039         return actual first param load or the call if none,
4040         instead of first in block, when not all loads exist.
4041
4042 2005-03-16  Roger Sayle  <roger@eyesopen.com>
4043
4044         * optabs.c (expand_copysign_absneg): Make static.
4045         * optabs.h (expand_copysign_absneg): Delete prototype.
4046         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
4047
4048 2005-03-16  Richard Henderson  <rth@redhat.com>
4049
4050         PR middle-end/15700
4051         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
4052         (alias_pairs): Rename from output_defs.
4053         (find_decl_and_mark_needed): Split out from assemble_alias.
4054         (do_assemble_alias): New.
4055         (assemble_output_def): Remove.
4056         (finish_aliases_1, finish_aliases_2): New.
4057         (process_pending_assemble_output_defs): Remove.
4058         (assemble_alias): Defer aliases for which we don't yet have a
4059         non-external decl for the target symbol.
4060         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
4061         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
4062         * toplev.c (compile_file): Use finish_aliases_2 instead of
4063         process_pending_assemble_output_defs.
4064         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
4065         (process_pending_assemble_output_defs): Remove.
4066
4067 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
4068
4069         Fix PR tree-optimization/20489
4070
4071         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
4072         for empty structures.
4073
4074 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
4075
4076         Fix PR tree-optimization/20490
4077
4078         * tree-ssa-pre.c (create_expression_by_pieces): Use
4079         force_gimple_operand on result of fold.
4080
4081 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
4082
4083         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
4084         of closing parenthesis.
4085
4086 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
4087
4088         * builtins.c (expand_movstr): Update a call to
4089         fold_builtin_strcpy.
4090         (expand_builtin_strncpy): Update a call to
4091         fold_builtin_strncpy.
4092         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
4093         arguments of CALL_EXPR.
4094         (fold_builtin_1): Update calls to fold_builtin_strcpy and
4095         fold_builtin_strncpy.
4096         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
4097         * tree.h: Update the prototypes of fold_builtin_strcpy and
4098         fold_builtin_strncpy.
4099
4100 2005-03-16  Steven Bosscher  <stevenb@suse.de>
4101             Dorit Naishlos  <dorit@il.ibm.com>
4102
4103         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
4104         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
4105         error.
4106
4107 2005-03-16  Steven Bosscher  <stevenb@suse.de>
4108
4109         * tree-inline.c (walk_type_fields, walk_tree,
4110         walk_tree_without_duplicates): Move from here...
4111         * tree.c: ...to here.
4112
4113 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
4114
4115         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
4116         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
4117         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
4118         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
4119         (version): Define using $(BASEVER_c).
4120         (Makefile, config.status, build/gcov-iov.o): No longer depends on
4121         version.c.
4122         (version.o): Depend on version files; add custom generation command.
4123         (prefix.o): Define BASEVER on command line.
4124         (s-iov): Depend on version files; adjust command.
4125         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
4126         Add gcc-vers.texi.
4127         (gcc-vers.texi): New rule.
4128         (doc/%.info, doc/%.dvi): Add -I . to command line.
4129         (doc/gccinstall.dvi): Likewise.
4130         (PACKAGE): Delete.  All uses replaced with "gcc".
4131         * aclocal.m4: Do not include gcc-version.m4.
4132         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
4133         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
4134         Set is_release based on contents of DEV-PHASE.
4135         Set gcc_version based on contents of BASE-VER.
4136         Define WIN32_REGISTRY_KEY only if the user overrode the default.
4137         * config.in, configure: Regenerate.
4138         * gccbug.in: Determine version of GCC in use at runtime.
4139         * gcov-iov.c: Get version number and development phase from
4140         command line, not by including version.c.
4141         * intl.c: Replace all uses of PACKAGE with "gcc".
4142         * libada-mk.in: Delete unused "gcc_version" variable.
4143         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
4144         * version.c: (VERSUFFIX): New hook for redistributors; adjust
4145         commentary to match.
4146         (version_string): Put together from pieces.
4147         * config/alpha/x-vms: Do not use $(gcc_version).
4148         * config/i386/t-nwld: Likewise.
4149         * doc/include/gcc-common.texi: Include gcc-vers.texi for
4150         version-GCC and DEVELOPMENT.
4151
4152 2005-03-15  Roger Sayle  <roger@eyesopen.com>
4153
4154         PR tree-optimization/17454
4155         * tree.c (tree_size): Add case for TREE_BINFO.
4156         * fold-const.c (fold_checksum_tree): Only clear the overloaded
4157         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
4158
4159 2005-03-15  Roger Sayle  <roger@eyesopen.com>
4160
4161         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
4162         op1 whilst expanding the signed widenening multiply variant.
4163
4164 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
4165
4166         * toplev.c (display_target_options): Avoid unused variable warning if
4167         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
4168         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
4169         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
4170         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
4171         (mips_isa_info): New variable.
4172         (mips_parse_cpu): Remove the first argument and leave the caller
4173         to report errors.
4174         (TARGET_HANDLE_OPTION): Override default.
4175         (mips_handle_option): New function.  Move option validation code from...
4176         (override_options): ...here.  Update calls to mips_parse_cpu.
4177         * config/mips/mips.h (mips_arch_string, mips_tune_string)
4178         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
4179         (SUBTARGET_TARGET_OPTIONS): Delete.
4180         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
4181         (mno-flush-func, mtune=): New options.
4182
4183 2005-03-15  Roger Sayle  <roger@eyesopen.com>
4184             Richard Henderson  <rth@redhat.com>
4185
4186         * real.c (c4x_single_format, c4x_extended_format): Provide values
4187         for signbit_ro for c4x's single and extended floating point formats.
4188         * optabs.c (expand_copysign): Use the floating point format's
4189         signbit_ro for expanding via expand_copysign_absneg, and it's
4190         signbit_rw field for expanding via expand_copysign_bit.
4191
4192 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
4193
4194         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
4195         known_alignment_for_access_p.
4196         (known_alignment_for_access_p): New.
4197         (do_peeling_for_alignment): Field made int instead of bool and renamed
4198         to peeling_for_alignment.
4199         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
4200         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
4201         functionality used to be in vect_analyze_operations.
4202         (vect_analyze_operations): Code to determine vectorization factor was
4203         moved to vect_determine_vectorization_factor.
4204         (vect_enhance_data_refs_alignment): Update to correct alignment when it
4205         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
4206         factor.
4207         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
4208         be part of vect_analyze_operations).
4209         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
4210         creating the guard condition, as the number of iterations may be
4211         constant.
4212         (slpeel_tree_peel_loop_to_edge): Use new name of
4213         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
4214         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
4215         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
4216         (vect_do_peeling_for_alignment): Use fold.
4217         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
4218
4219         (vect_update_inits_of_dr): Renamed to
4220         vect_update_init_of_dr.
4221         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
4222         (vectorizable_store): Fix assertion to use == instead of =.
4223
4224 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
4225
4226         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
4227         call_used_regs for wCG registers.
4228
4229 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
4230
4231         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
4232         for non-offsettable memory references to cope with outstanding reload
4233         replacements, take 2.
4234
4235 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
4236
4237         PR target/18668
4238         * config/i386/i386.h (x86_fisttp): New.
4239         (TARGET_FISTTP): New macro.
4240         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
4241         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
4242         instruction when fisttp flag is set.
4243         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
4244
4245         * config/i386/i386.md (type attribute): Add fisttp.
4246         (unit attribute): Set to i387 for fisttp type.
4247         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
4248         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
4249         TARGET_FISTTP.
4250         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
4251         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
4252         macros.
4253         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
4254         patterns for TARGET_FISTTP.  Enable patterns for
4255         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
4256         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
4257         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
4258         implement fisttp x87 insn.
4259         (fix_trunc*_i387_fisttp splitters): New patterns.
4260         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
4261         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
4262         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
4263         clobber.
4264         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
4265         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
4266         Implement using mode macros. Disable patterns for TARGET_FISTTP.
4267         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
4268         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
4269         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
4270         Disable patterns for TARGET_FISTTP.
4271         (fix_trunc*_i387 splitters): Implement usign mode macros.
4272         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
4273         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
4274         (fix_trunx*_sse peephole2s): Implement using mode macros.
4275
4276 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
4277
4278         PR rtl-optimization/20291
4279         * combine.c (try_combine): If splitting fails, re-try with
4280         original combined pattern, i.e. before clobber stripping.
4281
4282 2005-03-14  Eric Christopher  <echristo@redhat.com>
4283
4284         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
4285         STACK_GROWS_DOWNWARD.
4286
4287 2005-03-14  Roger Sayle  <roger@eyesopen.com>
4288
4289         * real.h (struct real_format): Split the signbit field into two
4290         two fields, signbit_ro and signbit_rw.
4291         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
4292         mips_double_format, ieee_extended_motorola_format,
4293         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
4294         ieee_extended_intel_128_format, ibm_extended_format,
4295         mips_extended_format, ieee_quad_format, mips_quad_format,
4296         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
4297         i370_double_format, c4x_single_format, c4x_extended_format,
4298         real_internal_format): Update initializers for new field.
4299         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
4300         real_format structure.
4301         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
4302         field of the real_format structure.
4303
4304 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
4305
4306         Fix PR tree-optimization/20458
4307
4308         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
4309         DECL_EXTERNAL on STRUCT_FIELD tags.
4310         (clear_call_clobbered): Ditto.
4311         * tree-ssa-operands.c (note_addressable): Make sure the original
4312         variable doesn't slip into the addressable list if we have
4313         subvars.
4314         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
4315         tags too.
4316
4317 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
4318
4319         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
4320         (-fwide-exec-charset): Likewise.
4321         (-finput-charset): Likewise.
4322         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
4323         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
4324         * c.opt (Wnormalized): New.
4325
4326 2005-03-14  Devang Patel  <dpatel@apple.com>
4327
4328         * doc/invoke.texi: Add reference to Visibility document.
4329
4330 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
4331
4332         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
4333         MASK_SPLIT_ADDRESSES.
4334         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
4335         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
4336         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
4337         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
4338         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
4339         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
4340         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
4341         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
4342         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
4343         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
4344         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
4345         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
4346         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
4347         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
4348         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
4349         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
4350         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
4351         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
4352         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
4353         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
4354         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
4355         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
4356         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
4357         (TARGET_EXPLICIT_RELOCS): Delete.
4358         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
4359         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
4360         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
4361         (override_options): Set MASK_LONG64 if -mint64 is given and no
4362         -mlongXX option is.  Complain about -mint64 -mlong32.
4363         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
4364         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
4365         * config/mips/mips.opt: New file.
4366
4367 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
4368
4369         * config.gcc (extra_options): New variable for listing option files.
4370         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
4371         * configure.ac (extra_opt_files): New AC_SUBST variable.
4372         (tm_file_list, tm_include_list): Include options.h first.
4373         * configure: Regenerate.
4374         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
4375         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
4376         (s-options-h): New rule.
4377         (options.h): Depend on it.
4378         (TEXI_GCCINT_FILES): Add options.texi.
4379         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
4380         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
4381         * target.h (gcc_target): Add default_target_flags and handle_option.
4382         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
4383         (TARGET_HANDLE_OPTION): New macros.
4384         (TARGET_INITIALIZER): Include them.
4385         * opt-functions.awk (opt_args, nth_arg): New functions.
4386         (switch_flags): Handle the "Target" flag.
4387         (var_args): Delete.
4388         (var_name): Use opt_args and nth_arg.
4389         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
4390         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
4391         macros for the "Mask" and "InverseMask" options.
4392         * opts.h (cl_var_cond): New enum.
4393         (cl_option): Replace the "has_set_value" and "set_value" fields with
4394         "var_cond" and "var_value".
4395         (CL_TARGET): New macro.
4396         (option_enabled, print_filtered_help): Declare.
4397         (decode_options): Move definition.
4398         * opts.c (handle_option): Search for the original option before
4399         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
4400         var_cond and var_value fields.  Use targetm.handle_option to handle
4401         target options.
4402         (decode_options): Set target_flags to targetm.default_target_flags.
4403         (print_filtered_help): Make global.  Handle CL_TARGET.
4404         (option_enabled): New function.
4405         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
4406         (display_target_options, set_target_switch, print_switch_values)
4407         (default_pch_valid_p): Guard uses of target_switches with
4408         #ifdef TARGET_SWITCHES.  Also...
4409         (display_target_options): Display the CL_TARGET entries in cl_options.
4410         (set_target_option): Don't complain about the "" option when
4411         TARGET_SWITCHES is undefined.
4412         (print_switch_values): Use option_enabled.
4413         (default_pch_valid_p): Check cl_options[] when looking for something
4414         that has changed the value of target_flags.
4415         * c.opt: Remove documentation from top of file.
4416         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
4417         * doc/sourecebuild.texi: Refer to the new options documentation
4418         instead of c.opt.  Document machine-specific .opt files.
4419         * doc/tm.texi (target_flags): Say that this variable is declared
4420         by options.h.
4421         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
4422         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
4423         an alternative.
4424         * doc/options.texi: New file.
4425
4426 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
4427
4428         PR middle-end/18628
4429         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
4430         register.
4431
4432 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
4433
4434         PR c++/20280
4435         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
4436         temporary variable of pointer type if an lvalues is required.
4437         (gimplify_modify_expr_rhs): Request an rvalue from it.
4438         (gimplify_expr): Pass fallback on.
4439
4440 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
4441
4442         * cfgbuild.c: Update comments.
4443
4444 2005-03-14  Roger Sayle  <roger@eyesopen.com>
4445
4446         PR rtl-optimization/17236
4447         * optabs.c (expand_doubleword_mult): New helper function split out
4448         from expand_binop.  Permute the order in which instructions are
4449         emitted to minimize the number of simultaneously live registers.
4450         (expand_binop): Call expand_doubleword_mult to synthesize a double
4451         word multiplication.
4452
4453 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
4454
4455         * basic-block.h: Update the prototypes of cached_make_edge and
4456         rtl_make_eh_edge.
4457         * cfg.c (cached_make_edge): Take edge_cache representing one
4458         row of the adjacency matrix of edges.
4459         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
4460         (make_edges): Initialize edge_cache to represent one row of
4461         the adjacency matrix of edges.
4462
4463 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
4464
4465         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
4466         New functions.
4467         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
4468         Remove unused removed_phis variable.
4469         (conditional_replacement): Use build1/build2.
4470         (abs_replacement): Use last_and_only_stmt and build1/build2.
4471
4472 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
4473
4474         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
4475         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
4476         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
4477         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
4478         * c-common.c (handle_novops_attribute): New function.
4479         (c_common_attribute_table): Add "no vops" entry.
4480         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
4481         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
4482         * tree-ssa-operands.c (get_call_expr_operands): Do not
4483         create virtual operands for calls with ECF_NOVOPS flag.
4484         * tree.h (DECL_IS_NOVOPS): New macro.
4485         (struct tree_decl): Add novops_flag.
4486         (ECF_NOVOPS): New constant.
4487
4488 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
4489
4490         PR target/17688
4491         * config/i386/i386.c (x86_use_himode_fiop): New.
4492         (x86_use_simode_fiop): Rename from x86_use_fiop.
4493         * config/i386/i386.h (x86_use_himode_fiop): Declare.
4494         (TARGET_USE_HIMODE_FIOP): New.
4495         (x86_use_simode_fiop): Rename from x86_use_fiop.
4496         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
4497
4498         * config/i386/i386.md (X87MODEI12): New mode macro define.
4499         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
4500         to implement x87 FP compare with HImode input operands.
4501         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
4502         Use X87MODEI12 mode macro to handle HImode input operands.
4503         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
4504         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
4505         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
4506         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
4507         macro to implement x87 operators with HImode input operands.
4508         (fop splitters): Use X87MODEI12 mode macro to handle HImode
4509         input operands.
4510
4511 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
4512
4513         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
4514         integer_zerop.
4515         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
4516         constants invariant.
4517
4518 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
4519
4520         * basic-block.h (BB_VISITED): Removed.
4521         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
4522
4523 2005-03-14  Falk Hueffner  <falk@debian.org>
4524
4525         PR bootstrap/20424
4526         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
4527
4528 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
4529
4530         * ggc-zone.c: Fix comment typos.
4531
4532         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
4533         stringpool.c, config/mips/mips-protos.h: Update copyright.
4534
4535 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
4536
4537         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
4538         throughout with its typedef, "rtx".
4539         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
4540         (rs6000_tls_symbol_ref_1): Remove inline keyword.
4541         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
4542         regs in comment to match code.
4543
4544 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
4545
4546         * except.c (check_handled): Make it static.
4547         * except.h: Remove the corresponding prototype.
4548
4549         * function.c (get_func_frame_size): Make it static.
4550         * function.h: Remove the corresponding type.
4551
4552         * regclass.c (reg_class_superclasses, reg_class_subclasses):
4553         Make them static.
4554         * hard-reg-set.h: Remove the corresponding declarations.
4555
4556         * tree-cfg.c (verify_stmts): Check that
4557         bb_for_stmt (stmt) == bb for every PHI node and statement.
4558
4559 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
4560
4561         * config.gcc: Remove excess indentation.
4562         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
4563
4564 2005-03-13  Roger Sayle  <roger@eyesopen.com>
4565
4566         PR middle-end/19331
4567         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
4568         * fold-const.c (fold_sign_changed_comparison): Likewise.
4569         (fold_binary): Optimize comparisons against widened operands if
4570         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
4571
4572 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4573
4574         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
4575         (sparc_override_options): Initialize it.
4576         (sparc_struct_value_rtx): Set it on the MEM to be returned.
4577
4578 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
4579
4580         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
4581         (reg_or_none500mem_operand): New predicate.
4582         (zero_reg_mem_operand): New predicate.
4583         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
4584         to reg_or_none500mem_operand.
4585         (extendsfdf2_fpr): Add MEM alternative.
4586         (extenddftf2_internal): Change operand2 predicate to
4587         zero_reg_mem_operand.
4588
4589 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
4590
4591         * ggc-zone.c: Rewritten.
4592
4593         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
4594         if there are none.
4595         * configure.ac: Define GGC_ZONE for --with-gc=zone.
4596         * config.in: Regenerated.
4597         * configure: Regenerated.
4598         * gengtype.c (write_types_process_field, write_func_for_structure):
4599         Pass new argument to gt_pch_note_object.
4600         * ggc-common.c (struct ptr_data): Add TYPE.
4601         (gt_pch_note_object): Take TYPE argument and save it.
4602         (call_count): Update call to ggc_pch_count_object.
4603         (call_alloc): Update call to ggc_pch_alloc_object.
4604         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
4605         file.
4606         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
4607         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
4608         (ggc_alloc_zone_stat): Delete.
4609         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
4610         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
4611         (ggc_pch_alloc_object): Update prototypes.
4612         (garbage_zone): Delete.
4613         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
4614         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
4615         pointers.
4616         (tree_id_zone): New variable.
4617         (ggc_alloc_cleared_zone): Remove unused.
4618         (ggc_alloc_zone): Define.
4619         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
4620         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
4621         ggc_alloc_zone_stat.
4622         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
4623         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
4624         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
4625         (make_node_stat): Likewise.  Use tree_id_zone.
4626
4627 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
4628             Joseph S. Myers  <joseph@codesourcery.com>
4629
4630         * configure.ac: Check for MIPS TLS.
4631         * configure: Regenerated.
4632         * config/mips/mips-protos.h (enum mips_symbol_type): Add
4633         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
4634         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
4635         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
4636         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
4637         (mips_classify_symbol, mips_symbolic_constant_p)
4638         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
4639         (mips_tls_operand_p, mips_call_tls_get_addr)
4640         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
4641         (mips_tls_symbol_ref_1): New functions.
4642         (mips_legitimize_address, mips_legitimize_const_move): Call
4643         mips_legitimize_tls_address.
4644         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
4645         for MIPS16.
4646         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
4647         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
4648         (mips_char_to_class): Document V1_REG.
4649         (HAVE_AS_TLS): Provide default.
4650         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
4651         constants.
4652         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
4653         !TARGET_ABICALLS.
4654         (tls_get_tp_<mode>): New instruction.
4655
4656 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
4657
4658         * configure.ac: Update checks for target tools.
4659         * configure: Regenerated.
4660
4661 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
4662
4663         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
4664
4665 2005-03-13  Roger Sayle  <roger@eyesopen.com>
4666
4667         * expmed.c (expand_mult): Use synthetic multiplication sequences for
4668         more classes of DImode multiplication by constant.  Allow both
4669         multiplication by small negative constants (by performing a
4670         multiplication by a positive constant and negating the result) and
4671         multiplications by large powers of two, by using a left shift.
4672
4673 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
4674
4675         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
4676         of basic blocks into work_stack.
4677
4678         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
4679         config/mips/vr.h: Update copyright.
4680
4681         * c-decl.c (c_init_decl_processing): Remove useless calls to
4682         build_function_type.
4683
4684         * builtins.c (fold_trunc_transparent_mathfn,
4685         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
4686         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
4687         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
4688         fold_builtin_strcpy, fold_builtin_strncpy,
4689         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
4690         TREE_TYPE (exp).
4691
4692         * builtins.c (expand_builtin_mathfn_3): Remove local variable
4693         before_call.
4694
4695         * lambda-code.c (lambda_compute_auxillary_space): Remove local
4696         variable determinant.
4697
4698         * tree-cfg.c (group_case_labels): Remove local variable type.
4699
4700         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
4701         variable ann.
4702
4703         * tree-ssa-phiopt.c (value_replacement): Remove local variable
4704         result.
4705
4706 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
4707
4708         PR target/18251
4709         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
4710         (*movmemqi_insn): Delete.
4711         (*movmemhi): Delete.
4712
4713 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
4714
4715         * builtins.c (fold_builtin_classify): Take decomposed
4716         arguments of CALL_EXPR.
4717         (fold_builtin_1): Update a call to fold_builtin_classify.
4718
4719 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
4720
4721         PR c/20402
4722         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
4723         through into call to parser_xref_tag after parse error.
4724         (c_parser_struct_declaration): Consistently return NULL_TREE on
4725         error.
4726
4727 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
4728
4729         * tree-flow-inline.h (ref_contains_array_ref): New function.
4730         (lookup_subvars_for_var): Ditto.
4731         (get_subvars_for_var): Ditto.
4732         (var_can_have_subvars): Ditto.
4733
4734         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
4735         (struct subvar): New type.
4736
4737         * tree-dfa.c (okay_component_ref_for_subvars): New function.
4738
4739         * tree-optimize.c (init_tree_optimization_passes): Call
4740         pass_create_structure_vars.
4741
4742         * tree-ssa-alias.c: Include vec.h.
4743         (init_alias_info): Don't auto-clear call clobbered on struct-field
4744         tags.
4745         (compute_flow_insensitive_aliasing): Handle subvars.
4746         (group_aliases): Handle STRUCT_FIELD aliases.
4747         (setup_pointers_and_addressables): Ditto.
4748         Don't mark variables non-addressable if they still have
4749         addressable subvars.
4750         Also mark subvars addressable when the real variable is marked
4751         addressable.
4752         (add_pointed_to_var): Try to prune the pointed-to set by only
4753         pointing to subvars when possible.
4754         Otherwise, make sure we set addresses_needed and pt_vars to
4755         properly include subvars.
4756         (bitpos_of_field): New function.
4757         (push_fields_onto_fieldstack): Ditto.
4758         (get_or_create_used_part_for): Ditto.
4759         (create_overlap_variables_for): Ditto.
4760         (find_used_portions): Ditto.
4761         (create_structure_vars): Ditto.
4762         (pass_create_structure_vars): New structure.
4763
4764         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
4765         (get_expr_operands): Handle subvars.  Also try to turn
4766         COMPONENT_REF accesses into must-defs now that we can accurately
4767         portray it.
4768         (note_addressable): Try to only mark as addressable those subvars
4769         we know a COMPONENT_REF touches.
4770         (overlap_subvar): New function.
4771
4772         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
4773         Handle subvar storing.
4774         (vect_address_analysis): Update caller of vect_object_analysis.
4775
4776         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
4777
4778         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
4779         (STMT_VINFO_SUBVARS): New macro.
4780
4781         * common.opts: add flag_tree_salias.
4782
4783         * opts.c (decode_options): flag_tree_salias defaults to on.
4784
4785         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
4786
4787         * doc/tree-ssa.texi: Document structural alias analysis.
4788
4789 2005-03-12  Steven Bosscher  <stevenb@suse.de>
4790
4791         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
4792         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
4793         * tree-ssa-operands.c (get_expr_operands): Likewise.
4794         (get_expr_operands): Likewise for ERROR_MARK.
4795
4796 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
4797
4798         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
4799         var.
4800
4801         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
4802         removed_phis.
4803
4804         * tree-ssa-pre.c (compute_avail): Remove local variable val.
4805         (mark_operand_necessary): Remove local variable ver.
4806
4807         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
4808         variable prefix_len.
4809
4810         * value-prof.c (mod_subtract_transform): Remove local variable
4811         value.
4812
4813         * builtins.c (fold_builtin_exponent): Take decomposed
4814         arguments of CALL_EXPR.
4815         (fold_builtin_1): Update a call to fold_builtin_exponent.
4816
4817         * builtins.c (fold_builtin_logarithm): Take decomposed
4818         arguments of CALL_EXPR.
4819         (fold_builtin_1): Update a call to fold_builtin_logarithm.
4820
4821         * c-decl.c (c_init_decl_processing): Remove local variables
4822         ptr_ftype_void and ptr_ftype_ptr.
4823
4824         * gimplify.c (gimplify_expr): Remove local variables r0 and
4825         r1.
4826
4827         * reg-stack.c (move_for_stack_reg): Remove local variable
4828         push_insn.
4829         (compare_for_stack_reg): Remove local variable flags_user.
4830         (convert_regs_1): Remove local variable deleted.
4831
4832         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
4833         variable new_cond.
4834         (combine_blocks): Remove local variables exits and new_e.
4835
4836         * tree-inline.c (expand_call_inline): Remove local variable
4837         decl.
4838
4839         * tree-ssa-live.c (create_ssa_var_map,
4840         calculate_live_on_entry): Remove local variable snn.
4841
4842 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
4843
4844         * c-lex.c (c_lex_with_flags): Add parameter to call to
4845         cpp_spell_token.
4846
4847 2005-03-11  Per Bothner  <per@bothner.com>
4848
4849         * c-tree.h (struct c_declarator): New id_loc field.
4850         * c-pragma.h (c_lex_with_flags): Take position reference.
4851         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
4852         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
4853         (c_lex): Pass dummy location to c_lex_with_flags.
4854         * c-parser.c (c_lex_one_token): Set c_token's location using
4855         c_lex_with_flags, instead of input_location, which might be "ahead".
4856         (c_parser_direct_declarator): Set declarator's id_loc from
4857         c_token's id_loc.
4858         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
4859         declarator's id_loc, rather than probably-imprecise input_location.
4860         (build_id_declarator): Initialize c_declarator's id_loc field.
4861
4862 2005-03-11  Roger Sayle  <roger@eyesopen.com>
4863
4864         PR middle-end/20419
4865         * builtins.c (expand_builtin_signbit): Force the signbit's word
4866         into an integer register to avoid SUBREGs of floating point modes.
4867
4868 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
4869
4870         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
4871         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
4872         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
4873         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
4874
4875 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
4876
4877         PR rtl-optimization/20306
4878         * expr.c (emit_move_complex): Set try_int false if mode is
4879         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
4880         emit_block_move if try_int is true.
4881
4882 2005-03-11  Richard Henderson  <rth@redhat.com>
4883
4884         PR target/20415
4885         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
4886         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
4887         to match.
4888
4889 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
4890
4891         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
4892         (TARGET_FIX_VR4130): New macro.
4893         (TARGET_OPTIONS): Add -mfix-vr4130.
4894         (ISA_HAS_MACCHI): New macro.
4895         (ASM_SPEC): Add -mfix-vr4130.
4896         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
4897         (override_options): Handle mips_fix_vr4130_string.
4898         (mips_avoid_hazards): Clear all_noreorder_p
4899         if we're working around VR4130 errata and the macc alternatives
4900         are not available.
4901         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
4902         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
4903         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
4904         (MULTILIB_DEFAULTS): Remove leading "march=".
4905         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
4906         if no architecture option is given.
4907         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
4908         VR4130 multilibs.
4909         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
4910         * doc/invoke.texi: Document -mfix-vr4130.
4911
4912 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
4913
4914         * config/mips/mips.c (override_options): Only warn about -mint64
4915         deprecation if TARGET_INT64.
4916
4917 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4918
4919         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
4920         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
4921         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
4922         are non-specific regarding the nonnull parameter positions.
4923         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
4924         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
4925         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
4926         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
4927
4928         * builtins.def: Use the non-specific "nonnull" attibute lists.
4929
4930 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
4931
4932         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
4933         single_pred_edge, single_succ, single_pred): Improve comments.
4934
4935 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
4936
4937         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
4938         single_pred_edge, single_succ, single_pred): New inline functions.
4939         * bb-reorder.c (rotate_loop, find_traces_1_round,
4940         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
4941         duplicate_computed_gotos): Use the single_succ/pred functions.
4942         * cfganal.c (forwarder_block_p): Ditto.
4943         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
4944         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4945         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
4946         merge_seq_blocks): Ditto.
4947         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
4948         * cfglayout.c (fixup_reorder_chain): Ditto.
4949         * cfgloop.c (mark_single_exit_loops, update_latch_info,
4950         canonicalize_loop_headers, verify_loop_structure): Ditto.
4951         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
4952         mfb_update_loops, create_preheader, force_single_succ_latches,
4953         create_loop_notes): Ditto.
4954         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
4955         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
4956         commit_one_edge_insertion, purge_dead_edges,
4957         cfg_layout_can_merge_blocks_p): Ditto.
4958         * except.c (sjlj_emit_function_enter): Ditto.
4959         * flow.c (init_propagate_block_info): Ditto.
4960         * function.c (thread_prologue_and_epilogue_insns): Ditto.
4961         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
4962         insert_insn_end_bb): Ditto.
4963         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
4964         find_if_case_2): Ditto.
4965         * lambda-code.c (perfect_nestify): Ditto.
4966         * lcm.c (optimize_mode_switching): Ditto.
4967         * loop-doloop.c (doloop_modify): Ditto.
4968         * loop-init.c (loop_optimizer_init): Ditto.
4969         * loop-iv.c (simplify_using_initial_values): Ditto.
4970         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
4971         * loop-unswitch.c (unswitch_loop): Ditto.
4972         * modulo-sched.c (generate_prolog_epilog): Ditto.
4973         * predict.c (combine_predictions_for_insn, estimate_probability,
4974         tree_estimate_probability, last_basic_block_p,
4975         estimate_bb_frequencies): Ditto.
4976         * profile.c (branch_prob): Ditto.
4977         * regrename.c (copyprop_hardreg_forward): Ditto.
4978         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
4979         * tracer.c (layout_superblocks): Ditto.
4980         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
4981         cfg_remove_useless_stmts_bb, cleanup_control_flow,
4982         cleanup_control_expr_graph, disband_implicit_edges,
4983         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
4984         tree_verify_flow_info, tree_make_forwarder_block,
4985         tree_forwarder_block_p, remove_forwarder_block,
4986         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
4987         * tree-if-conv.c (tree_if_conversion): Ditto.
4988         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
4989         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
4990         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
4991         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
4992         copy_loop_headers): Ditto.
4993         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
4994         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
4995         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
4996         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
4997         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
4998         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
4999         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
5000         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
5001         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
5002         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
5003         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
5004         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
5005         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
5006         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
5007         slpeel_add_loop_guard): Ditto.
5008
5009 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
5010
5011         PR tree-optimization/15784
5012         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
5013         and -1 - A to ~A.
5014
5015         * stmt.c (expand_case): Don't change index_type.  Convert minval
5016         to the proper type.
5017
5018         PR tree-optimization/20130
5019         * fold-const.c (fold): Fold x * -1 into -x.
5020
5021 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5022
5023         PR rtl-optimization/20331
5024         * rtlanal.c (modified_between_p): Check its address first for MEM.
5025         (modified_in_p): Likewise.
5026
5027 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
5028
5029         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
5030
5031 2005-03-10  Steven Bosscher  <stevenb@suse.de>
5032
5033         * expr.c (expand_expr_real_1): If possible, use a conditional
5034         move for expanding MIN_EXPR and MAX_EXPR.
5035         Use temp for moving around rtx-en.
5036
5037 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
5038
5039         PR rtl-opt/20412
5040         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
5041         correct mode.
5042
5043 2005-03-10  Roger Sayle  <roger@eyesopen.com>
5044
5045         * builtins.c (expand_builtin_signbit): Extend to handle floating
5046         point modes wider than the largest integer type, using the
5047         operand_subword_force function to obtain the signbit's word.
5048
5049 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
5050
5051         PR target/20322
5052         * combine.c (try_combine): If recog_for_combine added CLOBBERs
5053         to NEWI2PAT, fail to combine if they are used by NEWPAT.
5054
5055 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
5056
5057         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
5058
5059 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
5060
5061         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
5062         type void.
5063         (perform_edge_inserts): Unconditionally call
5064         free_dominator_info.
5065
5066         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
5067
5068 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
5069
5070         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
5071
5072 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
5073
5074         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
5075
5076         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
5077         gcc_unreachable.
5078         (rtl_register_value_prof_hooks,
5079         tree_value_profile_transformations,
5080         tree_register_value_prof_hooks): Likewise.
5081         * var-tracking.c (stack_adjust_offset_pre_post,
5082         variable_htab_free, variable_union, dataflow_set_different_2,
5083         count_uses, variable_was_changed, set_frame_base_location,
5084         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
5085         vt_add_function_parameters): Likewise.
5086         * varasm.c (named_section_real, named_section, make_decl_rtl,
5087         asm_emit_uninitialised, assemble_integer, decode_addr_const,
5088         const_hash_1, compare_constant, copy_constant, force_const_mem,
5089         output_constant_pool_2, output_constant_pool_1, output_constant,
5090         output_constructor, make_decl_one_only, decl_tls_model,
5091         default_no_named_section, default_elf_select_section_1,
5092         default_unique_section_1): Likewise.
5093         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
5094         * vmsdbgout.c (addr_const_to_string): Likewise.
5095
5096         PR c++/20375
5097         * function.c (struct assign_parm_data_one): Remove last_named
5098         field.
5099         (assign_parm_find_data_types): Don't determine last_named.
5100         Reorder named_parm determination.
5101         (assign_parms): Only setup varargs on the last non-varadic
5102         parameter.
5103
5104 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
5105
5106         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
5107         sda base address on medium model.
5108
5109 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
5110
5111         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
5112         * cfgloop.c (flow_loop_nodes_find): Export.
5113         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
5114         Declare.
5115         * cfgloopmanip.c (fix_loop_structure): New function.
5116         * predict.c (predict_loops): Clean up the loops information.
5117         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
5118         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
5119         loop structure.
5120         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
5121         (rewrite_into_loop_closed_ssa): Declaration changed.
5122         * tree-loop-linear.c (linear_transform_loops): Add argument to
5123         rewrite_into_loop_closed_ssa call.
5124         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
5125         * tree-ssa-loop-im.c (move_computations): Ditto.
5126         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
5127         * tree-vectorizer.c (vectorize_loops): Ditto.
5128         * tree-optimize.c: Include cfgloop.h.
5129         (execute_todo): Choose whether to call cleanup_tree_cfg or
5130         cleanup_tree_cfg_loop.
5131         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
5132         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
5133         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
5134         cleanup_tree_cfg_loop call.
5135         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
5136         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
5137         work on part of cfg.
5138
5139 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
5140
5141         PR inline-asm/20314
5142         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
5143         with multiple alternatives.
5144
5145         * stmt.c (parse_output_constraint): Fix a typo.
5146
5147 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
5148
5149         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
5150         assembly directive instead of deprecated "no-generics".
5151
5152 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
5153
5154         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
5155         for non-offsettable memory references to cope with outstanding reload
5156         replacements.
5157         * config/s390/s390.md ("reload_outti"): Call find_replacement to
5158         avoid losing outstanding address reloads.
5159         ("reload_outdi", "reload_outdf"): Likewise.
5160
5161 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5162
5163         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
5164         code.  Add more cbrt transformations.
5165
5166 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5167
5168         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
5169
5170 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
5171
5172         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
5173         NULL_TREE when a given tree is not simplified.
5174         (fold): Return the original tree when any of the functions
5175         mentioned above NULL_TREE.
5176
5177         * fold-const.c (fold_unary, fold_binary): Take decomposed
5178         arguments, code, type, op0, and op1 in case of fold_binary.
5179         (fold): Update calls to fold_unary and fold_binary.
5180
5181 2005-03-09  Roger Sayle  <roger@eyesopen.com>
5182
5183         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
5184         a fndecl and an arglist instead of a CALL_EXPR, exp.
5185
5186 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
5187
5188         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
5189
5190         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
5191
5192         * expr.c (expand_assignment): Remove orig_to_rtx.
5193
5194         * fold-const.c (int_const_binop): Remove no_overflow.
5195
5196         * ifcvt.c (noce_emit_move_insn): Remove inmode.
5197
5198         * loop-iv.c (get_biv_step_1): Remove lhs.
5199
5200         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
5201
5202         * real.c (real_nan): Remove neg.
5203
5204         * function.c (thread_prologue_and_epilogue_insns): Remove i
5205         and newinsn.
5206
5207         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
5208         tb.
5209
5210         * tree-eh.c (tree_could_trap_p): Remove idx.
5211
5212         * tree-into-ssa.c (ann): Remove ann.
5213
5214         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
5215
5216         * tree-sra.c (decide_block_copy): Remove inst_count.
5217
5218         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
5219
5220         * tree-ssa-loop-im.c (lhs): Remove.
5221
5222         * cfgbuild.c (state, STATE, SET_STATE,
5223         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
5224         make_edges.
5225         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
5226         (find_basic_blocks): Set the state of each basic block to
5227         BLOCK_NEW.
5228
5229 2005-03-08  Jeff Law  <law@redhat.com>
5230
5231         * tree-cfg.c (cleanup_control_flow): If removal of a computed
5232         goto results in the removal of edges in the CFG, then we need
5233         to recompute dominators.
5234
5235 2005-03-09  Ben Elliston  <bje@au.ibm.com>
5236
5237         * c-common.c (c_do_switch_warnings): Comment fix.
5238
5239 2005-03-08  Julian Brown  <julian@codesourcery.com>
5240
5241         * Patch from 2005-03-08 reverted for causing regressions and
5242         ppc-darwin bootstrap failure.
5243
5244 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
5245
5246         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
5247         Define the real function for ppc-darwin.
5248         * c-typeck.c (convert_arguments): Check for target-specific
5249         invalid argument call to unprototyped function.
5250         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
5251         New Macro.
5252         * target.h (invalid_arg_for_unprototyped_fn): New field
5253         in struct calls.
5254         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
5255         default target hook.
5256         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
5257         Declare.
5258
5259 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5260
5261         * c-typeck.c (constructor_stack, constructor_range_stack,
5262         initializer_stack): Make them static.
5263
5264         * cfg.c (rbi_pool): Make it static.
5265
5266         * gimple-low.c (lower_stmt_body): Make it static.
5267         * tree-flow.h: Remove the corresponding prototype.  Don't
5268         declare lower_data.
5269
5270         * sched-deps.c (cache_size): Make it static.
5271
5272         * stor-layout.c (lang_adjust_rli): Make it static.
5273
5274 2005-03-08  Julian Brown  <julian@codesourcery.com>
5275
5276         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
5277         from being used for symbols with vague linkage when
5278         HAVE_GAS_COMDAT_GROUP is true.
5279
5280 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
5281
5282         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
5283         nlabel == JUMP_LABEL (jump).
5284
5285 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5286
5287         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
5288         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
5289         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
5290         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
5291
5292 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
5293
5294         PR c/14411
5295         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
5296         * c-common.c (handle_returns_twice): New function.
5297         (c_common_attribute_table): Declare eturns_twice' attribute.
5298         * doc/extend.texi: Document eturns_twice' attribute.
5299         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
5300         (struct tree_decl): Add returns_twice_flag.
5301
5302 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5303
5304         * tree-ssa-phiopt.c: Fix a comment typo.
5305
5306         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
5307         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
5308         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
5309         copyright.
5310
5311 2005-03-08  Richard Henderson  <rth@redhat.com>
5312
5313         * config/alpha/alpha.c (code_for_builtin): Replace special-case
5314         builtin codes with ctzdi2, clzdi2, popcountdi2.
5315         (struct alpha_builtin_def): Add is_const.
5316         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
5317         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
5318         (alpha_init_builtins): Init them.  Set nothrow and const attributes
5319         on builtins.
5320         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
5321         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
5322         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
5323         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
5324         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
5325         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
5326         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
5327         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
5328         (TARGET_FOLD_BUILTIN): New.
5329         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
5330         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
5331         (ffsdi2): Use ctz.
5332         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
5333
5334 2005-03-08  Ira Rosen  <irar@il.ibm.com>
5335
5336         PR tree-optimization/20122
5337         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
5338         condition of access function instead of base.
5339
5340 2005-03-07  Jeff Law  <law@redhat.com>
5341             Steven Bosscher  <stevenb@suse.de>
5342
5343         * tree-cfg.c (find_taken_edge_computed_goto): New function.
5344         (find_taken_edge): Call find_taken_edge_computed_goto as
5345         appropriate.  Allow any gimple invariant rather than just
5346         INTEGER_CST for VAL.
5347         (cleanup_control_flow): Cleanup a computed goto which has turned
5348         into a simple goto.
5349         (tree_merge_blocks): If block B has any forced labels, move
5350         them to the start of block A.
5351         * tree-ssa-dom.c (thread_across_edge): Allow threading across
5352         computed gotos as well.
5353         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
5354         removal of unnecessary computed gotos too.
5355         (lookup_redirection_data): Fix type of INSERT argument.  Callers
5356         updated.
5357
5358 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5359
5360         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
5361         Remove trailing spaces.
5362
5363         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
5364         unshare_all_trees): Make them static.
5365         * tree-gimple.h: Remove the corresponding prototypes.
5366
5367         * diagnostic.h: Remove unused prototype
5368         debug_output_buffer.
5369         * modulo-sched.c: Remove unused prototype
5370         set_row_column_for_ps.
5371
5372         * tree-ssa-phiopt.c (tree_ssa_phiopt,
5373         replace_phi_edge_with_variable): Remove unused variable i.
5374
5375 2005-03-07  Per Bothner  <per@bothner.com>
5376
5377         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
5378
5379 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
5380
5381         PR tree-opt/17671
5382         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
5383         bbs on the COND_EXPR instead of the PHI_NODEs.
5384         (candidate_bb_for_phi_optimization): Remove.
5385         (replace_phi_with_stmt): Rename to ...
5386         (replace_phi_edge_with_variable): this and change so that we
5387         replace the phi argument instead of removing the PHI.
5388         (conditional_replacement): Change so we deal with PHI with more
5389         than two arguments.
5390         (value_replacement): Likewise.
5391         (abs_replacement): Likewise.
5392
5393 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
5394
5395         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
5396         output_e500_flip_gt_bit.
5397
5398         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
5399         as bit 31.
5400         (rs6000_generate_compare): Fix logic to look at the correct bits.
5401         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
5402         Look at GT bit.
5403         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
5404         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
5405         gen_move_from_CR_gt_bit.
5406
5407         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
5408         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
5409         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
5410
5411         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
5412         (E500_CR_IOR_COMPARE): New constant.
5413
5414 2005-03-08  Earl Chew <earl_chew@agilent.com>
5415             David Billinghurst <David.Billinghurst@riotinto.com>
5416
5417         * config/i386/host-cygwin.c: New file to support precompiled
5418         headers on cygwin
5419         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
5420         * config.host: Use above files for cygwin host.
5421
5422 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
5423
5424         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
5425         ordering ops from earlier change.
5426
5427 2005-03-07  Per Bothner  <per@bothner.com>
5428
5429         Various fixes to allow us to again build if --enable-mapped-location:
5430         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
5431         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
5432         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
5433         local variable loc. Change logic appropriately.
5434         * tree-vect-transform.c (vect_finish_stmt_generation): Use
5435         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
5436         * c-parser.c (c_parser_for_statement): Initialize loc variable.
5437         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
5438         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
5439
5440 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
5441
5442         PR rtl-optimization/19683
5443         * reload1.c (choose_reload_regs): Pass the number of bits, not the
5444         number of bytes, to smallest_int_for_mode.  Fix arguments to
5445         REG_CANNOT_CHANGE_MODE_P.
5446
5447 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5448
5449         * reorg.c (relax_delay_slots): Check that the jump is
5450         conditional before trying to invert it.
5451
5452 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
5453
5454         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
5455         Make them static.
5456
5457         * calls (stack_arg_under_construction): Make it static.
5458
5459         * flow.c (regs_live_at_setjmp): Make it static.
5460         * flow.h: Remove the corresponding prototype.
5461
5462         * reload1.c (reload_startobj, reload_firstobj,
5463         something_needs_operands_changed, reload_inherited,
5464         reload_inheritance_insn, reload_override_in,
5465         reload_spill_index): Make them static.
5466
5467         * recog.c (verify_changes): Make it static.
5468         * recog.h: Remove the corresponding prototype.
5469
5470         * cfgbuild.c (find_sub_basic_blocks): Remove.
5471         * basic-block.h: Remove the corresponding prototype.
5472         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
5473         in comments.
5474         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
5475
5476         * tree-ssa-operands.c (check_build_stmt): Remove.
5477
5478         * stor-layout.c (set_alignment): Remove.
5479         * tree.h: Remove the corresponding prototype.
5480
5481         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
5482
5483         * tree-ssa-dce.c (control_dependence_map,
5484         visited_control_parents): Make them static.
5485
5486         * cfghooks.c (verify_flow_info): Remove local variable
5487         num_bb_notes.
5488
5489         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
5490         last_bb_seen.
5491
5492         * loop-unswitch.c (unswitch_loop): Remove local variable src.
5493
5494 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
5495
5496         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
5497
5498 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
5499
5500         * config/ia64/hpux.h (LINK_SPEC): Add -z.
5501         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
5502         PARALLEL for an empty structure.
5503
5504 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
5505
5506         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
5507
5508         * fold-const.c (fold_binary): Unroll the very first "for"
5509         loop.
5510
5511 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
5512
5513         * config/rs6000/predicates.md (branch_comparison_operator): Remove
5514         redundant match_code test.
5515         (scc_comparison_operator): Swap match_operand and match_code
5516         tests.
5517         (branch_positive_comparison_operator): Same.
5518         (trap_comparison_operator): Use comparison_operator and swap with
5519         match_code test.
5520
5521 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5522
5523         PR target/20288
5524         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
5525         (out_movhi_r_mr): Read low byte of volatile MEM first.
5526         (out_movhi_mr_r): Write high byte of volatile MEM first.
5527
5528 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
5529
5530         * cselib.c (reg_values, reg_values_size): Make them static.
5531
5532         * cse.c (cse_reg_info_table): Make it static.
5533
5534         * fold-const.c (fold_unary): Use build1 instead of copy_node.
5535
5536 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
5537
5538         * cse.c (find_best_addr): Use canon_for_address.
5539
5540 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
5541
5542         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
5543         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
5544         SUBREG and MEM, respectively.
5545
5546         * fold-const.c (fold_binary): Use code instead of t.
5547
5548         * fold-const.c (optimize_minmax_comparison): Take decomposed
5549         arguments code, type, op0, and op1 instead of t.
5550         (fold_binary): Update a call to optimize_minmax_comparison.
5551
5552         * fold-const.c (fold_range_test): Take decomposed arguments
5553         code, type, op0, and op1 instead of t.
5554         (fold_binary): Update a call to fold_range_test.
5555
5556         * fold-const.c (fold_binary_op_with_conditional_arg): Take
5557         decomposed arguments code, type, op0, and op1 instead of t.
5558         (fold_binary): Update a call to fold_range_test.
5559
5560 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
5561
5562         * fold-const.c (fold_binary): Avoid directly using the original
5563         expression t as much as possible.
5564
5565 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
5566
5567         * c-semantics.c (build_stmt): Use TYPE_P instead of
5568         IS_NON_TYPE_CODE_CLASS.
5569         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
5570         (NON_TYPE_CHECK): Use TYPE_P instead of
5571         IS_NON_TYPE_CODE_CLASS.
5572
5573         * fold-const.c (fold): Remove handling of binary expressions.
5574
5575 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
5576
5577         * doc/c-tree.texi: Wrap comments in @r{}.
5578         * doc/cpp.texi: Likewise.
5579         * doc/cppinternals.texi: Likewise.
5580         * doc/extend.texi: Likewise.
5581         * doc/md.texi: Likewise.
5582         * doc/objc.texi: Likewise.
5583         * doc/sourcebuild.texi: Likewise.
5584         * doc/tm.texi: Likewise.
5585         * doc/tree-ssa.texi
5586
5587 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
5588
5589         * predict.c (apply_return_prediction): Standardize PHI chain
5590         walking.
5591         * tree-ssa.c (ssa_redirect_edge): Likewise.
5592
5593         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
5594         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
5595         Update copyright.
5596
5597         * tree-phinodes.c (remove_phi_node): Drop the last argument.
5598         * tree-flow.h: Adjust the prototype for remove_phi_node.
5599         * lambda-code.c (perfect_nestify): Adjust a call to
5600         remove_phi_node.
5601         * tree-cfg.c
5602         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
5603         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
5604         Likewise.
5605         * tree-ssa-dce.c (remove_dead_phis): Likewise.
5606         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
5607         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
5608         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
5609
5610         * combine.c (simplify_and_const_int): Use gen_int_mode instead
5611         of GEN_INT (trunc_int_for_mode (...)).
5612         * loop-iv.c (iv_number_of_iterations): Likewise.
5613         * postreload.c (reload_cse_move2add): Likewise.
5614         * simplify-rtx.c (simplify_const_unary_operation,
5615         simplify_const_binary_operation): Likewise.
5616         * stor-layout.c (get_mode_bounds): Likewise.
5617
5618         * fold-const.c (fold_binary): New.
5619         (fold): Call fold_binary on binary expressions.
5620
5621 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
5622
5623         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
5624         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
5625         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
5626         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
5627         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
5628
5629 2005-03-04  Devang Patel  <dpatel@apple.com>
5630
5631         PR tree-optimization/18815
5632         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
5633         loops with zero exit edges.
5634
5635 2005-03-04  Devang Patel  <dpatel@apple.com>
5636
5637         * doc/invoke.texi: Remove reference to webpage that does not exist.
5638
5639 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
5640             Joseph S. Myers  <joseph@codesourcery.com>
5641
5642         PR c++/19797
5643         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
5644         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
5645         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
5646         * pa.c (get_plabel): Change argument to symbol_ref.  Call
5647         maybe_get_identifier instead of get_identifier.
5648         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
5649         (struct deferred_plabel): Replace name field with symbol field.
5650         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
5651         ASM_OUTPUT_EXTERNAL_REAL is defined.
5652         (output_global_address): Use output_addr_const for output of all
5653         symbol_refs.
5654         (output_deferred_plabels): Use symbol_ref instead of name for address
5655         output.
5656         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
5657         ASM_OUTPUT_SYMBOL_REF): New macros.
5658         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
5659         comment.
5660         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
5661         label.
5662
5663 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
5664
5665         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
5666         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
5667
5668 2005-03-04  Jeff Law  <law@redhat.com>
5669
5670         * basic-block.h (rediscover_loops_after_threading): Declare.
5671         * tree-ssa-dom.c: Include cfgloop.h.
5672         (tree_ssa_dominator_optimize): Discover loops and some basic
5673         properties.  Remove forwarder blocks recreated by loop header
5674         canonicalization.  Also mark backedges in the CFG.
5675         * tree-ssa-threadupdate.c: Include cfgloop.h
5676         (rediscover_loops_after_threading): Define.
5677         (struct local_info): New field, JUMP_THREADED.
5678         (prune_undesirable_thread_requests): New function.
5679         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
5680         then record that fact for the callers of redirct_edges.
5681         (thread_block): If BB has incoming backedges, then call
5682         prune_undesirable_thraed_requests.    Note when we are
5683         going to have to rediscover loop information.  Return a
5684         boolean indicating if any jumps were threaded.
5685         (thread_through_all_blocks): Bubble up boolean indicating
5686         if any jumps were threaded.
5687         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
5688         (tree-ssa-threadupdate.o): Similarly.
5689
5690 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
5691
5692         * fold-const.c (fold_ternary): Unroll the "for" loop to
5693         extract operands.
5694
5695 2005-03-04  Andrew Haley  <aph@redhat.com>
5696
5697         * unwind-dw2-fde-glibc.c (struct
5698         unw_eh_callback_data.check_cache): New field.
5699         (frame_hdr_cache): New.
5700         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
5701         Cache frame header info.
5702
5703 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
5704
5705         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
5706         (print_c_condition): Declare.
5707         * read-rtl.c (ptr_loc): New structure.
5708         (ptr_locs, ptr_loc_obstack, joined_conditions)
5709         (joined_conditions_obstack): New variables.
5710         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
5711         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
5712         (join_c_conditions, print_c_condition): New functions.
5713         (apply_macro_to_string): Associate the new string with the same
5714         source location as the old one.
5715         (add_condition_to_string): Use join_c_conditions.
5716         (read_string): Use set_rtx_ptr_loc to record a filename and line
5717         number for the string.
5718         (read_rtx): Initialize the new variables above.
5719         * genattrtab.c (write_test_expr, write_attr_value): Use
5720         print_c_condition.
5721         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
5722         comment above the GCC_VERSION check.
5723         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
5724         Inline the definition of MAYBE_EVAL.
5725         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
5726         * genoutput.c (process_template): Likewise.
5727         * genpreds.c (write_predicate_subfunction): Likewise.
5728         (write_predicate_expr): Use print_c_condition.
5729         * genrecog.c (write_cond): Likewise.
5730         * gensupport.c (process_rtx): Use join_c_conditions to join the
5731         conditions of a define_insn_and_split.  Record a source location
5732         for the string after the "&&".
5733         (alter_test_for_insn): Use join_c_conditions.
5734
5735 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
5736
5737         Revert for now:
5738         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
5739         PR tree-optimization/15784
5740         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
5741         and -1 - A to ~A.
5742
5743 2005-03-04  Ben Elliston  <bje@au.ibm.com>
5744
5745         * gcc.c (option_map): Add --coverage.
5746         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
5747         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
5748         * config/darwin.h: Pass -lgcov for `coverage'.
5749         * doc/invoke.texi (Debugging Options): Document --coverage.
5750
5751 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
5752
5753         * gcse.c (bypass_block): Use find_edge wherever possible.
5754
5755 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
5756
5757         Fix PR debug/20253
5758
5759         * c-opts.c (c_common_parse_file): Call start_source_file
5760         and end_source_file at the approriate times.
5761
5762         * dwarf2out.c (dwarf2out_finish): Don't auto-end
5763         the main file, it will be done for us now.
5764
5765 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
5766
5767         * fold-const.c (fold_ternary): New.
5768         (fold): Call fold_ternary on ternary expressions.  Remove
5769         handling of ternary expressions.
5770
5771 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
5772
5773         PR tree-optimization/15784
5774         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
5775         and -1 - A to ~A.
5776
5777 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
5778
5779         * config/rs6000/predicates.md (branch_comparison_operator):
5780         Convert from C block to conditional format.
5781
5782 2005-03-03  Jan Hubicka  <jh@suse.cz>
5783
5784         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
5785         and non-constant public variables.
5786
5787 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
5788
5789         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
5790         with LABEL_EXPR.
5791
5792         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
5793         EDGE_I.
5794
5795         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
5796         calls to release_ssa_name and release_phi_node.
5797
5798         * fold-const.c (fold): Remove handling of unary expressions.
5799
5800         * fold-const.c (fold_unary): Avoid directly using the original
5801         expression t as much as possible.
5802
5803 2005-03-03  Roger Sayle  <roger@eyesopen.com>
5804             Andrew Pinski  <pinskia@physics.uc.edu>
5805
5806         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
5807         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
5808
5809 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
5810
5811         Describe special registers SRP and MOF as allocatable registers.
5812         * config/cris/cris.c (cris_md_asm_clobbers): New function.
5813         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
5814         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
5815         TARGET_HAS_MUL_INSNS.
5816         (cris_print_operand) <case 'd'>: New case.
5817         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
5818         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
5819         define.
5820         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
5821         (REG_ALLOC_ORDER): Update for MOF.
5822         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
5823         SPECIAL_REGS.
5824         (GENERAL_REGS): No longer a define of ALL_REGS.
5825         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
5826         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
5827         Adjust accordingly.
5828         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
5829         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
5830         (SECONDARY_RELOAD_CLASS): Define.
5831         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
5832         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
5833         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
5834         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
5835         (REGISTER_MOVE_COST): Define.
5836         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
5837         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
5838         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
5839         (CRIS_MOF_REGNUM): New define_constants.
5840         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
5841         special registers.
5842         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
5843         New patterns.
5844         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
5845         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
5846         Adjust for MOF being properly described as a register.
5847         (indir_to_reg_split): Name this split.  Conditionalize on the
5848         destination register being a general register.
5849         (movei): Conditionalize on on operands 0 and 1 having the same
5850         register class.
5851
5852 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
5853
5854         PR target/20277
5855         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
5856         -mcpu to override any other explicitly given flags.
5857
5858 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
5859
5860         * recog.c (verify_changes, confirm_change_group): New functions,
5861         broken out of apply_change_group.
5862         (apply_change_group): Use them.
5863         * recog.h (verify_change, confirm_change_group): Declare.
5864         * rtl.h (redirect_jump_2): Declare.
5865         * jump.c (redirect_exp, invert_exp): Delete.
5866         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
5867         (redirect_jump_2): New function, broken out of redirect_jump.
5868         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
5869         (invert_jump): Use invert_jump_1 and redirect_jump_2.
5870         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
5871
5872 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
5873
5874         * varasm.c (named_section): Use xstrdup rather than doing it by
5875         hand.
5876
5877         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
5878
5879 2005-03-02  Devang Patel  <dpatel@apple.com>
5880
5881         Undo PR tree-optimization/18815 fix.
5882
5883 2005-03-02  Devang Patel  <dpatel@apple.com>
5884
5885         PR tree-optimization/18815
5886         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
5887         loops with zero exit edges.
5888
5889 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5890
5891         * cfg.c (connect_src, connect_dest, disconnect_src,
5892         disconnct_dest): New.
5893         (unchecked_make_edge, remove_edge, redirect_edge_succ,
5894         redirect_edge_pred): Use the new functions.
5895
5896         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
5897         free_dominance_info only when needed.
5898
5899 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
5900
5901         PR target/20276
5902         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
5903         (reg_or_sub_cint64_operand): Same.
5904
5905 2005-03-02  Jeff Law  <law@redhat.com>
5906
5907         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
5908         CFG_ALTERED in the main DOM iteration loop.
5909
5910 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
5911
5912         PR c++/19916
5913         * varasm.c (initializer_constant_valid_p): Allow conversions
5914         between OFFSET_TYPEs.  Tidy.
5915
5916 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
5917
5918         * config/cris/cris.md ("return"): Remove epilogue delay list
5919         sanity check.
5920
5921 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
5922
5923         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
5924         for Thumb.
5925         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
5926
5927 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5928
5929         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
5930         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
5931         config/m68k/m68k.c, config/mips/mips.h,
5932         config/rs6000/rs6000-protos.h, doc/contrib.texi,
5933         doc/include/gcc-common.texi: Update copyright.
5934
5935         PR middle-end/18029 and PR middle-end/18030
5936         * expr.c (optimize_bitfield_assignment_op): Add a special case
5937         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
5938
5939         * fold-const.c (fold_unary): New.
5940         (fold): Call fold_unary on unary expressions.
5941
5942 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
5943
5944         * cgraph.h (struct cgraph_edge): Add prev_caller and
5945         prev_callee fields.
5946         (cgraph_node_remove_callees): Export.
5947         * cgraph.c (cgraph_create_edge): Initialize prev_caller
5948         and prev_callee.
5949         (cgraph_edge_remove_callee): New function.
5950         (cgraph_edge_remove_caller): Likewise.
5951         (cgraph_remove_edge): Use.
5952         (cgraph_redirect_edge_callee): Likewise.
5953         (cgraph_node_remove_callees): New function.
5954         (cgraph_node_remove_callers): Likewise.
5955         (cgraph_remove_node): Use.
5956         * tree-optimize.c (tree_rest_of_compilation): Use
5957         cgraph_node_remove_callees instead of manual loop.
5958         * cgraphunit.c (cgraph_finalize_function): Likewise.
5959         (cgraph_expand_function): Likewise.
5960         (cgraph_remove_unreachable_nodes): Likewise.
5961
5962 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
5963
5964         PR c/8927
5965         * c-tree.h (undeclared_variable, build_external_ref): Add extra
5966         argument.
5967         * c-decl.c (undeclared_variable): Take location as argument.
5968         * c-typeck.c (build_external_ref): Likewise.
5969         * c-parser.c (c_parser_postfix_expression): Pass location of
5970         identifier to build_external_ref.
5971
5972 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
5973
5974         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
5975         CCEQ mode for branch_positive_comparison_operator test.
5976         * config/rs6000/predicates (branch_comparison_operator): Revert to
5977         define_predicate.
5978         (scc_comparison_operator): Same.
5979         (branch_positive_comparison_operator): Same.
5980
5981 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
5982
5983         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
5984         (cris_delay_slots_for_epilogue): Remove.
5985         (save_last): Move into cris_target_asm_function_epilogue.
5986         (cris_target_asm_function_epilogue): Remove tests for file being
5987         NULL.
5988         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
5989         (cris_delay_slots_for_epilogue): Remove prototypes.
5990         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
5991         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
5992
5993 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
5994
5995         * config/rs6000/predicates.md (branch_comparison_operator): Change
5996         to define_special_predicate.
5997         (scc_comparison_operator): Same.
5998         (branch_positive_comparison_operator): Same.
5999
6000 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
6001
6002         * Makefile.in (tree-ssa-sink.o): New.
6003         (OBJS-common): Add tree-ssa-sink.o.
6004         * common.opt: Add -ftree-sink
6005         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
6006         * timevar.def (TV_TREE_SINK): new timevar.
6007         * tree-flow.h (is_hidden_global_store): Prototype.
6008         * tree-optimize.c (init_tree_optimization_passes): Add
6009         pass_sink_code.
6010         * tree-pass.h (pass_sink_code): New.
6011         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
6012         for non-obvious global store store to is_hidden_global_store, and
6013         call that new function.
6014         * tree-ssa-sink.c: New file.
6015         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
6016         * doc/passes.texi: Document forward store motion.
6017         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
6018         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
6019         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
6020         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
6021
6022 2005-03-01  Per Bothner  <per@bothner.com>
6023
6024         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
6025         and we have a non-zero column-number, add it to the message.
6026         Also factor out the diagnostic_kind_text.
6027
6028 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
6029
6030         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
6031         flow_loop_pre_header_scan, flow_loop_pre_header_find,
6032         flow_loop_scan): Removed.
6033         (flow_loop_dump): Do not dump removed fields.
6034         (flow_loop_free): Do not free removed fields.
6035         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
6036         (loop_exit_edge_p): New function.
6037         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
6038         num_pre_header_edges, entry_edges, num_entries, exit_edges,
6039         num_exits, exits_doms.
6040         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
6041         LOOP_EDGES, LOOP_ALL): Removed.
6042         (flow_loop_scan): Declaration removed.
6043         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
6044         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
6045         flow_loops_find.
6046         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
6047         (if_convert): Call flow_loops_find and flow_loops_free
6048         when calling mark_loop_exit_edges.
6049         * cfgloopanal.c (mark_loop_exit_edges): Moved from
6050         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
6051         free_dominance_info calls.
6052         * loop-init.c (flow_loops_find): Ditto.
6053         * passes.c (rest_of_handle_branch_prob): Ditto.
6054         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
6055         * loop-unroll.c (analyze_insns_in_loop): Do not use
6056         EDGE_LOOP_EXIT.
6057         * predict.c (predict_loops): Do not call flow_loop_scan.
6058         Use get_loop_exit_edges.
6059         (tree_estimate_probability): Do not pass flags to flow_loops_find.
6060         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
6061         Do not use EDGE_LOOP_EXIT.
6062         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
6063         to bb_with_exit_edge_p.
6064         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
6065         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
6066         to bb_with_exit_edge_p.
6067         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
6068         EDGE_LOOP_EXIT.
6069         * tree-loop-linear.c (linear_transform_loops): Do not call
6070         flow_loop_scan.  Use loop->single_exit.
6071         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
6072         (vect_analyze_loop_form): Do not call flow_loop_scan.
6073         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
6074         loop->single_exit.
6075         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
6076         loop->single_exit.
6077         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
6078         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
6079         slpeel_tree_duplicate_loop_to_edge_cfg,
6080         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
6081         Use loop_preheader_edge and loop->single_exit.  Do not call
6082         flow_loop_scan.
6083
6084 2005-03-01  Nick Clifton  <nickc@redhat.com>
6085
6086         * config/arm/arm.c (thumb_find_work_register): Check all of the
6087         argument registers to see if they are free, and a couple of
6088         special cases where the last argument register but can be proved
6089         to be available during the function's prologue.
6090         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
6091         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
6092         thumb_unexpanded_epilogue): Use unsigned long as the type for the
6093         register bit-mask.
6094         (thumb_compute_save_reg_mask): Likewise.  Also use
6095         thumb_find_work_register() to ensure that there is agreement about
6096         which work register is going to be used in the prologue.
6097         (thumb_output_function_prologue): Use unsigned long as the type
6098         for the register bit-mask.  Also delay pushing the link register if
6099         other high registers are going to be pushed.
6100         (thumb_compute_save_reg_mask, emit_multi_reg_push,
6101         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
6102         redundant prototypes.
6103
6104 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
6105
6106         PR target/19819
6107         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
6108         and after reload in REG+REG indexed addresses without REG_POINTER
6109         set in the base and not set in the index.
6110
6111 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6112
6113         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
6114         Don't undefine here.
6115         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
6116         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
6117         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
6118         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
6119         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
6120         Delete.
6121         * config.gcc (sh*-*-linux*): Use config/linux.h.
6122
6123 2005-02-28  Dale Johannesen  <dalej@apple.com>
6124             Stan Shebs  <shebs@apple.com>
6125
6126         Rewrite of 64-bit Darwin structure-by-value pass/return.
6127         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
6128         intoffset, use_stack, named.
6129         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
6130         (rs6000_darwin64_record_arg_advance_flush):  New.
6131         (rs6000_darwin64_record_arg_advance_recurse): New.
6132         (rs6000_darwin64_record_arg_flush):  New.
6133         (rs6000_darwin64_record_arg_recurse):  New.
6134         (rs6000_darwin64_record_arg):  New.
6135         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
6136         (function_arg_boundary):  Handle 128-bit aligned structs.
6137         (function_arg_advance):  Rewrite darwin64 struct handling.
6138         (function_arg):  Call rs6000_darwin64_record_arg.
6139         (function_arg_partial_nregs):  Handle darwin64 structs.
6140         (rs6000_darwin64_function_value):  Remove.
6141         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
6142
6143 2005-02-28  Roger Sayle  <roger@eyesopen.com>
6144
6145         PR tree-optimization/20216
6146         * tree-chrec.c (tree_fold_factorial): Delete.
6147         (tree_fold_binomial): Change argument list to take a return type
6148         and change the type of K to unsigned int.  Rewrite to avoid explicit
6149         evaluation of factorials, and (recursively) calling fold to perform
6150         compile-time arithmetic.  Return NULL on (internal) overflow.
6151         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
6152         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
6153         if any intermediate calculation overflows.
6154         (chrec_apply): Update call to chrec_evaluate.
6155
6156 2005-02-28  James E Wilson  <wilson@specifixinc.com>
6157
6158         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
6159
6160 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
6161
6162         PR c/20245
6163         * c-parser.c (c_parser_compound_statement): Return error_mark_node
6164         instead of NULL_TREE on error.
6165
6166 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
6167
6168         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
6169         (EASY_VECTOR_15_ADD_SELF): Remove.
6170         (num_insns_constant_wide): Not static.
6171         (validate_condition_mode): Not static.
6172         (toc_relative_expr_p): Not static.
6173         (legitimate_indirect_address_p): Not static.
6174         (macho_lo_sum_memory_operand): Not static.
6175         (invalid_e500_subreg): Not static.
6176         (easy_vector_same): Not static.
6177         (easy_vector_splat_const): Not static.
6178         (RS6000_SYMBOL_REF_TLS_P): Remove.
6179         (any_operand): Delete.
6180         (any_parallel_operand): Delete.
6181         (count_register_operand): Delete.
6182         (altivec_register_operand): Delete.
6183         (xer_operand): Delete.
6184         (s8bit_cint_operand): Delete.
6185         (short_cint_operand): Delete.
6186         (u_short_cint_operand): Delete.
6187         (non_short_cint_operand): Delete.
6188         (exact_log2_cint_operand): Delete.
6189         (gpc_reg_operand): Delete.
6190         (cc_reg_operand): Delete.
6191         (cc_reg_not_cr0_operand): Delete.
6192         (reg_or_short_operand): Delete.
6193         (reg_or_neg_short_operand): Delete.
6194         (reg_or_aligned_short_operand): Delete.
6195         (reg_or_u_short_operand): Delete.
6196         (reg_or_cint_operand): Delete.
6197         (reg_or_arith_cint_operand): Delete.
6198         (reg_or_add_cint64_operand): Delete.
6199         (reg_or_sub_cint64_operand): Delete.
6200         (reg_or_logical_cint_operand): Delete.
6201         (got_operand): Delete.
6202         (got_no_const_operand): Delete.
6203         (easy_fp_constant): Delete.
6204         (easy_vector_constant): Delete.
6205         (easy_vector_constant_add_self): Delete.
6206         (zero_constant): Delete.
6207         (zero_fp_constant): Delete.
6208         (volatile_mem_operand): Delete.
6209         (offsettable_mem_operand): Delete.
6210         (mem_or_easy_const_operand): Delete.
6211         (add_operand): Delete.
6212         (non_add_cint_operand): Delete.
6213         (logical_operand): Delete.
6214         (non_logical_cint_operand): Delete.
6215         (mask_operand): Delete.
6216         (mask_operand_wrap): Delete.
6217         (mask64_operand): Delete.
6218         (mask64_2_operand): Delete.
6219         (and64_operand): Delete.
6220         (and64_2_operand): Delete.
6221         (and_operand): Delete.
6222         (reg_or_mem_operand): Delete.
6223         (lwa_operand): Delete.
6224         (symbol_ref_operand): Delete.
6225         (call_operand): Delete.
6226         (current_file_function_operand): Delete.
6227         (input_operand): Delete.
6228         (rs6000_nonimmediate_operand): Delete.
6229         (rs6000_tls_symbol_ref): Delete.
6230         (save_world_operation): Delete.
6231         (restore_world_operation): Delete.
6232         (load_multiple_operation): Delete.
6233         (store_multiple_operation): Delete.
6234         (vrsave_operation): Delete.
6235         (mfcr_operation): Delete.
6236         (mtcrf_operation): Delete.
6237         (lmw_operation): Delete.
6238         (stmw_operation): Delete.
6239         (branch_comparison_operator): Delete.
6240         (branch_positive_comparison_operator): Delete.
6241         (scc_comparison_operator): Delete.
6242         (trap_comparison_operator): Delete.
6243         (boolean_operator): Delete.
6244         (boolean_or_operator): Delete.
6245         (min_max_operator): Delete.
6246         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
6247         (EASY_VECTOR_15): Moved to here.
6248         (EASY_VECTOR_15_ADD_SELF): Move to here.
6249         (PREDICATE_CODES): Delete.
6250         * config/rs6000/rs6000-protos.h: Delete predicate functions.
6251         Declare functions no longer static.
6252         * config/rs6000/predicates.md: New.
6253         * config/rs6000/rs6000.md: Include predicates.md
6254
6255 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
6256
6257         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
6258         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
6259         REG_ALWAYS_RETURN.
6260         * cfgrtl.c (need_fake_edge_p): Likewise.
6261         * combine.c (distribute_notes): Likewise.
6262         * emit-rtl.c (try_split): Likewise.
6263         * recog.c (peephole2_opimize): Likewise.
6264         * reg-notes.def (ALWAYS_RETURN): Remove.
6265         * rtl.h (LCT_ALWAYS_RETURN): Remove.
6266         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
6267         * tree.h (ECF_ALWAYS_RETURN): Remove.
6268
6269 2005-02-28  Roger Sayle  <roger@eyesopen.com>
6270
6271         PR middle-end/19874
6272         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
6273         between different machine modes is never a "useless" conversion.
6274
6275 2005-02-28  Geert Bosch  <bosch@gnat.com>
6276
6277         PR ada/15977
6278         * doc/contrib.texi: List contributors for Ada front end
6279
6280 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
6281
6282         * simplify-rtx.c (simplify_unary_operation_1,
6283         simplify_const_unary_operation): New, extracted from...
6284         (simplify_unary_operation): ... this one.
6285         (simplify_binary_operation_1,
6286         simplify_const_binary_operation): New, extracted from...
6287         (simplify_binary_operation): ... this one.
6288         * rtl.h (simplify_const_unary_operation,
6289         simplify_const_binary_operation): Add prototypes.
6290
6291 2005-02-28  Julian Brown  <julian@codesourcery.com>
6292
6293         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
6294         building libjava and caused PR regression/20228.
6295
6296 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
6297
6298         PR bootstrap/17383
6299         * Makefile.in (host_subdir): New.
6300         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
6301         * configure: Regenerate.
6302
6303 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
6304
6305         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
6306         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
6307         installation directory first.
6308
6309 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
6310
6311         PR target/19065.
6312         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
6313         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
6314         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
6315         * config/cris/cris.md: Tweak comments referring to Q.
6316         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
6317         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
6318         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
6319         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
6320         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
6321         Insert spaces in constraints to align alternatives vertically for
6322         readability.
6323         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
6324         operand 1: "M".
6325
6326 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6327
6328         PR rtl-optimization/17728
6329         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
6330         operand 0 from general_operand to move_dest_operand.
6331
6332 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6333
6334         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
6335         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
6336         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
6337         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
6338
6339 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
6340
6341         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
6342         * configure: Regenerate.
6343         * libada-mk.in: Remove CC; rename
6344         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
6345
6346 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
6347
6348         PR tree-opt/20188
6349         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
6350         for the lhs, also walk over the tree.  Likewise for rhs.
6351
6352 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
6353
6354         * tree-ssa-dom.c (simple_iv_increment_p): New function.
6355         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
6356         Do not propagate value of iv before increment over the increment.
6357
6358 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
6359
6360         * c-parser.c: New file.
6361         * c-parse.in: Remove.
6362         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
6363         Remove.
6364         (c-parser.o): Add dependencies.
6365         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
6366         maintainer-clean, TAGS): Update.
6367         * c-config-lang.in (gtfiles): Update.
6368         * gengtype-lex.l: Don't handle "@@".
6369         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
6370         objc_build_synchronized, objc_begin_try_stmt,
6371         objc_begin_catch_clause, objc_finish_catch_clause,
6372         objc_build_finally_clause, objc_finish_try_stmt): New.
6373         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
6374         type_seen_p.
6375         (c_parse_init): Update comment.
6376         * c-decl.c (c_init_decl_processing): Update comment.
6377         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6378         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
6379         new c_declspecs members.
6380
6381 2005-02-25  Julian Brown  <julian@codesourcery.com>
6382
6383         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
6384         from being used for symbols with vague linkage when
6385         HAVE_GAS_COMDAT_GROUP is true.
6386
6387 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
6388
6389         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
6390
6391 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
6392
6393         PR target/19930
6394         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
6395         (LIBGCC2_HAS_DF_MODE): New.
6396         (LIBGCC2_HAS_XF_MODE): New.
6397         (LIBGCC2_HAS_TF_MODE): New.
6398         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
6399         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
6400         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
6401         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
6402         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
6403         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
6404         and add _fixtfdi, _fixunstfdi, _floatditf
6405         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
6406         L_fixunstfdi, L_floatditf.
6407         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
6408         (LIBGCC2_HAS_TF_MODE): Define.
6409
6410 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
6411
6412         PR tree-optimization/20204
6413         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
6414         REWRITE_THIS_STMT markers on PHI nodes.
6415         (rewrite_initialize_block): Likewise.
6416
6417 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
6418
6419         * version.c (version_string): Update to 4.1.
6420
6421 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
6422
6423         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
6424         Clarify that the alternative way doesn't work in GNU C++.
6425
6426 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
6427
6428         PR tree-optimization/19937
6429         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
6430         to the type of the induction variable.
6431
6432 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
6433
6434         PR rtl-optimization/20117
6435         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
6436         the block including noncopyable insn.
6437
6438 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6439
6440         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
6441         calls to find_reg_note.
6442
6443 2005-02-24  Richard Henderson  <rth@redhat.com>
6444
6445         PR tree-opt/20127
6446         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
6447         the type.
6448
6449 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
6450
6451         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
6452         vector types if to use base reg for misaligned non-word ld/std.
6453
6454 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
6455
6456         PR target/14619
6457         * config/cris/cris.c (cris_target_asm_function_prologue): Create
6458         dwarf2 label manually and put it after, not before the prologue.
6459
6460 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
6461
6462         PR target/19019
6463         * reload.c (operands_match_p): Only increment register number for
6464         SCALAR_INT_MODE_P modes in multiple hard registers.
6465
6466         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
6467         Fix formatting.
6468
6469 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6470
6471         * ChangeLog.5: Fix log message typo(s).
6472         * ChangeLog.7: Likewise.
6473         * ChangeLog.tree-ssa: Likewise.
6474         * cfgexpand.c: Fix comment typo(s).
6475         * conflict.c: Likewise.
6476         * defaults.h: Likewise.
6477         * dwarf2out.c: Likewise.
6478         * gcse.c: Likewise.
6479         * ggc-page.c: Likewise.
6480         * tree-eh.c: Likewise.
6481         * tree-ssa-dom.c: Likewise.
6482
6483 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
6484
6485         PR target/19019
6486         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
6487         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
6488         if SHARED is defined.
6489
6490         PR target/20196
6491         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
6492         allow splitting only if operands 0 and 3 don't overlap.
6493
6494 2005-02-24  Richard Henderson  <rth@redhat.com>
6495
6496         PR middle-end/19953
6497         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
6498         (fold_builtin_1): Call them.
6499         * fold-const.c (fold_complex_mult_parts): Split out from ...
6500         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
6501         (fold_complex_div_parts, fold_complex_div): New.
6502         (fold): Use them.
6503         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
6504
6505 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6506
6507         * tree-ssa-ccp.c (visit_assignment): Verify that result of
6508         VIEW_CONVERT_EXPR is_gimple_min_invariant.
6509
6510         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
6511         (print_node): Likewise.
6512         Print TYPE_SIZES_GIMPLIFIED.
6513
6514 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
6515
6516         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
6517         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
6518         operands as commutative in constraints.
6519
6520 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
6521
6522         * tree-into-ssa.c: Re-organize internal functions.
6523
6524 2005-02-24  Richard Henderson  <rth@redhat.com>
6525
6526         PR middle-end/18902
6527         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
6528         for c99.
6529         * common.opt (fcx-limited-range): New.
6530         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
6531         * toplev.c (flag_complex_method): Initialize to 1.
6532         (process_options): Set flag_complex_method to 0 if
6533         flag_cx_limited_range.
6534         * doc/invoke.texi (-fcx-limited-range): New.
6535
6536 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6537
6538         * cse.c (delete_trivially_dead_insns): Speed up by using
6539         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
6540         prev_real_insn.
6541
6542 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
6543
6544         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
6545         functions when -mid-shared-library is being used.
6546
6547 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
6548
6549         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
6550         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
6551         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
6552         * system.h: Poison LINK_LIBGCC_SPECIAL.
6553
6554 2005-02-23  James E Wilson  <wilson@specifixinc.com>
6555
6556         * gengtype.c (note_insn_name): Make 1 element larger.
6557
6558 2005-02-23  Roger Sayle  <roger@eyesopen.com>
6559
6560         PR target/20018
6561         PR rtl-optimization/20097
6562         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
6563         BImode SUBREGs of SImode registers which confuse the ia64 backend.
6564
6565 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
6566
6567         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
6568         * t-aix52 (SHLIB_INSTALL): Same.
6569
6570 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6571
6572         * genpreds.c: Update copyright.
6573
6574 2005-02-23  Michael Beach  <michaelb@ieee.org>
6575
6576         PR target/20159
6577         * config/sparc/t-elf (startup files): Assemble with CPP.
6578
6579 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
6580
6581         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
6582         (write_predicate_expr): Likewise.
6583
6584 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
6585
6586         PR tree-optimization/20100
6587         PR tree-optimization/20115
6588         * tree-optimize.c (init_tree_optimization_passes): Remove
6589         pass_maybe_create_global_var.
6590         * tree-pass.h (pass_maybe_create_global_var): Remove.
6591         * tree-ssa-alias.c (aliases_computed_p): Declare.
6592         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
6593         (count_calls_and_maybe_create_global_var): Remove.
6594         (pass_maybe_create_global_var): Remove.
6595         (init_alias_info): Do not declare aliases_computed_p.
6596         (maybe_create_global_var): If the function contains no
6597         call-clobbered variables and a mix of pure/const and regular
6598         function calls, create .GLOBAL_VAR.
6599         Mark all call-clobbered variables for renaming.
6600         (merge_pointed_to_info): Update comment.
6601         (add_pointed_to_var): Likewise.
6602         (is_escape_site): Likewise.
6603         Accept struct alias_info * instead of size_t *.
6604         Update all users.
6605         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
6606         as necessary.
6607         * tree-ssa-operands.c (get_call_expr_operands): If
6608         ALIASES_COMPUTED_P is false, do not add call-clobbering
6609         operands.
6610         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
6611         (delete_tree_ssa): Likewise.
6612
6613 2005-02-22  James E Wilson  <wilson@specifixinc.com>
6614
6615         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
6616         (do_compile): Do call it here.
6617
6618 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6619
6620         PR rtl-optimization/20017.
6621         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
6622         rest_of_handle_cse2, rest_of_handle_gcse): Call
6623         delete_dead_jumptables immediately before calling cleanup_cfg.
6624
6625 2005-02-22  Devang Patel  <dpatel@apple.com>
6626
6627         PR 19952
6628         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
6629         all labels
6630
6631 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
6632
6633         * config/rs6000/aix.h (WINT_TYPE): Define.
6634
6635 2005-02-22  Stan Shebs  <shebs@apple.com>
6636
6637         * config/rs6000/rs6000.c (rs6000_override_options): Default to
6638         natural alignment for 64-bit Darwin.
6639         (rs6000_parse_alignment_option): Warn about uses of -malign-power
6640         on 64-bit Darwin.
6641         * doc/invoke.texi: Document this.
6642
6643 2005-02-22  DJ Delorie  <dj@redhat.com>
6644
6645         * c-common.c (c_common_type_for_mode): Pass the mode's precision
6646         to make_[un]signed_type, not the mode itself.
6647
6648 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6649
6650         * cfg.c (cached_make_edge): Call make_edge if edge cache is
6651         not available.  Use tail calls wherever possible.
6652         (make_edge): Call unchecked_make_edge to create an edge.
6653
6654         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
6655         (coalesce_ssa_name): Don't check for
6656         SSANORM_USE_COALESCE_LIST.
6657         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
6658
6659 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
6660
6661         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
6662         (rewrite_into_ssa): ... here.
6663
6664 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
6665
6666         PR tree-optimization/19786
6667         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
6668         tag to another's may-alias bitmap when adding to the other's list.
6669
6670 2005-02-21  DJ Delorie  <dj@redhat.com>
6671
6672         * tree-ssa-loop-ivopts.c (computation_cost): Start register
6673         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
6674         registers in unsupported ways.
6675         * expmed.c (init_expmed): Likewise.
6676
6677 2005-02-21  Stan Cox  <scox@redhat.com>
6678
6679         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
6680
6681 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6682
6683         * tree-cfg.c (fold_cond_expr_cond): New.
6684         (make_edges): Call fold_cond_expr_cond.
6685         (find_taken_edge): Accept nothing but INTEGER_CST.
6686         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
6687         and 1.
6688         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
6689
6690         * flow.c (delete_dead_jumptables): Speed up by scanning insns
6691         that do not belong to any basic block.
6692
6693 2005-02-21  Jeff Law  <law@redhat.com>
6694
6695         * cfganal.c (find_unreachable_blocks): Manually CSE load of
6696         e->dest.
6697
6698 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6699
6700         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
6701         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
6702         Adjust their definitions.
6703         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
6704         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
6705
6706         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
6707         genautomata.c, langhooks.c, langhooks.h, system.h,
6708         config/arm/lib1funcs.asm: Update copyright.
6709
6710 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
6711
6712         * dbxout.c (dbxout_function_end): Emit Lscope label always.
6713
6714 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
6715
6716         PR bootstrap/13770
6717         * doc/install.texi: Document --with-gc.
6718
6719 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
6720
6721         * simplify-rtx.c (simplify_unary_operation): Add a missing
6722         "break" statement.
6723
6724 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
6725
6726         PR tree-optimization/18663
6727         * tree-ssa-dom.c (extract_range_from_cond): Return 0
6728         if the type has variable bounds.
6729
6730 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6731
6732         * gcse.c: Remove an obsolete comment.
6733
6734         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
6735
6736 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
6737
6738         * doc/extend.texi (Function Attributes) <Attribute const>: The
6739         attribute "pure" is below this text, not above.
6740
6741 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6742
6743         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
6744         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
6745         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
6746
6747 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
6748
6749         PR 18785
6750         * langhooks.h (struct lang_hooks): Add to_target_charset.
6751         * langhooks.c (lhd_to_target_charset): New function.
6752         * langhooks-def.h: Declare lhd_to_target_charset.
6753         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
6754         (LANG_HOOKS_INITIALIZER): Update.
6755         * c-common.c (c_common_to_target_charset): New function.
6756         * c-common.h: Declare it.
6757         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
6758         c_common_to_target_charset.
6759
6760         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
6761         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
6762         Delete definitions.
6763         * system.h: Poison them.
6764         * doc/tm.texi: Don't discuss them.
6765         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
6766         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
6767         (pp_c_char): Do not attempt to generate letter escapes for
6768         newline, tab, etc.
6769         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
6770         * config/mips/mips.c (mips_output_ascii): Likewise.
6771
6772 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
6773
6774         PR tree-optimization/19951
6775         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
6776         is abnormal.
6777
6778 2005-02-19  Steven Bosscher  <stevenb@suse.de>
6779
6780         PR middle-end/19698
6781         * function.h (struct function): New field `max_loop_depth'.
6782         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
6783         (flow_loops_find): Reset the max loop depth count before finding loops.
6784         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
6785         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
6786         (calculate_global_regs_live): Make sure the loop will terminate
6787         when the initial sets are not empty.
6788
6789 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
6790
6791         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
6792         object inside.
6793         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
6794
6795 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
6796
6797         PR other/19525
6798         * doc/invoke.texi: Remove documentation of %M spec.
6799         * gcc.c: Likewise.
6800         (init_spec): Remove %M suffix from -lgcc_s.
6801         (do_spec_1): Remove 'M' case.
6802         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
6803         to put shared libraries in the multilib directory.  Remove the
6804         shlib_so_soname substitution variable.  Don't add a multilib encoding
6805         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
6806         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
6807         SHLIB_INSTALL as well as SHLIB_LINK.
6808         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
6809         (SHLIB_NAME): Delete.
6810         (SHLIB_DIR): New macro.
6811         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
6812         (SHLIB_INSTALL): Adjust accordingly.
6813         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
6814         * config/t-slibgcc-sld: Likewise.
6815         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
6816         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
6817         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
6818         in $(SHLIB_DIR).
6819         (SHLIBUNWIND_INSTALL): Adjust accordingly.
6820         * config/i386/t-nwld (SHLIB_SONAME): Delete.
6821         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
6822         Use @shlib_base_name@ instead of @shlib_so_name@.
6823         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
6824         and @shlib_base_name@.so in @multilib_dir@.
6825         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
6826         to the install path.
6827         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
6828         (SHLIB_LINK): Remove previous workaround.
6829         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
6830         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
6831         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
6832         the install path.
6833         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
6834         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
6835         (SHLIB_INSTALL): Adjust accordingly.
6836         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
6837         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
6838         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
6839         config/t-slibgcc-elf-ver.
6840
6841 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
6842             Jakub Jelinek  <jakub@redhat.com>
6843
6844         PR tree-optimization/19828
6845         * tree-ssa-loop-im.c: Add a TODO comment.
6846         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
6847         without side-effects.
6848
6849 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
6850
6851         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
6852         call fold_convert.
6853
6854 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
6855
6856         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
6857         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
6858         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
6859         functions.
6860         (ia64_reorg): Delete fixup_errata call.
6861         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
6862         (TARGET_SWITCHES): Delete -mb-step entry.
6863
6864 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
6865
6866         PR c/20043
6867         * c-typeck.c (composite_type): Handle quals in transparent unions.
6868         (type_lists_compatible_p): Likewise.
6869
6870 2005-02-18  Stan Shebs  <shebs@apple.com>
6871
6872         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
6873         expressions in the .literal8 section.
6874
6875 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
6876
6877         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
6878
6879 2005-02-18  Roger Sayle  <roger@eyesopen.com>
6880
6881         * fold-const.c (constant_boolean_node): Always create values of the
6882         specified type, don't bother calling truthvalue_conversion.
6883
6884 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6885
6886         * except.c (output_function_exception_table): Call
6887         assemble_external_libcall (eh_personality_libfunc).
6888
6889 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6890
6891         PR target/19886
6892         * config/ia64/ia64.h (struct machine_function): Add state_num.
6893         * config/ia64/ia64.c (process_epilogue,
6894         process_for_unwind_directive): Use new unwind state numbers each
6895         time rather than state 1.
6896
6897 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6898
6899         PR target/20054
6900         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
6901         before the "*llgt_didi" pattern.
6902
6903 2005-02-18  Jason Merrill  <jason@redhat.com>
6904
6905         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
6906
6907 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
6908
6909         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
6910         (div0): Use it in place of ARM_FUNC_ALIAS.
6911         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
6912
6913 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
6914
6915         PR middle-end/20030
6916         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
6917         access, the lower bound of the array type if it exists.
6918
6919 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
6920
6921         PR c++/20008
6922         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
6923         cases that are out-of-range for the index type.
6924
6925 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
6926
6927         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
6928         (estimate_case_costs): Don't call convert.
6929         * expmed.c (expand_shift): Likewise.
6930         (make_tree): Call fold_convert instead of convert.
6931
6932 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
6933
6934         PR c++/19813
6935         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
6936         that ref to be marked MEM_READONLY_P doesn't have base that needs
6937         constructing.
6938
6939 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6940
6941         * genautomata.c (output_get_cpu_unit_code_func,
6942         output_cpu_unit_reservation_p): Don't generate old-style function
6943         definitions.
6944
6945 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
6946
6947         PR c++/20023
6948         PR tree-optimization/20009
6949         * convert.c (convert_to_integer): Revert 2005-02-16 change.
6950
6951         PR tree-optimization/18947
6952         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
6953         inline, remove all nodes that are inlined into the extern inline
6954         being redefined.
6955
6956 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6957
6958         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
6959         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
6960         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
6961         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
6962         Update copyright.
6963
6964 2005-02-17  Roger Sayle  <roger@eyesopen.com>
6965
6966         PR tree-optimization/19917
6967         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
6968         to be potentially trapping.
6969
6970 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6971
6972         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
6973
6974 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
6975
6976         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
6977         tem becomes a local variable which is set to the value of the
6978         back end defined INITIAL_FRAME_ADDRESS macro.
6979         (expand_builtin_frame_address): Omit the base parameter to
6980         expand_builtin_return_addr.
6981         (expand_builtin_profile_func): Likewise.
6982         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
6983         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
6984         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
6985
6986 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
6987
6988         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
6989         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
6990         * config/frv/frv.c (frv_function_epilogue): Likewise.
6991
6992 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
6993
6994         * lambda-code (perfect_nestify): Remove mark/unmark
6995         for rewriting hack.
6996         * tree-loop-linear.c (linear_transform_loops): Add
6997         rewrite_into_ssa call so that ssa is correct for
6998         rewriting into loop closed.
6999
7000 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
7001
7002         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
7003         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
7004         BITMAP_FREE.
7005         * bt-load.c (btr_def_live_range, combine_btr_defs,
7006         migrate_btr_def, migrate_btr_defs): Likewise.
7007         * cfgcleanup.c (thread_jump): Likewise.
7008         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
7009         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
7010         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
7011         df_rd_local_compute, df_reg_info_compute): Likewise.
7012         * dominance.c (init_dom_info, free_dom_info): Likewise.
7013         * flow.c (init_propagate_block_info,
7014         free_propagate_block_info): Likewise.
7015         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
7016         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
7017         modify_reg_pav): Likewise.
7018         * loop-invariant.c (find_defs, find_invariant_insn,
7019         find_invariants, free_inv_motion_data): Likewise.
7020         * predict.c (tree_predict_by_opcode,
7021         estimate_bb_frequencies): Likewise.
7022         * stmt.c (expand_case): Likewise.
7023         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
7024         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
7025         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
7026         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
7027         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
7028         rewrite_ssa_into_ssa): Likewise.
7029         * tree-optimize.c (tree_rest_of_compilation): Likewise.
7030         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
7031         analyze_edges_for_bb, perform_edge_inserts): Likewise.
7032         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
7033         * tree-sra.c (tree_sra): Likewise.
7034         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
7035         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
7036         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
7037         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
7038         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
7039         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
7040         Likewise.
7041         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
7042         calculate_live_on_entry, calculate_live_on_exit,
7043         build_tree_conflict_graph): Likewise.
7044         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
7045         record_important_candidates, set_use_iv_cost, find_depends,
7046         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
7047         tree_ssa_iv_optimize_finalize): Likewise.
7048         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
7049         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
7050         tree_duplicate_loop_to_header_edge): Likewise.
7051         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
7052         * tree-ssa.c (verify_flow_insensitive_alias_info,
7053         verify_name_tags, verify_ssa, init_tree_ssa,
7054         delete_tree_ssa): Likewise.
7055         * tree-ssanames.c (marked_ssa_names, init_ssanames,
7056         fini_ssanames): Likewise.
7057         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
7058
7059 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
7060
7061         * config/rs6000/t-rtems: Completely reworked.
7062
7063 2005-02-17  Ira Rosen  <irar@il.ibm.com>
7064
7065         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
7066
7067 2005-02-17  Ira Rosen  <irar@il.ibm.com>
7068
7069         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
7070         POINTER_TYPE_P when checking that type is a pointer.
7071         (vect_get_memtag): Remove.
7072         (vect_address_analysis): Use POINTER_TYPE_P. Call
7073         vect_object_analysis with dummy parameter for memtag.
7074         (vect_object_analysis): Extract memtag (functionality that
7075         used to be in vect_get_memtag and moved here). Fix printings.
7076         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
7077         with correct parameters. Remove call to vect_get_memtag.
7078
7079 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
7080
7081         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
7082         (tree-vectorizer.o): Added missing dependencies.
7083
7084         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
7085         decleration.
7086         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
7087         declaration in tree-vectorizer.c, now has an extern declaration in
7088         tree-vectorizer.h).
7089         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
7090         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
7091         get_vectype_for_scalar_type, vect_is_simple_use,
7092         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
7093         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
7094         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
7095         vectorizable_store, vectorizable_operation, vectorizable_assignment,
7096         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
7097         find_loop_location): Likewise.
7098
7099         * tree-vectorizer.c (langhooks.h): #include removed.
7100         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
7101         moved to tree-vectorized.h.
7102         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
7103         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
7104         get_vectype_for_scalar_type, vect_is_simple_use,
7105         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
7106         vect_supportable_dr_alignment, new_loop_vec_info,
7107         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
7108         vect_set_verbosity_level, find_loop_location): Likewise.
7109
7110         (vect_analyze_loop): Function externalized. Declaration moved to
7111         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
7112         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
7113         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
7114         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
7115         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
7116         vect_enhance_data_refs_alignment, vect_analyze_operations,
7117         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
7118         vect_stmt_relevant_p, vect_get_loop_niters,
7119         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
7120         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
7121         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
7122         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
7123         vect_get_memtag): Likewise.
7124
7125         (vectorizable_load): Function externalized. Declaration moved to
7126         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
7127         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
7128         vect_transform_loop): Likewise.
7129         (vect_transform_stmt): Moved to tree-vect-transform.c.
7130         (vect_align_data_ref, vect_create_destination_var,
7131         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
7132         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
7133         vect_get_vec_def_for_operand, vect_init_vector,
7134         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
7135         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
7136         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
7137         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
7138         vect_do_peeling_for_loop_bound): Likewise.
7139
7140         * tree-vect-analyze.c: New file.
7141         * tree-vect-transform.c: New file.
7142
7143 2005-02-17  Jason Merrill  <jason@redhat.com>
7144
7145         PR mudflap/19319, c++/19317
7146         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
7147         slot explicit.
7148
7149 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
7150
7151         * doc/install.texi (Specific): Update link for Darwin-specific
7152         tool binary site.
7153
7154 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
7155
7156         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
7157         constant_boolean_node.
7158
7159 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
7160
7161         PR target/19019
7162         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
7163         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
7164
7165 2005-02-16  Richard Henderson  <rth@redhat.com>
7166
7167         PR 19920
7168         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
7169         with W_TYPE_SIZE.
7170         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
7171         replace uses with Wtype_MAXp1_F.
7172         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
7173         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
7174         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
7175         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
7176         and HAVE_TFMODE as appropriate.
7177         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
7178         (__floatdisf): Likewise.
7179         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
7180         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
7181         (Wtype_MAXp1_F): New.
7182         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
7183         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
7184
7185 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
7186
7187         * PR target/19162
7188         * arm.c (arm_apply_result_size): New function.
7189         * arm.h (APPLY_RESULT_SIZE): Define.
7190         * arm-protos.h (arm_apply_result_size): Add prototype.
7191         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
7192         (movxf): New expand.
7193         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
7194         (call_value_symbol): Remove predicate for operand 0.
7195         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
7196         (untyped_call): Rework to correclty return values for any type.
7197         (untyped_return): New expand.
7198         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
7199
7200 2005-02-16  Stan Shebs  <shebs@apple.com>
7201
7202         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
7203         * config/rs6000/t-darwin8: New, for 64-bit multilib.
7204
7205 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
7206
7207         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
7208         configure settings on Solaris 7 and later.
7209
7210 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
7211
7212         PR tree-optimization/19865
7213         * tree-optimize.c (init_tree_optimization_passes): Run
7214         pass_may_alias after pass_sra.
7215
7216 2005-02-16  Richard Henderson  <rth@redhat.com>
7217             Stuart Hastings  <stuart@apple.com>
7218
7219         PR debug/19521
7220         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
7221         Do nothing if debug info suppressed for this function.
7222         (dbxout_begin_function): Early exit if debug info suppressed for
7223         this function.
7224
7225 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
7226
7227         PR target/20007
7228         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
7229         find_basic_blocks.
7230         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7231
7232         PR tree-optimization/19967
7233         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
7234         expand_builtin_strchr, expand_builtin_strrchr): Take a new
7235         argument TYPE.  Adjust calls to fold_builtin_XXX.
7236         (expand_builtin, fold_builtin_1): Adjust calls to
7237         expand_builtin_XXX.
7238         (fold_builtin_strchr, fold_builtin_strpbrk,
7239         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
7240         result to a requested type TYPE.
7241
7242 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
7243
7244         PR middle-end/19857
7245         * fold-const.c (fold): Don't optimize (T)(x & cst) to
7246         (T)x & (T)cst if (T)cst overflows.
7247         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
7248         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
7249
7250 2005-02-15  Jeff Law  <law@redhat.com>
7251
7252         * gcse.c (blocks_with_calls): New bitmap.
7253         (alloc_gcse_mem): Allocate it.
7254         (free_gcse_mem): Free it.
7255         (clear_modifY_mem_tables): Clear it.
7256         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
7257         when we encounter CALL_INSNs.
7258         (compute_transp, case MEM): Handle blocks with calls separate
7259         from blocks without calls.  Use bitmap iterators rather than
7260         FOR_EACH_BB.
7261
7262 2005-02-15  Peter O'Gorman  <peter@pogma.com>
7263
7264         PR bootstrap/18810
7265         * mklibgcc.in (vis_hide): Use a temporary object file, not
7266         -o /dev/null.
7267
7268 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
7269
7270         PR target/19924
7271         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
7272         access optimization.
7273
7274 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
7275             Alan Modra  <amodra@bigpond.net.au>
7276
7277         PR target/19019
7278         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
7279         (_xlqsub): Rename to __gcc_qsub.
7280         (_xlqmul): Rename to __gcc_qmul.
7281         (_xlqdiv): Rename to __gcc_qdiv.
7282         Provide versioned symbol aliases with old names.
7283         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
7284         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
7285         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
7286         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
7287         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
7288
7289 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
7290
7291         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
7292         Fold ~(A - 1) and ~(A + -1) to -A.
7293
7294 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
7295
7296         PR pch/14940
7297         PR target/19300
7298         * config/host-linux.c (linux_gt_pch_use_address): Copy from
7299         config/pa/pa-host.c:pa_gt_pch_use_address.
7300
7301 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
7302
7303         * tree-vn.c (get_value_handle): Make sure that given an
7304         is_gimple_min_invariant expression, we always return it.
7305
7306 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7307
7308         * passes.c (rest_of_handle_gcse): Fix a comment.
7309
7310 2005-02-15  Jeff Law  <law@redhat.com>
7311
7312         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
7313         bitmap.
7314         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
7315         (canon_list_insert, record_last_mem_set_info): Similarly.
7316         (clear_modify_mem_tables): Similarly.
7317
7318 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7319
7320         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
7321         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
7322         config/mips/mips.md, config/rs6000/aix.h,
7323         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
7324
7325 2005-02-15  Richard Henderson  <rth@redhat.com>
7326
7327         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
7328         call to be best_edge.
7329
7330 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
7331
7332         * basic-block.h: Adjust the prototype for find_basic_blocks.
7333         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
7334         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
7335         find_basic_blocks.
7336
7337         * flow.c (recompute_reg_usage): Remove all arguments.
7338         * passes.c (rest_of_compilation): Adjust the call to
7339         recompute_reg_usage.
7340         * rtl.h: Adjust the prototype for recompute_reg_usage.
7341
7342 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
7343
7344         * tree-dump.c (dump_files): Update to reflect new member
7345         of dump_file_info.
7346         (dump_register): Add new argument.
7347         Set glob name.
7348         (dump_switch_p_1): Check against glob name if doglob was passed.
7349         (dump_switch_p): Check against regular first, then glob if
7350         we didn't have any hits on the dump name.
7351         * tree-optimize.c (register_one_dump_file):
7352         Pass in glob name as well.
7353         * tree-pass.h (struct dump_file_info): Add glob
7354         member.
7355
7356 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
7357
7358         PR preprocessor/16323
7359         * doc/invoke.texi: Document that -Wendif-labels is on by default.
7360
7361 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
7362
7363         PR target/19019
7364         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
7365         (trunctfdf2_internal1): New.
7366         (trunctfdf2_internal2): Renamed from trunctfdf2.
7367
7368 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
7369
7370         PR tree-optimization/19853
7371         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
7372
7373 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
7374
7375         * passes.c (rest_of_handle_loop_optimize): Remove calls to
7376         delete_dead_jumptables and cleanup_cfg.
7377
7378 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
7379
7380         * reload.c (find_reloads): Swap address_reloaded flags when
7381         swapping commutative operands.
7382
7383 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
7384
7385         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
7386         Use standard_iv_increment_position for computing the bsi position
7387         for create_iv.
7388         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
7389         the bsi position.
7390
7391 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
7392
7393         PR target/17428
7394         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
7395         life range of hard registers.
7396         * value-prof.c (insn_prefetch_values_to_profile): Only
7397         scan normal insns.
7398
7399         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
7400         profile in libcalls.
7401
7402 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
7403
7404         * bitmap.h (bitmap_and_compl_into): Return bool.
7405         * bitmap.c (bitmap_and_compl_into): Return changed flag.
7406
7407 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
7408
7409         PR tree-optimization/19944
7410         * fold-const.c (fold): Re-add ABS_EXPR folding.
7411
7412 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
7413
7414         PR target/19019
7415         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
7416         {TARGET,MASK}_XL_COMPAT.
7417         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
7418         MASK_XL_COMPAT.
7419         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
7420         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
7421         TARGET_XL_COMPAT.
7422         (rs6000_arg_partial_bytes): Same.
7423         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
7424         and XL compatibility enabled.
7425         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
7426         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
7427         test to final condition.
7428         (cmptf_internal2): New.
7429         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
7430         xl-compat.  Add TFmode information to description.
7431
7432 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
7433
7434         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
7435
7436 2005-02-13  Jason Merrill  <jason@redhat.com>
7437
7438         PR c++/16405
7439         * fold-const.c (fold_indirect_ref_1): Split out from...
7440         (build_fold_indirect_ref): Here.
7441         (fold_indirect_ref): New fn.
7442         * tree.h: Declare it.
7443         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
7444         (gimplify_modify_expr_rhs): Likewise.
7445         (gimplify_expr): Likewise.
7446
7447 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
7448
7449         PR tree-optimization/14303
7450         PR tree-optimization/15784
7451         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
7452         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
7453         ABS_EXPR<x> != 0 to x != 0.
7454
7455 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
7456
7457         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
7458         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
7459         spelling conventions.
7460
7461         * passes.c (rest_of_handle_gcse): Don't run cse_main and
7462         delete_trivially_dead_insns too many times.
7463
7464         * passes.c (rest_of_handle_gcse): Remove dead assignments to
7465         tem and tem2.
7466
7467 2005-02-12  Ira Rosen  <irar@il.ibm.com>
7468
7469         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
7470         (vect_is_simple_iv_evolution): Remove redundant parameter
7471         and step check.
7472         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
7473         without last parameter.
7474         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
7475         Return pointer step. Call vect_is_simple_iv_evolution without
7476         last parameter. Check only that the step is multiple of size
7477         type. Remove stmt_vinfo updates.
7478         (vect_get_memtag_and_dr): Remove.
7479         (vect_get_memtag): New function.
7480         (vect_address_analysis): New function.
7481         (vect_object_analysis): New function.
7482         (vect_analyze_data_refs): Call vect_object_analysis and
7483         vect_get_memtag. Update stmt_vinfo fields.
7484
7485 2005-02-12  Ira Rosen  <irar@il.ibm.com>
7486
7487         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
7488         exist and are objects. Remove checks for pointer.
7489         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
7490         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
7491         (vect_create_data_ref_ptr): Likewise.
7492         (vect_base_addr_differ_p): New function.
7493         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
7494         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
7495         Don't set the DR_BASE_NAME field of data-ref.
7496         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
7497
7498 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
7499
7500         * optabs.h (enum optab_index): Add new OTI_ldexp.
7501         (ldexp_optab): Define corresponding macro.
7502         * optabs.c (init_optabs): Initialize ldexp_optab.
7503         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
7504         patterns.
7505         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
7506         using ldexp_optab.
7507         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
7508         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
7509
7510         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
7511         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
7512         intrinsics.
7513
7514 2005-02-12  Ira Rosen  <irar@il.ibm.com>
7515
7516         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
7517         to base_address.
7518         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
7519         stmt_vec_info.
7520         (vect_get_base_and_offset): Always return an address.
7521         (vect_create_addr_base_for_vector_ref): Remove treatment for
7522         different data reference types.
7523         (vect_compute_data_ref_alignment): Rename base to base_address in
7524         stmt_vec_info. Get the object in order to force its alignment.
7525         (vect_get_memtag_and_dr): Rename base to base_address in
7526         stmt_vec_info. Extract the object for memtag analysis.
7527
7528 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
7529
7530         PR regression/19898.
7531         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
7532         changes cc_status, use apply modified_in_p to part of cc_status
7533         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
7534         body.
7535
7536 2005-02-11  Richard Henderson  <rth@redhat.com>
7537
7538         * tree-complex.c (expand_complex_libcall): New.
7539         (expand_complex_multiplication): Use it for c99 compliance.
7540         (expand_complex_division): Likewise.
7541         * fold-const.c (fold_complex_add, fold_complex_mult): New.
7542         (fold): Call them.
7543         * builtins.c (built_in_names): Remove const.
7544         * tree.c (build_common_builtin_nodes): Build complex arithmetic
7545         builtins.
7546         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
7547         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
7548         (built_in_names): Remove const.
7549         * c-common.c (c_common_type_for_mode): Handle complex modes.
7550         * flags.h, toplev.c (flag_complex_method): Rename from
7551         flag_complex_divide_method.
7552         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
7553         __mulsc3, __muldc3, __mulxc3, __multc3): New.
7554         * libgcc2.h: Declare them.
7555         * libgcc-std.ver: Export them.
7556         * mklibgcc.in (lib2funcs): Build them.
7557
7558 2005-02-11  Steven Bosscher  <stevenb@suse.de>
7559
7560         PR tree-optimization/19876
7561         Partially revert my change from 2005-01-14
7562         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
7563         (compute_antic): ...and remove the loop here.
7564
7565 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
7566
7567         PR middle-end/19858
7568         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
7569         is number of inner's bits, avoid creating a BIT_FIELD_REF.
7570
7571         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
7572         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
7573
7574 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
7575
7576         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
7577         offsets for the big-endian 32-bit case.
7578
7579 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
7580
7581         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
7582
7583 2005-02-11  Dale Johannesen  <dalej@apple.com>
7584
7585         * cselib.c (cselib_process_insn):  Clear out regs where
7586         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
7587         * reload.c (find_equiv_reg): Ditto.
7588
7589 2005-02-11  Ian Lance Taylor  <ian@airs.com>
7590
7591         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
7592         with no elements.
7593
7594         * tree.c (build_function_type_list): Work correctly if there are
7595         no arguments.
7596
7597 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
7598
7599         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
7600         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
7601         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
7602         TARGET_ZARCH instead of TARGET_64BIT.
7603
7604 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
7605
7606         * config/rs6000/t-rtems:
7607         (MULTILIB_OPTIONS): Remove mcpu=602.
7608         (MUTLILIB_DIRNAMES): Remove m602.
7609         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
7610         Let mcpu=602 match mcpu=603.
7611         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
7612
7613 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7614
7615         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
7616         signal trampolines.
7617
7618 2005-02-10  David Daney  <ddaney@avtrex.com>
7619
7620         * config/alpha/linux-unwind.h: Add exception clause to copyright.
7621         * config/i386/linux-unwind.h: Likewise.
7622         * config/ia64/linux-unwind.h: Likewise.
7623         * config/mips/linux-unwind.h: Likewise.
7624         * config/pa/linux-unwind.h: Likewise.
7625         * config/rs6000/linux-unwind.h: Likewise.
7626         * config/s390/linux-unwind.h: Likewise.
7627         * config/sh/linux-unwind.h: Likewise.
7628         * config/sparc/linux-unwind.h: Likewise.
7629
7630 2005-02-10  Steven Bosscher  <stevenb@suse.de>
7631
7632         PR tree-optimization/17549
7633         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
7634         TER to replace a DEF with its expression if the DEF and the
7635         rhs of the expression we replace into have the same root
7636         variable.
7637
7638 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
7639
7640         * config/mips/mips.md: Fix the placement of the match_scratch in the
7641         lea64 peephole2.
7642
7643 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7644
7645         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
7646         Fix comment typos.
7647
7648 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
7649
7650         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
7651         (strip_offset): Handle addresses.
7652         (add_address_candidates): Use strip_offset.
7653         (difference_cost): Reflect strip_offset change.
7654         (force_var_cost, difference_cost): Strip nops.
7655
7656 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7657
7658         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
7659
7660         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
7661         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
7662         config/cris/cris-protos.h, config/cris/cris.c: Update
7663         copyright.
7664
7665 2005-02-10  Jeff Law  <law@redhat.com>
7666
7667         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
7668         (lookup_avail_expr): Similarly.
7669
7670 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
7671
7672         * builtins.c (fold_builtin_powi): New function.
7673         (fold_builtin_1): Call it.
7674
7675 2005-02-10  Steven Bosscher  <stevenb@suse.de>
7676
7677         PR documentation/19309
7678         * doc/cpp.texi: The __GNUC__ and related predefined macros
7679         are also defined for the "standalone" cpp.
7680         Some non-GCC compilers may also define __GNUC__.
7681
7682 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
7683
7684         PR c/19342
7685         * c-typeck.c (common_type): New routine.  Old common_type renamed
7686         to...
7687         (c_common_type): ...this.
7688         (build_conditional_expr, build_binary_op): Use c_common_type instead
7689         of common_type.
7690
7691 2005-02-10  Steven Bosscher  <stevenb@suse.de>
7692
7693         * doc/md.texi: Replace @samp{length} with @code{length}.
7694
7695 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
7696
7697         PR tree-optimization/18687
7698         * tree-flow.h (find_loop_niter): Declare.
7699         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
7700         Try using scev even for loops with more than one exit.
7701         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
7702         (struct ivopts_data): Added niters field.
7703         (struct nfe_cache_elt): New.
7704         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
7705         functions.
7706         (tree_ssa_iv_optimize_init): Initialize niters cache.
7707         (determine_number_of_iterations): Removed.
7708         (find_induction_variables): Do not call determine_number_of_iterations.
7709         Access niters for single exit through niter_for_single_dom_exit.
7710         (add_iv_outer_candidates): Access niters for single exit through
7711         niter_for_single_dom_exit.
7712         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
7713         number_of_iterations_cond.
7714         (iv_period): New function.
7715         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
7716         (may_replace_final_value): Take data argument.  Use
7717         niter_for_single_dom_exit.
7718         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
7719         (rewrite_use_compare): Pass data to may_eliminate_iv.
7720         (rewrite_use_outer): Pass data to may_replace_final_value.
7721         (free_loop_data): Clean up the niters cache.
7722         (tree_ssa_iv_optimize_finalize): Free the niters cache.
7723         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
7724         * tree-ssa-loop-niter.c (find_loop_niter): New function.
7725         (find_loop_niter_by_eval): Use tree_int_cst_lt.
7726         (num_ending_zeros): Moved to tree.c.
7727         * tree.h (num_ending_zeros): Declare.
7728         * tree.c (num_ending_zeros): Moved from tree.c.
7729
7730 2005-02-09  Richard Henderson  <rth@redhat.com>
7731
7732         * builtins.c (DEF_BUILTIN): Add COND argument.
7733         * tree.h (DEF_BUILTIN): Likewise.
7734         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
7735         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
7736         match.
7737         (DEF_BUILTIN_STUB): New.
7738         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
7739         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
7740         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
7741         * c-common.c (DEF_BUILTIN): Add COND argument.
7742         * tree.c (local_define_builtin): New.
7743         (build_common_builtin_nodes): New.
7744
7745 2005-02-09  Roger Sayle  <roger@eyesopen.com>
7746
7747         * fold-const.c (fold_strip_sign_ops): New function to simplify a
7748         floating point expression ignoring the sign of the result.
7749         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
7750         (fold) <MULT_EXPR>: Use it to simplify x*x.
7751         * tree.h (fold_strip_sign_ops): Prototype here.
7752         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
7753         argument.  Use fold_strip_sign_ops to simplify the first argument.
7754         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
7755         first argument when the second argument is an even integer
7756         constant, but only with -funsafe_math_optimizations.
7757         (fold_builtin_1): Update call to fold_builtin_copysign.
7758
7759 2005-02-09  Ian Lance Taylor  <ian@airs.com>
7760
7761         PR middle-end/19583
7762         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
7763         just check whether EH_FILTER_FAILURE falls through.
7764
7765 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
7766
7767         * gcc/haifa-sched.c (schedule_block): Make queued sched group
7768         insns return to ready list in the next turn.
7769
7770 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
7771
7772         PR middle-end/19402
7773         * builtins.def: New __builtin_powi[lf].
7774         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
7775         (expand_builtin_powi): New function.
7776         (expand_builtin): Dispatch to expand_builtin_powi.
7777         * libgcc2.h: Add prototypes for __builtin_powi[lf].
7778         * libgcc2.c: Add __builtin_powi[lf] implementation.
7779         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
7780         * optabs.h: Add powi_optab.
7781         * optabs.c (init_optabs): Initialize powi_optab.
7782         * doc/extend.texi: Document __builtin_powi[lf].
7783
7784 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
7785
7786         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
7787         exists.
7788
7789 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
7790
7791         PR middle-end/19854
7792         * fold-const.c (try_move_mult_to_index): Remove redundant
7793         type argument.  Create ADDR_EXPR with correct type.
7794         (fold): Update callers of try_move_mult_to_index.  Convert
7795         result to the appropriate type.
7796
7797 2005-02-09  Roger Sayle  <roger@eyesopen.com>
7798
7799         PR target/19597
7800         * config/avr/avr.c (default_rtx_costs): Delete.
7801         (avr_operand_rtx_cost): New function.
7802         (avr_rtx_costs): Completely rewrite.
7803
7804 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
7805
7806         PR target/19806
7807         * config/cris/cris.c (in_code): New variable.
7808         (cris_output_addr_const): Now a static function, a wrapper for
7809         output_addr_const.
7810         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
7811         case from old cris_output_addr_const.
7812         (cris_asm_output_label_ref): Similar for LABEL_REF.
7813         (cris_output_addr_const_extra): Similar for UNSPEC.
7814         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
7815         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
7816         * config/cris/cris-protos.h (cris_output_addr_const): Remove
7817         declaration.
7818         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
7819         (cris_asm_output_label_ref): Declare.
7820
7821 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
7822
7823         PR preprocessor/19801
7824         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
7825         filenames that changed when libcpp was moved to the toplevel.
7826
7827 2005-02-07  Roger Sayle  <roger@eyesopen.com>
7828
7829         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
7830         zero extensions of BImode operands.  Call lowpart_subreg instead
7831         of gen_lowpart_common and gen_lowpart_SUBREG.
7832
7833 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
7834
7835         PR ada/19489
7836         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
7837         * configure.ac: Set cc_for_cross_gnattools.
7838         * configure: Regenerate.
7839
7840 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
7841
7842         PR target/19803
7843         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
7844
7845 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7846
7847         PR debug/19327
7848         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
7849         of nested functions.
7850
7851 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
7852
7853         * doc/extend.texi: Document deprecated extensions allowing
7854         static floating-point members to have initializers and allowing
7855         floating-point literals in integral constant expressions.
7856
7857 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7858
7859         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
7860         config/darwin7.h, config/mips/mips.c,
7861         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
7862         Update copyright.
7863
7864         * cse.c: Update comments.
7865
7866 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
7867
7868         PR middle-end/19775
7869         * builtins.c (fold_builtin_sqrt): Transform
7870         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
7871         pow(x,y*0.5).
7872
7873 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
7874             Dorit Naishlos  <dorit@il.ibm.com>
7875
7876         * doc/invoke.texi (ftree-vectorizer-verbose): New.
7877         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
7878         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
7879         was added.
7880         * tree.h (vect_set_verbosity_level): New extern function declaration
7881         added.
7882         * tree-vectorizer.h (verbosity_levels): New enum type.
7883         * tree-vectorizer.c (vect_debug_stats): Function removed.
7884         (vect_debug_details): Likewise.
7885         (vect_verbosity_level): Global variable was defined and initialized.
7886         (vect_dump): Global variable definition.
7887         (vect_print_dump_info): New function.
7888         (vect_set_dump_settings): New function.
7889         (vect_set_verbosity_level): New function.
7890         (vectorize_loops): Add call to vect_set_dump_settings.
7891
7892         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
7893         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7894         (slpeel_tree_peel_loop_to_edge): Likewise.
7895
7896         (vect_analyze_offset_expr): Call to vect_print_dump_info with
7897         appropriate verbosity level instead of call to vect_debug_details
7898         or vect_debug_stats.
7899         (vect_get_base_and_offset):
7900         (vect_create_addr_base_for_vector_ref):
7901         (get_vectype_for_scalar_type):
7902         (vect_create_data_ref_ptr):
7903         (vect_init_vector):
7904         (vect_get_vec_def_for_operand):
7905         (vect_finish_stmt_generation):
7906         (vectorizable_assignment):
7907         (vectorizable_operation):
7908         (vectorizable_store):
7909         (vectorizable_load):
7910         (vect_transform_stmt):
7911         (vect_update_ivs_after_vectorizer):
7912         (vect_do_peeling_for_loop_bound):
7913         (vect_update_inits_of_drs):
7914         (vect_do_peeling_for_alignment):
7915         (vect_transform_loop):
7916         (vect_is_simple_use):
7917         (vect_analyze_operations):
7918         (vect_is_simple_iv_evolution):
7919         (vect_analyze_scalar_cycles):
7920         (vect_analyze_data_ref_dependence):
7921         (vect_analyze_data_ref_dependences):
7922         (vect_compute_data_ref_alignment):
7923         (vect_enhance_data_refs_alignment):
7924         (vect_analyze_data_refs_alignment):
7925         (vect_analyze_data_ref_access):
7926         (vect_analyze_data_ref_accesses):
7927         (vect_analyze_pointer_ref_access):
7928         (vect_get_memtag_and_dr):
7929         (vect_analyze_data_refs):
7930         (vect_mark_relevant):
7931         (vect_stmt_relevant_p):
7932         (vect_mark_stmts_to_be_vectorized):
7933         (vect_can_advance_ivs_p):
7934         (vect_get_loop_niters):
7935         (vect_analyze_loop_form):
7936         (vect_analyze_loop):
7937         (vectorize_loops): Likewise.
7938
7939         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
7940         (vect_update_inits_of_drs):
7941         (vect_do_peeling_for_alignment):
7942         (vect_transform_loop):
7943         (vect_analyze_operations):
7944         (vect_analyze_scalar_cycles):
7945         (vect_analyze_data_ref_dependences):
7946         (vect_analyze_data_refs_alignment):
7947         (vect_analyze_data_ref_accesses):
7948         (vect_analyze_data_refs):
7949         (vect_mark_stmts_to_be_vectorized):
7950         (vect_get_loop_niters):
7951         (vect_analyze_loop_form):
7952         (vect_analyze_loop): Likewise.
7953         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
7954
7955 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
7956
7957         PR bootstrap/19796
7958         Revert:
7959         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
7960         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
7961         either -ffast-math or -funsafe-math-optimizations is in use.
7962
7963         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
7964         * config/mips/irix-csr.c: New file.
7965         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
7966         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
7967         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
7968         executables.
7969
7970 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
7971
7972         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
7973         redundant, incorrect definitions.
7974
7975         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
7976         expand.
7977         ("*tls_indirect_call"): New, reference hard regs directly.
7978         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
7979
7980 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
7981
7982         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
7983         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
7984
7985 2005-02-06  Roger Sayle  <roger@eyesopen.com>
7986
7987         PR rtl-optimization/19800
7988         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
7989         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
7990         gen_lowpart.
7991
7992 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
7993
7994         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
7995
7996 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
7997
7998         PR other/17135
7999         * doc/invoke.texi: Correct documentation of -freorder-functions.
8000
8001 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
8002
8003         PR other/14402
8004         * doc/invoke.texi: Don't mention gccbug.
8005
8006 2005-02-06  Roger Sayle  <roger@eyesopen.com>
8007             Andrew Pinski  <pinskia@physics.uc.edu>
8008             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
8009
8010         * simplify-rtx.c (simplify_relational_operation_1): Simplify
8011         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
8012         into just (zero_extract:SI FOO (const_int 1) BAR).
8013
8014 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
8015
8016         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
8017         macro locally.  Don't give last revision date.  Use GCC version
8018         number from gcc-common.texi.
8019         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
8020         revision date.  Use GCC version number from gcc-common.texi.
8021         Describe being a library as current state rather than as 3.x
8022         history.
8023         * doc/gcc.texi: Remove last update date.
8024         * doc/gccint.texi: Likewise.  Update copyright dates.
8025         * doc/install.texi: Update copyright dates.
8026
8027 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
8028
8029         PR other/7549
8030         * doc/invoke.texi: Mention for each option included in -Wall that
8031         it is included in -Wall.
8032         * doc/gcc.texi: Update copyright and last modification date.
8033
8034 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
8035
8036         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
8037         unnecessary cast to original induction variable increments.
8038
8039 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
8040
8041         PR tree-optimization/18219
8042         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
8043         in distributed form.
8044
8045 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
8046
8047         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
8048         Set bitpos and offset later in the function.  Do nothing if the
8049         target is a register and if the bitfield lies completely outside
8050         that register.
8051         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
8052         here.  Return an uninitialised register if the source value is stored
8053         in a register and the bitfield lies completely outside that register.
8054
8055 2005-02-06  Steven Bosscher  <stevenb@suse.de>
8056
8057         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
8058         not SET_DEST.
8059
8060 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
8061
8062         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
8063
8064 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
8065
8066         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
8067         * config/darwin8.h: New.
8068         * config/darwin7.h: Update comment.
8069
8070 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
8071             Dorit Naishlos  <dorit@il.ibm.com>
8072
8073         * tree-vectorizer.h (LOC): New type.
8074         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
8075         (loop_line_number): New field in struct _loop_vec_info.
8076         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
8077
8078         * tree-vectorizer.c (input.h): Included.
8079         (find_loop_location): New function.
8080         (vect_debug_stats): Argument changed from loop to LOC. Computation of
8081         loop line number removed.
8082         (vect_debug_details): Likewise.
8083         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
8084
8085         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
8086         call to vect_debug_details/stats changed from loop to loop_loc.
8087         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
8088         (slpeel_tree_peel_loop_to_edge): Likewise.
8089
8090         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
8091         changed from NULL to UNKNOWN_LOC.
8092         (vect_get_base_and_offset):
8093         (vect_create_addr_base_for_vector_ref):
8094         (get_vectype_for_scalar_type):
8095         (vect_create_data_ref_ptr):
8096         (vect_init_vector):
8097         (vect_get_vec_def_for_operand):
8098         (vect_finish_stmt_generation):
8099         (vectorizable_assignment):
8100         (vectorizable_operation):
8101         (vectorizable_store):
8102         (vectorizable_load):
8103         (vect_transform_stmt):
8104         (vect_update_ivs_after_vectorizer):
8105         (vect_do_peeling_for_loop_bound):
8106         (vect_do_peeling_for_alignment):
8107         (vect_transform_loop):
8108         (vect_is_simple_use):
8109         (vect_analyze_operations):
8110         (vect_is_simple_iv_evolution):
8111         (vect_analyze_scalar_cycles):
8112         (vect_analyze_data_ref_dependences):
8113         (vect_compute_data_ref_alignment):
8114         (vect_enhance_data_refs_alignment):
8115         (vect_analyze_data_ref_access):
8116         (vect_analyze_data_ref_accesses):
8117         (vect_analyze_pointer_ref_access):
8118         (vect_get_memtag_and_dr):
8119         (vect_analyze_data_refs):
8120         (vect_mark_relevant):
8121         (vect_stmt_relevant_p):
8122         (vect_mark_stmts_to_be_vectorized):
8123         (vect_can_advance_ivs_p):
8124         (vect_get_loop_niters):
8125         (vect_analyze_loop):
8126         (vectorize_loops): Likewise.
8127
8128         (vectorizable_load): Argument in call to vect_debug_details/stats
8129         changed from loop to LOOP_LOC (loop_vinfo).
8130         (vect_transform_loop):
8131         (vect_analyze_operations):
8132         (vect_analyze_scalar_cycles):
8133         (vect_analyze_data_ref_dependence):
8134         (vect_enhance_data_refs_alignment):
8135         (vect_analyze_data_ref_accesses):
8136         (vect_analyze_pointer_ref_access):
8137         (vect_analyze_data_refs):
8138         (vect_analyze_loop): Likewise.
8139
8140         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
8141         changed from loop to loop_loc.
8142
8143         (vect_enhance_data_refs_alignment): Removed unused variable loop.
8144
8145 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
8146             Dorit Naishlos  <dorit@il.ibm.com>
8147
8148         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
8149         declaration added.
8150         (vect_analyze_data_ref_dependences): Likewise.
8151
8152         (vect_is_simple_use): Argument changed from loop structure to
8153         loop_vect_info structure.
8154         (vect_can_advance_ivs_p): Likewise.
8155         (vect_create_index_for_vector_ref): Likewise.
8156         (vect_update_ivs_after_vectorizer): Likewise.
8157         (new_stmt_vec_info): Likewise.
8158
8159         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
8160         changed from loop to loop_vinfo.
8161         (vect_create_data_ref_ptr): First argument in call to
8162         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
8163         (vectorizable_assignment): Second argument in call to vect_is_simple_use
8164         was changed from loop to loop_vinfo.
8165         (vectorizable_operation): Likewise.
8166         (vectorizable_store): Likewise.
8167         (vect_mark_stmts_to_be_vectorized): Likewise.
8168         (vect_do_peeling_for_loop_bound): First argument in call to
8169         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
8170         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
8171         was changed from loop to loop_vinfo.
8172         (vect_analyze_data_ref_dependences): Third argument in call to
8173         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
8174
8175         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
8176         (vect_create_data_ref_ptr): Likewise.
8177         (vect_init_vector): Likewise.
8178         (vect_get_vec_def_for_operand): Likewise.
8179         (vectorizable_assignment): Likewise.
8180         (vectorizable_operation): Likewise.
8181         (vectorizable_store): Likewise.
8182         (vectorizable_load): Likewise.
8183         (vect_update_ivs_after_vectorizer): Likewise.
8184         (vect_is_simple_use): Likewise.
8185         (vect_analyze_data_ref_dependence): Likewise.
8186         (vect_analyze_pointer_ref_access): Likewise.
8187         (vect_can_advance_ivs_p): Likewise.
8188
8189         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
8190         before _stmt_vec_info.
8191         (_stmt_vec_info): Loop field replaced by loop_vec_info.
8192         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
8193         (new_stmt_vec_info): Argument changed from loop structure to
8194         loop_vect_info structure
8195
8196         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
8197         (vect_analyze_offset_expr): Avoid 80 columns overflow.
8198         (vect_create_addr_base_for_vector_ref): Likewise.
8199         (vect_analyze_pointer_ref_access): Likewise.
8200
8201 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
8202
8203         PR tree-opt/19768
8204         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
8205         phi flag if the phi is abnormal.
8206
8207 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
8208
8209         PR tree-opt/19736
8210         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
8211         information for the new statement.
8212
8213 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
8214
8215         PR driver/19117
8216         * gcc.c (main): Include the target in -v output.
8217
8218 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
8219
8220         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
8221         Do not drop the extend if we'd have to add a paradoxical subreg
8222         later.  Include optabs.h and insn-codes.h.
8223         * Makefile.in (combine.o): Depend on $(OPTABS_H).
8224
8225 2005-02-02  Roger Sayle  <roger@eyesopen.com>
8226
8227         PR middle-end/19405
8228         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
8229         * fold-const.c (const_binop): Avoid constant folding floating
8230         point operations in modes that use composite representations.
8231         * simplify-rtx.c (simplify_binary_operation): Likewise.
8232
8233 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
8234
8235         * config/rs6000/altivec.md (altivec_dst): Make the first operand
8236         a REG, not a MEM.
8237         (altivec_dstt): Likewise.
8238         (altivec_dstst): Likewise.
8239         (altivec_dststt): Likewise.
8240         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
8241         of first operand.
8242
8243 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
8244
8245         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
8246         EXPR_LOCUS from orig_cond to the new cond_stmt.
8247         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
8248         the new vec_stmt.
8249
8250 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
8251
8252         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
8253         standard_iv_increment_position. Remove call to bsi_next
8254         (no need to bump the iterator anymore).
8255         (vect_create_index_for_vector_ref): Call
8256         standard_iv_increment_position. Remove second function argument.
8257         (vect_finish_stmt_generation): Remove call to bsi_next
8258         (no need to bump the iterator anymore).
8259         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
8260         to vect_create_index_for_vector_ref.
8261
8262 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
8263
8264         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
8265         phis are used out of the loop.
8266
8267 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
8268
8269         PR c/17807
8270         * c-decl.c (undef_nested_function): New variable.
8271         (pop_scope): Diagnose undefined nested functions.
8272         (finish_function): Don't attempt cgraph processing or genericizing
8273         if current top-level function contained an undefined nested
8274         function.  Reset undef_nested_function at the end of a top-level
8275         function.
8276
8277 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
8278
8279         * tree.c (build_int_cst_type): Take sign of the value into account
8280         when deciding whether sign extend the value.
8281
8282 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
8283
8284         PR c/18502
8285         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
8286         (cpp_options, cc1_options): Change %{std*&ansi} to
8287         %{std*&ansi&trigraphs}.
8288
8289 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8290
8291         * cse.c: Update comments.
8292
8293 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
8294
8295         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
8296         arguments go on the stack.  Do not put complex doubles in odd/even
8297         pairs.
8298
8299 2005-02-02  Steven Bosscher  <stevenb@suse.de>
8300
8301         * doc/invoke.texi: Update the options enabled at -O1, -O2,
8302         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
8303         -ftree-pre, and -fthread-jumps.
8304
8305 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
8306
8307         PR tree-optimization/19578
8308         * tree-flow.h (modified_noreturn_calls): Declare.
8309         (noreturn_call_p): Declare.
8310         * tree-flow-inline.h (noreturn_call_p): New function.
8311         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
8312         * tree-cfg.c (modified_noreturn_calls): New variable.
8313         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
8314         that contain a mid-block noreturn call.
8315         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
8316
8317 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8318
8319         * df.c (df_def_record_1, df_uses_record): Don't use
8320         DF_FOR_REGALLOC.
8321         * df.h (DF_FOR_REGALLOC): Remove.
8322
8323 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
8324
8325         PR c/19435
8326         * c-typeck.c (really_start_incremental_init): Reset
8327         constructor_max_index for arrays of incomplete type.
8328
8329 2005-02-02  Jeff Law  <law@redhat.com>
8330
8331         * gcse.c (struct reg_set): Store the block index where the register
8332         was set rather than the setting insn.
8333         (record_one_set, compute_transp): Corresponding changes.
8334         (pre_insert_copy_insn): Do not call replace_one_set.
8335         (replace_one_set): Remove.
8336
8337 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
8338
8339         PR other/15514
8340         * doc/gcov.texi: Fix typo.
8341
8342 2005-02-01  Richard Henderson  <rth@redhat.com
8343
8344         PR target/19680
8345         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
8346         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
8347         type to bool.
8348         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
8349         * config/i386/i386-protos.h: Update.
8350
8351 2005-02-01  Steven Bosscher  <stevenb@suse.de>
8352
8353         PR tree-optimization/19217
8354         * tree-cfg.c (verify_expr): Use the data field to see if TP was
8355         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
8356         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
8357         that it is walking a PHI node.
8358
8359 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
8360
8361         * doc/extend.texi (Nested Functions): Update.
8362
8363 2005-02-01  Richard Henderson  <rth@redhat.com>
8364
8365         PR 19696
8366         * optabs.c (expand_copysign_absneg): Export.
8367         * optabs.h (expand_copysign_absneg): Declare.
8368         * config/rs6000/rs6000.md (copysigntf3): New.
8369
8370 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
8371
8372         PR tree-optimization/19633
8373         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
8374         * tree-ssa-alias.c (init_alias_info): Initialize.
8375         (merge_pointed_to_info): Set.
8376         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
8377         (dump_points_to_info_for): Show value of pt_null.
8378         (struct count_ptr_d): Declare.
8379         (find_ptr_dereference): Remove.
8380         (ptr_is_dereferenced_by): Remove.
8381         (count_ptr_derefs): New local function.
8382         (count_uses_and_derefs): New local function.
8383         (compute_points_to_and_addr_escape): Call it.  If the number
8384         of dereferences is greater than zero, mark the pointer as
8385         dereferenced.  If there are fewer dereferences than uses of
8386         the pointer, the pointer's value escapes.
8387
8388 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
8389
8390         PR tree-optimization/19670
8391         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
8392         here...
8393         (verify_use): ... set it here, instead.
8394
8395 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
8396
8397         * doc/sourcebuild.texi (Test directives): Fix formatting.
8398
8399         * doc/sourcebuild.texi (Test directives): Describe selector
8400         expressions.
8401
8402 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
8403
8404         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
8405         specific 64-bit CPUs.
8406
8407 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
8408
8409         PR target/16201
8410         * arm.c (arm_eliminable_register): New function.
8411         (adjacent_mem_locations): Don't allow eliminable registers.  Use
8412         HOST_WIDE_INT for address offsets.
8413         * arm-protos.h (arm_eliminable_register): Add prototype.
8414
8415 2005-02-01  Steven Bosscher  <stevenb@suse.de>
8416
8417         PR optimization/15242
8418         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
8419         * basic-block.h (duplicate_computed_gotos): Add prototype.
8420         * bb-reorder.c (duplicate_computed_gotos): New function to
8421         duplicate sufficiently small blocks ending in a computed jump.
8422         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
8423         if not optimizing for size.
8424         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
8425         never do tail merging for blocks ending in a computed jump.
8426         * doc/invoke.texi: Document the max-goto-duplication-insns param.
8427
8428 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8429
8430         Patch from Richard Sandiford <rsandifo@redhat.com>
8431         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
8432         from inheriting a subreg equivalence with a non-spill register.
8433
8434         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
8435
8436 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
8437
8438         * config/frv/frv.c (movcc_fp_destination_operand): New.
8439         (gpr_or_memory_operand): Fix typo in comment.
8440         (gpr_or_memory_operand_with_scratch): New.
8441         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
8442         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
8443         movcc_fp_destination_operand.
8444         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
8445         Legitimize memory addresses using a scratch register.
8446
8447 2005-01-31  Jeff Law  <law@redhat.com>
8448
8449         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
8450         bitmap a sparse bitmap instead of a simple bitmap.
8451         (mark_def_sites_initialize_block):  Corresponding changes.
8452         (ssa_mark_def_sites_initialize_block): Likewise.
8453         (ssa_mark_phi_uses): Likewise.
8454         (mark_def_site, ssa_mark_def_sites): Likewise.
8455         (mark_def_site_blocks): Likewise.
8456         (rewrite_ssa_into_ssa): Likewise.
8457
8458         * tree-ssa-dom.c (record_cond): Pass correct variable type
8459         for last argument to htab_find_slot_with_hash.
8460
8461         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
8462         effects when optimizing 0 % X.  Do not try to optimize X % 0.
8463
8464 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
8465
8466         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
8467         1_mmalua.
8468
8469 2005-02-01  Eric Christopher  <echristo@redhat.com>
8470
8471         * config/mips/mips.c (override_options): Warn if -mint64
8472         is used.
8473         * doc/invoke.texi (MIPS Options): Document that -mint64 is
8474         deprecated.
8475
8476 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8477
8478         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
8479         timestamp.
8480         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
8481         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
8482         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
8483         (cached_regno): Initialize to INVALID_REGNUM.
8484         (cse_reg_info_table_size,
8485         cse_reg_info_table_first_uninitialized,
8486         cse_reg_info_timestamp): New.
8487         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
8488         get_cse_reg_info.
8489         (init_cse_reg_info, get_cse_reg_info_1): New.
8490         (get_cse_reg_info): Cache the last look-up.
8491         (new_basic_block): Update the code to clear mappings from
8492         registers to cse_reg_info entries.
8493         (cse_main): Call init_cse_reg_info.
8494
8495         * cse.c (get_cse_reg_info): Update a comment.
8496
8497 2005-01-31  Steven Bosscher  <stevenb@suse.de>
8498
8499         PR c/19333
8500         * c-decl.c (start_decl): Do not warn about arrays of elements with
8501         an incomplete type here.
8502         (grokdeclarator): Do it here by making a pedwarn an error.
8503         * c-typeck.c (push_init_level): If there were previous errors with
8504         the constructor type, do not warn about braces for initializers.
8505         (process_init_element): Likewise for excess initializer elements.
8506
8507 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8508
8509         * cse.c (delete_trivially_dead_insn): Don't iterate.
8510
8511 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
8512
8513         * config/rs6000/rs6000.md (copysignsf3): New expand.
8514         (copysigndf3): Likewise.
8515
8516 2005-01-31  Steven Bosscher  <stevenb@suse.de>
8517
8518         * recog.c (constrain_operands): Only look for earlyclobber operand
8519         conflicts if an '&' constraint was seen.
8520
8521 2005-01-31  Marc Espie <espie@openbsd.org>
8522
8523         * config.gcc: Don't include embedded systems fragment, switches default
8524         debugging format to ELF.
8525         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
8526         longer pick it up there.
8527
8528 2005-01-31  Dale Johannesen  <dalej@apple.com>
8529
8530         * doc/extend.texi (nested functions): Fix linkage description.
8531         Clarify that static is not allowed.
8532
8533 2005-01-31  Dale Johannesen  <dalej@apple.com>
8534
8535         * config/rs6000/darwin.md (movsf_low_di):  Make work.
8536         (movdf_low_di):  Make work.
8537
8538 2005-01-31  Dale Johannesen  <dalej@apple.com>
8539
8540         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
8541         Make work for 64 bit.
8542
8543 2005-01-31  Roger Sayle  <roger@eyesopen.com>
8544             Dale Johannesen  <dalej@apple.com>
8545
8546         PR middle-end/19650
8547         * fold-const.c (fold_binary_op_with_conditional_arg):
8548         Make types match original operands, before STRIP_NOPS.
8549
8550 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
8551
8552         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
8553         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
8554         (struct gcc_sigcontext): Delete.  Merge contents to..
8555         (struct gcc_ucontext): ..here.
8556         (get_sigcontext): Delete.
8557         (get_regs): New function, like get_sigcontext but return regs ptr.
8558         64-bit version finds regs from r1 to support vdso.
8559         (ppc_linux_aux_vector): New function.
8560         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
8561         and vector regs.
8562
8563 2005-01-31  Ira Rosen  <irar@il.ibm.com>
8564
8565         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
8566         sizetype.
8567         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
8568         redundant fold. Fix misalignment for MINUS_EXPR.
8569         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
8570         (vect_analyze_pointer_ref_access): Likewise.
8571         (vect_get_memtag_and_dr): Likewise.
8572
8573 2005-01-31  Richard Henderson  <rth@redhat.com>
8574
8575         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
8576         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
8577         absnegdf2_i387, absnegxf2_i387): Likewise.
8578
8579 2005-01-31  Richard Henderson  <rth@redhat.com>
8580
8581         PR 19696
8582         * optabs.c (expand_copysign_absneg): New.
8583         (expand_copysign_bit): Split out from ...
8584         (expand_copysign): ... here.  Use expand_copysign_absneg.
8585
8586 2005-01-30  Roger Sayle  <roger@eyesopen.com>
8587
8588         PR middle-end/19697
8589         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
8590         constant as the second operand and a register as the third.
8591
8592 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
8593
8594         PR target/19704
8595         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
8596         that dllimport'd functions do not use all call-clobbered registers
8597         to pass parameters.
8598
8599 2005-01-30  Richard Henderson  <rth@redhat.com>
8600
8601         PR 19696
8602         * optabs.c (expand_absneg_bit): Split out from expand_unop and
8603         expand_abs_nojump and generalize.  Use operand_subword and
8604         emit_no_conflict_block.  Support large modes.
8605         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
8606         back to maximum.
8607         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
8608         negation to subtraction.
8609         (expand_copysign): Check that the format has signed zeros.
8610         Use operand_subword and emit_no_conflict_block.  Support large modes.
8611
8612 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
8613
8614         Fix PR tree-optimization/19624
8615
8616         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
8617         * tree-ssa-pre.c: Add cfgloop.h.
8618         Update comment.
8619         (pre_stats): New member, constified.
8620         (inserted_exprs): New static variable.
8621         (NECESSARY): New macro.
8622         (create_expression_by_pieces): Fold the expression, and
8623         mark it as defaulting to not necessary. Also put in
8624         inserted_exprs.
8625         (fully_constant_expression): New function.
8626         (insert_into_preds_of_block): Modify to not insert phis when we
8627         are playing with induction variables.
8628         Push phis onto the inserted_exprs vector, and mark them as not
8629         necessary by default.
8630         (insert_aux): Call fully_constant_expression on eprime.
8631         If all edges produce the same value, mark it constant.
8632         (mark_operand_necessary): New function.
8633         (remove_dead_inserted_code): New function.
8634         (init_pre): Init loop optimizer to get loop info.
8635         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
8636         (execute_pre): Commit edge inserts, then remove dead code.
8637
8638 2005-01-30  Richard Henderson  <rth@redhat.com>
8639
8640         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
8641         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
8642
8643 2005-01-30  Richard Henderson  <rth@redhat.com>
8644
8645         PR target/19700
8646         * config/i386/i386.c (ix86_expand_copysign): New.
8647         (ix86_split_copysign_const): New.
8648         (ix86_split_copysign_var): Rename from ix86_split_copysign,
8649         rearrange op1/nmask operands.
8650         * config/i386/i386-protos.h: Update.
8651         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
8652         (copysigndf3): Likewise.
8653         (copysignsf3_const, copysigndf3_const): New.
8654         (copysignsf3_var): Rename from copysignsf3, split out splitter
8655         and fix split predicate for X constraint.
8656         (copysigndf3_var): Similarly.
8657
8658 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8659
8660         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
8661         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
8662         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
8663
8664 2005-01-29  Richard Henderson  <rth@redhat.com>
8665
8666         PR target/19690
8667         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
8668         of # and * in constraints.
8669
8670 2005-01-29  Richard Henderson  <rth@redhat.com>
8671
8672         PR middle-end/19689
8673         * expr.c (store_field): Don't strip sub-mode cast when the input
8674         data is even smaller.
8675
8676 2005-01-29  Richard Henderson  <rth@redhat.com>
8677
8678         PR middle-end/19687
8679         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
8680         union being empty.
8681
8682 2005-01-29  Richard Henderson  <rth@redhat.com>
8683
8684         * combine.c (make_field_assignment): Fix argument order
8685         to gen_int_mode.
8686
8687 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
8688
8689         PR tree-optimization/15791
8690         * fold-const.c (extract_array_ref): New function.
8691         (fold): Fold comparisons between &a[i] and &a[j] or
8692         semantically equivalent trees.
8693
8694 2005-01-29  Jeff Law  <law@redhat.com>
8695
8696         * gcse.c (insert_expr_in_table): Revamp handling of available
8697         and anticipatable occurrence lists to avoid unnecessary list
8698         walking.
8699         (insert_set_in_table): Similarly.
8700
8701 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
8702
8703         * c-common.c (fix_string_type): Just use c_build_qualified_type to
8704         build string type.
8705         (c_build_qualified_type): Build qualified array types with
8706         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
8707         * c-decl.c (c_make_fname_decl): Build unqualified array type
8708         before qualified type.
8709         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
8710         type is qualified, not just if type itself is.  Don't apply
8711         qualifiers to array type when declarator is processed.  Apply
8712         qualifiers to field type whether or not it is an array type.
8713         Don't handle array types specially for applying qualifiers to
8714         variables.
8715         * c-typeck.c (composite_type): Build unqualified element type and
8716         array type when forming composite of array types.
8717         (common_pointer_type, comptypes, comp_target_types,
8718         type_lists_compatible_p, build_indirect_ref, build_array_ref,
8719         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
8720         types.
8721         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
8722         (args2) in variables a1 and a2.
8723
8724 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8725
8726         * cse.c (n_elements_made, max_elements_made): Remove.
8727         (insert): Don't touch n_elements_made.
8728         (cse_main): Don't touch n_elements_made or max_elements_made.
8729
8730 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
8731
8732         PR target/15384
8733         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
8734         configuration part of dp-bit.c to be lost.
8735
8736 2005-01-28  Roger Sayle  <roger@eyesopen.com>
8737
8738         * expmed.c (expand_mult_highpart_optab): When attempting to use
8739         a non-widening multiplication in a wider mode, the operands need
8740         to be converted (zero or sign extended) to that mode.
8741
8742 2005-01-28  Ian Lance Taylor  <ian@airs.com>
8743
8744         PR middle-end/16558
8745         PR middle-end/19583
8746         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
8747         through if both operands fall through.
8748
8749 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8750
8751         * cse.c (fold_rtx) <PC>: Don't optimize.
8752
8753 2005-01-28  Jeff Law  <law@redhat.com>
8754
8755         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
8756         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
8757
8758 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8759
8760         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
8761         cse_reg_info_used_list_end): Remove.
8762         (cse_reg_info_list, cse_reg_info_list_free): New.
8763         (get_cse_reg_info): When allocating an instance of
8764         cse_reg_info, add it to the beginning of the cse_reg_info_list
8765         list.  Remove code to maintain cse_reg_info_used_list.
8766         (new_basic_block): Reset the free list to the beginning of
8767         cse_reg_info_list.
8768
8769 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
8770
8771         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
8772         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
8773         (frv_expand_mdpackh_builtin): New function.
8774         (frv_expand_builtin): Use it to expand __MDPACKH.
8775         * doc/extend.texi (__MDPACKH): Update documentation.
8776
8777 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
8778
8779         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
8780         SSE_FLOAT_MODE_P for use_sse computation.
8781
8782 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
8783
8784         PR target/19663
8785         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
8786
8787 2005-01-27  Richard Henderson  <rth@redhat.com>
8788
8789         * builtins.c (expand_builtin_copysign): New.
8790         (expand_builtin): Call it.
8791         * genopinit.c (optabs): Add copysign_optab.
8792         * optabs.c (init_optabs): Initialize it.
8793         (expand_copysign): New.
8794         * optabs.h (OTI_copysign, copysign_optab): New.
8795         (expand_copysign): Declare.
8796
8797         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
8798         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
8799
8800         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
8801         (ix86_expand_fp_absneg_operator): ... here.
8802         (ix86_split_copysign): New.
8803         * config/i386/i386-protos.h: Update.
8804         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
8805         (copysignsf3, copysigndf3): New.
8806
8807         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
8808         (copysignsf3, ncopysignsf3): New.
8809         (copysigndf3, ncopysigndf3): New.
8810         (copysignxf3, ncopysignxf3): New.
8811         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
8812
8813 2005-01-27  Arend Bayer  <arend.bayer@web.de>
8814             Kazu Hirata  <kazu@cs.umass.edu>
8815
8816         * cse.c: (find_best_addr): Don't call copy_rtx before calling
8817         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
8818         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
8819         NULL_RTX.
8820
8821 2005-01-27  Jeff Law  <law@redhat.com>
8822
8823         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
8824         definitions of SSA_NAMEs which are not being rewritten.
8825         (rewrite_ssa_into_ssa): Only initialize the current definition
8826         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
8827         If checking is enabled, assert that SSA_NAME_AUX is clear for all
8828         SSA_NAMEs before returning.
8829
8830 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
8831
8832         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
8833         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
8834         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
8835         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
8836         config/mips/iris6.h, config/sh/sh.c: Update copyright.
8837
8838 2005-01-27  Steven Bosscher  <stevenb@suse.de>
8839
8840         PR middle-end/17278
8841         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
8842         higher to -O2 and higher.  Likewise for tree PRE.
8843         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
8844         and better.
8845
8846 2005-01-27  Ian Lance Taylor  <ian@airs.com>
8847
8848         PR middle-end/19583
8849         * gimple-low.c (try_catch_may_fallthru): New static function.
8850         (block_may_fallthru): Handle TRY_CATCH_EXPR.
8851         * tree-inline.c (expand_call_inline): Don't warn about reaching
8852         the end of a non-void function being inlined if the function uses
8853         a return slot.
8854
8855 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
8856
8857         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
8858
8859         PR c/18946
8860         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
8861         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
8862         (implicitly_declare): Handle error_mark_node.
8863
8864 2005-01-27  Richard Henderson  <rth@redhat.com>
8865
8866         PR tree-opt/14329
8867         * tree.h (struct tree_decl): Add debug_expr_is_from.
8868         (DECL_DEBUG_EXPR_IS_FROM): New.
8869         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
8870         * dwarf2out.c (dwarf2out_var_location): Update to match.
8871         * tree-outof-ssa.c (create_temp): Likewise.
8872         * var-tracking.c (track_expr_p): Likewise.
8873         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
8874         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
8875         * toplev.c (default_tree_printer): Likewise.
8876
8877 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
8878
8879         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
8880         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
8881
8882 2005-01-27  Steven Bosscher  <stevenb@suse.de>
8883
8884         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
8885         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
8886         ASM_CLOBBERS): Add tree checks.
8887
8888         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
8889         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
8890         * c-common.def (SWITCH_STMT): Update to match.
8891         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
8892         macros instead of SWITCH_EXPR ones.
8893         * c-dump.c (c_dump_tree): Likewise.
8894         * c-gimplify.c (gimplify_switch_stmt): Likewise.
8895         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
8896
8897         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
8898
8899 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
8900
8901         * unwind-dw2.c (execute_stack_op): Add missing cases for
8902         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
8903
8904 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8905
8906         * config.gcc (Obsolete configurations): Remove 'dummy', add
8907         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
8908         sparc-*-openbsd*.
8909
8910 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
8911
8912         PR tree-optimization/19633
8913         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
8914         CALL_EXPRs.
8915         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
8916         are no call-clobbered variables.
8917         * tree-outof-ssa.c (check_replaceable): Return false for calls
8918         with side-effects.
8919
8920 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
8921
8922         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
8923         even for variables with NULL DECL_INITIAL.
8924
8925 2005-01-26  Stuart Hastings  <stuart@apple.com>
8926
8927         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
8928
8929 2005-01-26  Richard Henderson  <rth@redhat.com>
8930
8931         PR middle-end/18008
8932         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
8933         field's type.
8934         * expr.c (store_field): Strip conversions to odd-bit-sized types
8935         if the destination field width matches.
8936
8937 2005-01-26  Richard Henderson  <rth@redhat.com>
8938
8939         * c-decl.c, expmed.c, expr.c: Revert last change.
8940
8941 2005-01-26  Richard Henderson  <rth@redhat.com>
8942
8943         PR middle-end/18008
8944         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
8945         field's type.
8946         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
8947         if we don't need the bits above those present in the current mode.
8948         * expr.c (store_field): Strip conversions to odd-bit-sized types
8949         if the destination field width matches.
8950
8951 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
8952
8953         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
8954         either -ffast-math or -funsafe-math-optimizations is in use.
8955
8956 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8957
8958         PR target/19293
8959         PR target/19329
8960         * config/avr/avr.c (notice_update_cc): Only set condition code for
8961         ashrqi3 if shift count > 0.
8962         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
8963         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
8964         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
8965         count <= 0 as a no-op, and shift count >= width by copying zero
8966         or sign bit to all bits of the result.
8967         * config/avr/avr.md (all shifts): Add alternatives for zero shift
8968         count, with attribute "length" set to 0 and "cc" set to "none".
8969
8970 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
8971
8972         * doc/invoke.texi: Document -mTLS.
8973
8974         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
8975         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
8976         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
8977         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
8978         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
8979         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
8980         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
8981         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
8982
8983         * configure.ac: Check for a TLS capable gas.
8984
8985         * configure: Regenerate.
8986
8987 2005-01-26  Richard Henderson  <rth@redhat.com>
8988
8989         PR middle-end/18008
8990         * combine.c (make_field_assignment): Simplify store to zero_extract
8991         from a source with an overlapping mask.
8992
8993 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
8994
8995         2004-11-11  Eric Christopher  <echristo@redhat.com>
8996
8997         * config/frv/frv.md: Add fr400_integer automaton. Don't
8998         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
8999         to TYPE_MACC.
9000
9001 2005-01-26  Steven Bosscher  <stevenb@suse.de>
9002
9003         PR middle-end/16585
9004         * cfgbuild.c (make_edges): Do not clear or set
9005         current_function_has_computed_jump.
9006         * function.h (struct function): Remove the has_computed_jump field.
9007         (current_function_has_computed_jump): Do not define.
9008         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
9009         in a computed jump.  Ignore current_function_has_computed_jump.
9010
9011 2005-01-26  Richard Henderson  <rth@redhat.com>
9012
9013         PR middle-end/19515
9014         * expr.c (categorize_ctor_elements): New argument p_must_clear.
9015         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
9016         fully initialized.
9017         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
9018         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
9019         objects into static storage if they have more than one non-zero value.
9020         * tree.h (categorize_ctor_elements): Update decl.
9021
9022 2005-01-26  Steven Bosscher  <stevenb@suse.de>
9023
9024         PR middle-end/19616
9025         * tree.h (CALL_EXPR_TAILCALL): Add comment.
9026         * calls.c (check_sibcall_argument_overlap_1): Revert the change
9027         to this function from 2004-07-10.
9028         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
9029         the current function for tail call optimizations if the address
9030         of one of it its arguments is taken.
9031
9032 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9033
9034         * cse.c (fold_rtx): Call equiv_constant only when necessary.
9035
9036 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
9037
9038         * function.c (expand_function_end): If current_function_calls_alloca,
9039         emit stack restore in a place that is reached when the function falls
9040         through at the end.
9041
9042 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
9043
9044         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
9045         rule to avoid matching inappropriate suffix rule.
9046
9047 2005-01-26  Jan Hubicka  <jh@suse.cz>
9048
9049         PR tree-optimization/19241
9050         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
9051
9052 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
9053
9054         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
9055         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
9056         of doubling.
9057         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
9058         <sim*>: Always use crt1.o, regardless of N in simN.
9059         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
9060         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
9061         (CRT_CALL_STATIC_FUNCTION): Remove.
9062         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
9063         use crt1.o, regardless of N in simN.
9064         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
9065         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
9066         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
9067         case isystem setting.
9068         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
9069
9070 2005-01-25  Ian Lance Taylor  <ian@airs.com>
9071
9072         * gimple-low.c (block_may_fallthru): Correct handling of
9073         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
9074
9075 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
9076
9077         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
9078         handlers to match indentation; nested under the mtune=* handler.
9079         Similar for mcpu= and march=.
9080
9081 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
9082
9083         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
9084         * config/mips/linux64.h (LIB_SPEC): Likewise.
9085         * config/mn10300/linux.h (LIB_SPEC): Likewise.
9086         * config/sh/linux.h (LIB_SPEC): Likewise.
9087
9088 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
9089
9090         * config/frv/frv.c (frv_legitimize_tls_address): New.
9091         (TARGET_HAVE_TLS): Define.
9092         (FRV_SYMBOL_REF_TLS_P): Define.
9093         (frv_override_options): Handle new register classes.
9094         (frv_legitimate_address_p): Reject tls addresses.
9095         (frv_legitimize_address): Handle TLS addresses.
9096         (gen_inlined_tls_plt): New.
9097         (gen_tlsmoff): New.
9098         (frv_legitimize_tls_address): New.
9099         (unspec_got_name): Add TLS entries.
9100         (got12_operand): Add R_FRV_TLSMOFF12 case.
9101         (frv_emit_move): Fixup TLS addresses.
9102         (frv_emit_movsi): Legitimize TLS addresses.
9103
9104         * config/frv/frv.h (MASK_BIG_TLS): New.
9105         (TARGET_BIG_TLS): New.
9106         (HAVE_AS_TLS): Define.
9107         (TARGET_SWITCHES): Add -mTLS and -mtls options.
9108         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
9109         (REG_CLASS_NAMES): Same.
9110         (REG_CLASS_CONTENTS): Same.
9111         (CONSTRAINT_LEN): New.
9112         (REG_CLASS_FROM_CONSTRAINT): New.
9113         (PREDICATE_CODES): Add symbolic_operand.
9114
9115         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
9116         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
9117         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
9118         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
9119         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
9120         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
9121         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
9122         GR9_REG, GR14_REG, LRREG.
9123         (type): Add load_or_call attribute.
9124         ("load_or_call"): New reservation.
9125         ("call_gettlsoff"): New.
9126         ("tls_indirect_call"): New.
9127         ("tls_load_gottlsoff12"): New.
9128         ("tlsoff_hilo"): New.
9129         ("tls_tlsdesc_ldd"): New.
9130         ("tls_tlsoff_ld"): New.
9131         ("tls_lddi"): New.
9132
9133         * config/frv/frv-protos.h (symbolic_operand): Protoize.
9134
9135         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
9136
9137         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9138         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
9139         * config/frv/frv.c (TLS_BIAS): Define.
9140         (frv_output_dwarf_dtprel): New.
9141
9142 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
9143
9144         PR rtl-optimization/19579
9145         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
9146         both A and B, see if they don't clobber registers the other expr uses.
9147
9148 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
9149
9150         * real.c (do_add): Initialize signalling and canonical members.
9151
9152         * real.c (real_from_integer): Zero out destination.
9153
9154 2005-01-18  Jan Hubicka  <jh@suse.cz>
9155
9156         PR tree-optimize/19337
9157         * tree-inline.c (initialize_inlined_parameters): Copy
9158         saved_static_chain_decl only.
9159
9160 2005-01-25  Richard Henderson  <rth@redhat.com>
9161
9162         PR target/19556
9163         PR target/19584
9164         * config/i386/i386.c (x86_inter_unit_moves): Zero.
9165         (ix86_preferred_reload_class): Rewrite fp-constant section, with
9166         80387 enabled, to return a proper subclass.  Return the subset that
9167         overlaps with GENERAL_REGS for PLUS.
9168         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
9169
9170 2005-01-25  Richard Henderson  <rth@redhat.com>
9171
9172         PR middle-end/19609
9173         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
9174
9175 2005-01-25  Roger Sayle  <roger@eyesopen.com>
9176
9177         * expmed.c (choose_multiplier): Change interface to return the
9178         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
9179         (expand_divmod): Update calls to choose_multiplier.
9180
9181 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9182
9183         PR middle-end/19330
9184         * expmed.c (extract_bit_field): Use adjust_address instead of
9185         gen_lowpart when op0 is a MEM.
9186
9187 2005-01-24  Steven Bosscher  <stevenb@suse.de>
9188
9189         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
9190
9191 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
9192
9193         * config/mips/irix-csr.c: New file.
9194         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
9195         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
9196         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
9197         executables.
9198
9199 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
9200
9201         PR bootstrap/19364
9202         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
9203         sparc/elf.h, add sparc/sp-elf.h.
9204         (sparc-*-rtems*): Likewise.
9205         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
9206         tm-dwarf2.h, add sparc/sp-elf.h.
9207         (sparc86x-*-elf): Likewise.
9208         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
9209         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
9210         TARGET_OS_CPP_BUILTINS.
9211         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9212         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9213         Undefine it.
9214         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
9215         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
9216         (SWITCH_TAKES_ARG): Likewise.
9217         (LOCAL_LABEL_PREFIX): Likewise.
9218         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
9219         (TARGET_N_FORMAT_TYPES): Delete.
9220         (TARGET_FORMAT_TYPES): Likewise.
9221         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9222         * config/sparc/elf.h: Delete.
9223         * config/sparc/sp-elf.h: New file.
9224
9225 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9226
9227         * tree-flow-inline.h (phi_arg_from_edge): Remove.
9228         * tree-flow.h: Remove the corresponding prototype.
9229         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
9230         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
9231
9232 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
9233
9234         PR target/17751
9235         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
9236         for AIX ABI or ELF -fPIC.
9237         (rs6000_emit_load_toc_table): Don't create toc_section here.
9238         (rs6000_xcoff_file_start): Nor here.
9239
9240 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
9241
9242         * sh.c (ra.h): Don't #include.
9243         (hard_regs_intersect_p): New function, resurrected from ra.c.
9244
9245         * sh.c: Fix 1996 Copyright.
9246
9247 2005-01-24  Richard Henderson  <rth@redhat.com>
9248             Aldy Hernandez  <aldyh@redhat.com>
9249
9250         * regrename.c (note_sets): Handle subregs.
9251
9252 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
9253
9254         PR bootstrap/18058
9255         * genconditions.c (write_header, write_conditions): Elide file if
9256         not GCC >= 3.0.1.
9257
9258 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9259
9260         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
9261         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
9262         Update copyright.
9263
9264 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
9265
9266         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
9267         expand_builtin_printf, expand_builtin_fprintf,
9268         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
9269         checking against POINTER_TYPE.
9270         (validate_arglist): Handle POINTER_TYPE code by checking
9271         POINTER_TYPE_P.
9272
9273 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
9274
9275         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
9276         init_rtlanal): New.
9277         (for_each_rtx): Call for_each_rtx_1.
9278         * rtl.h (init_rtlanal): Declare.
9279         * toplev.c (backend_init): Call init_rtlanal.
9280
9281 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
9282
9283         * flow.c (propagate_one_insn): Formatting.
9284
9285         PR middle-end/19551
9286         * flow.c (libcall_dead_p): Be more conservative if unsure.
9287         If there are any instructions between insn and call, see if they are
9288         all dead before saying the libcall is dead.
9289
9290 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
9291
9292         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
9293         operand constraint for operand 0.
9294
9295 2005-01-23  Richard Henderson  <rth@redhat.com>
9296
9297         PR 19486
9298         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
9299         edges leading to join block.
9300
9301 2005-01-23  Roger Sayle  <roger@eyesopen.com>
9302
9303         * expmed.c (expand_mult_highpart): Make static.  Change type of
9304         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
9305         (expand_divmod): Updates calls to expand_mult_highpart by using
9306         gen_int_mode to pass a CONST_INT rtx.
9307         * rtl.h (expand_mult_highpart): Remove prototype.
9308
9309 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9310
9311         * flow.c (regset_bytes, regset_size): Remove.
9312
9313         * cfganal.c: Fix a reference to Harvey's paper.
9314
9315 2005-01-23  Steven Bosscher  <stevenb@suse.de>
9316
9317         PR rtl-optimization/19464
9318         * tree-optimize.c (init_tree_optimization_passes): Add one more
9319         copyrename pass just before out-of-ssa.
9320
9321 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
9322
9323         PR bootstrap/18058
9324         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
9325         * ggc-none.c (ggc_free): Define.
9326
9327 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9328
9329         * cse.c (max_reg, max_insn_uid): Remove.
9330         (cse_main): Don't access max_reg or max_insn_uid.
9331
9332         * c-common.c (explicit_flag_signed_bitfields,
9333         lang_statement_code_p, lang_expand_function_end): Remove.
9334         * c-common.h: Remove the corresponding declarations.
9335         * c-opts.c (c_common_handle_option): Remove all write access
9336         to explicit_flag_signed_bitfields.
9337
9338         * cgraph.c (cgraph_varpool_n_nodes): Remove.
9339         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
9340         * cgraph.h: Remove the corresponding declaration.
9341
9342         * gcse.c (null_pointer_info): Remove.
9343
9344 2005-01-23  Roger Sayle  <roger@eyesopen.com>
9345             Eric Botcazou  <ebotcazou@libertysurf.fr>
9346
9347         * combine.c (simplify_logical): Only simplify logical expressions
9348         of the form ior(and(x,y),z) by the inverse distributive law if the
9349         result is cheaper than the original.
9350
9351 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9352
9353         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
9354         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
9355         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
9356         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
9357         config/freebsd-spec.h, config/arm/arm.h,
9358         config/h8300/h8300.md, config/i386/i386.md,
9359         config/i386/predicates.md, config/i386/sse.md,
9360         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
9361         config/vax/vax.md: Fix comment typos.  Follow spelling
9362         conventions.
9363
9364 2005-01-23  Steven Bosscher  <stevenb@suse.de>
9365
9366         * gengtype.c (walk_type): Produce `not equal to' compares for loop
9367         tests, instead of `less than'.
9368
9369 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
9370
9371         * function.c (assign_parm_setup_block): When creating a new stack slot
9372         for a parameter, get its alignment from the parameter's DECL_ALIGN
9373         rather than the type's TYPE_ALIGN.  Make sure that the parameter
9374         is at least word aligned.
9375
9376 2005-01-22  Roger Sayle  <roger@eyesopen.com>
9377
9378         PR middle-end/19378
9379         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
9380
9381 2005-01-22  Richard Henderson  <rth@redhat.com>
9382
9383         PR target/19506
9384         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
9385         in both compare operands.
9386         (movdfcc_1_sse_max): Likewise.
9387         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
9388         (movdfcc_1_sse): Likewise.
9389         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
9390         scratch register as needed.
9391
9392 2005-01-22  Richard Henderson  <rth@redhat.com>
9393
9394         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
9395
9396         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
9397
9398 2005-01-22  Richard Henderson  <rth@redhat.com>
9399
9400         * genopinit.c (optabs): Use smin/smax for floating point too.
9401         * doc/md.texi: Update to match.  Clarify that floating point
9402         results are undefined for +0/-0 and NaN.
9403         * doc/rtl.texi: Likewise.
9404         * rtl.def (SMIN, SMAX): Likewise
9405         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
9406
9407         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
9408         leading 's' to the name.
9409         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
9410         smaxxf3, sminxf3): Likewise.
9411         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
9412         Likewise.
9413
9414 2005-01-22  Paul Brook  <paul@codesourcery.com>
9415
9416         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
9417
9418 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
9419
9420         * config/s390/s390.c (struct processor_costs): New fields
9421         dlgr, dlr, dr, dsgfr, dsgr.
9422         (z900_cost, z990_cost): Values for new fields.
9423         (s390_rtx_costs): New cases MEM und COMPARE in switch
9424         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
9425         DIV, MOD, UDIV, UMOD.
9426
9427 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
9428
9429         * config/s390/s390.md ("doloop_si64"): Reload input value directly
9430         into the register being decremented.
9431         ("doloop_si31", "doloop_di"): Likewise.
9432         ("*doloop_si_long"): Adapt pattern.
9433
9434 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
9435
9436         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
9437         access registers.
9438         (CLASS_MAX_NREGS): Likewise.
9439
9440 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
9441
9442         * doc/tree-ssa.texi (Statement Operands): Add example for new
9443         must-def macro. Note deprecation of old operands interface.
9444
9445 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
9446
9447         PR tree-optimization/19484
9448         * tree-cfg.c (remove_fallthru_edge): New function.
9449         (cleanup_control_flow): Remove fallthru edges from calls that are
9450         now known not to return.
9451
9452 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
9453
9454         Fix PR tree-optimization/19038
9455         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
9456         copies with loop variant ones.
9457
9458 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
9459
9460         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
9461         config/alpha/alpha-protos.h, config/alpha/alpha.h,
9462         config/alpha/alpha.md, config/alpha/predicates.md,
9463         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
9464         config/sparc/sol2.h: Update copyright.
9465
9466         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
9467         first label to see if it is a nonlocal label.
9468
9469 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
9470             Andrew Pinski  <pinskia@physics.uc.edu>
9471
9472         PR target/19491
9473         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
9474         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
9475
9476 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
9477
9478         * config/rs6000/rtems.h: Update copyright.
9479
9480 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
9481
9482         PR target/19548
9483         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
9484         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
9485         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
9486
9487 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9488
9489         PR c/18809
9490         * c-typeck.c (convert_arguments): Check for error_mark_node.
9491
9492 2005-01-21  Ian Lance Taylor  <ian@airs.com>
9493
9494         PR tree-optimization/13000
9495         * tree-inline.c: Include "tree-flow.h".
9496         (expand_call_inline): If warn_return_type, warn if non-void inline
9497         function falls through.
9498         * tree-cfg.c (execute_warn_function_return): Don't warn about
9499         control reaching end if TREE_NO_WARNING is set.  Set
9500         TREE_NO_WARNING.
9501         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
9502         has been lowered.
9503         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
9504         branch if we don't need one.
9505         * c-typeck.c: Include "tree-flow.h"
9506         (c_finish_bc_stmt): Don't add a goto if the current statement
9507         list doesn't fall through to the current point.
9508
9509 2005-01-21  Roger Sayle  <roger@eyesopen.com>
9510
9511         PR rtl-optimization/576
9512         * real.c (real_arithmetic): Change return type from void to bool
9513         to return an indication that the result may be inexact.
9514         * real.h (real_arithmeric): Update prototype.
9515         * fold-const.c (const_binop):  Don't constant fold floating
9516         point expressions when the user specifies -frounding-math and
9517         the result may depend upon the run-time rounding mode.
9518         (fold_convert_const_real_from_real): Clean-up.
9519         (fold_initializer): Ignore flag_rounding_math for initializers.
9520         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
9521         constant fold FP operations with flag_rounding_math if the
9522         result may depend upon the run-time rounding mode.
9523
9524 2005-01-21  Tom Tromey  <tromey@redhat.com>
9525
9526         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
9527
9528 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9529
9530         * tree-cfg.c: Fix comment typos.
9531
9532 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
9533
9534         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
9535         around the call to rest_of_handle_branch_target_load_optimize.
9536
9537 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
9538
9539         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
9540         (sparc64-*-openbsd*): Likewise.
9541         (sparclite-*-elf*): Include tm-dwarf2.h.
9542         (sparc86x-*-elf*): Likewise.
9543         (sparc64-*-elf*): Likewise.
9544         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
9545         (DBX_DEBUGGING_INFO): Likewise.
9546         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
9547         (PREFERRED_DEBUGGING_TYPE): Likewise.
9548         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
9549         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
9550         (PREFERRED_DEBUGGING_TYPE): Likewise.
9551         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
9552         (PREFERRED_DEBUGGING_TYPE): Likewise.
9553         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
9554
9555 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
9556
9557         PR target/18701
9558         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
9559
9560 2005-01-20  Paul Brook  <paul@codesourcery.com>
9561
9562         * doc/rtl.texi: Document value extension requirements for CONST_INT.
9563
9564 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9565
9566         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
9567         label is first in a sequence of labels.
9568
9569         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
9570
9571 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
9572             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9573
9574         * doc/sourcebuild.texi (Test Directives): New.
9575
9576 2005-01-20  Roger Sayle  <roger@eyesopen.com>
9577
9578         * real.c (real_floor): Don't leave the result uninitialized when
9579         mode is VOIDMode, but return the unrounded intermediate value.
9580         (real_ceil): Likewise.
9581
9582 2005-01-20  Paul Brook  <paul@codesourcery.com>
9583
9584         * config/arm/arm.md (insv): Use gen_int_mode.
9585
9586 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
9587
9588         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
9589         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9590         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9591         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9592         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9593
9594 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
9595
9596         Fix PR debug/19124
9597         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
9598         fbreg, so we have to assume we can't.
9599         (loc_descriptor_from_tree_1): Ditto.
9600         (containing_function_has_frame_base): New function.
9601         (add_location_or_const_value_attribute): Use it.
9602         Also try to generate a frame_base from a single element location
9603         list.
9604
9605 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9606
9607         PR tree-optimization/15349
9608         * timevar.def (TV_TREE_MERGE_PHI): New.
9609         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
9610         PHI_WANTED.
9611         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
9612         calls to tree_forwarder_block_p.
9613         (remove_forwarder_block_with_phi, merge_phi_nodes,
9614         gate_merge_phi, pass_merge_phi): New.
9615         * tree-optimize.c (init_tree_optimization_passes): Add
9616         pass_merge_phi.
9617         * tree-pass.h: Add an extern for pass_merge_phi;
9618
9619 2005-01-20  Richard Henderson  <rth@redhat.com>
9620
9621         PR target/19418
9622         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
9623         (_mm_castps_pd, _mm_castps_si128): New.
9624         (_mm_castsi128_ps, _mm_castsi128_pd): New.
9625
9626 2005-01-20  Richard Henderson  <rth@redhat.com>
9627
9628         PR target/19530
9629         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
9630         __builtin_ia32_vec_init_v2si.
9631         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
9632         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
9633         (ix86_init_mmx_sse_builtins): Create it.
9634         (ix86_expand_builtin): Expand it.
9635         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
9636         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
9637         (vec_extractv2si_0, vec_extractv2si_1): New.
9638
9639 2005-01-20  Richard Henderson  <rth@redhat.com>
9640
9641         PR target/16533
9642         * config/i386/i386.c (ix86_expand_push): New.
9643         * config/i386/mmx.md (push<MMXMODE>1): New.
9644         * config/i386/sse.md (push<SSEMODE>1): New.
9645         * config/i386/i386-protos.h: Update.
9646
9647 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9648
9649         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
9650         copyright.
9651
9652 2005-01-20  Richard Henderson  <rth@redhat.com>
9653
9654         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
9655         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
9656
9657 2005-01-19  Richard Henderson  <rth@redhat.com>
9658
9659         PR target/19350
9660         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
9661         to V4SFmode in SSE1 fallback load path.
9662
9663 2005-01-19  Richard Henderson  <rth@redhat.com>
9664
9665         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
9666         in QImode expansion to ix86_expand_vector_set.
9667         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
9668
9669 2005-01-19  Richard Henderson  <rth@redhat.com>
9670
9671         PR target/19511
9672         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
9673         subclass of the input class.
9674         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
9675         Always true for cross-SSE1 classes.  Rationalize conditionals.
9676         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
9677         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
9678         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
9679         (movdi_2): Add MMX/SSE zeros.
9680         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
9681         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
9682         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
9683         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
9684         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
9685         (zero_extendsidi2_rex64_1): Remove.
9686         (MOV0 peephole): Check GENERAL_REG_P.
9687
9688 2005-01-19  Richard Henderson  <rth@redhat.com>
9689
9690         PR target/19427
9691         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
9692         shufps elements.
9693         (ix86_expand_vector_extract): Likewise.
9694
9695 2005-01-19  Richard Henderson  <rth@redhat.com>
9696
9697         PR middle-end/19304
9698         * expr.c (emit_move_change_mode): New argument force; use
9699         simplify_gen_subreg if true.
9700         (emit_move_via_alt_mode): Merge into ...
9701         (emit_move_via_integer): ... here.
9702         (emit_move_ccmode): Use emit_move_change_mode directly.
9703
9704 2005-01-19  Richard Henderson  <rth@redhat.com>
9705
9706         PR target/19518
9707         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
9708         (alpha_preferred_reload_class): Handle CONST_VECTOR.
9709         (alpha_emit_set_const_1): Add no_output parameter; don't emit
9710         rtl if true.
9711         (alpha_emit_set_const): Likewise.  Make static.
9712         (alpha_emit_set_long_const): Make static.
9713         (alpha_extract_integer): Split out from alpha_expand_mov.
9714         (alpha_split_const_mov): Likewise.
9715         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
9716         (alpha_legitimate_constant_p): New.
9717         * config/alpha/alpha-protos.h: Update.
9718         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
9719         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
9720         * config/alpha/alpha.md (movsi): Add n alternative.
9721         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
9722         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
9723         (splitters for all of the above): Use alpha_split_const_mov.
9724         * config/alpha/predicates.md (non_add_const_operand): New.
9725         (non_zero_const_operand): New.
9726         (input_operand): Use alpha_legitimate_constant_p after reload.
9727
9728 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
9729
9730         PR tree-optimization/19038
9731         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
9732         (add_candidate): Add ivs with increment in latch only if
9733         allow_ip_end_pos_p is true.
9734         (determine_iv_cost): Use empty_block_p.
9735
9736 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
9737
9738         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
9739         (compute_dominance_frontiers): Ditto.
9740
9741 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
9742
9743         PR target/19529
9744         * config/sh/t-rtems: New.
9745         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
9746
9747 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
9748
9749         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
9750         the offset of the selected field.
9751
9752 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
9753
9754         * tree-cfg.c (remove_forwarder_block): Fix the check to
9755         prevent a nonlocal label from appearing in the middle of a
9756         basic block.
9757
9758 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
9759
9760         PR rtl-optimization/19462
9761         * reorg.c (find_end_label): Create return insn only if
9762         current_function_epilogue_delay_list is empty.
9763
9764 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
9765
9766         * doc/passes.texi: Remove paragraph mentioning new-ra.
9767
9768 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
9769
9770         PR rtl-optimization/15139
9771         * combine.c: Include params.h.
9772         (count_rtxs): New function.
9773         (record_value_for_reg): If replace_rtx would replace at least
9774         2 occurrences of REG in VALUE and TEM is really large, replace REG with
9775         (clobber (const_int 0)) instead of TEM.
9776         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
9777         * params.h (MAX_LAST_VALUE_RTL): New.
9778         * Makefile.in (combine.o): Depend on $(PARAMS_H).
9779         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
9780
9781         PR c/17297
9782         * c-typeck.c (digest_init): Only call build_vector if all constructor
9783         elements are *_CST nodes.
9784         * gimplify.c (gimplify_init_constructor): Likewise.
9785
9786         PR middle-end/19164
9787         * c-typeck.c (digest_init): Only call build_vector if inside_init
9788         is a CONSTRUCTOR.
9789
9790 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
9791
9792         * toplev.c (init_asm_output): Remove dead #ifdef.
9793
9794 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9795
9796         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
9797
9798 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
9799
9800         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
9801         accessing DECL_FUNCTION_CODE.
9802         * dojump.c (do_jump): Likewise.
9803         * gimplify.c (gimplify_call_expr): Likewise.
9804         * predict.c (expr_expected_value): Likewise.
9805         (strip_builtin_expect): Likewise.
9806         * tree-inline.c (estimate_num_insns_1): Likewise.
9807         * tree-ssa-loop-im.c (stmt_cost): Likewise
9808         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
9809         (tree_expr_nonnegative_p): Likewise.
9810
9811 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
9812
9813         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
9814         variant of the load_pcrel_sym pattern.
9815         * config/sparc/sparc.md (P macro): Move to the top.
9816         (load_pcrel_sym): Macroize using P.
9817         (save_register_window): Likewise.
9818
9819 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
9820
9821         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
9822         ("sordered"): Same.
9823
9824 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
9825
9826         PR C/19472
9827         * c-typeck.c (build_asm_expr): Strip nops off
9828         input memory operands.
9829
9830 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
9831
9832         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
9833         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
9834         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
9835         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
9836
9837 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
9838
9839         PR target/19379
9840         * config/i386/i386.c (override_options): If the 80387 is disabled,
9841         then do not return FP values using FP registers.
9842
9843 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
9844
9845         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
9846         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
9847         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
9848         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
9849         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
9850         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
9851         output.h, postreload-gcse.c, postreload.c, recog.c,
9852         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
9853         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
9854         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
9855         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
9856         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
9857         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
9858         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
9859         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
9860
9861         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
9862         config/alpha/alpha.c, config/arm/vfp.md,
9863         config/i386/emmintrin.h, config/i386/i386-modes.def,
9864         config/i386/i386-protos.h, config/i386/i386.h,
9865         config/i386/pmmintrin.h, config/i386/ppro.md,
9866         config/i386/predicates.md, config/i386/xmmintrin.h,
9867         config/i860/i860.c, config/ia64/ia64-modes.def,
9868         config/ia64/ia64-protos.h, config/ia64/ia64.h,
9869         config/ia64/ia64.md, config/ia64/itanium1.md,
9870         config/ia64/itanium2.md, config/ia64/predicates.md,
9871         config/iq2000/iq2000.h, config/mips/linux64.h,
9872         config/rs6000/aix41.h, config/rs6000/aix43.h,
9873         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
9874         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
9875         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
9876         config/sparc/linux64.h, config/sparc/litecoff.h,
9877         config/sparc/sp64-elf.h, config/sparc/sparc.c,
9878         config/sparc/sparc.h, config/sparc/sparc.md,
9879         config/sparc/sysv4-only.h: Update copyright.
9880
9881 2005-01-18  Richard Henderson  <rth@redhat.com>
9882
9883         PR target/19496
9884         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
9885
9886 2005-01-18  Marc Espie  <espie@openbsd.org>
9887         * config/i386/openbsdelf.h: Typo.
9888
9889 2005-01-18  Richard Henderson  <rth@redhat.com>
9890
9891         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
9892         special case for sse.
9893         * config/i386/predicates.md (sse_comparison_operator): Likewise.
9894
9895 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
9896
9897         * tree-inline.c (estimate_num_insns_1): Added cases for
9898         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
9899
9900 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
9901
9902         PR rtl-optimization/19296
9903         * combine.c (simplify_comparison): Rewrite the condition under
9904         which a non-paradoxical SUBREG of a PLUS can be lifted when
9905         compared against a constant.
9906
9907 2005-01-18  Andi Kleen <ak@muc.de>
9908
9909         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
9910         * c.opt (-Wpointer-sign): Add.
9911         * doc/invoke.texi: (-Wpointer-sign): Add.
9912
9913 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
9914
9915         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
9916         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
9917         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
9918         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
9919         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
9920         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
9921         for TARGET_MIX_SSE_I387.
9922         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
9923         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
9924         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
9925         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
9926         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
9927         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
9928         TARGET_MIX_SSE_I387.
9929         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
9930         from expander.
9931
9932 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
9933
9934         PR target/19424
9935         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
9936         Add movaps alternative for xmm reg->reg move.
9937
9938 2005-01-17  Jeff Law  <law@redhat.com>
9939
9940         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
9941         at the end of the main DOM loop rather than just before DOM exits.
9942
9943 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
9944
9945         PR tree-optimization/19121
9946         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
9947         adding aliases to a name tag, also add them to the pointer's
9948         type tag.
9949         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
9950         sensitive alias info at all.  Only check that the two pointers
9951         have compatible pointed-to sets.
9952         * tree-ssa.c (verify_name_tags): Verify that the alias set of
9953         a pointer's type tag is a superset of the alias set of the
9954         pointer's name tag.
9955
9956 2005-01-17  James E Wilson  <wilson@specifixinc.com>
9957
9958         PR target/19357
9959         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
9960         comment to document why.
9961
9962 2005-01-17  Richard Henderson  <rth@redhat.com>
9963
9964         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
9965         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
9966         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
9967         sse2_vmsminv2df3_finite): New.
9968         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
9969         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
9970         Force op1 into register.
9971
9972 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
9973
9974         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
9975         bubblestrap from always rebuilding build directory.
9976
9977 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
9978
9979         * config/s390/s390.md ("*clc"): Remove incorrect '='.
9980         ("*cmpmem_short"): Likewise.
9981
9982 2005-01-17  Steven Bosscher  <stevenb@suse.de>
9983
9984         * basic-block.h: Document BB_* flags.
9985         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
9986         use an sbitmap instead.
9987         * sched-rgn.c (compute_trg_info): Likewise.
9988
9989 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
9990
9991         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
9992         redundant target_cpu_default and extra_parts lines.  Use the default
9993         "from-abi" ISA.
9994         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
9995         (SUBTARGET_EXTRA_SPECS): Delete.
9996         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
9997         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
9998         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
9999         and "n32" for -mabi=n32.
10000
10001 2005-01-17  Ian Lance Taylor  <ian@airs.com>
10002
10003         PR c/5675
10004         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
10005         fold constant variables into initial values.
10006
10007 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
10008
10009         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
10010
10011         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
10012         through the statements backward.
10013
10014 2005-01-17  Ian Lance Taylor  <ian@airs.com>
10015
10016         PR middle-end/13127:
10017         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
10018         a variable set to the return value of the inlined function.
10019
10020 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
10021
10022         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
10023         when modes are tieable.
10024
10025 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
10026
10027         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
10028         of pthread_create to find out if threads are enabled.
10029         * gthr-posix95.h (__gthread_active_p): Likewise.
10030
10031 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
10032
10033         * common.opt (-fnew-ra): Remove.
10034         * ra*.*: Remove.
10035         * toplev.h (flag_new_regalloc): Remove.
10036         * Makefile.in (ra*.*): Don't mention.
10037         * passes.c (rest_of_handle_new_regalloc): Remove.
10038         (rest_of_handle_combine, rest_of_compilation): Always consider
10039         flag_new_regalloc as false.
10040         * doc/invoke.texi: Don't document -fnew-ra.
10041
10042 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
10043
10044         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
10045         last parameter to reg_scan.
10046         * loop.c (loop_optimize): Likewise.
10047         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
10048         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
10049         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10050         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10051         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
10052         * regclass.c (reg_scan): Likewise, for the declaration.
10053         * rtl.h (reg_scan): Likewise, for the prototype.
10054
10055 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
10056
10057         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
10058         mark_dfs_back_edges.
10059
10060 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
10061
10062         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
10063         (compute_avail): Uses don't go in tmp_gen.
10064
10065 2005-01-16  Steven Bosscher  <stevenb@suse.de>
10066
10067         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
10068         loop to look for a free slot in a page entry.
10069
10070 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10071
10072         PR target/16304
10073         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
10074         * toplev.c (compile_file): Call process_pending_assemble_output_defs
10075         just before targetm.asm_out.file_end.
10076         * tree.h (process_pending_assemble_output_defs): Declare.
10077         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
10078         New functions.
10079         (assemble_alias): Defer generation of assembly code for defines when
10080         TARGET_DEFERRED_OUTPUT_DEFS is true.
10081         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
10082         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
10083         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
10084
10085 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10086
10087         PR target/19336
10088         * pa.c (pa_scalar_mode_supported_p): New function.
10089         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10090         * pa.h (MIN_UNITS_PER_WORD): Add comment.
10091
10092         * pa-protos.h (prefetch_operand): Delete.
10093         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
10094         * pa.c (prefetch_operand): Delete.
10095         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
10096         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
10097         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
10098         and prefetch_nocc_operand.
10099         * pa.md (prefetch): Rework to avoid reload problems handling short
10100         displacements when a cache control completer needs to be provided.
10101         (prefetch_32, prefetch_64): Delete.
10102         (prefetch_cc, prefetch_nocc): New patterns.
10103
10104 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
10105
10106         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
10107
10108 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10109
10110         PR ada/19388
10111         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
10112         exceeds maximum alignment for global common data.
10113         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
10114         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
10115
10116 2004-01-15  Roger Sayle  <roger@eyesopen.com>
10117
10118         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
10119
10120 2004-01-15  Roger Sayle  <roger@eyesopen.com>
10121
10122         * harg-reg-set.h (reg_class_names): Prototype global array.
10123         * regclass.c (reg_class_names): Declare here and initialize to
10124         REG_CLASS_NAMES.
10125         (dump_regclass): Remove local declaration of reg_class_names.
10126         (regclass): Likewise.
10127         * cfg.c (dump_flow_info): Likewise.
10128         * ra-debug.c (reg_class_names): Likewise.
10129         * regrename.c (reg_class_names): Likewise.
10130         * reload.c (reg_class_names): Likewise.
10131         * reload1.c (spill_failure): Likewise.
10132         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
10133
10134 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
10135
10136         * config/s390/s390.md ("reload_outti"): Remove predicate for
10137         output operand.  Abort if operand is not a MEM.
10138         ("reload_outdi", "reload_outdf"): Likewise.
10139
10140 2005-01-15  Marc Espie  <espie@openbsd.org>
10141
10142         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
10143         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
10144         * config/openbsd.h:  Fix C++ includes for native configurations.
10145         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
10146         Add trampoline support.
10147         * config/i386/openbsdelf.h: New.
10148
10149 2005-01-15  Marc Espie  <espie@openbsd.org>
10150
10151         * collect2.c (main): Explicitly parse -dynamic-linker option.
10152
10153 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
10154
10155         PR tree-optimization/19060
10156         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
10157         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
10158         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
10159         and handle extract_range_from_cond returning false.
10160         * fold-const.c (fold): Optimize comparisons with min/max even for
10161         width > HOST_BITS_PER_WIDE_INT.
10162
10163 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
10164
10165         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
10166         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
10167         Remove little endian multilib variants.
10168         Add mips32 multilib variant.
10169
10170 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10171
10172         * explow.c (copy_all_reg, stabilize): Remove.
10173         * expr.h: Remove the corresponding prototypes.
10174
10175         * rtlanal.c (regs_set_between_p): Remove.
10176         * rtl.h: Remove the corresponding prototype.
10177
10178 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
10179
10180         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
10181         to rs6000_nonimmediate_operand.
10182         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
10183         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
10184         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
10185         rs6000_nonimmediate_operand.
10186         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
10187         rs6000_nonimmediate_operand.
10188
10189 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
10190
10191         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
10192
10193 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
10194
10195         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
10196         on e500v2.
10197         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
10198         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
10199
10200         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
10201         (rs6k_nonimmediate_operand): New.
10202         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
10203         correctly.
10204         (legitimate_lo_sum_address_p): Same.
10205         (rs6000_legitimize_address): Same.
10206         (rs6000_legitimize_reload_address): Same.
10207         (rs6000_legitimate_address): Same.
10208         (spe_build_register_parallel): Pass DF and DC modes in a DI
10209         register.
10210
10211         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
10212         to rs6k_nonimmediate_operand.
10213
10214         * config/rs6000/spe.md ("*frob_df_di"): New.
10215         ("*frob_di_df"): New.
10216         ("*frob_di_df_2"): New.
10217         ("*mov_sidf_e500_subreg0"): New.
10218         ("*mov_sidf_e500_subreg4"): New.
10219         ("*movdf_e500_double"): Change predicate to
10220         rs6k_nonimmediate_operand.
10221
10222 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
10223
10224         * postreload.c (move2add_note_store): Only call
10225         trunc_int_for_mode on scalar integers.
10226
10227 2005-01-14  Steven Bosscher  <stevenb@suse.de>
10228
10229         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
10230         replace BB_VISITED uses.
10231         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
10232         (propagate_necessity): Check the bitmap instead of BB_VISITED.
10233         (tree_dce_done): Free visited_control_parents.
10234         (perform_tree_ssa_dce): Allocate and clear it.
10235         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
10236         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
10237         instead of BB_VISITED.
10238
10239 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10240
10241         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
10242         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
10243         Remove unused prototypes.
10244
10245 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
10246
10247         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
10248         64-bit register usage.
10249         (spe_func_has_64bit_regs_p): Add FIXME note.
10250
10251 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
10252
10253         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
10254         flag_finite_math_only with flag_unsafe_math_optimizations.
10255
10256 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
10257
10258         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
10259         end-of-stack check.
10260         (__tpf_eh_return): Copy TPF private stack area from the module
10261         boundary stack frame.  Add check for when module addresses are
10262         equal, but no stub address is found.
10263
10264 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
10265
10266         PR target/7525
10267         * arm.h (struct machine_function): Add call_via field.
10268         (thumb_call_via_label): Declare.
10269         * arm.c (thumb_call_via_label): New variable.
10270         (thumb_call_reg_needed): New variable.
10271         (arm_output_function_epilogue): For Thumb code, output any per-function
10272         call-indirect trampolines.
10273         (thumb_call_via_reg): New function.
10274         (arm_file_end): New function.
10275         (TARGET_ASM_FILE_END): Call arm_file_end.
10276         (aof_file_end): Likewise.
10277         * arm-protos.h (thumb_call_via_reg): Declare.
10278         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
10279         thumb_call_via_reg in normal case.
10280
10281 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
10282
10283         PR middle-end/19084
10284         PR rtl-optimization/19348
10285         * recog.c (peephole2_optimize): Do global life update if some peephole
10286         decides it doesn't need at least one of its inputs and that change
10287         influences liveness at the start of the basic block.
10288
10289         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
10290         arguments instead of 1.
10291
10292 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
10293
10294         PR middle-end/18820
10295         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
10296         zero for nested functions needing a static chain or functions
10297         with a non-constant address.
10298
10299 2005-01-13  Roger Sayle  <roger@eyesopen.com>
10300
10301         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
10302         (and (sign_extend X) C) into (zero_extend (and X C)).
10303
10304 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
10305
10306         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
10307
10308 2005-01-13  Richard Henderson  <rth@redhat.com>
10309
10310         PR target/19009
10311         PR target/19250
10312         PR target/19252
10313         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
10314         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
10315         not just TARGET_SSE.
10316         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
10317         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
10318         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
10319         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
10320         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
10321         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
10322         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
10323         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
10324         (movdicc_c_rex64): Rename with '*'.
10325         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
10326         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
10327         (movsfcc_1_387): Rename from movsfcc_1.
10328         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
10329         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
10330         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
10331         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
10332         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
10333         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
10334         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
10335         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
10336         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
10337         sse_movdfcc_const0_4): Remove.
10338         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
10339         recognize min/max early.  Update for changed sse cmove patterns.
10340         (ix86_split_sse_movcc): New.
10341         * config/i386/i386-protos.h: Update.
10342
10343 2005-01-13  Steven Bosscher  <stevenb@suse.de>
10344
10345         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
10346         (fix_stmt_v_may_defs): Likewise.
10347
10348 2005-01-13  Richard Henderson  <rth@redhat.com>
10349
10350         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
10351         for converting the mask.
10352
10353 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
10354
10355         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
10356         definition to 600.
10357
10358 2005-01-13  Richard Henderson  <rth@redhat.com>
10359
10360         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
10361         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
10362         IX86_BUILTIN_MOVDQ2Q): Remove.
10363         (IX86_BUILTIN_VEC_EXT_V4SI): New.
10364         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
10365         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
10366         shuffling.
10367         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
10368         (sse2_pextrw): Fix immediate constraint.
10369         (sse2_loadq, sse2_loadq_rex64): Remove.
10370         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
10371         Use __builtin_ia32_vec_ext_<size>.
10372         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
10373
10374 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
10375
10376         * function.c (assign_parm_setup_block): Look inside original
10377         entry_parm when inspecting PARALLEL.
10378
10379 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
10380             Joel Sherrill  <joel@oarcorp.com>
10381
10382         PR target/19399
10383         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
10384         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
10385         rtems_gxx_recursive_mutex_init.
10386         (__gthread_recursive_mutex_lock): New function.
10387         (__gthread_recursive_mutex_trylock): Likewise.
10388         (__gthread_recursive_mutex_unlock): Likewise.
10389
10390 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
10391
10392         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
10393
10394 2005-01-13  Jan Beulich  <jbeulich@novell.com>
10395
10396         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
10397         (ashrti3_internal): Indicate output is early clobber. Generate result
10398         into output rather than first input. Use move for low word of output
10399         if shift count is exactly 64.
10400         (lshrti3_internal): Likewise.
10401
10402 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
10403
10404         PR target/18329
10405         PR target/18330
10406         * reload1.c (delete_output_reload): Don't delete an output reload
10407         if the pseudo lives longer than a single basic block.  Adjust and
10408         improve wording of comment.
10409
10410 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
10411
10412         PR target/19334
10413         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
10414         of TYPE_SIZE where we mean the number of bytes.
10415
10416 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
10417
10418         * function.c (assign_parm_setup_block): Relax condition on
10419         multi-register optimization.
10420
10421 2005-01-12  Nick Clifton  <nickc@redhat.com>
10422
10423         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
10424         an "in_delay_slot" attribute of "no" to prevent them being used in
10425         delay slots.  This is forbidden because they might generate
10426         exceptions.
10427
10428 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
10429
10430         PR target/19389
10431         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
10432         with r->Y and Y->r.
10433
10434 2005-01-12  Nick Clifton  <nickc@redhat.com>
10435
10436         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
10437         passed on to GAS) but do not define, as GAS no longer supports or
10438         needs the -m2000 option.
10439
10440 2005-01-11  Roger Sayle  <roger@eyesopen.com>
10441
10442         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
10443         type as args of unprototyped builtins aren't automatically promoted.
10444         (fold_builtin_abs): Likewise.
10445
10446 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10447
10448         * Makefile.in: Set a `build-warn' variable.
10449
10450 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
10451
10452         PR tree-optimization/17949
10453         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
10454         (find_interesting_uses_address): Use it.
10455
10456 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
10457
10458         * regrename.c (kill_value): Handle subreg's that won't simplify.
10459
10460 2005-01-11  Richard Henderson  <rth@redhat.com>
10461
10462         PR target/13366
10463         * config/i386/i386.h (enum ix86_builtins): Move ...
10464         * config/i386/i386.c: ... here.
10465         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
10466         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
10467         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
10468         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
10469         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
10470         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
10471         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
10472         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
10473         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
10474         IX86_BUILTIN_LOADDDUP): Remove.
10475         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
10476         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
10477         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
10478         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
10479         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
10480         (ix86_init_builtins): Make static.
10481         (ix86_init_mmx_sse_builtins): Update for changed builtins.
10482         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
10483         if all the modes match.  Otherwise, fake it.
10484         (get_element_number, ix86_expand_vec_init_builtin,
10485         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
10486         (ix86_expand_builtin): Make static.  Update for changed builtins.
10487         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
10488         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
10489         (ix86_expand_vector_init_duplicate): New.
10490         (ix86_expand_vector_init_low_nonzero): New.
10491         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
10492         Split out from ix86_expand_vector_init; handle integer modes.
10493         (ix86_expand_vector_init): Use them.
10494         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
10495         * config/i386/i386-protos.h: Update.
10496         * config/i386/predicates.md (reg_or_0_operand): New.
10497         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
10498         (movv2sf_internal): Likewise.  And a splitter to match them all.
10499         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
10500         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
10501         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
10502         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
10503         (mmx_pinsrw): Fix operand ordering.
10504         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
10505         rather than sse_loadss expander.
10506         (movv2df splitter): Similarly.
10507         (sse_loadss, sse_loadlss): Remove.
10508         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
10509         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
10510         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
10511         (sse3_movddup): Rename with '*'.
10512         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
10513         (sse2_loadsd): Remove.
10514         (vec_dupv2df_sse3): Rename from sse3_loadddup.
10515         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
10516         (sse2_pinsrw): Fix argument ordering.
10517         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
10518         (sse2_stored): Remove 'r' destination.
10519         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
10520         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
10521         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
10522         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
10523         vec_extractv16qi, vec_initv16qi): New.
10524
10525         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
10526         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
10527         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
10528         constructor form.
10529         (_mm_load_pd, _mm_store_pd): Use plain dereference.
10530         (_mm_load_si128, _mm_store_si128): Likewise.
10531         (_mm_load1_pd): Use _mm_set1_pd.
10532         (_mm_load_sd): Use _mm_set_sd.
10533         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
10534         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
10535         (_mm_set_epi64): Use _mm_set_epi64x.
10536         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
10537         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
10538         _mm_setr_epi8): Use _mm_set_foo form.
10539         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
10540         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
10541         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
10542         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
10543         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
10544         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
10545         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
10546         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
10547         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
10548         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
10549         (_mm_movedup_pd): Use _mm_shuffle_pd.
10550         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
10551         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
10552         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
10553         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
10554         Use _mm_setzero_ps.
10555         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
10556         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
10557         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
10558         (_mm_store_ps): Use raw dereference.
10559         (_mm_store1_ps): Use _mm_storeu_ps.
10560         (_mm_storer_ps): Use _mm_store_ps.
10561         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
10562         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
10563
10564 2005-01-11  Stan Shebs  <shebs@apple.com>
10565
10566         * config/rs6000/rs6000.c (machopic_output_stub): Issue
10567         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
10568
10569 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
10570
10571         PR target/18761
10572         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10573         Skip all DECLs except for FIELD_DECLs.
10574
10575 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
10576
10577         * config/s390/s390.c (override_options): Return error if
10578         -mbackchain, -mpacked-stack and -mhard-float are used together.
10579         (s390_va_start): Remove the backchain && packed-stack special case.
10580         (s390_gimplify_va_arg): Likewise.
10581         * doc/invoke.texi: Remove the ABI incompatibility note.
10582
10583 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
10584
10585         * config/s390/s390.c (struct s390_frame_layout): Remove
10586         save_backchain_p.
10587         (s390_frame_info, s390_emit_prologue): Replace occurrences of
10588         save_backchain_p with TARGET_BACKCHAIN.
10589
10590 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
10591
10592         PR target/18916
10593         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
10594         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
10595         * function.c (locate_and_pad_parm): Set new field.
10596         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
10597         Tweak where_pad test to include "none".  Always set mem align for
10598         stack_parm.
10599         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
10600         not sufficient for type.
10601         (assign_parm_setup_block): If stack_parm is zero on entry, always
10602         make a new stack local.  Block move old stack parm if necessary
10603         to new aligned stack local.
10604         (assign_parm_setup_stack): Use a block move to handle
10605         potentially misaligned entry_parm.
10606         (assign_parms_unsplit_complex): Specify required alignment when
10607         creating stack local.
10608         * calls.c (compute_argument_addresses): Override alignment of stack
10609         arg calculated from its type with the alignment given by
10610         FUNCTION_ARG_BOUNDARY.
10611         (store_one_arg): Likewise.
10612
10613 2005-01-11  Jan Beulich  <jbeulich@novell.com>
10614
10615         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
10616         Change respective itanium_class attribute to ialu.
10617         (shladdp4_internal): New.
10618         * config/ia64/predicates.md (shladd_log2_operand): New.
10619
10620 2005-01-11  Richard Henderson  <rth@redhat.com>
10621
10622         * expr.c (store_constructor): Use rtvec_alloc instead of
10623         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
10624
10625 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
10626
10627         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
10628
10629 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
10630
10631         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
10632         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
10633         (TARGET_RWRELOC): Define.
10634         (ia64_rwreloc_section_type_flags): Delete.
10635         (ia64_section_type_flags): New function.
10636         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
10637         (TARGET_RWRELOC): Define.
10638
10639 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
10640
10641         PR target/18987
10642         * config/ia64/ia64.c (process_set): For alloc insn, only call
10643         process_epilogue is !frame_pointer_needed.
10644
10645 2005-01-10  Roger Sayle  <roger@eyesopen.com>
10646
10647         PR c++/19355
10648         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
10649         unary operator and can't be treated as a binary/comparison operator.
10650
10651 2005-01-10  Richard Henderson  <rth@redhat.com>
10652
10653         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
10654         (ix86_return_in_memory): Likewise.
10655         (function_arg_advance):  Likewise.  Mirror structure in function_arg
10656         for choosing register to advance.
10657
10658 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
10659
10660         * tree-vectorizer.c, tree.def: Fix comment typos.
10661
10662 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
10663
10664         * config/s390/s390.c (struct processor_costs): 4 new fields:
10665         ddbr, ddr, debr, der.
10666         (s390_rtx_costs): More precise handling of divide instructions.
10667
10668 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
10669
10670         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
10671
10672 2005-01-10  Jan Beulich  <jbeulich@novell.com>
10673
10674         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
10675         names resulting from -ffunction-sections/-fdata-sections and linkonce
10676         ones.
10677         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
10678         based on the section name. Rearrange the section name comparison logic
10679         slightly so that each section name is compared against at most once.
10680
10681 2005-01-10  Ben Elliston  <bje@au.ibm.com>
10682
10683         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
10684         targets for which -fPIC reduces limitations on the GOT size.
10685
10686 2005-01-09  Falk Hueffner  <falk@debian.org>
10687
10688         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
10689         X/C1 cmpop C2.
10690
10691 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
10692
10693         PR target/18720
10694         * collect2.c (main): Set aixrtl_flag for -brtl option.
10695         (resolve_lib_name): Search for .so file extension before .a
10696         if aixrtl_flag set.
10697
10698 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
10699
10700         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
10701         (vect_analyze_data_refs_alignment): Add dump prints.
10702
10703 2005-01-09  Ira Rosen  <irar@il.ibm.com>
10704
10705         * tree-vectorizer.c (vect_analyze_offset_expr): Use
10706         expr_invariant_in_loop_p.
10707         Initialize outputs first thing in the function.
10708         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
10709         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
10710         (vect_analyze_pointer_ref_access): Check that the initial condition of
10711         the access function is loop invariant.
10712
10713 2005-01-09  Richard Henderson  <rth@redhat.com>
10714
10715         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
10716         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
10717         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
10718         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
10719         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
10720         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
10721         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
10722         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
10723         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
10724         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
10725         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
10726         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
10727         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
10728         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
10729         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
10730         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
10731         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
10732         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
10733         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
10734         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
10735         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
10736         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
10737         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
10738         mmx_ prefix.
10739         (mmx_clrdi, pavgusb): Remove.
10740         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
10741         with leading sse_ prefix.
10742         * config/i386/sse.md: Receive them.
10743         * config/i386/mmx.md: New file.
10744         (MMXMODE12, MMXMODE24, mmxvecsize): New.
10745         (subrv2sf3): Turn into expander for normal subtraction.
10746         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
10747         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
10748         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
10749         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
10750         commutative; use ix86_binary_operator_ok.
10751         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
10752         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
10753         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
10754         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
10755         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
10756         Macroize from existing patterns; use ix86_binary_operator_ok.
10757         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
10758         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
10759         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
10760         with vec_select+vec_concat.
10761         (mmx_pshufw, mmx_pshufw_1): Likewise.
10762         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
10763         (mmx_uavgv4hi3): Model correctly.
10764         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
10765         _mm_xor_si64): Remove casts.
10766
10767 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
10768
10769         PR tree-optimization/19224
10770         * tree-scalar-evolution.c (get_instantiated_value,
10771         set_instantiated_value): New functions.
10772         (instantiate_parameters_1): Cache the results.
10773         (instantiate_parameters, resolve_mixers): Initialize and free
10774         the cache.
10775
10776 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
10777
10778         * config/i386/i386.md (addhi_4): Correct reference in comment.
10779         (addqi_4): Same.
10780
10781 2005-01-08  Richard Henderson  <rth@redhat.com>
10782
10783         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
10784         (_mm_cvtsi128_si64x): Likewise.
10785         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
10786         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
10787         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
10788         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
10789         * config/i386/i386-protos.h: Update.
10790         * config/i386/i386.c (print_operand): Add 'H'.
10791         (ix86_fixup_binary_operands): Split out from ...
10792         (ix86_expand_binary_operator): ... here.
10793         (ix86_fixup_binary_operands_no_copy): New.
10794         (ix86_expand_fp_absneg_operator): Handle vector mode results.
10795         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
10796         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
10797         (safe_vector_operand): Use CONST0_RTX.
10798         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
10799         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
10800         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
10801         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
10802         special cases.
10803         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
10804         (IX86_BUILTIN_CMPNGESS): New.
10805         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
10806         (attr type): Add sselog1.
10807         (attr unit, attr memory): Handle it.
10808         (movti, movti_internal, movti_rex64): Move near other integer moves.
10809         (movtf, movtf_internal): Move near other fp moves.
10810         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
10811         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
10812         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
10813         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
10814         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
10815         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
10816         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
10817         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
10818         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
10819         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
10820         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
10821         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
10822         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
10823         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
10824         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
10825         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
10826         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
10827         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
10828         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
10829         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
10830         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
10831         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
10832         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
10833         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
10834         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
10835         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
10836         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
10837         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
10838         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
10839         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
10840         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
10841         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
10842         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
10843         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
10844         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
10845         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
10846         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
10847         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
10848         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
10849         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
10850         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
10851         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
10852         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
10853         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
10854         same time.
10855         (SSEPUSH, push<SSEPUSH>): Remove.
10856         (MMXPUSH, push<MMXPUSH>): Remove.
10857         (sse_movaps, sse_movaps_1, sse_movups): Remove.
10858         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
10859         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
10860         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
10861         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
10862         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
10863         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
10864         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
10865         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
10866         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
10867         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
10868         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
10869         (ppro_sse_log_V4SF): Handle sselog1.
10870         * config/i386/predicates.md (const_0_to_1_operand): New.
10871         (const_0_to_255_mul_8_operand): New.
10872         (const_1_to_31_operand): Rename from const_int_1_31_operand.
10873         (const_2_to_3_operand, const_4_to_7_operand): New.
10874         * config/i386/sse.md: New file.
10875         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
10876         (sse_movups): Rename from sse_movups_1.
10877         (sse_loadlss): Rename from sse_loadss_1.
10878         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
10879         from the name.
10880         (negv4sf2): Use ix86_expand_fp_absneg_operator.
10881         (absv4sf2, negv2df, absv2df): New.
10882         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
10883         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
10884         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
10885         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
10886         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
10887         (sse3_addsubv4sf3): Model correctly.
10888         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
10889         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
10890         (sse_movhlps): Model with vec_select+vec_concat.
10891         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
10892         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
10893         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
10894         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
10895         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
10896         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
10897         sse2_pshufhw_1): Likewise.
10898         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
10899         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
10900         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
10901         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
10902         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
10903         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
10904         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
10905         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
10906         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
10907         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
10908         sminv8hi3): Mark commutative
10909         operands.  Use ix86_binary_operator_ok.
10910         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
10911         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
10912         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
10913         sse2_punpcklqdq): Allow operand2 in memory.
10914         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
10915         sse2_movsd): Add memory alternatives.
10916         (sse_storelps): Turn expander into an insn; split after reload.
10917         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
10918         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
10919
10920 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
10921
10922         * configure.ac (DWARF-2 debug_line): Use objdump.
10923         * configure: Regenerate.
10924
10925 2005-01-08  Jeff Law  <law@redhat.com>
10926             Diego Novillo  <dnovillo@redhat.com>
10927
10928         PR tree-optimization/18241
10929         * tree-nrv.c (tree_nrv): Ignore volatile return values.
10930         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
10931         statements with volatile operands.
10932         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
10933         operands after marking a statement with has_volatile_ops.
10934
10935 2005-01-08  Roger Sayle  <roger@eyesopen.com>
10936
10937         * tree.c (int_fits_type_p): Always honor integer constant
10938         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
10939
10940 2005-01-08  Roger Sayle  <roger@eyesopen.com>
10941
10942         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
10943         the latent bug in rtl_delete_block has been resolved.
10944
10945 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
10946
10947         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
10948         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
10949
10950 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
10951
10952         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
10953         library as @multilib_dir@/$(SHLIB_SONAME).
10954
10955 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10956
10957         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
10958         * configure: Regenerate.
10959
10960 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
10961
10962         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
10963         TYPE_MODE.
10964
10965 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
10966
10967         PR target/13674
10968         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
10969         Convert non-word aligned offset address using ld/std into
10970         indirect address.
10971
10972 2005-01-07  Richard Henderson  <rth@redhat.com>
10973
10974         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
10975
10976 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
10977
10978         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
10979
10980 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
10981
10982         PR tree-optimization/19283
10983         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
10984         is not shorter than the original type.
10985
10986         PR rtl-optimization/19012
10987         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
10988
10989         PR rtl-optimization/18861
10990         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
10991         (FULL_STATE): Define.
10992         (mark_tablejump_edge): New function.
10993         (purge_dead_tablejump_edges): New function.
10994         (find_bb_boundaries): Use it.
10995
10996         PR tree-optimization/18828
10997         * builtins.c (expand_builtin_next_arg): Remove argument and all
10998         the argument checking.
10999         (expand_builtin): Adjust caller.
11000         (expand_builtin_va_start): Likewise.  Remove error for too many
11001         arguments.
11002         (fold_builtin_next_arg): Issue error for too many arguments.
11003         After checking arguments, replace them with magic arguments that
11004         prevent further checking of the args.
11005
11006 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11007
11008         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
11009
11010 2005-01-06  Roger Sayle  <roger@eyesopen.com>
11011
11012         PR target/6077
11013         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
11014         and %{.S:...} (and their negative variants) to test whether the
11015         input file is assembler or pre-processed-assembler independent of
11016         the actual filename extension.
11017
11018 2005-01-06  Roger Sayle  <roger@eyesopen.com>
11019
11020         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
11021         of sign or zero extended values.
11022
11023 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
11024
11025         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
11026         for IBM long double format correctly.
11027
11028 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
11029
11030         Fix PR tree-optimization/18792
11031
11032         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
11033         to first_loop_depth, and use loop depth instead of loop number.
11034         (build_classic_dir_vector): Ditto.
11035         (compute_data_dependences_for_loop): Use depth, not loop number.
11036         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
11037         number. Pass in loops, instead of loop numbers.
11038         (gather_interchange_stats): Ditto.
11039         (linear_transform_loops): Ditto.
11040
11041 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
11042
11043         PR rtl-opt/13299
11044         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
11045         biv_fits_mode_p, extension_within_bounds_p): New functions.
11046         (check_ext_dependent_givs): Use them.
11047
11048 2005-01-06  Roger Sayle  <roger@eyesopen.com>
11049
11050         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
11051         more than one barrier, in which case we should delete them all.
11052
11053 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
11054
11055         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
11056
11057 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
11058
11059         Fix PR middle-end/19286
11060         Fix PR debug/19267
11061         * dwarf2out.c (gen_subprogram_die): If we've already tried to
11062         output this subprogram, simply ignore this attempt to do it again.
11063         (add_abstract_origin_attribute): Don't abort trying to add the abstract
11064         origin attribute if it's not possible.
11065         (gen_block_die): Don't ignore subblocks of "unused" blocks.
11066         (decls_for_scope): Ditto.
11067         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
11068         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
11069
11070 2005-01-05  Richard Henderson  <rth@redhat.com>
11071
11072         PR target/11327
11073         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
11074         (bdesc_2arg): Use it.
11075         (ix86_expand_binop_builtin): Force operands into registers
11076         when optimizing.
11077         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
11078         ix86_expand_sse_compare, ix86_expand_sse_comi,
11079         ix86_expand_builtin): Likewise.
11080
11081 2005-01-05  Richard Henderson  <rth@redhat.com>
11082
11083         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
11084         and VEC_SELECT.
11085         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
11086         (mulv4hi3): Set itanium_class mmmul.
11087         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
11088         (fpack): Rename from fpack_sfsf.
11089
11090 2005-01-05  Richard Henderson  <rth@redhat.com>
11091
11092         PR rtl-opt/10692
11093         * reload1.c (do_input_reload): Restrict the optimization deleteing
11094         a previous output reload to RELOAD_FOR_INPUT.
11095
11096 2005-01-05  Steven Bosscher  <stevenb@suse.de>
11097
11098         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
11099         comment that we fall through after case.
11100         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
11101         (distribute_links): Likewise.
11102         * cse.c (cse_insn): Likewise.
11103         * cselib.c (cselib_invalidate_mem): Likewise.
11104         * df.c: Update comments at the top of the file.
11105         (read_modify_subreg_p): Update comments here too.
11106         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
11107         * flow.c (mark_set_1): Likewise.
11108         (mark_used_regs): Likewise.
11109         * gcse.c (mems_conflict_for_gcse_p): Likewise.
11110         (canon_list_insert): Likewise.
11111         (mark_set): Likewise.
11112         (try_replace_reg): Likewise.
11113         (store_killed_in_insn): Likewise.
11114         * loop.c (count_one_set): Likewise.
11115         (basic_induction_var): Likewise.
11116         * postreload-gcse.c (find_mem_conflicts): Likewise.
11117         * postreload.c (reload_combine_note_store): Likewise.
11118         (move2add_note_store): Likewise.
11119         * reload.c (find_equiv_reg): Likewise.
11120         (mark_referenced_resources): Likewise.
11121         * rtlanal.c (set_noop_p): Likewise.
11122         (note_stores): Likewise.
11123         (note_uses): Likewise.
11124         * sched-deps.c (sched_analyze_1): Likewise.
11125         * sched-rgn.c (check_live_1): Likewise.
11126         (update_live_1): Likewise.
11127         * config/i860/i860.c: Likewise.
11128
11129         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
11130         an lvalue.
11131         (ZERO_EXTRACT): Mention that this one can be an lvalue.
11132
11133         * doc/rtl.texi: Update documentation for bit-fields and SET.
11134
11135 2005-01-05  Roger Sayle  <roger@eyesopen.com>
11136
11137         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
11138
11139 2005-01-05  Jan Hubicka  <jh@suse.cz>
11140             Richard Henderson  <rth@redhat.com>
11141
11142         PR target/18910
11143         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
11144         with an offset.
11145
11146 2005-01-05  Richard Henderson  <rth@redhat.com>
11147
11148         PR target/12902
11149         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
11150         (sse_shufps): Change operand 3 to const_int_operand.
11151         (sse2_storelps): Fix typo in template.
11152         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
11153         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
11154         (ix86_expand_builtin): Likewise.
11155
11156 2005-01-05  Julian Brown  <julian@codesourcery.com>
11157
11158         * config/arm/arm.c (arm_return_in_memory): Treat complex types
11159         as aggregates for AAPCS ABIs.
11160
11161 2005-01-05  Stan Shebs  <shebs@apple.com>
11162
11163         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
11164         Mach-O getters if ppc64.
11165         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
11166         size argument.
11167         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
11168         signed four-byte field for global code case.
11169         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
11170
11171 2005-01-05  Roger Sayle  <roger@eyesopen.com>
11172
11173         PR middle-end/19100
11174         * c-common.c: Include real.h.
11175         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
11176         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
11177         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
11178         * Makefile.in (c-common.o): Update dependencies.
11179
11180 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
11181
11182         * c-parse.in (asm_string): Add trailing semicolon.
11183
11184 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
11185
11186         * c-parse.in (asm_string): New.  Don't allow wide strings in
11187         'asm'.
11188         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
11189         asm_string instead of STRING.
11190
11191 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
11192
11193         * c-typeck.c (constructor_no_implicit): Remove.
11194         (set_designator, process_init_element): Don't check
11195         constructor_no_implicit.
11196
11197 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
11198             Kaz Kojima  <kkojima@gcc.gnu.org>
11199
11200         PR target/16482
11201         * lcm.c (create_pre_exit): New.
11202         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
11203         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
11204
11205 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
11206
11207         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
11208         -msoft-float in target_float_switch.
11209         * arm.c (arm_override_options): Fix processing of target_float_switch.
11210
11211 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
11212
11213         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
11214         preferencing.
11215
11216 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
11217
11218         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
11219         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
11220
11221 2005-01-04  Roger Sayle  <roger@eyesopen.com>
11222
11223         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
11224         if deleting the then-block allows the test-block to fallthru to the
11225         else-block.
11226
11227 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
11228
11229         PR c/19152
11230         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
11231         after the full declaration if the are in two different TUs.
11232
11233 2005-01-04  Richard Henderson  <rth@redhat.com>
11234
11235         PR tree-opt/19158
11236         * tree-sra.c (generate_one_element_init): Just
11237         call gimplify_and_add.
11238         (generate_element_init): Record the
11239         new referenced variables and mark them for renaming
11240         and split out to ...
11241         (generate_element_init_1): This.
11242         (scalarize_init): Don't call push_gimplify_context/
11243         pop_gimplify_context.
11244
11245 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
11246
11247         * toplev.c (get_src_pwd): Handle failure of getpwd().
11248
11249 2005-01-04  Roger Sayle  <roger@eyesopen.com>
11250
11251         * fold-const.c (fold_single_bit_test): Delete unreachable handling
11252         of TRUTH_NOT_EXPR.
11253         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
11254         all the cases handled by it are inverted by invert_truthvalue.
11255
11256 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11257
11258         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
11259         (save_register_windowsi): Likewise.
11260
11261 2005-01-04  Richard Henderson  <rth@redhat.com>
11262
11263         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
11264
11265 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
11266
11267         PR middle-end/17767
11268         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
11269         any simplifications of vector mode comparison operators.
11270         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
11271
11272 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
11273             Devang Patel  <dpatel@apple.com>
11274
11275         PR tree-optimization/18308
11276         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
11277         the operands before creating a new expression.
11278         * dojump.c (do_jump): Make drop_through_label available
11279         for all cases.  Add expansion of COND_EXPR.
11280
11281 2005-01-04  Ira Rosen  <irar@il.ibm.com>
11282
11283         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
11284         INTEGER_CST instead of TREE_CONSTANT.
11285         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
11286         instead of TREE_CONSTANT.
11287         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
11288         instead of TREE_CONSTANT.
11289
11290 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11291
11292         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
11293
11294 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
11295
11296         PR target/19240
11297         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
11298         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
11299
11300 2005-01-03  Richard Henderson  <rth@redhat.com>
11301
11302         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
11303         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
11304         fold_convert_const_real_from_real): Split out from ...
11305         (fold_convert_const): ... here.
11306
11307 2005-01-03  Richard Henderson  <rth@redhat.com>
11308
11309         PR target/19235
11310         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
11311         (mov<MMXMODEI>_internal): Likewise.
11312         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
11313         Add V2SF case; use it for SSE1; don't use TI.
11314         (movdf_integer): Likewise.
11315         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
11316
11317 2005-01-03  Ira Rosen  <irar@il.ibm.com>
11318
11319         * tree-vectorizer.c (vect_strip_conversions): New function.
11320         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
11321         check for binary class.
11322
11323 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
11324
11325         Fix PR debug/17924
11326         Fix PR debug/19191
11327         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
11328         is a decl.
11329         * gimple-low.c (mark_blocks_with_used_vars): New function.
11330         (mark_blocks_with_used_subblocks): Ditto.
11331         (mark_used_blocks): Ditto.
11332         (pass_mark_used_blocks): New pass.
11333         * tree-inline.c: Include debug.h.
11334         (expand_call_inline): Call outlining_inline_function here.
11335         * tree-optimize.c (init_tree_optimization_passes): Add
11336         pass_mark_used_blocks.
11337         * tree-pass.h (pass_mark_used_blocks): New.
11338         * Makefile.in (tree-inline.o): Add debug.h dependency.
11339
11340 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
11341
11342         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
11343         VAR_DECLs to have weak_import attribute.
11344
11345         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
11346         'struct ucontext'.
11347
11348 2004-01-03  Steven Bosscher  <stevenb@suse.de>
11349
11350         * passes.c (rest_of_compilation): Don't run regmove if only
11351         flag_expensive_optimizations, require flag_regmove instead.
11352
11353 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
11354
11355         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
11356         register "sparc".
11357         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
11358         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
11359         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
11360         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
11361
11362 2005-01-03  Richard Henderson  <rth@redhat.com>
11363
11364         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
11365         (ia64_const_ok_for_letter_p): New.
11366         (ia64_const_double_ok_for_letter_p): New.
11367         (ia64_extra_constraint): New.
11368         (ia64_expand_vecint_compare): New.
11369         (ia64_expand_vcondu_v2si): New.
11370         (ia64_expand_vecint_cmov): New.
11371         (ia64_expand_vecint_minmax): New.
11372         (ia64_print_operand): Add 'v'.
11373         (ia64_preferred_reload_class): New.
11374         (ia64_vector_mode_supported_p): New.
11375         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
11376         (PREFERRED_RELOAD_CLASS): Move to function.
11377         (CONST_OK_FOR_LETTER_P): Move to function.
11378         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
11379         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
11380         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
11381         (EXTRA_CONSTRAINT): Move to function.
11382         * config/ia64/ia64.md: Include vect.md.
11383         (itanium_class): Add mmalua.
11384         (type): Handle it.
11385         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
11386         (1b_mmalua): New.
11387         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
11388         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
11389         CONST0_RTX.
11390         (const_int_2bit_operand): New.
11391         (fr_reg_or_0_operand): New.
11392         * config/ia64/ia64-modes.def: Add vector modes.
11393         * config/ia64/ia64-protos.h: Update.
11394         * config/ia64/vect.md: New file.
11395
11396 2005-01-03  Richard Henderson  <rth@redhat.com>
11397
11398         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
11399
11400 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
11401
11402         PR target/19236
11403         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
11404         to SFmode.
11405         (log1pdf2): Change mode of operands[0,1] to DFmode.
11406
11407 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
11408
11409         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
11410         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
11411         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
11412         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
11413         SPARC_RELAXED_ORDERING.
11414
11415 2005-01-03  Richard Henderson  <rth@redhat.com>
11416             Uros Bizjak  <uros@kss-loka.si>
11417
11418         PR target/14631
11419         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
11420         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
11421         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
11422         handling.
11423         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
11424         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
11425         const_pow2_1_to_128_operand): New predicates.
11426
11427 2005-01-02  Greg McGary  <greg@mcgary.org>
11428
11429         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
11430         anonymous decls.
11431         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
11432         object.  [ptr_type]: Remove unused variable.
11433         Remember nearest addressable array-element or record-component
11434         when checking bitfield components.  Tolerate empty BIND_EXPR.
11435
11436 2005-01-01  Richard Henderson  <rth@redhat.com>
11437
11438         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
11439         that don't narrow the value.  Fail for other conversions.
11440
11441 2005-01-01  Richard Henderson  <rth@redhat.com>
11442
11443         PR c/19031
11444         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
11445         * c-lang.c (finish_file): Don't do it here.
11446         * objc/objc-act.c (objc_finish_file): Likewise.
11447
11448         * cgraph.c (decl_assembler_name_equal): New.
11449         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
11450         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
11451         * cgraph.h (struct cgraph_varpool_node): Add next.
11452         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
11453         * varasm.c (assemble_alias): Mark the target as needed.
11454
11455 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
11456
11457         PR middle-end/19221
11458         * function.c (get_arg_pointer_save_area): Use entry_of_function
11459         instead of get_insns.
11460
11461 2005-01-01  Roger Sayle  <roger@eyesopen.com>
11462             Andrew Pinski  <pinskia@physics.uc.edu>
11463             James E. Wilson  <wilson@specifixinc.com>
11464
11465         PR rtl-optimization/12092
11466         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
11467         is zero.
11468
11469 2005-01-01  Roger Sayle  <roger@eyesopen.com>
11470             Olivier Hainque  <hainque@act-europe.fr>
11471
11472         * tree.c (int_fits_type_p): A narrower type always fits in a
11473         wider one, except for negative values into unsigned types.
11474
11475 2005-01-01  Roger Sayle  <roger@eyesopen.com>
11476
11477         * tree.c (int_fits_type_p): Compare the result of force_fit_type
11478         with the original constant rather than require TREE_OVERFLOW.
11479
11480 2005-01-01  Steven Bosscher  <stevenb@suse.de>
11481
11482         PR middle-end/17544
11483         * c-decl.c (finish_function): If compiling C99, annotate the
11484         compiler generated return with the current file name and line 0.
11485         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
11486         the source line is greater than 0.
11487         (remove_bb): Likewise.