OSDN Git Service

* pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2
3         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
4         zero.
5
6 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
7
8         * config/arm/arm.c: Fix a comment typo.
9         * doc/tree-ssa.texi: Fix a typo.
10
11 2005-04-10  Steven Bosscher  <stevenb@suse.de>
12
13         * cselib.c (clear_table): Rename to cselib_clear_table.
14         * cselib.h (cselib_clear_table): Add prototype.
15         * gcse.c (gcse_main): Make 'f' argument unused.
16         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
17         of each basic block instead.
18         (compute_sets, compute_hash_table_work): Likewise.
19         (constprop_register): Change int 'alter_jumps' argument to bool.
20         (do_local_cprop): Likewise.
21         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
22         the insn chain.  Explicitly clear the cselib tables after finishing
23         one basic block.  Make sure there are no unterminated libcall blocks.
24         Update compute_sets call.
25         (cprop): Walk basic blocks instead of the insn chain.
26         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
27         Likewise.
28         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
29         one_cprop_pass calls.
30
31 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
32
33         * combine.c (combine_simplify_rtx): Remove a transformation that
34         relies on an invalid assumption about rtl sign-extension semantics.
35
36 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
37
38         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
39         to build_int_cst_wide.
40
41 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
42
43         PR target/20126
44         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
45         set the original address pseudo to the correct value before the
46         original insn, if possible, and leave the insn alone, otherwise
47         create a new pseudo, set it and replace it in the insn.
48         * recog.c (validate_change_maybe_volatile): New.
49         * recog.h (validate_change_maybe_volatile): Declare.
50
51 2005-04-09  Caroline Tice  <ctice@apple.com>
52
53         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
54         Remove targetm.have_named_sections test.
55         (fix_edges_for_rarely_executed_code): Likewise.
56         (insert_section_boundary_note): Likewise.
57         (reorder_basic_blocks): Check partitioning flag before calling
58         verify_hot_cold_block_grouping.
59         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
60         the function struct rather than global variables.
61         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
62         (COLD_END_LABEL): Likewise
63         (cold_text_section_label): New static global variable.
64         (cold_end_label): Likewise.
65         (dwarf2out_switch_text_section): Get hot/cold section labels from
66         the function struct rather than global variables.
67         (output_aranges): Use cold_text_section_label and cold_end_label;
68         check partitioning flag before putting out delta.
69         (output_ranges): Remove incorrect code attempting to use
70         hot/cold labels.
71         (output_line_info): Get cold section label from function struct.
72         (add_location_or_const_value_attribute): Likewise.
73         (get_subprogram_die): Get hot/cold section labels from function struct.
74         (dwarf2out_var_location): Likewise.
75         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
76         write out cold_text_section_label if partition flag is set.
77         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
78         * function.h (struct function): Add new fields to point to hot/cold
79         section labels: hot_section_label, cold_section_label,
80         hot_section_end_label and cold_section_end_label; also add new field
81         for cold text section name, unlikely_text_section_name.
82         * opts.c (decode_options): Turn off partitioning flag if
83         !targetm.have_named_sections.
84         * output.h (hot_section_label): Remove.
85         (hot_section_end_label): Remove.
86         (cold_section_end_label): Remove.
87         (unlikely_section_label): Remove.
88         (unlikely_text_section_name): Remove.
89         * passes.c (rest_of_handle_final):  Remove code that frees
90         unlikely_text_section_name.
91         * varasm.c (unlikely_section_label): Remove.
92         (hot_section_label): Remove.
93         (hot_section_end_label): Remove.
94         (cold_section_end_label): Remove.
95         (unlikely_text_section_name):  Remove.
96         (initialize_cold_section_name): Modify to call
97         targetm.strip_name_encoding; to store cold section name in current
98         function struct, if it exists; and to only use the decl_section_name
99         if flag_named_sections is true.
100         (unlikely_text_section): Modify to get section name out of current
101         function struct, if there is one; otherwise build it from
102         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
103         (in_unlikely_text_section): Likewise.
104         (named_section): Modify to get/put cold section name in current function
105         struct, if there is one.
106         (function_section):  Change 'bool unlikely' to 'int reloc'; check
107         targetm.have_named_sections before calling named_section.
108         (current_function_section): Likewise.
109         (assemble_start_function): Modify to get/put unlikely_text_section_name
110         in current function struct; modify to get hot/cold section labels
111         from function struct; initialize labels using 
112         ASM_GENERATE_INTERNAL_LABEL;
113         test partitioning flag before writing out hot section label.
114         (assemble_end_function): Test partitioning flag before writing out
115         hot/cold section labels.
116         (default_section_type_flags_1):  Modify to use array instead of
117          char* for unlikely_text_section_name; set flags correctly for
118          cold text section if there is not a current function decl.
119
120 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
121
122         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
123         and TI_VA_LIST_FPR_COUNTER_FIELD.
124         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
125         * tree-pass.h (pass_stdarg): Add.
126         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
127         * tree-stdarg.c: New file.
128         * tree-stdarg.h: New file.
129         * Makefile.in (OBJS-common): Add tree-stdarg.o.
130         (tree-stdarg.o): Add dependencies.
131         * function.h (struct function): Add va_list_gpr_size and
132         va_list_fpr_size fields.
133         * function.c (allocate_struct_function): Initialize them.
134         * target.h (struct gcc_target): Add stdarg_optimize_hook.
135         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
136         (TARGET_INITIALIZER): Add it.
137
138         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
139         va_list_{g,f}pr_counter_field.
140         (ix86_setup_incoming_varargs): Don't do anything if reg_save
141         area will not be used.  Only save registers that tree-stdarg.c
142         detected they need saving.
143         (ix86_va_start): Don't set up fields that won't be used.
144
145         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
146         va_list_{g,f}pr_counter_field.
147         (setup_incoming_varargs): Don't do anything if reg_save
148         area will not be used.  Only save registers that tree-stdarg.c
149         detected they need saving.
150         (rs6000_va_start): Don't set up fields that won't be used.
151
152         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
153         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
154         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
155         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
156
157 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
158
159         PR target/20795
160         * config/i386/i386.c (construct_container): Pass empty aligned
161         struct, union or class in memory.
162
163 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
164
165         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
166         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
167         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
168         config/rs6000/predicates.md: Fix comment typos.
169
170         * sched-int.h (haifa_insn_data): Remove blockage and units.
171         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
172         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
173         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
174
175 2005-04-09  Jan Hubicka  <jh@suse.cz>
176             Steven Bosscher  <stevenb@suse.de>
177
178         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
179         * cfgloop.c (get_loop_exit_edges): Likewise.
180         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
181         (unloop): Likewise.
182         * loop-unroll.c (analyze_insns_in_loop): Likewise.
183         * tree-cfg.c (dump_cfg_status): Likewise.
184
185 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
186
187         * config/rs6000/predicates.md (altivec_register_operand): Remove
188         redundant match_code test.
189         (gpc_reg_operand): Same.
190         (cc_reg_operand): Same.
191         (cc_reg_not_cr0_operand): Same.
192
193 2005-04-09  Jan Hubicka  <jh@suse.cz>
194
195         Forgotten hunk from my last merge patch:
196         * final.c (output_addr_const): Do not call mark_referenced.
197
198 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
199
200         * doc/tree-ssa.texi: Add immediate use documentation.
201
202 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
203
204         * arm.c (FL_WBUF): Define.
205         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
206         (arm_is_6_or_7): Delete.
207         (arm_tune_wbuf): New.
208         (arm_override_options): Set arm_tune_wbuf.
209         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
210         (arm_is_6_or_7): Delete declaration.
211         (arm_tune_wbuf): New declartion.
212         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
213         (model_wbuf): Derive from arm_tune_wbuf.
214         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
215         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
216         (arm740t): Mark CPUs as having a write buffer.
217
218 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
219
220         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
221         of 'const_double_operand' in operand 2 constraints.  Update enable
222         condition.
223
224 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
225
226         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
227         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
228         * optabs.h (enum optab_index): Add new OTI_lfloor.
229         (lfloor_optab): Define corresponding macro.
230         * optabs.c (init_optabs): Initialize lfloor_optab.
231         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
232         and lfloordi2 patterns.
233         * builtins.c (expand_builtin_int_roundingfn): New prototype.
234         (expand_builtin_int_roundingfn): New function.
235         (fold_builtin_int_roundingfn): New prototype.
236         (fold_builtin_int_roundingfn): New function, renamed from
237         fold_builtin_lround.
238         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
239         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
240         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
241         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
242         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
243         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
244         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
245         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
246         into lfloor built-in function and (long long int)floor{,f,l} into
247         llfloor built-in function.
248         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
249         BUILT_IN_LLFLOOR.
250
251 2005-04-08  Ian Lance Taylor  <ian@airs.com>
252
253         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
254         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
255         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
256         (DO_COND, DO_BODY): Likewise.
257         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
258         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
259         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
260         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
261         (build_continue_stmt, build_break_stmt): Don't declare.
262         (c_do_switch_warnings): Update declaration.
263         * c-gimplify.c (enum bc_t): Remove.
264         (struct c_gimplify_ctx, ctxp): Remove.
265         (push_context, pop_context): Remove static functions.
266         (c_genericize): Don't call push_context or pop_context.
267         (begin_bc_block, finish_bc_block): Remove static functions.
268         (build_bc_goto): Likewise.
269         (gimplify_c_loop): Likewise.
270         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
271         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
272         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
273         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
274         * c-common.c (c_do_switch_warnings): Rename from
275         c_do_switch_warnings_1.
276         (c_do_switch_warnings) [old version]: Remove.
277         (c_do_switch_expr_warnings): Remove.
278         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
279         function instead of c_do_switch_expr_warnings.
280         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
281         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
282         * c-pretty-print.c (pp_c_statement): Likewise.
283         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
284
285 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
286
287         Merge from tree-cleanup-branch: VRP, store CCP, store
288             copy-prop, incremental SSA updating of FUD chains and
289             newly exposed symbols.
290
291         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
292         (OBJS-common): Add tree-vrp.o.
293         (tree-vrp.o): New rule.
294         * basic-block.h (nearest_common_dominator_for_set): Declare.
295         * common.opt (ftree-store-ccp): New flag.
296         (ftree-copy-prop): New flag.
297         (ftree-vrp): New flag.
298         (ftree-store-copy-prop): New flag.
299         * dominance.c (nearest_common_dominator_for_set): New.
300         * domwalk.c (walk_dominator_tree): Only traverse
301         statements in blocks marked in walk_data->interesting_blocks.
302         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
303         * fold-const.c (fold): Handle ASSERT_EXPR.
304         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
305         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
306         flag_tree_vrp at -O2.
307         * timevar.def (TV_TREE_VRP): Define.
308         (TV_TREE_COPY_PROP): Define.
309         (TV_TREE_STORE_COPY_PROP): Define.
310         (TV_TREE_SSA_INCREMENTAL): Define.
311         (TV_TREE_STORE_CCP): Define.
312         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
313         to kill_redundant_phi_nodes from comment.
314         (verify_expr): Handle ASSERT_EXPR.
315         * tree-dfa.c (mark_new_vars_to_rename): Remove second
316         argument.  Update all users.
317         (mark_call_clobbered_vars_to_rename): Remove.  Update all
318         users.
319         * tree-flow-inline.h (unmodifiable_var_p): New.
320         * tree-flow.h (enum value_range_type): Declare.
321         (struct value_range_def): Declare.
322         (value_range): Declare.
323         (remove_all_phi_nodes_for): Remove.  Update all users.
324         (find_phi_node_for): Declare.
325         (add_type_alias): Declare.
326         (count_uses_and_derefs): Declare.
327         (kill_redundant_phi_nodes): Remove.
328         (rewrite_into_ssa): Remove.
329         (rewrite_def_def_chains): Remove.
330         (update_ssa, register_new_name_mapping, create_new_def_for,
331         need_ssa_update_p, name_registered_for_update_p,
332         release_ssa_name_after_update_ssa, dump_repl_tbl,
333         debug_repl_tbl, dump_names_replaced_by,
334         debug_names_replaced_by, mark_sym_for_renaming,
335         mark_set_for_renaming, get_current_def, set_current_def,
336         get_value_range, dump_value_range, debug_value_range,
337         dump_all_value_ranges, debug_all_value_ranges,
338         expr_computes_nonzero, loop_depth_of_name,
339         unmodifiable_var_p): Declare.
340         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
341         ASSERT_EXPR.
342         * tree-into-ssa.c (block_defs_stack): Update comment.
343         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
344         syms_to_rename, names_to_release, repl_tbl,
345         need_to_initialize_update_ssa_p, need_to_update_vops_p,
346         need_to_replace_names_p): New locals.
347         (NAME_SETS_GROWTH_FACTOR): Define.
348         (struct repl_map_d): Declare.
349         (struct mark_def_sites_global_data): Add field
350         interesting_blocks.
351         (enum rewrite_mode): Declare.
352         (REGISTER_DEFS_IN_THIS_STMT): Define.
353         (compute_global_livein): Use last_basic_block instead of
354         n_basic_blocks.
355         (set_def_block): Remove last argument.  Update all callers.
356         (prepare_use_operand_for_rename): Remove.  Update all callers.
357         (prepare_def_operand_for_rename): Remove.  Update all callers.
358         (symbol_marked_for_renaming): New.
359         (is_old_name): New.
360         (is_new_name): New.
361         (repl_map_hash): New.
362         (repl_map_eq): New.
363         (repl_map_free): New.
364         (names_replaced_by): New.
365         (add_to_repl_tbl): New.
366         (add_new_name_mapping): New.
367         (mark_def_sites): Assume that all the operands in the
368         statement are in normal form.
369         (find_idf): Assert that the block in the stack is valid.
370         (get_default_def_for): New.
371         (insert_phi_nodes_for): Add new argument 'update_p'.
372         Add documentation.
373         If update_p is true, add a new mapping between the LHS of
374         each new PHI and the name that it replaces.
375         (insert_phi_nodes_1): Only call find_idf if needed.
376         (get_reaching_def): Call get_default_def_for.
377         (rewrite_operand): Remove.
378         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
379         and REWRITE_THIS_STMT are false.
380         Assume that all the operands in the statement are in
381         normal form.
382         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
383         (rewrite_virtual_phi_arguments): Remove.
384         (invalidate_name_tags): Remove.
385         (register_new_update_single, register_new_update_set,
386         rewrite_update_init_block, replace_use,
387         rewrite_update_fini_block, rewrite_update_stmt,
388         rewrite_update_phi_arguments): New.
389         rewrite_blocks): Remove argument 'fix_virtual_phis'.
390         Add arguments 'entry', 'what' and 'blocks'.
391         Initialize the dominator walker according to 'what' and
392         'blocks'.
393         Start the dominator walk at 'entry'.
394         (mark_def_site_blocks): Add argument 'interesting_blocks'.
395         Use it to configure the dominator walker.
396         (rewrite_into_ssa): Remove argument 'all'.
397         Make internal.
398         (rewrite_all_into_ssa): Remove.
399         (rewrite_def_def_chains): Remove.
400         (mark_def_interesting, mark_use_interesting,
401         prepare_phi_args_for_update, prepare_block_for_update,
402         prepare_def_site_for, prepare_def_sites,
403         dump_names_replaced_by, debug_names_replaced_by,
404         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
405         delete_update_ssa, create_new_def_for,
406         register_new_name_mapping, mark_sym_for_renaming,
407         mark_set_for_renaming, need_ssa_update_p,
408         name_registered_for_update_p, ssa_names_to_replace,
409         release_ssa_name_after_update_ssa,
410         insert_updated_phi_nodes_for, update_ssa): New.
411         * tree-loop-linear.c (linear_transform_loops): Call
412         update_ssa instead of rewrite_into_ssa.
413         * tree-optimize.c (vars_to_rename): Remove.
414         Update all users.
415         (init_tree_optimization_passes): Replace
416         pass_redundant_phi with pass_copy_prop.
417         Add pass_vrp.
418         Replace pass_ccp with pass_store_ccp.
419         Add pass_store_copy_prop after pass_store_ccp.
420         (execute_todo): If the TODO_ flags don't include updating
421         the SSA form, assert that it does not need to be updated.
422         Call update_ssa instead of rewrite_into_ssa and
423         rewrite_def_def_chains.
424         If TODO_verify_loops is set, call verify_loop_closed_ssa.
425         (tree_rest_of_compilation):
426         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
427         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
428         TODO_cleanup_cfg): Renumber.
429         (TODO_verify_loops, TODO_update_ssa,
430         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
431         TODO_update_ssa_only_virtuals): Define.
432         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
433         Declare.
434         * tree-phinodes.c (make_phi_node): Update documentation.
435         (remove_all_phi_nodes_for): Remove.
436         (find_phi_node_for): New.
437         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
438         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
439         (interpret_rhs_modify_expr): Likewise.
440         * tree-sra.c (decide_instantiations): Mark all symbols in
441         SRA_CANDIDATES for renaming.
442         (mark_all_v_defs_1): Rename from mark_all_v_defs.
443         (mark_all_v_defs): New function.  Update all users to call it 
444         with the whole list of scalarized statements, not just the
445         first one.
446         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
447         (compute_flow_insensitive_aliasing): If the tag is
448         unmodifiable and the variable isn't or vice-versa, don't
449         make them alias of each other.
450         (setup_pointers_and_addressables): If the type tag for
451         VAR is about to change, mark the old one for renaming.
452         (add_type_alias): New.
453         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
454         (ccp_lattice_t): Rename from latticevalue.
455         (value): Remove.  Update all users.
456         (const_val): New local variable.
457         (do_store_ccp): New local variable.
458         (dump_lattice_value): Handle UNINITIALIZED.
459         (debug_lattice_value): New.
460         (get_default_value): Re-write.
461         (set_lattice_value): Re-write.
462         (def_to_varying): Remove.  Update all users.
463         (likely_value): Return VARYING for statements that make
464         stores when STORE_CCP is false.
465         Return VARYING for any statement other than MODIFY_EXPR,
466         COND_EXPR and SWITCH_EXPR.
467         (ccp_initialize): Re-write.
468         (replace_uses_in, replace_vuse_in, substitute_and_fold):
469         Move to tree-ssa-propagate.c.
470         (ccp_lattice_meet): Handle memory stores when
471         DO_STORE_CCP is true.
472         (ccp_visit_phi_node): Likewise.
473         (ccp_fold): Likewise.
474         (evaluate_stmt): Likewise.
475         (visit_assignment): Likewise.
476         (ccp_visit_stmt): Likewise.
477         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
478         into DO_STORE_CCP.
479         (do_ssa_ccp): New.
480         (pass_ccp): Use it.
481         (do_ssa_store_ccp): New.
482         (gate_store_ccp): New.
483         (pass_store_ccp): Declare.
484         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
485         (may_propagate_copy): Reformat.
486         Don't abort if ORIG is a virtual and DEST isn't.
487         If NEW does not have alias information but DEST does,
488         copy it.
489         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
490         copy_prop_kind, which_copy_prop): Declare.
491         (stmt_may_generate_copy, get_copy_of_val,
492         get_last_copy_of, set_copy_of_val, dump_copy_of,
493         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
494         copy_prop_visit_stmt, copy_prop_visit_phi_node,
495         init_copy_prop, fini_copy_prop, execute_copy_prop,
496         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
497         store_copy_prop): New.
498         (pass_copy_prop, pass_store_copy_prop): Declare.
499         * tree-ssa-dom.c (struct opt_stats_d): Add fields
500         'num_const_prop' and 'num_copy_prop'.
501         (cprop_operand): Update them.
502         (dump_dominator_optimization_stats): Dump them.
503         (tree_ssa_dominator_optimize): Call update_ssa instead of
504         rewrite_into_ssa.
505         (loop_depth_of_name): Declare extern.
506         (simplify_cond_and_lookup_avail_expr): Guard against NULL
507         values for LOW or HIGH.
508         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
509         (record_equivalences_from_stmt): Call expr_computes_nonzero.
510         (cprop_operand): Only propagate if VAL != OP.
511         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
512         statement for renaming.
513         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
514         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
515         add_type_alias if necessary.
516         Call mark_new_vars_to_rename.
517         (tree_ssa_iv_optimize): If new symbols need to be renamed,
518         mark every statement updated, call update_ssa and
519         rewrite_into_loop_closed_ssa.
520         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
521         from LIVEIN if VAR is a virtual.
522         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
523         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
524         (get_call_expr_operands): Reformat statement.
525         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
526         symbols.
527         * tree-ssa-propagate.c (ssa_prop_init): Initialize
528         SSA_NAME_VALUE for every name.
529         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
530         get_value_loaded_by): New.
531         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
532         substitute_and_fold): Move from tree-ssa-ccp.c.
533         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
534         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
535         get_value_loaded_by, replace_uses_in, substitute_and_fold):
536         Declare.
537         * tree-ssa.c (verify_use): Fix error message.
538         (propagate_into_addr, replace_immediate_uses, get_eq_name,
539         check_phi_redundancy, kill_redundant_phi_nodes,
540         pass_redundant_phi): Remove.  Update all users.
541         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
542         add_type_alias, if necessary.
543         * tree-vectorizer.h (struct _stmt_vect_info): Update
544         documentation for field 'memtag'.
545         * tree-vrp.c: New file.
546         * tree.def (ASSERT_EXPR): Define.
547         * tree.h (ASSERT_EXPR_VAR): Define.
548         (ASSERT_EXPR_COND): Define.
549         (SSA_NAME_VALUE_RANGE): Define.
550         (struct tree_ssa_name): Add field 'value_range'.
551         (PHI_REWRITTEN): Remove.
552         (struct tree_phi_node): Remove field 'rewritten'.
553         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
554         -ftree-store-copy-prop): Document.
555         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
556         Document usage of update_ssa.
557
558 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
559
560         PR target/20814
561         * config/rs6000/predicates.md (altivec_register_operand): Accept
562         SUBREG. 
563         (and64_operand): Do not limit CONST_INT to mask64_operand.
564         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
565         (and_operand): Do not limit CONST_INT to mask_operand.
566
567 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
568
569         PR rtl-optimization/20466
570         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
571         for overlap of the address of each list member.
572         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
573
574 2005-04-08  Mike Stump  <mrs@apple.com>
575
576         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
577         
578         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
579         instead of 4.
580
581 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
582
583         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
584
585         * function.c (push_function_context_to): Don't set
586         contains_functions.
587         * function.h (function): Remove contains_functions.
588         (current_function_contains_functions): Remove.
589
590         * function.h (function): Remove instrument_entry_exit.
591         (current_function_instrument_entry_exit): Remove.
592
593         * function.h (nonlocal_labels): Remove.
594
595         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
596
597         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
598         (check_attr_value, write_attr_get, write_expr_attr_cache,
599         find_attr, make_internal_attr): Don't reference negative_ok or
600         unsigned_p.
601         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
602         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
603         (ATTR_STATIC): Adjust the value.
604
605         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
606
607 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
608
609         * config/s390/tpf.h (ASM_SPEC): Define.
610
611 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
612
613         * tree-flow.h: Remove the prototype for
614         redirect_immediate_uses.
615         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
616
617 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
618
619         * arm.c (arm_const_double_by_parts): New function.
620         * arm-protos.h (arm_const_double_by_parts): Add prototype.
621         * arm.md (define_split for 64-bit constants): Add another one.
622
623 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
624
625         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
626
627 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
628
629         * system.h: Revert last change.
630
631 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
632
633         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
634         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
635         (TARGET_SWITCHES): Delete.
636         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
637         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
638         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
639         * config/xtensa/xtensa.opt: New file.
640
641 2005-04-08  Ben Elliston  <bje@au.ibm.com>
642
643         * config/fp-bit.c: Include L_mul_tf in #endif comment.
644         * config/fp-bit.h: Tidy comments.
645
646 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
647
648         * system.h: Poison PARAMS.
649
650 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
651
652         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
653         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
654         (TARGET_SWITCHES): Delete.
655         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
656         * config/vax/vax.opt: New file.
657
658 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
659
660         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
661
662 2005-04-07  Ian Lance Taylor  <ian@airs.com>
663
664         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
665         define.
666         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
667         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
668         Likewise.
669
670 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
671
672         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
673         all immediate uses in PHI nodes.
674
675 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
676
677         * arm.c (arm_const_double_inline_cost): Handle any constant by
678         using gen_lowpart and gen_highpart_mode.
679         (note_invalid_constants): All constants in an RTX with a constraint
680         that permits memory are now pushed to the constant pool.
681         (output_move_double): Delete code to handle reg to reg and 
682         constant to reg moves.
683         (const_double_needs_minipool, output_mov_immediate): Delete.
684         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
685         CONST_INT and CONST_VECTOR.
686         * arm.md (ANY64): New mode macro.
687         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
688         (movdf_soft_insn): Split reg-reg and const-reg moves.
689         (split patterns for 64-bit constant and register moves): New.
690         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
691         (cirrus_movdf_hard_insn): Likewise.
692         * fpa.md (movdf_fpa): Likewise.
693         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
694         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
695         constraints.
696         (movv2si_internal_2): Likewise.
697         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
698         (movdf_vfp): Likewise.
699         * arm-protos.h (output_mov_immediate): Delete prototype.
700
701 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
702
703         PR target/20093
704         * simplify-rtx.c (simplify_unary_operation_1): Check
705         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
706
707 2005-04-06  James E Wilson  <wilson@specifixinc.com>
708
709         PR target/20717
710         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
711         ADDR_EXPR.
712
713 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
714
715         * coverage.h (GCOV_TYPE_NODE): Delete.
716         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
717         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
718         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
719         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
720         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
721
722 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
723
724         PR other/20792
725         * Makefile.in (gcc.pot): Remove options.c dependency.
726         * optc-gen.awk: Don't quote help strings with N_().
727
728 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
729
730         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
731         the function returns a pointer type.
732
733 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
734
735         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
736         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
737         * doc/invoke.texi: Documnet salias-max-implicit-fields.
738         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
739         explicit_uses members.
740         (get_or_create_used_part_for): Initialize new fields.
741         (fieldoff_compare): New function.
742         (create_overlap_variables_for): Count number of fields, use
743         heuristic to determine whether to create subvars for vars with
744         only implicit uses.
745         Sort the field list by offset and avoid creating duplicate SFT's.
746
747 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
748
749         * c.opt (-F): Remove trailing whitespace from help string.
750         (-finput-charset): Use a tab to separate the switch name and help
751         string.
752         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
753         (-ftree-vectorizer-verbose): Likewise.
754
755 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
756
757         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
758         a PHI argument where a use occurs instead of all PHI arguments.
759
760 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
761
762         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
763         scope.
764
765 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
766
767         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
768         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
769         config/bfin/bfin.h: Fix comment typos.
770
771 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
772
773         * doc/install.texi: Update the URL for Jacks.
774         * doc/sourcebuild.texi: Likewise.
775
776 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
777
778         PR target/17245
779         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
780         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
781
782 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
783
784         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
785
786 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
787
788         * config/v850/v850-protos.h (override_options): Delete.
789         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
790         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
791         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
792         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
793         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
794         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
795         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
796         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
797         (OVERRIDE_OPTIONS): Delete.
798         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
799         (small_memory_info): Remove the value field.
800         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
801         TARGET_NO_APP_REGS.
802         * config/v850/v850.c (small_memory): Remove the value field.
803         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
804         (override_options): Delete.
805         (v850_handle_memory_option, v850_handle_option): New functions.
806         * config/v850/v850.opt: New file.
807
808 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
809
810         * config.host: Add a section for generic hosts, and a subsection
811         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
812         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
813         * config/host-darwin.h: New.
814         * config/x-darwin: New.
815         * config/i386/host-i386-darwin.c: New.
816         * config/i386/x-darwin: New.
817         * config/rs6000/host-darwin.c: Include host-darwin.h.
818         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
819         (darwin_rs6000_gt_pch_use_address): Likewise.
820         * config/rs6000/x-darwin: Change name of .o built, update
821         dependencies for changes to rs6000/host-darwin.c.
822
823 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
824
825         PR target/17824
826         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
827
828 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
829
830         * tree-vect-analyze.c (vect_analyze_loop_form): Call
831         split_loop_exit_edge instead of loop_split_edge_with. 
832
833 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
834
835         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
836         UNSPEC_SET_VSCR): New constants, used throughout.
837         (*andc3_v4sf): New.
838         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
839         Replace with...
840         (altivec_vspltis<VI_char>): ... this pattern, using
841         a QImode const_int_operand for the immediate.
842         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
843         define_expands.
844
845 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
846
847         PR target/17822
848         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
849
850 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
851
852         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
853
854 2005-04-06  Ben Elliston  <bje@au.ibm.com>
855
856         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
857         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
858         macros as living in "this file" and not gcc.h.
859
860 2005-04-06  Ben Elliston  <bje@au.ibm.com>
861
862         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
863         -ftree-live_range_split.  Perhaps renamed at some point?
864
865 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
866
867         PR target/20625
868         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
869         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
870
871 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
872
873         * tree-flow.h (number_of_iterations_cond): Declaration removed.
874         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
875         (number_of_iterations_special): New function.
876         (number_of_iterations_exit): Use number_of_iterations_special.
877         Use simplify_using_outer_evolutions only at -O3.
878         (number_of_iterations_cond, tree_simplify_using_condition,
879         simplify_using_initial_conditions, loop_niter_by_eval,
880         compare_trees, can_count_iv_in_wider_type_bound,
881         simplify_using_outer_evolutions): Use fold_build.
882
883 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
884
885         * doc/install.texi (Configuration): Document --with-java-home.
886
887 2005-04-05  Richard Henderson  <rth@redhat.com>
888
889         PR target/20342
890         PR target/20447
891         * config/i386/i386.c (print_operand): Handle vector zeros.
892         (ix86_split_to_parts): Handle CONST_VECTOR.
893         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
894         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
895         what modes to tie for MMX and SSE registers.
896         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
897         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
898         to vector modes as well.
899         * config/i386/predicates.md (const0_operand): Handle VOIDmode
900         properly as an input mode.
901
902 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
903
904         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
905
906 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
907
908         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
909
910 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
911
912         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
913         and local functions, set sse_nregs to 8 and float_in_sse.
914         (function_arg_advance, function_arg): If float_in_sse, pass
915         SFmode and DFmode arguments in SSE registers.
916         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
917
918         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
919         of -funit-at-a-time.
920
921 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
922
923         * config/i386/i386-protos.h (ix86_function_value): Accept two
924         arguments, like the target macro.
925         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
926         * config/i386/i386.c (ix86_function_value): Accept the second
927         argument of the target macro.
928         (ix86_function_ok_for_sibcall): Pass a function pointer to
929         ix86_function_value.
930         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
931         call to ix86_value_regno).
932         (ix86_value_regno): Add support for returning floating point values
933         in SSE registers.
934
935 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
936
937         PR tree-optimization/20076
938         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
939         that call __builtin_return or __builtin_apply_args.
940
941 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
942
943         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
944         Use immediate use iterator.
945         (stmt_is_bumper_for_loop): Use immediate use iterator.
946         * predict.c (strip_builtin_expect): Use update_stmt.
947         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
948         on all elements of a STATEMENT_LIST.
949         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
950         (bsi_remove): Remove imm_use links and mark the stmt as modified.
951         (bsi_replace): Mark stmt as modified and the update it.
952         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
953         (expand_complex_libcal): Call update_stmt.
954         (expand_complex_comparison): Call mark_stmt_modified.
955         (expand_complex_operations_1): Call update_stmt_if_modified.
956         (expand_vector_operations_1): Call mark_stmt_modified.
957         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
958         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
959         add_immediate_use, redirect_immediate_use,
960         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
961         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
962         (mark_new_vars_to_rename): Call update_stmt.
963         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
964         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.  
965         Ignore PHI nodes.
966         (unmodify_stmt): Delete.
967         (update_stmt): New.  Force an update of a stmt.
968         (update_stmt_if_modified): update a stmt if it is out of date.
969         (get_stmt_operands): Verify stmt is NOT modified. 
970         (stmt_modified_p): Update comment.
971         (delink_imm_use): Remove a use node from its immuse list.
972         (link_imm_use_to_list): Link a use node to a specific list.
973         (link_imm_use): Link a node to the correct list.
974         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
975         it in the correct list, if appropriate.
976         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
977         (relink_imm_use): Link a use node in place of another node in a list.
978         (relink_imm_use_stmt): LInk a node in place of another node, and set
979         the stmt pointer.
980         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
981         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
982         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
983         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
984         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
985         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
986         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
987         (has_zero_uses): New.  Return true if there are no uses of a var.
988         (has_single_use): New.  Return true if there is only a single use of a
989         variable.
990         (single_imm_use): New.  Return the simgle immediate use.
991         (num_imm_uses): New.  Return the number of immediate uses.
992         (get_v_must_def_ops): Use is now a pointer.
993         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
994         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of 
995         the use node.
996         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
997         (delink_stmt_imm_use): Delink all immuses from a stmt.
998         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
999         * tree-flow.h (struct dataflow_d): Delete.
1000         (immediate_use_iterator_d): New.  Immediate use iterator struct.
1001         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
1002         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
1003         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe 
1004         iteration.
1005         (struct stmt_ann_d): Remove dataflow_t from struct.
1006         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
1007         (if_convertible_phi_p): Use FAST immuse iterator.
1008         (if_convertible_loop_p): Don't call compute_immediate_uses.
1009         (replace_phi_with_cond_modify_expr): Call update_stmt.
1010         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call 
1011         update_stmt_if_modified.
1012         (rewrite_all_into_ssa): Initialize ssa operands.
1013         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
1014         compute_immediate_uses.
1015         * tree-optimize.c (execute_todo): Call verify_ssa whenever the 
1016         ssa_property is available.
1017         (execute_one_pass):  Change parameters passed to execute_todo.
1018         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
1019         (remove_ssa_form): Call fini_ssa_operands.
1020         (insert_backedge_copies): Delete call to modify_stmt.
1021         * tree-phinodes.c (make_phi_node): Initialize use nodes.
1022         (release_phi_node): Delink any use nodes before releasing.
1023         (resize_phi_node): Relink any use nodes.
1024         (remove_phi_arg_num): Delink the use node.
1025         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
1026         (remove_all_phi_nodes_for): Release phi node first.
1027         * tree-pretty-print.c (dump_generic_node): Print stmt address.
1028         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
1029         (scalarize_use, scalarize_copy): Call update_stmt.
1030         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
1031         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
1032         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
1033         (ccp_initialize): Remove call to compute_immediate_uses.
1034         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
1035         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified 
1036         stmts.
1037         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
1038         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
1039         (eliminate_redundant_computations): Call mark_stmt_modified.
1040         (cprop_operand): Call mark_stmt_modified.
1041         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
1042         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
1043         (dse_optimize_stmt): Use new immuse interface.
1044         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
1045         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
1046         (substitute_single_use_vars): Use new immuse interface.
1047         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
1048         and compute_immediate_uses.
1049         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse 
1050         interface.
1051         (rewrite_mem_refs): Call update_stmt.
1052         (determine_lsm): Remove call to compute_imm_uses and free_df.
1053         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
1054         (try_unroll_loop_completely): Call update_stmt.
1055         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
1056         (rewrite_use_compare): Call update_stmt.
1057         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
1058         (rewrite_use) : Call update_stmt.
1059         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
1060         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call 
1061         update_stmt.
1062         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
1063         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
1064         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
1065         use nodes.
1066         (initialize_vuse_operand): New.  Initialize a vuse operand.
1067         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
1068         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
1069         (finalize_ssa_defs): Use stmt parameter.
1070         (correct_use_link): Ensure a use node is in the correct list, and has
1071         the correct stmt pointer.
1072         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
1073         finalize_ssa_v_must_defs): Also initialize use nodes.
1074         (finalize_ssa_stmt_operands): Pass extra stmt operands.
1075         (build_ssa_operands): Seperate parsing from final operand construction.
1076         (parse_ssa_operands): New.  Parse entry point for operand building.
1077         (swap_tree_operands): New.  Swap 2 tree operands.
1078         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
1079         operands.
1080         (get_expr_operands): Call swap_tree_operands when needed.
1081         (copy_virtual_operands): Use initialize routines for virtual use ops.
1082         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
1083         (verify_abort): New.  Issue imm_use error.
1084         (verify_imm_links): New Verify imm_use links for a var.
1085         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
1086         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
1087         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
1088         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
1089         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
1090         (NULL_USE_OPERAND_P) Define.
1091         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
1092         use node.
1093         (struct vuse_operand_type): New struct.
1094         (SET_USE): Call set_ssa_use_from_ptr.
1095         (USE_STMT): Define.
1096         (PHI_ARG_INDEX_FROM_USE): Define.
1097         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi 
1098         argument via SET_USE, not PHI_ARG_DEF_TREE.
1099         * tree-ssa-pre.c (eliminate): Call update_stmt.
1100         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
1101         call free_df.
1102         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
1103         (nearest_common_dominator_of_uses): Use imm_use iterator.
1104         (statement_sink_location): Use imm_use iterator and interface.
1105         (execute_sink_code): Don't call compute_immediate_uses or free-df.
1106         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
1107         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
1108         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
1109         (verify_ssa): Ensure no stmt is marked modify after optimization pass
1110         if new parameter is true.
1111         (init_tree_ssa): Don't initialize operand cache here.
1112         (delete_tree_ssa): Don't destroy operand cache here.
1113         (propagate_into_addr): Pass in a use pointer, return true if anything
1114         was changed.
1115         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
1116         (check_phi_redundancy): Use imm_use iterator.
1117         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or 
1118         free_df.
1119         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
1120         (release_ssa_name): Delink node and all elements in its imm_use list.
1121         * tree-tailcall.c (adjust_return_value): Call update_stmt.
1122         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
1123         * tree-vectorizer.c (need_imm_uses_for): Delete.
1124         (vectorize_loops): Dont call compute_immediate_uses or free_df.
1125         * tree.h (struct ssa_imm_use_d): Define.
1126         (SSA_NAME_IMM_USE_NODE): Define.
1127         (struct tree_ssa_name): Add imm_use node.
1128         (PHI_DF): Delete.
1129         (PHI_ARG_IMM_USE_NODE): Define.
1130         (struct phi_arg_d): Add imm_use node.
1131         (struct tree_phi_node): Remove struct dataflow_d element.
1132         (TDF_STMTADDR): Define.
1133
1134 2005-04-05  Dale Johannesen  <dalej@apple.com>
1135
1136         * doc/invoke.texi (Optimization Options):  Remove
1137         duplicate -fcse-follow-jumps.  Add -fweb.
1138         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
1139         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
1140
1141 2005-04-05  Per Bothner  <per@bothner.com>
1142
1143         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
1144         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
1145         (warn_uninit): Get EXPR_LOCUS from context now instead.
1146         This fixes a USE_MAPPED_LOCATION testsuite failure.
1147
1148         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
1149
1150 2005-04-05  Per Bothner  <per@bothner.com>
1151
1152         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
1153         of the artification 'return 0' in main() to BUILTINS_LOCATION.
1154         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
1155         before warning. 
1156
1157 2004-04-05  Devang Patel  <dpatel@apple.com>
1158
1159         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
1160         (lhsr<mode>3): ... new name.
1161         (altivec_vsra<VI_char>): Rename to ..
1162         (ashr<mode>3): ... new name.
1163         * config/rs6000/rs6000.c (builtin_description): Rename shift
1164         operations.
1165         
1166 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
1167
1168         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
1169         gen_lowpart_for_combine.
1170         * cse.c (gen_lowpart_if_possible): Move...
1171         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
1172         gen_lowpart_SUBREG.
1173         (gen_lowpart_no_emit_general): Use it.
1174
1175 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1176
1177         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
1178         overriding.
1179
1180 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
1181
1182         * system.h: Fix typo.
1183
1184 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1185
1186         * config/bfin/bfin-modes.def: New file.
1187         * config/bfin/bfin-protos.h: New file.
1188         * config/bfin/bfin.c: New file.
1189         * config/bfin/bfin.h: New file.
1190         * config/bfin/bfin.md: New file.
1191         * config/bfin/bfin.opt: New file.
1192         * config/bfin/crti.s: New file.
1193         * config/bfin/crtn.s: New file.
1194         * config/bfin/elf.h: New file.
1195         * config/bfin/lib1funcs.asm: New file.
1196         * config/bfin/predicates.md: New file.
1197         * config/bfin/t-bfin: New file.
1198         * config/bfin/t-bfin-elf: New file.
1199         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
1200         Document new attributes.
1201         (interrupt, interrupt_handler, saveall): Update documentation for
1202         these attributes.
1203         * doc/install.texi (Specific): Add entry for the Blackfin.
1204         * doc/invoke.texi (Blackfin Options): New section.
1205         * doc/md.texi (Blackfin family): New section to document constraints.
1206         * config.gcc: Add bfin*-* and bfin*-elf configurations.
1207
1208 2005-04-05  Olivier Hainque  <hainque@adacore.com>
1209         
1210         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
1211         match what the system unwinder expects.
1212         * config/mips/mips.c (mips_frame_set): If we're saving the return
1213         address register and the dwarf return address column number differs
1214         from the hard register number, adjust the note reg to refer to the
1215         former.
1216
1217 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
1218
1219         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
1220         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
1221         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1222         (processor_type): New enum.
1223         (mn10300_processor): New variable.
1224         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
1225         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
1226         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1227         (PROCESSOR_DEFAULT): New macro.
1228         * config/mn10300/mn10300.c (mn10300_processor): New variable.
1229         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1230         (mn10300_handle_option, mn10300_override_options): New functions.
1231         * config/mn10300/mn10300.opt: New file.
1232
1233 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1234             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
1235
1236         PR tree-optimization/19903
1237         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
1238         that don't fit in their type after conversion.
1239
1240 2005-04-05  Uros Bizjak <uros@kss-loka.si>
1241
1242         PR target/20421
1243         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
1244         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
1245         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
1246         flag here. Implement using define_insn_and_split.  
1247         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
1248         (frndintxf2_mask_pm_i387): New insn patterns.
1249         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
1250         Do not set ix86_optimize_mode_switching flag.
1251         (ceilsf2, ceildf2, ceilxf2): Same.
1252         (btruncsf2, btruncdf2, btruncxf2): Same.
1253         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
1254
1255 2005-04-05  Ian Lance Taylor  <ian@airs.com>
1256
1257         PR debug/9963
1258         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
1259         i386_pe_record_external_function.
1260         (i386_pe_record_external_function): Update declaration.
1261         * config/i386/winnt.c (struct extern_list): Add decl field.
1262         (i386_pe_record_external_function): Add decl parameter.
1263         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
1264         identifier.
1265         * config/i386/i386-protos.h (i386_pe_record_external_function):
1266         Update declaration.
1267
1268 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
1269
1270         * config/m68k/m68k-protos.h: Add a prototype for
1271         valid_dbcc_comparison_p_2.
1272         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
1273         extend_operator, const_uint32_operand, const_sint32_operand,
1274         general_src_operand, nonimmediate_src_operand,
1275         memory_src_operand, post_inc_operand, pre_dec_operand,
1276         pcrel_address): Move to predicates to predicates.md.
1277         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
1278         * config/m68k/m68k.md: Include predicates.md.
1279         * config/m68k/predicates.md: New.
1280
1281 2005-04-04  Roger Sayle  <roger@eyesopen.com>
1282
1283         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
1284
1285         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
1286
1287 2005-04-04  Ian Lance Taylor  <ian@airs.com>
1288
1289         * c-typeck.c (struct c_switch): Rename switch_stmt field to
1290         switch_expr.
1291         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
1292         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
1293         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
1294         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
1295         * c-common.c (c_do_switch_warnings_1): New static function broken
1296         out of c_do_switch_warnings.
1297         (c_do_switch_warnings): Call c_do_switch_warnings_1.
1298         (c_do_switch_expr_warnings): New function.
1299         * c-common.h (c_do_switch_expr_warnings): Declare.
1300
1301 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
1302             Daniel Jacobowitz  <dan@codesourcery.com>
1303
1304         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
1305         trapping divide.
1306         * rtlanal.c (may_trap_p): Same.
1307
1308 2005-04-04  Dale Johannesen  <dalej@apple.com>
1309
1310         * ChangeLog:  remove reference to ChangeLog.12.
1311
1312 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
1313
1314         CRIS epilogue as RTL.
1315         * config/cris/cris.md: Change all 0 in unspec 0 to
1316         CRIS_UNSPEC_PLT.
1317         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
1318         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
1319         patterns.
1320         ("return"): Change to define_expand.  Call cris_expand_return for
1321         actual expansion.
1322         ("*return_expanded"): New pattern.
1323         ("epilogue"): New define_expand.
1324         * config/cris/cris.h (PREDICATE_CODES): Add
1325         cris_load_multiple_op.
1326         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
1327         type.
1328         (enum cris_retinsn_type): New.
1329         (struct machine_function): New member return_type.
1330         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
1331         (cris_target_asm_function_epilogue): Remove, moving RTLified
1332         contents to...
1333         (cris_expand_epilogue): New function.
1334         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
1335         (cris_gen_movem_load, cris_load_multiple_op)
1336         (cris_return_address_on_stack_for_return, cris_expand_return): New
1337         functions.
1338         (cris_target_asm_function_prologue)
1339         (cris_initial_frame_pointer_offset): Call
1340         cris_reg_saved_in_regsave_area instead of complicated expression.
1341         Call cris_return_address_on_stack instead of an expression.
1342         (cris_print_operand) <case 'o', case 'O'>: New cases.
1343         (cris_return_address_on_stack): Change return-type to bool.
1344         (cris_simple_epilogue): Ditto.  Return false if registers are
1345         saved.
1346         * config/cris/cris-protos.h (cris_simple_epilogue)
1347         (cris_return_address_on_stack): Adjust prototype return type.
1348         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
1349         (cris_return_address_on_stack_for_return): New prototypes.
1350
1351 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
1352
1353         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
1354         gpr_or_int12_operand.
1355
1356         * config/frv/frv-protos.h: Add a prototype to
1357         frv_legitimate_memory_operand and frv_const_unspec_p.
1358         (frv_unspec): Move from frv.c.
1359         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
1360         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
1361         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
1362         gpr_or_fpr_operand, gpr_or_int12_operand,
1363         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
1364         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
1365         int6_operand, int5_operand, uint5_operand, uint4_operand,
1366         uint1_operand, int_2word_operand, uint16_operand,
1367         upper_int16_operand, integer_register_operand,
1368         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
1369         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
1370         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
1371         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
1372         move_destination_operand, movcc_fp_destination_operand,
1373         frv_function_symbol_referenced_p, move_source_operand,
1374         condexec_dest_operand, condexec_source_operand,
1375         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
1376         const_unspec_operand, gpr_or_memory_operand,
1377         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
1378         icc_operand, fcc_operand, cc_operand, icr_operand,
1379         fcr_operand, cr_operand, call_operand, sibcall_operand,
1380         symbolic_operand, relational_operator,
1381         integer_relational_operator, float_relational_operator,
1382         ccr_eqne_operator, minmax_operator,
1383         condexec_si_binary_operator, condexec_si_media_operator,
1384         condexec_si_divide_operator, condexec_si_unary_operator,
1385         condexec_sf_conv_operator, condexec_sf_add_operator,
1386         condexec_memory_operand, intop_compare_operator, acc_operand,
1387         even_acc_operand, quad_acc_operand, accg_operand: Move to
1388         predicates.md.
1389         * config/frv/frv.h (PREDICATE_CODES): Remove.
1390         * config/frv/frv.md: Include predicates.md.
1391         * config/frv/predicates.md: New.
1392
1393 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
1394
1395         PR target/19537
1396         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
1397         * tree-ssa-loop-ivopts.c: Include langhooks.h.
1398         (add_standard_iv_candidates_for_size): New function, extracting code
1399         from add_standard_iv_candidates and parameterizing it by type size.
1400         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
1401
1402 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
1403
1404         * system.h (GCOV_SIZE_TYPE): Unposion.
1405         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
1406         (GCOV_TYPE_SIZE): ...this new macro.
1407         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
1408         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
1409         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
1410         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
1411         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
1412         instead of unsigned_intSI_type_node.
1413         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
1414         (rtl_gen_one_value_profiler_no_edge_manipulation)
1415         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
1416         * value-prof.c: Include coverage.h.
1417
1418 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
1419             Diego Novillo <dnovillo@redhat.com>
1420             
1421         Fix PR tree-optimization/20703
1422         Fix PR tree-optimization/20725
1423         
1424         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
1425         (create_expression_by_pieces): Ditto.
1426         (valid_in_set): Ditto. Also handle tcc_declaration.
1427         (find_or_generate_expression): Handle comparison class.
1428         (insert_into_preds_of_block): Ditto.
1429         (insert_aux): Ditto.
1430         (create_value_expr_from): Handle comparison class, recursively
1431         handle reference nodes.
1432         (compute_avail): Handle comparison classes, rewrite a little cleaner.
1433         (execute_pre): Fix spacing.
1434         (do_fre): Renamed to execute_fre.
1435
1436 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1437
1438         * doc/invoke.texi (SPARC options): Document that
1439         -mlittle-endian is not supported on Linux either.
1440
1441 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1442
1443         PR target/4198
1444         PR target/12027
1445         * config.gcc (Obsolete configurations): Remove
1446         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
1447         (sparclite-*-coff*): Delete.
1448         (sparclite-*-elf*): Likewise.
1449         (sparc86x-*-elf*): Likewise.
1450         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
1451         * config/sparc/lite.h: Delete.
1452         * config/sparc/litecoff.h: Likewise.
1453         * config/sparc/liteelf.h: Likewise.
1454         * config/sparc/sp86x-elf.h: Likewise.
1455         * config/sparc/t-sparclite: Likewise.
1456         * config/sparc/t-sp86x: Likewise.
1457
1458 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
1459
1460         * config/s390/s390-protos.h: (s390_comparison,
1461         s390_alc_comparison, s390_slb_comparison, const0_operand,
1462         consttable_operand, larl_operand, s_operand,
1463         shift_count_operand, bras_sym_operand, load_multiple_operation,
1464         store_multiple_operation, s390_plus_operand): Remove prototypes.
1465         (s390_legitimate_address_without_index_p): New prototype.
1466         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
1467         to s390.h.
1468         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
1469         const0_operand, consttable_operand, larl_operand, s_operand,
1470         shift_count_operand, bras_sym_operand, load_multiple_operation,
1471         store_multiple_operation, s390_plus_operand): Move to
1472         predicates.md.
1473         (check_mode): Remove.
1474         (s390_branch_condition_mask): Remove 'static'. Move prototype to
1475         s390-protos.h.
1476         (s390_legitimate_address_without_index_p): New.
1477         * config/s390/s390.h (PREDICATE_CODES): Remove.
1478         * config/s390/s390.md: Include predicates.md.
1479         * config/s390/predicates.md: New.
1480
1481 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1482
1483         PR target/20446
1484         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
1485         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
1486         (NEED_INDICATE_EXEC_STACK): Define to 1.
1487         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
1488         (NEED_INDICATE_EXEC_STACK): Define to 1.
1489         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
1490         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
1491         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
1492         (pic_helper_emitted_p): New global.
1493         (emit_pic_helper): New function extracted from...
1494         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
1495         Do not call emit_pic_helper if delay_pic_helper is true.
1496         (sparc_expand_prologue): Pass 'false' to load_pic_register.
1497         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
1498         (sparc_file_end): New function.
1499
1500 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
1501
1502         * config/mcore/mcore-protos.h: Remove the prototypes for
1503         mcore_arith_reg_operand, mcore_general_movsrc_operand,
1504         mcore_general_movdst_operand, mcore_reload_operand,
1505         mcore_arith_J_operand, mcore_arith_K_operand,
1506         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
1507         mcore_arith_K_S_operand, mcore_arith_imm_operand,
1508         mcore_arith_any_imm_operand, mcore_arith_O_operand,
1509         mcore_literal_K_operand, mcore_addsub_operand,
1510         mcore_compare_operand, mcore_load_multiple_operation,
1511         mcore_store_multiple_operation, mcore_call_address_operand.
1512         Add a prototype for const_ok_for_mcore.
1513         * config/mcore/mcore.c (mcore_call_address_operand,
1514         mcore_general_movsrc_operand, mcore_general_movdst_operand,
1515         mcore_arith_reg_operand, mcore_reload_operand,
1516         mcore_arith_J_operand, mcore_arith_K_operand,
1517         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
1518         mcore_arith_M_operand, mcore_arith_imm_operand,
1519         mcore_arith_any_imm_operand, mcore_arith_O_operand,
1520         mcore_literal_K_operand, mcore_addsub_operand,
1521         mcore_compare_operand, mcore_load_multiple_operation,
1522         mcore_store_multiple_operation): Move to predicates.md.
1523         (const_ok_for_mcore): Export.
1524         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
1525         * config/mcore/mcore.md: Include predicates.md.
1526         * config/mcore/predicates.md: New.
1527
1528         * config/mcore/predicates.md: Fix a comment typo.
1529
1530 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
1531             Adrian Straetling  <straetling@de.ibm.com>
1532
1533         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
1534         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
1535         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
1536         attribute.
1537         ("imul"): Removed from "type" attribute.
1538         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
1539         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"): 
1540         Changed type to imulsi.
1541         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
1542
1543 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
1544
1545         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
1546         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
1547         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
1548         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
1549         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
1550         (TARGET_SWITCHES, mcore_stack_increment_string)
1551         (TARGET_OPTIONS): Delete.
1552         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
1553         than *_BIT constants.
1554         (TARGET_8ALIGN): #undef old definition before redefining to 1.
1555         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
1556         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
1557         (mcore_override_options): Delete mcore_stack_increment code.
1558         Change use of M340_BIT to MASK_M340.
1559         * config/mcore/mcore.opt: New file.
1560
1561 2005-04-04  Ian Lance Taylor  <ian@airs.com>
1562
1563         * config/arm/arm.c (replace_symbols_in_block): Remove static
1564         function.
1565
1566 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
1567
1568         * config/fr30/fr30-protos.h: Remove the prototypes for
1569         stack_add_operand, add_immediate_operand,
1570         high_register_operand, low_register_operand, call_operand,
1571         di_operand, and nonimmediate_di_operand.
1572         * config/fr30/fr30.c (stack_add_operand,
1573         add_immediate_operand, high_register_operand,
1574         low_register_operand, call_operand, di_operand,
1575         nonimmediate_di_operand): Move to predicates.md.
1576         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
1577         * config/fr30/fr30.md: Include predicates.md.
1578         * config/fr30/predicates.md: New.
1579
1580         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
1581         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
1582         mcore_call_address_operand.
1583
1584         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
1585         general_movsrc_operand.
1586
1587 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
1588
1589         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
1590         after freeing.
1591
1592 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
1593
1594         PR target/14812
1595         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
1596         a negated value.
1597
1598 2005-04-04  Richard Henderson  <rth@redhat.com>
1599             Jakub Jelinek  <jakub@redhat.com>
1600
1601         PR rtl-optimization/16104
1602         * fold-const.c (fold_unary): Fix folding of vector conversions.
1603
1604 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
1605
1606         * config.gcc (xstormy16-*-elf): Set extra_options.
1607         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
1608         * config/stormy16/stormy16.opt: New file.
1609
1610 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
1611
1612         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
1613         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
1614         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
1615         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
1616         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
1617         (TARGET_UNIX_ASM): Delete.
1618         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
1619         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
1620         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
1621         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1622         * config/pdp11/pdp11.opt: New file.
1623
1624 2005-04-03  Roger Sayle  <roger@eyesopen.com>
1625             Alexandre Oliva  <aoliva@redhat.com>
1626
1627         PR c++/19199
1628         * fold-const.c (non_lvalue): Split tests into...
1629         (maybe_lvalue_p): New function.
1630         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
1631         C++ front-end prior to lowering into gimple form.
1632
1633 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1634
1635         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
1636         BUILT_IN_STRNCASECMP): New.
1637         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
1638         and strndup.
1639
1640 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
1641
1642         PR target/14812
1643         * arm.md (addsi3_compare0_for_combiner): Delete.
1644         (addsi3_compare0_scratch_for_combiner): Delete.
1645         (cmpsi_neg_shiftsi): Delete.
1646         (compare_negsi_si): New pattern.
1647         (cmpsi_negshiftsi_si): New pattern.
1648         (negated_cbranchsi4): Restrict to equality_operator.
1649         
1650         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
1651         template.
1652
1653 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
1654
1655         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
1656         Fix comment typos.
1657
1658         * doc/install.texi: Fix a typo.
1659
1660 2005-04-03  Steven Bosscher  <stevenb@suse.de>
1661
1662         PR middle-end/20648
1663         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
1664         a computed goto if the edge to the computed goto block has
1665         incoming abnormal edges.  Clarify how the function works.
1666
1667 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
1668
1669         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
1670         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
1671         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
1672         hash_scan_set, reg_set_between_after_reload_p,
1673         reg_used_between_after_reload_p, get_avail_load_store_reg,
1674         eliminate_partially_redundant_load): Likewise.
1675         * postreload.c (reload_cse_simplify_set,
1676         reload_combine_note_use): Likewise.
1677         * predict.c (predict_insn, expected_value_to_br_prob,
1678         propagate_freq, expensive_function_p): Likewise.
1679         * print-rtl.c (print_rtx): Likewise.
1680         * profile.c (instrument_edges, instrument_values,
1681         compute_branch_probabilities, branch_prob, union_groups,
1682         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
1683         * protoize.c (in_system_include_dir, file_could_be_converted,
1684         file_normally_convertible, gen_aux_info_file, seek_to_line,
1685         do_cleaning): Likewise.
1686         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
1687         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
1688         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1689
1690 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
1691
1692         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
1693         * modulo-sched.c (undo_replace_buff_elem): New structure.
1694         (kernel_number_of_cycles, ps_unschedule_node,
1695         undo_generate_reg_moves,free_undo_replace_buff,
1696         undo_permute_partial_schedule,  loop_single_full_bb_p,
1697         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
1698         build_loops_structure, get_sched_window): New.
1699         (generate_reg_moves): Return undo_replace_buff_elem and other
1700         fixes.
1701         (generate_prolog_epilog): Remove old loop versioning.
1702         (sms_schedule): Use loop information and loop_version.
1703         (sms_schedule_by_order): Split part of it to get_sched_window.
1704         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
1705         cfg_layout_finalize and free_dominance_info before/after SMS.
1706
1707 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
1708
1709         * cfghooks.c (lv_flush_pending_stmts,
1710         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
1711         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
1712         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
1713         lv_add_condition_to_bb,
1714         lv_adjust_loop_header_phi, extract_cond_bb_edges,
1715         flush_pending_stmts): New in cfg_hooks structure.
1716         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
1717         extract_cond_bb_edges, lv_adjust_loop_header_phi,
1718         lv_add_condition_to_bb): New declarations.
1719         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
1720         bool.
1721         (loop_version): Declare.
1722         * cfgloopmanip.c (cfghooks.h): Include.
1723         (duplicate_loop_to_header_edge): Change return type to bool.
1724         (loop_version, lv_adjust_loop_entry_edge): Move here.
1725         * cfgrtl.c (cfgloop.h): Include.
1726         (rtl_verify_flow_info_1): Fix.
1727         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
1728         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
1729         initialization.
1730         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
1731         tree_lv_add_condition_to_bb): New.
1732         (tree_cfg_hooks): Add new hooks to initialization.
1733         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
1734         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
1735
1736 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
1737
1738         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
1739         xstormy16_below100_or_register,
1740         xstormy16_splittable_below100_or_register, and
1741         nonimmediate_nonstack_operand.
1742
1743         * config/stormy16/stormy16-protos.h: Remove the prototypes for
1744         xstormy16_ineqsi_operator, equality_operator,
1745         inequality_operator, shift_operator,
1746         xstormy16_below100_operand, xstormy16_below100_or_register,
1747         xstormy16_splittable_below100_or_register,
1748         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
1749         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
1750         equality_operator, inequality_operator,
1751         xstormy16_below100_operand, xstormy16_below100_or_register,
1752         xstormy16_splittable_below100_or_register,
1753         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
1754         nonimmediate_nonstack_operand, shift_operator): Move to
1755         predicates.md.
1756         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
1757         * config/stormy16/stormy16.md: Include predicates.md.
1758         * config/stormy16/predicates.md: New.
1759
1760 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1761
1762         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
1763         small_int, large_int, reg_or_0_operand, simple_memory_operand,
1764         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
1765         move_operand, power_of_2_operand): Move to predicates.md.
1766         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
1767         PREDICATE_CODE): Remove.
1768         * config/iq2000/iq2000.md: Include predicates.md.
1769         * config/iq2000/predicates.md: New.
1770
1771 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
1772
1773         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
1774         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
1775         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
1776         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
1777         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
1778         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
1779         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
1780         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1781         (TARGET_M68HC11): Delete.
1782         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
1783         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
1784         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
1785         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1786         (nb_soft_regs): Delete.
1787         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
1788         (m68hc11_override_options): Remove the code that caters for MASK_M6811
1789         and MASK_M6812 being set simultaneously.  Change the code that sets
1790         the default m68hc11_soft_reg_count to use integers instead of strings.
1791         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
1792         m68hc11_soft_reg_count (which now has an int type) as the number
1793         of soft registers.
1794         * config/m68hc11/m68hc11.opt: New file.
1795
1796 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1797
1798         * config/fr30/fr30.h (PREDICATE_CODES): Remove
1799         fp_displacement_operand, sp_displacement_operand.
1800
1801         * config/m68hc11/m68hc11-protos.h: Add a prototype for
1802         m68hcc_auto_inc_p.
1803         Remove the prototypes for tst_operand, cmp_operand,
1804         stack_register_operand, d_register_operand,
1805         hard_addr_reg_operand, splitable_operand,
1806         m68hc11_logical_operator, m68hc11_arith_operator,
1807         m68hc11_non_shift_operator, m68hc11_shift_operator,
1808         m68hc11_unary_operator, m68hc11_eq_compare_operator,
1809         non_push_operand, hard_reg_operand, and
1810         reg_or_some_mem_operand.
1811         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
1812         extern.
1813         (tst_operand, cmp_operand, non_push_operand,
1814         splitable_operand, reg_or_some_mem_operand,
1815         stack_register_operand, d_register_operand,
1816         hard_addr_reg_operand, hard_reg_operand,
1817         m68hc11_eq_compare_operator, m68hc11_logical_operator,
1818         m68hc11_arith_operator, m68hc11_non_shift_operator,
1819         m68hc11_shift_operator, m68hc11_unary_operator): Move to
1820         predicates.md.
1821         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
1822         * config/m68hc11/m68hc11.md: Include predicates.md.
1823         * config/m68hc11/predicates.md: New.
1824
1825 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1826
1827         PR debug/19345
1828         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
1829         change checked in along with 2005-03-03's patch for debug/20253.
1830         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
1831         (remap_decl): Insert type decl in map earlier.
1832
1833 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1834
1835         PR tree-optimization/20640
1836         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
1837         post-dominator if it has phi nodes.
1838         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
1839         before dead statements.
1840
1841 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1842
1843         PR middle-end/20491
1844         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
1845
1846 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1847
1848         PR rtl-optimization/20290
1849         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
1850         in every iteration if the entry point is the exit test.
1851
1852 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
1853
1854         * config/cris/cris.md (attribute "length"): Define.
1855
1856 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
1857
1858         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
1859         (word_offset_memref_operand): New.
1860         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
1861         (indexed_or_indirect_operand): Delete.
1862         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
1863         (indexed_or_indirect_operand): Delete.
1864
1865         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
1866
1867         PR 20650
1868         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
1869         a register.
1870
1871         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
1872         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
1873
1874 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1875
1876         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
1877
1878 2005-04-01  Ian Lance Taylor  <ian@airs.com>
1879
1880         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
1881         (rus, prus): Remove static variables.
1882         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
1883         (process_command): Permit report_times and use_pipes together.
1884
1885 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1886
1887         * c-decl.c (validate_proto_after_old_defn): Look at
1888         TYPE_MAIN_VARIANT of argument types.
1889
1890 2005-04-01  Paul Brook  <paul@codesourcery.com>
1891
1892         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
1893         (arm_output_function_epilogue): Allow call_via_SP.
1894         (thumb_call_via_reg, arm_file_end): Ditto.
1895         * config/arm/arm.h (struct machine_function): Include space for SP.
1896         (thumb_call_via_label): Update declaration.
1897
1898 2005-04-01  Ian Lance Taylor  <ian@airs.com>
1899
1900         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
1901         doing a peephole optimization, once again put any notes in the
1902         proper position.
1903
1904 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1905
1906         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
1907
1908 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
1909
1910         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
1911         (block_alloc, find_free_reg): Likewise.
1912         * loop-doloop.c (doloop_modify): Likewise.
1913         * loop-invariant.c (record_use): Likewise.
1914         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
1915         get_iv_value, canon_condition, eliminate_implied_condition,
1916         eliminate_implied_condition, simplify_using_initial_values,
1917         shorten_into_mode, canonicalize_iv_subregs,
1918         iv_number_of_iterations): Likewise.
1919         * loop-unroll.c (expand_var_during_unrolling): Likewise.
1920         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
1921         unswitch_loop): Likewise.
1922         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
1923         move_movables, replace_call_address, find_and_verify_loops,
1924         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
1925         record_giv, final_giv_value, general_induction_var,
1926         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
1927         loop_giv_dump): Likewise.
1928
1929         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
1930         GCOV_CHECK_WRITING): Remove.
1931         (gcov_position, gcov_rewrite): Use gcc_assert.
1932         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
1933         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
1934         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
1935         gcc_assert.
1936
1937 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1938
1939         * tree-inline.c: Fix a typo.
1940
1941 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
1942
1943         * configure.ac (enable-checking): Explicitly set all variables for
1944         collective switch values.  Alphabetize variables. Rename
1945         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
1946         synonym for 'no'.
1947         * doc/install.texi (enable-checking): Update documentation.
1948         * configure: Rebuilt.
1949
1950 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1951
1952         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
1953         possible.
1954
1955 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
1956
1957         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
1958         Also reject cases where this pattern will cause load delay stalls
1959         unless optimizing for size and it will produce a shorter sequence.
1960         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
1961         variants to avoid pre-adjusting the base when possible.
1962
1963 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
1964
1965         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
1966         the frame and argument pointers.
1967         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
1968         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
1969         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
1970         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
1971         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
1972         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
1973
1974 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
1975
1976         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
1977         with entry for selectany attribute.
1978         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
1979         Declare.
1980         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
1981         (i386_pe_asm_named_section): Handle sections generated by
1982         selectany attribute.
1983         * doc/extend.texi (selectany): Document attribute.
1984
1985 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
1986             Jan Hubicka  <jh@suse.cz>
1987
1988         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
1989         to fix addresses involving EBP and ESP.
1990         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
1991         for SUBREGed registers.
1992         (legitimate_address_p): Accept SUBREGed registers.
1993
1994 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
1995
1996         PR c++/19406
1997         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
1998         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
1999         for FIELD_DECLs.
2000
2001 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2002
2003         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
2004
2005 2005-04-01  James E Wilson  <wilson@specifixinc.com>
2006
2007         PR c++/20505
2008         * dwarf2out.c (rtl_for_decl_init): New function.
2009         (rtl_for_decl_location): Extracted from here.
2010         (tree_add_const_value_attribute): Call rtl_for_decl_init and
2011         add_const_value_attribute.  Delete initializer_constant_valid_p call.
2012
2013 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2014
2015         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
2016         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
2017         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
2018         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
2019         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
2020         config/i386/i386.md, config/rs6000/predicates.md,
2021         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
2022         config/s390/s390.c, config/stormy16/stormy16.c,
2023         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
2024         typos.
2025
2026 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
2027
2028         PR c/17855
2029         * gimplify.c (gimplify_expr): Create a temporary for lvalue
2030         COND_EXPR and CALL_EXPR.
2031
2032 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2033
2034         PR target/20632
2035         * genautomata.c (first_cycle_unit_presence): Check all alternative
2036         states for unit presence.
2037
2038         * doc/md.texi: Remove remark about impossibility to query unit
2039         presence in non nondeterministic automaton state.
2040         
2041         * config/ia64/ia64.c (get_template): Change order of unit querying.
2042
2043 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2044
2045         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
2046         obsolete comment.
2047
2048 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
2049
2050         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
2051         flag for edges outside any loops.
2052
2053 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
2054
2055         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
2056
2057 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2058
2059         * tree-ssa-alias.c: Follow spelling conventions.
2060         * doc/tree-ssa.texi: Fix a typo.
2061
2062 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
2063
2064         * postreload-gcse.c: Include target.h.
2065         (gcse_after_reload_main): Return early if we cannot modify jumps.
2066         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
2067
2068 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
2069
2070         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
2071         expensive operations.
2072
2073 2005-03-31  Ian Lance Taylor  <ian@airs.com>
2074
2075         * collect2.c (lderrout): New variable.
2076         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
2077         if it is set, to stderr.
2078         (handler): Unlink lderrout if it is set.
2079         (dump_file): Add "to" parameter.  Change all callers.
2080         (main): Initialize lderrout.
2081         (collect_execute): Add errname parameter.  Change all callers.
2082         Rename redir parameter to outname.  Never pass
2083         PEX_STDERR_TO_STDOUT to pex_run.
2084         * collect2.h (collect_execute, dump_file): Update declarations.
2085         * tlink.c (tlink_execute): Add errname parameter.  Change all
2086         callers.
2087         (do_tlink): Check lderrout as well as ldout.
2088
2089 2005-03-31  Caroline Tice  <ctice@apple.com>
2090
2091         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
2092         (bb-reorder.o): Add errors.h to list of requirements.
2093         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
2094         profiledbootstrap flags.
2095         * bb-reorder.c (errors.h): Add new include.
2096         (struct bbro_basic_block_data_def): Add new field, in_trace.
2097         (add_unlikely_executed_notes):  Remove function.
2098         (mark_bb_for_unlikely_executed_section): Remove function.
2099         (insert_section_boundary_note): New function.
2100         (verify_hot_cold_block_grouping): New function.
2101         (push_to_next_round_p): Remove variables and tests that push all
2102         cold blocks to last round.
2103         (find_traces): Remove code that added extra round of trace finding
2104         when doing partitioning.
2105         (find_traces_1_round) :  Remove variable last_round;  add code to 
2106         update new struct field, in_trace; correct trace_length where it was 
2107         incorrect before (after call to copy_bb); change code that pushed all 
2108         cold blocks to last round. Instead verify that all blocks going into 
2109         a trace belong in the same partition.
2110         (connect_traces): Modify to connect the traces in two passes, if the
2111         function contains both hot and cold blocks.  The first pass connects 
2112         all the traces for blocks in the partition that the first block in 
2113         the function belongs to; the second pass connnects all the traces 
2114         containing blocks that belong in the other partition.
2115         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
2116         code that automatically put the first block in a function into the
2117         hot partition if the function had any hot blocks.
2118         (fix_crossing_unconditional_branches): Check number of succ edges 
2119         before attempting to get one.
2120         (fix_edges_for_rarely_executed_code):  Update comment describing
2121         function.
2122         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
2123         remove call to add_unlikely_executed_notes; add call to 
2124         verify_hot_cold_block_grouping.
2125         (duplicate_computed_gotos): Don't change computed goto if it's a 
2126         crossing edge.
2127         (partition_hot_cold_basic_blocks):  Update function comment.
2128         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from 
2129         condition.
2130         (try_forward_edges): Likewise.
2131         (merge_blocks_move_predecessor_nojumps): Likewise.
2132         (merge_blocks_move_successor_nojumps): Likewise.
2133         (merge_blocks_move): Likewise.
2134         (try_crossjump_bb): Likewise.
2135         * cfglayout.c (update_unlikely_executed_notes): Remove function.
2136         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
2137         notes to cold bb's; remove call to update_unlikely_executed_notes.
2138         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2139         NOTE_INSN_SWITCH_TEXT_SECTIONS.
2140         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
2141         function declaration.
2142         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
2143         from consideration.
2144         (rtl_can_merge_blocks): Remove redundancy from condition.
2145         (try_redirect_by_replacing_jump): Likewise.
2146         (force_nonfallthru_and_redirect): Remove code for adding
2147         UNLIKELY_EXECUTED_CODE notes to cold bb's.
2148         (commit_one_edge_insertion): Likewise.
2149         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
2150         * dbxout.c (FORCE_TEXT): Replace function_section with 
2151         current_function_section.
2152         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
2153         function, switch_text_section.
2154         (struct xcoff_debug): Likewise.
2155         (dbxout_function_end): Add code to put out label diffs for both
2156         hot and cold sections.
2157         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
2158         for new debug_hooks funciton, switch_text_section..
2159         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
2160         switch_text_section.
2161         * dwarf2out.c (struct dw_fde_struct):  Add five new fields: 
2162         dw_fde_hot_section_label, dw_fde_hot_section_end_label, 
2163         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and 
2164         dw_fde_switched_sections.
2165         (output_call_frame_info):  Add test to see if function switches text
2166         sections in the middle; if so, use appropriate extra hot and cold 
2167         section labels to compute size deltas for the hot and cold sections.
2168         (dwarf2out_begin_prologue): Add code to initialize new fields in 
2169         dw_fde_struct.
2170         (dwarf2out_switch_text_section): New function (invoked through 
2171         debug_hook); updates new fields in dw_fde_struct appropriately and
2172         increments separate_line_info_table_in_use.
2173         (dwarf2_debug_hooks): Initialize switch_text_section function to be
2174         dwarf2out_switch_text_section.
2175         (struct var_loc_node): Add new field, section_label.
2176         (output_aranges): Add code to check whether in hot or cold section and
2177         use the appropriate label in calculating deltas.
2178         (output_ranges): Likewise.
2179         (output_line_info): Add code to check which section we're in and
2180         use appropriate hot/cold label.
2181         (add_location_or_constant_value_attribute): Likewise.
2182         (gen_subprogam_die): Modify arange attributes to use correct labels.
2183         (dwarf2out_begin_block): Change call to function_section into call to
2184         current_function_section.
2185         (dwarf2out_end_block): Likewise.
2186         (dwarf2out_source_line): Likewise.
2187         (dwarf2out_var_location): Add code to check whether in hot or cold 
2188         section and use the appropriate label.
2189         * except.c (output_function_exception_table): Change call to 
2190         function_section into call to current_function_section.
2191         * final.c (profile_function): Likewise.
2192         (scan_ahead_for_unlikely_executed_note): Remove function.
2193         (final_scan_insn):  Remove calls to 
2194         scan_ahead_for_unlikely_executed_note, and related code for switching 
2195         to cold section, except for the single time 
2196         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to 
2197         debug_hooks->switch_text_sections; replace appropriate calls to 
2198         function_section with calls to current_function_section.
2199         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add 
2200         test_bb to condition.
2201         (find_if_case_2): Likewise.
2202         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2203         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
2204         * opts.c (decode_options): Change warning about hot/cold partitioning
2205         with exceptionss to inform (so as not to cause bootstrap failures);
2206         remove warning about partitioning with DWARF debug info.
2207         * output.h (current_function_section): Add new function decl.
2208         (insert_section_boundary_note): Likewise.
2209         (enum in_section): Move this declaration here from varasm.c.
2210         (unlikely_section_label): Likewise.
2211         (unlikely_text_section_name): Likewise.
2212         (last_text_section_name): New global variable.
2213         (last_text_section): Likewise.
2214         (hot_section_label): Likewise.
2215         (hot_section_end_label): Likewise.
2216         (cold_section_end_label): Likewise.
2217         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
2218         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
2219         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
2220         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note 
2221         insn from consideration.
2222         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function, 
2223         switch_text_section.
2224         * varasm.c (basic-block.h): Add new include.
2225         (unlikely_section_label_printed): Remove global variable.
2226         (unlikely_section_label): Make global variable not be static any more.
2227         (unlikely_text_section_name): Likewise.
2228         (hot_section_end_label): New global variable (not static)
2229         (first_function_block_is_cold): Likewise.
2230         (hot_section_label): Likewise.
2231         (cold_section_end_label): Likewise..
2232         (last_text_section): New global variable, not static.
2233         (last_text_section_name): New global variable, not static.
2234         (initialize_cold_section_name): New function.
2235         (enum in_section): Move declaration to output.h.
2236         (text_section): Update last_text_section.
2237         (unlikely_text_section): Replace code to determine cold section name 
2238         with call to initialize_cold_section_name; Add code to update 
2239         last_text_section; remove code for printing out label.
2240         (named_section_real): Add code to update last_text_section and 
2241         last_text_section_name as appropriate.
2242         (function_section): Change test for 'unlikely' to depend on
2243         first_function_block_is_cold (moved old test to 
2244         current_function_section).
2245         (current_function_section): New function.
2246         (assemble_start_function): Move code that frees 
2247         unlikely_text_section_name; initialize hot_section_end_label; 
2248         print hot and cold section labels at the start of the function; 
2249         set first_function_block_is_cold, if appropriate; initialize l
2250         ast_text_section; add call to insert_section_boundary_note.
2251         (assemble_end_function):  Add code to write out hot and cold section
2252         end labels.
2253         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
2254         switch_text_section.
2255         * config/darwin.c (machopic_select_section): Replace incorrect 
2256         function in base_funs; update reloc for cold sections if necessary.
2257         * config/darwin.h (SECTION_FUNCTION):  Add code to update 
2258         last_text_section if appropriate.
2259         (text_unlikely_section): Remove.
2260         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
2261         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
2262         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
2263         partitioning for this architecture.
2264
2265 2005-03-31  Olivier Hainque  <hainque@adacore.com>
2266
2267         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
2268         defined and non-zero.
2269
2270 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2271
2272         PR c++/18644
2273         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
2274         semantics. 
2275
2276 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
2277
2278         PR target/20611
2279         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
2280         label operand.  Remove (use (unspec..)).  Don't emit a label on
2281         the offset word.
2282         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
2283         generate inline label for load_toc_v4_PIC_1b.
2284         (rs6000_emit_load_toc_table): Likewise.
2285
2286 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2287
2288         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
2289         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
2290
2291 2005-03-29  Devang Patel  <dpatel@apple.com>
2292
2293         * tree-sra.c (decide_block_copy): Disable scalarization of
2294         sub-elements.
2295         
2296 2005-03-30  Stuart Hastings  <stuart@apple.com>
2297             Dale Johannesen  <dalej@apple.com>
2298
2299         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
2300         * print-tree.c (print_node):  Add case STATEMENT_LIST.
2301
2302 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
2303
2304         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
2305         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
2306         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
2307         is given with "powerpc64*" or "all", or when --with-cpu chooses
2308         a 64-bit cpu.
2309
2310 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
2311
2312         PR debug/20268
2313         * dwarf2out.c (add_high_low_attributes): New function, extracted from
2314         gen_lexical_block_die.
2315         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
2316
2317 2005-03-31  Jan Hubicka  <jh@suse.cz>
2318
2319         2004-11-02  Jan Hubicka  <jh@suse.cz>
2320
2321         * cgraph.c (cgraph_varpool_node_name): New function.
2322         (dump_cgraph_varpool_node): New function.
2323         (dump_varpool): New function.
2324         * cgraphunit.c (cgraph_optimize): Dump varpool.
2325
2326         2004-10-16  Jan Hubicka  <jh@suse.cz>
2327
2328         * cgraph.c (decide_is_variable_needed): New function.
2329         (cgraph_varpool_finalize_decl): Use it.
2330         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
2331         unit-at-a-time.
2332         * final.c (output_addr_const): Do not call mark_referenced.
2333         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
2334         always go via cgraph.
2335         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
2336         (check_global_declarations): Ifdef out code clearing DECL_RTL.
2337         * tree-optimize.c (execute_inline): Mark functions called.
2338         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
2339
2340         2004-10-11  Jan Hubicka  <jh@suse.cz>
2341
2342         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
2343         (cgraph_varpool_last_needed_node): New static variable.
2344         (enqueue_needed_varpool_node): Break out from ...; add items to the
2345         end of queue; update first pointers.
2346         (cgraph_varpool_mark_needed_node): ... here.
2347         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
2348         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
2349         * cgraph.h (cgraph_varpool_node): Add analyzed field.
2350         (cgraph_varpool_first_unanalyzed_node): Declare.
2351         * cgraphunit.c: Include output.h.
2352         (cgraph_varpool_analyze_pending_decls): New function.
2353         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
2354         for errors, analyze pending decls.
2355         (cgraph_finalize_compilation_unit): Only analyze decls.
2356         (cgraph_optimize): Assemble the decls after expanding.
2357
2358 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
2359
2360         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
2361         subvars get marked properly in tags for grouping.
2362         (add_pointed_to_var): Mark only actual pointed to
2363         variables/subvars in addresses needed.
2364         (create_overlap_variables_for): Clear call clobbered on original
2365         variable.
2366         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
2367         addresable vars with subvars into list.
2368         * tree-ssa.c (verify_ssa_name): Verify original is not used where
2369         subvar should be.
2370
2371 2005-03-30  Richard Henderson  <rth@redhat.com>
2372
2373         * cgraph.h (struct cgraph_node): Add alias.
2374         * varasm.c (assemble_alias): Set it.
2375         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
2376         avoid calling cgraph_expand_function.
2377
2378 2005-03-30  Tom Tromey  <tromey@redhat.com>
2379
2380         * tree.def (FILE_TYPE): Removed.
2381         * typeclass.h (enum type_class): Removed file_type_class.
2382         * dwarf2out.c (is_base_type): Updated.
2383         (gen_type_die): Likewise.
2384         * dbxout.c (dbxout_type): Updated.
2385         * builtins.c (type_to_class): Updated.
2386         * tree.c (type_contains_placeholder_1): Updated.
2387         * config/sparc/sparc.c (sparc_type_code): Updated.
2388         * config/ia64/ia64.c (hfa_element_mode): Updated.
2389         * expr.c (count_type_elements): Updated.
2390         * stor-layout.c (layout_type): Updated.
2391         * tree-inline.c (remap_type): Updated.
2392         * tree-pretty-print.c (dump_generic_node): Updated.
2393
2394 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
2395
2396         * builtins.c (expand_builtin_powi): Fix mode of
2397         2nd argument to match int.
2398         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
2399         2nd argument type to int.
2400         * libgcc2.c: Change prototype of __powi* functions to use
2401         int.
2402
2403 2005-03-30  Dale Johannesen  <dalej@apple.com>
2404
2405         PR middle-end/19225
2406         * calls.c (expand_call):  Flush pending deferrals before
2407         throwing call.
2408
2409 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2410
2411         PR c/772
2412         PR c/17913
2413         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
2414         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
2415         c_label_context, label_context_stack): New.
2416         * c-decl.c (define_label): Check for jumps into statement
2417         expressions.  Add label to list of defined labels.
2418         (start_function): Push context on label_context_stack.
2419         (finish_function): Pop context from label_context_stack.
2420         * c-typeck.c (label_context_stack): New.
2421         (c_finish_goto_label): Check for jumps into statement
2422         expressions.  Add label to list of jumped to labels.
2423         (struct c_switch): Add blocked_stmt_expr.
2424         (c_start_case): Initialize it.
2425         (do_case): Check it.
2426         (c_finish_case): Verify !blocked_stmt_expr.
2427         (c_begin_stmt_expr):  Push context on label_context_stack.
2428         Increment blocked_stmt_expr.  Mark labels jumped to from outside
2429         as undefinable.
2430         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
2431         defined in the statement expression and no longer jumpable to.
2432         Mark labels jumped to from just outside the statement expression
2433         as again definable.  Pop context from label_context_stack.
2434         * doc/extend.texi (Statement Exprs): Update.
2435
2436 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2437
2438         PR c/20368
2439         * c-decl.c (start_function): Check for old_decl being
2440         error_mark_node.
2441
2442 2005-03-30  Ian Lance Taylor  <ian@airs.com>
2443
2444         * final.c (final): Remove prescan parameter.  Change all callers.
2445         (final_scan_insn): Remove prescan parameter.  Change all callers.
2446
2447 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
2448
2449         * tree-vectorizer.c: Fix comment typos.
2450
2451 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
2452
2453         * tree-scalar-evolution.c (instantiate_parameters_1): Return
2454         as soon as a chrec_dont_know is detected.
2455
2456 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
2457
2458         Merge from csl-arm-branch.
2459         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
2460
2461         * tlink.c (recompile_files): Do not assume that "rename" can
2462         overwrite an existing file.
2463
2464 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
2465
2466         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
2467         * gcc/configure: Regenerate.
2468
2469 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
2470
2471         * doc/install.texi: Update binutils requirement for powerpc*-linux.
2472
2473         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
2474
2475         * calls.c (struct arg_data): Update "partial" comment.
2476         (load_register_parameters): Update "nregs" comment.
2477
2478 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2479
2480         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
2481         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
2482         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
2483         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
2484         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
2485         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
2486         than target_flags & 0.
2487         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
2488         (iq2000_arch, iq2000_parse_cpu): Delete.
2489         (TARGET_HANDLE_OPTION): Override default.
2490         (iq2000_handle_option): New function.
2491         (override_options): Remove -march= and -mcpu= handling.
2492         * config/iq2000/iq2000.opt: New file.
2493
2494 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2495
2496         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
2497         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
2498         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
2499         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
2500         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
2501         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
2502         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
2503         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
2504         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
2505         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
2506         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
2507         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
2508         (c4x_rpts_cycles_string, c4x_cpu_version_string)
2509         (TARGET_OPTIONS): Delete.
2510         (c4x_rpts_cycles, c4x_cpu_version): Declare.
2511         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
2512         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
2513         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
2514         (c4x_cpu_version_string): Delete.
2515         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2516         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
2517         equivalent -mcpu= option.
2518         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
2519         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
2520         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
2521         or clearing the appropriate MASK_* bit.
2522         (c4x_file_start): Use c4x_cpu_version.
2523         * config/c4x/c4x.opt: New file.
2524
2525 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2526
2527         * doc/options.texi: Document the new MaskExists flag.
2528         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
2529         if the option has the MaskExists flag.
2530
2531 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2532
2533         * opt-functions.awk (flag_set_p, test_flag): New functions.
2534         (switch_flags): Use them.
2535         * opth-gen.awk: Use flag_set_p to check for flags.
2536         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
2537
2538 2005-03-30  Ian Lance Taylor  <ian@airs.com>
2539
2540         * config.host (i[34567]86-*-mingw32*): Don't set
2541         host_can_use_collect2 to no.
2542
2543 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
2544
2545         PR target/20203
2546         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
2547         Remove convert_memory_address call duplicating that in memory_address.
2548
2549 2005-03-29  Richard Henderson  <rth@redhat.com>
2550
2551         PR c/20519
2552         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
2553         (build_compound_literal): Likewise.  Propagate decl type into the
2554         initializer.
2555         (finish_decl): Likewise.  Use new return value from complete_array_type
2556         for zero sized arrays.
2557         (complete_array_type): Move ...
2558         * c-common.c (complete_array_type): ... here.  Change first argument
2559         to pointer-to-type-node.  Consistently use sizetype for the index
2560         except for zero sized arrays.  Detect zero sized arrays for pedantic
2561         mode diagnostics.  Create a new type node instead of modifying the
2562         old node in place.
2563         * c-tree.h (complete_array_type): Move decl ...
2564         * c-common.h (complete_array_type): ... here.
2565
2566 2005-03-29  Richard Henderson  <rth@redhat.com>
2567
2568         PR tree-opt/19108
2569         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
2570
2571 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
2572
2573         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
2574         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
2575         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
2576         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
2577
2578 2005-03-29  Eric Christopher  <echristo@redhat.com>
2579
2580         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
2581         truthvalue conversion removal.
2582
2583 2005-03-29  Ian Lance Taylor  <ian@airs.com>
2584
2585         PR bootstrap/14316
2586         * collect2.c: Never include <vfork.h>.
2587         (VFORK_STRING, vfork): Don't define.
2588         (pid): Remove global variable.
2589         (handler): Call raise instead of kill (getpid(), ...).
2590         (collect_wait): Add pex parameter.  Change all callers.  Use
2591         pex_get_status rather than pwait.
2592         (do_wait): Add pex parameter.  Change all callers.
2593         (collect_execute): Return struct pex_obj * rather than void.  Use
2594         pex routines rather than pexecute.
2595         (fork_execute): Get pex_obj from collect_execute, and pass it to
2596         do_wait.
2597         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
2598         Only declare quit_handler if SIGQUIT is defined.
2599         (scan_libraries): Likewise.
2600         * collect2.h (collect_execute): Update declaration.
2601         (collect_wait): Update declaration.
2602         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
2603         pass it to collect_wait.
2604
2605 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
2606
2607         PR c/20672
2608         * c-parser.c (c_parser_compound_statement_nostart): Give error
2609         message for EOF instead of just setting parser->error.
2610
2611 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
2612
2613         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
2614         (slpeel_update_phi_nodes_for_guard1): New function.
2615         (slpeel_update_phi_nodes_for_guard2): New function.
2616         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
2617         of slpeel_update_phi_nodes_for_guard.
2618         (vectorize_loops): Remove call to loop_closed_rewrite.
2619         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
2620         assertion.
2621
2622 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
2623
2624         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
2625         (TARGET_LITTLE_ENDIAN): New macro.
2626         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
2627         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
2628         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
2629         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
2630         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
2631         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
2632         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
2633         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
2634         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
2635         (TARGET_OPTIONS): Delete.
2636         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
2637         (CACHE_FLUSH_TRAP): Turn into an integer.
2638         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
2639         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
2640         -mflush-trap is in use.
2641         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
2642         (m32r_cache_flush_trap_string): Delete.
2643         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
2644         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
2645         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
2646         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2647         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
2648         -mmodel= and -msdata= handling from...
2649         (m32r_init): ...here.
2650         * config/m32r/m32r.opt: New file.
2651
2652 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
2653
2654         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
2655         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
2656         * tree-vect-analyze.c (vect_object_analysis): additional parm
2657         pass back a "struct ptr_info_def *" with the points-to info.
2658         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
2659         statement using info returned from vect_object_analysis.
2660         * tree-vect-transform.c (update_vuses_to_preheader): New function.
2661         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
2662         for virtual uses and defs when creating a replacement vector
2663         reference.  Call duplicate_ssa_name_ptr_info to define points-to
2664         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
2665         (vectorizable_store): copy_virtual_operands and update
2666         definition statements.
2667         (vectorizable_load): copy_virtual_operands.  Remove call to
2668         mark_call_clobbered_vars_to_rename for call to "const" builtin.
2669         * tree-vectorizer.c (vectorize_loops): Remove calls to
2670         rewrite_into_ssa and bitmap_clear (vars_to_rename).
2671         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
2672         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
2673         define macro STMT_VINFO_PTR_INFO for use in accessing.
2674         * tree.h add export of duplicate_ssa_name_ptr_info.
2675         * rs6000.c (altivec_init_builtins): Declare builtin function
2676         __builtin_altivec_mask_for_load to be "const".
2677
2678 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
2679
2680         PR middle-end/20622
2681         * cgraph.h (struct cgraph_varpool_node): Add alias field.
2682         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
2683         assemble_variable on aliases.
2684         * varasm.c (assemble_alias): Set node->alias.
2685         * toplev.c (wrapup_global_declarations): Don't call
2686         rest_of_decl_compilation on aliases again.
2687
2688 2005-03-29  Paul Brook  <paul@codesourcery.com>
2689
2690         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
2691         * config/arm/arm.c (arm_dbx_register_number): New function.
2692         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
2693
2694 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
2695
2696         PR middle-end/20263
2697         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
2698         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
2699
2700 2005-03-29  Dale Johannesen <dalej@apple.com>
2701
2702         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
2703         $(TREE_H) and $(COVERAGE_H).
2704         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
2705         * opts.c (common_handle_option): Enable tree-based value transforms.
2706         * toplev.c (process_options): Ditto.
2707         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
2708         refers to references to this type.
2709         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
2710         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
2711         for may_be_more, may_be_less.
2712         (rtl_gen_pow2_profiler): Adjust.
2713         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
2714         (rtl_gen_one_value_profiler): Adjust.
2715         (rtl_gen_const_delta_profiler): Adjust.
2716         * tree-profile.c (tree_gen_interval_profiler): Implement.
2717         (tree_gen_pow2_profiler): Ditto.
2718         (tree_gen_one_value_profiler): Ditto.
2719         (tree_profiling): New.
2720         (pass_tree_profile): Reference it.
2721         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
2722         tree.h, gcov-io.h.
2723         (insn_divmod_values_to_profile): Rename to
2724         rtl_divmod_values_to_profile. Adjust.
2725         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
2726         (insn_prefetch_values_to_profile): Adjust.
2727         (rtl_value_profile_transformations): Adjust.
2728         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
2729         (gen_mod_pow2): Rename to rtl_mod_pow2.
2730         (gen_mod_subtract): Rename to rtl_mod_subtract.
2731         (divmod_fixed_value_transform): Rename to
2732         rtl_divmod_fixed_value_transform.
2733         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
2734         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
2735         (rtl_find_values_to_profile): Adjust.
2736         (tree_value_profile_transformations): Implement.
2737         (tree_divmod_values_to_profile): New.
2738         (tree_values_to_profile): New.
2739         (tree_divmod_fixed_value): New.
2740         (tree_mod_pow2): New.
2741         (tree_mod_subtract): New.
2742         (tree_divmod_fixed_value_transform): New.
2743         (tree_mod_pow2_value_transform): New.
2744         (tree_mod_subtract_transform): New.
2745         (tree_find_values_to_profile): Implement.
2746         * profile.c (instrument_values):  Free histograms.
2747         (compute_value_histograms): Adjust. Implement tree version.
2748
2749 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
2750
2751         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
2752         * config/i386/i386.c (output_fix_trunc): Add new round_mode
2753         variable.  Output "fldcw" depending on round_mode.
2754         * config/i386/i386.md (UNSPEC_FIST): New.
2755         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
2756         New isns patterns to implement lrint and llrint built-ins as x87
2757         intrinsic function.
2758         (fistdi2, fist<mode>2 splitters): New splitters.
2759         (lrint<mode>2): New expanders.
2760
2761 2005-03-28  Ian Lance Taylor  <ian@airs.com>
2762
2763         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
2764         0 when calling final_scan_insn.
2765
2766 2005-03-28  Jan Hubicka  <jh@suse.cz>
2767
2768         PR middle-end/20635
2769         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
2770         as needed.
2771
2772         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
2773         types where possible.
2774
2775 2005-03-26  Per Bothner  <per@bothner.com>
2776
2777         Make -f[no-]show-column also control non-cpp diagnostics.
2778         * c.opt (fshow-column): Move option from here ...
2779         * common.opt (fshow-column): ... to here.
2780         * diagnostic.c (diagnostic_build_prefix): Only print column number
2781         if flag_show_column.
2782
2783 2005-03-27  Steven Bosscher  <stevenb@suse.de>
2784
2785         * vax-protos.h (vax_output_int_move, vax_output_int_add,
2786         vax_output_conditional_branch): New prototypes.
2787         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
2788         extracted from vax.md mov and add patterns.
2789         (vax_output_conditional_branch): New function to output conditional
2790         branch instructions.
2791         * vax.md: Use mode macros for arithmetic and mov patterns.
2792         Use code macros for the jump patterns.
2793
2794 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
2795
2796         * Makefile.in (libbackend.o): Depend on version files;
2797         add custom generation command.
2798
2799 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
2800
2801         PR target/20636
2802         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
2803         sure that we have a REG before getting its REGNO.
2804
2805 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2806
2807         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
2808         * builtins.def (BUILT_IN_STRNDUP): New.
2809
2810 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
2811
2812         PR tree-optimization/20470
2813         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
2814         ABS(x-y).
2815
2816 2005-03-25  Mike Stump  <mrs@apple.com>
2817
2818         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
2819         sized objects.
2820
2821 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
2822
2823         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
2824         Use our own structure definitions.
2825
2826         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
2827         (fix_truncdfsi2): Allow registers or memory as destination.
2828         When TARGET_PPC_GFXOPT, generate simplified pattern.
2829         (fix_truncdfsi2_internal): Use define_insn_and_split.
2830         (fix_truncdfsi2_internal_gfxopt): New.
2831         (fctiwz): Don't confuse register allocation by giving it no choices.
2832         (stfiwx): New.
2833         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
2834         (EXTRA_MEMORY_CONSTRAINT): Likewise.
2835         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
2836         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
2837
2838 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2839
2840         * dominance.c (free_dominance_info): Speed up by freeing et
2841         data structures without maintaining other nodes.
2842         * et-forest.c (et_free_tree_force): New.
2843         * et-forest.h: Add a prototype for et_free_tree_force.
2844
2845         * tree.c (get_set_constructor_bits,
2846         get_set_constructor_bytes): Remove.
2847         * tree.h: Remove the corresponding prototypes.
2848
2849 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
2850
2851         PR target/15491
2852         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
2853         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
2854         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
2855         PRE_DEC, NEG and NOT.
2856
2857 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2858
2859         * fold-const.c: Convert uses of fold (build (...)) to
2860         fold_buildN.
2861
2862 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
2863
2864         PR rtl-optimization/20249
2865         * cse.c (insert_regs): Do not record equivalence of registers in
2866         different modes.
2867
2868 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2869
2870         * emit-rtl.c (reverse_comparison): Remove.
2871         * rtl.h: Remove the corresponding prototype.
2872
2873 2005-03-24  James E Wilson  <wilson@specifixinc.com>
2874
2875         * doc/install.texi (--enable-altivec): Delete docs.
2876
2877 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
2878
2879         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
2880         SFmode and DFmode before reload when
2881         flag_unsafe_math_optimizations not enabled.
2882
2883 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
2884
2885         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
2886
2887         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
2888         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
2889
2890 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2891
2892         * configure.ac (enable-checking): Add 'runtime' option.
2893         * doc/install.texi (enable-checking): Document 'runtime' checking.
2894         * tsystem.h (gcc_assert, gcc_unreachable): Define.
2895         * config.in: Regenerated.
2896         * configure: Regenerated.
2897
2898 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
2899
2900         * optabs.h (enum optab_index): Remove OTI_llrint.
2901         (llrint_optab): Remove macro.
2902         * optabs.c (init_optabs): Remove llrint_optab initialization.
2903         * genopinit.c (optabs): Remove llrint_optab implementation.
2904         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
2905         using lrint_optab.
2906
2907 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
2908
2909         PR rtl-optimization/20532
2910         * simplify-rtx.c (simplify_binary_operation_1): Protect from
2911         overflow when adding coefficients for PLUS or MINUS.
2912         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
2913         two as multiplier.
2914
2915 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2916
2917         * langhooks.h (truthvalue_conversion): Remove.
2918         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
2919         LANG_HOOKS_TRUTHVALUE_CONVERSION.
2920         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
2921         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
2922         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2923
2924 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2925
2926         * params.def: Fix a typo.
2927         * config/mips/mips.c: Follow the spelling convensions.
2928         * doc/invoke.texi: Fix typos.
2929
2930 2005-03-18  Dale Johannese  <dalej@apple.com>
2931
2932         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
2933
2934 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
2935
2936         Fix PR tree-optimization/20601
2937
2938         * tree-ssa-pre.c (insert_aux): Add missing condition to
2939         constification.
2940
2941 2005-03-23  Ian Lance Taylor  <ian@airs.com>
2942
2943         * final.c (final_scan_insn): Don't remove no-op instructions.
2944         * reload1.c (reload): Remove simple no-op instructions even when
2945         not optimizing.
2946
2947 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
2948
2949         PR tree-optimization/20501
2950         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
2951         reporting that peeling for alignment is applied moved to...
2952         * (vect_analyze_data_refs_alignment): Here.
2953
2954 2005-03-23  Ian Lance Taylor  <ian@airs.com>
2955
2956         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
2957
2958 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2959
2960         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
2961         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
2962
2963 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
2964
2965         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
2966         imply that this is called once, independent of asms in code.
2967         Adjust to now being pased output and input lists.  Mention helper
2968         function decl_overlaps_hard_reg_set_p.
2969         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
2970         hook_tree_tree_identity and to take three trees, returning third.
2971         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
2972         prototype.
2973         * stmt.c: include hard-reg-set.h before tree.h.
2974         (decl_overlaps_hard_reg_set_p): New function, broken out from...
2975         (decl_conflicts_with_clobbers_p): Call
2976         decl_overlaps_hard_reg_set_p.
2977         (expand_asm_operands): Pass output and input lists in call to
2978         targetm.md_asm_clobbers.
2979         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
2980         hook_tree_tree_tree_tree_3rd_identity.
2981         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
2982         parameters.
2983         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
2984         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
2985         parameters, first two unused.
2986         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
2987         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
2988         in constraint letters and MOF is not mentioned as a asm-declared
2989         register in neither of the input and output lists.
2990
2991 2005-03-23  DJ Delorie  <dj@redhat.com>
2992
2993         * optabs.c (expand_binop): Make sure the first subword's result
2994         gets stored.
2995
2996 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2997
2998         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
2999         Call c_common_truthvalue_conversion rather than
3000         lang_hooks.truthvalue_conversion.
3001         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
3002         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
3003         c-typeck.c.
3004         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
3005         c_common_truthvalue_conversion.
3006         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
3007         c_parser_conditional_expression, c_parser_binary_expression): Call
3008         c_objc_common_truthvalue_conversion.
3009         * c-typeck.c (build_unary_op): Call
3010         c_objc_common_truthvalue_conversion.
3011         (build_conditional_expr): Do not call
3012         lang_hooks.truthvalue_conversion.
3013         (build_binary_op): Call c_common_truthvalue_conversion.
3014         (c_objc_common_truthvalue_conversion): Moved from
3015         c-objc-common.c.  Call default_function_array_conversion instead
3016         of default_conversion.
3017
3018 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3019
3020         * c-common.h (default_conversion): Remove.
3021         (perform_integral_promotions): Add.
3022         * c-tree.h (default_conversion): Add.
3023         * c-typeck.c (perform_integral_promotions): New, split out from
3024         default_conversion.
3025         * c-common.c (check_case_value): Use perform_integral_promotions,
3026         not default_conversion.
3027         (c_add_case_label): Don't continue processing case label after
3028         found to be pointer.
3029
3030 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
3031
3032         * gcc.c (do_spec_1): Do not add a -L path for a directory in
3033         the prefix list if we have already added a multilib directory
3034         based on that path.
3035         (main): Do not add MD_EXEC_PREFIX to the list of directories to
3036         search with -L.
3037
3038 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3039
3040         * reload1.c (indirect_symref_ok, reload_obstack): Make them
3041         static.
3042         * reload.h: Remove the prototype for indirect_symref_ok.
3043
3044         * reload1.c (indirect_symref_ok): Make it global.
3045         * reload.h: Add a prototype for indirect_symref_ok.
3046
3047 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3048
3049         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
3050         ashlhi3 expander.
3051
3052 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3053
3054         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
3055
3056 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
3057
3058         * c-opts.c (c_common_parse_file): Only start/end main source file
3059         if debug hooks says the writer wants it.
3060         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
3061         member.
3062         (xcoff_debug_hooks): Ditto.
3063         * debug.c (do_nothing_hooks): Ditto.
3064         * debug.h (gcc_debug_hooks): Ditto.
3065         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
3066         * sdbout.c (sdb_debug_hooks): Ditto.
3067         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
3068
3069 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
3070
3071         * doc/extend.texi: Deprecate C++ min/max operators.
3072
3073 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
3074
3075         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
3076         artificial original candidates.
3077
3078 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
3079             Jan Hubicka  <jh@suse.cz>
3080             Steven Bosscher <stevenb@suse.de>
3081
3082         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
3083         call cost based on argument sizes.
3084         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
3085         inlining.
3086         * params.def: (max-inline-inssn-single): Set to 450.
3087         (max-inline-insns-auto): Set to 90.
3088         (max-inline-insns-recursive): Set to 450
3089         (max-inline-insns-recursive-auto): Set to 450.
3090         (large-function-insns): Set to 2700.
3091         (inline-call-cost): New parameter.
3092         * tree-inline.c (estimate_move_cost): New function.
3093         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
3094         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
3095         based on arguments.
3096         * tree-inline.h (estimate_move_cost): Declare.
3097         * invoke.texi: (max-inline-inssn-single): Change default to 450.
3098         (max-inline-insns-auto): Change default to 90.
3099         (max-inline-insns-recursive): Change default to 450
3100         (max-inline-insns-recursive-auto): Change default to 450.
3101         (large-function-insns): Change default to 2700.
3102         (inline-call-cost): Document new parameter.
3103
3104 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
3105
3106         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
3107         (TARGET_DEFAULT): Delete.
3108         * config/i860/i860.opt: New file.
3109
3110 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
3111
3112         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
3113         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
3114         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
3115         (frv_sched_lookahead): Delete.
3116         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
3117         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
3118         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
3119         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
3120         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
3121         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
3122         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
3123         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
3124         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
3125         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
3126         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
3127         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
3128         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
3129         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
3130         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
3131         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
3132         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
3133         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
3134         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
3135         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
3136         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
3137         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
3138         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
3139         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
3140         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
3141         (frv_sched_lookahead): Delete.
3142         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
3143         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3144         (frv_handle_option): New function.  Move -mcpu= handling from...
3145         (frv_override_options): ...here.  Remove handling of other
3146         TARGET_OPTIONS.
3147         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
3148         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
3149         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
3150         and TARGET_NO_MULTI_CE.
3151         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
3152         !TARGET_VLIW_BRANCH.
3153         * config/frv/frv.opt: New file.
3154
3155 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3156
3157         * fold-const.c (fold_ternary): Take decomposed arguments of
3158         CALL_EXPR.
3159         (fold): Update a call to fold_ternary.
3160
3161         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
3162         * tree.h: Add corresponding prototypes.
3163
3164 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
3165
3166         PR target/20561
3167         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
3168         between jump table and its label.
3169         * final.c (shorten_branches): Handle notes in between ADDR_VEC
3170         resp. ADDR_DIFF_VEC and the label preceeding it.
3171         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
3172         is emitted in the right section.
3173
3174 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3175
3176         * fold-const.c (fold_unary, fold_binary): Update comments
3177         about arguments.
3178
3179 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
3180
3181         PR rtl-optimization/20527
3182         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
3183         REG_INC note, test that the register also isn't mentioned in PRED
3184         or SUCC.
3185
3186 2005-03-22  Ben Elliston  <bje@au.ibm.com>
3187
3188         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
3189         and definition.
3190
3191 2005-03-21  Mike Stump  <mrs@apple.com>
3192
3193         * varasm.c (default_assemble_visibility): Remove extra ().
3194
3195 2005-03-21  Roger Sayle  <roger@eyesopen.com>
3196
3197         PR middle-end/20557
3198         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
3199         to determine whether a block can be duplicated, rather than test
3200         whether the block contains noncopyable insns ourselves.
3201
3202 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3203
3204         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
3205         predicates.
3206
3207 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3208
3209         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
3210
3211 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3212
3213         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
3214         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
3215         * config/fr30/fr30.opt: New file.
3216
3217 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
3218
3219         Fix PR tree-optimization/20542
3220
3221         * tree-flow-inline.h (overlap_subvar): Move to here.
3222         * tree-ssa-operands.c: From here.
3223         * tree-flow.h (overlap_subvar): Declare.
3224         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
3225         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
3226         for variables with subvars.
3227
3228 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
3229
3230         PR middle-end/20177
3231         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
3232         * modulo-sched.c (const_iteration_count): Return on NULL
3233         pre-header.
3234         (print_node_sched_params): Return on NULL dump_file.
3235         (generate_reg_moves): Handle reg-anti dependencies and disregard
3236         closing branch when generating register moves.
3237         (sms_schedule): Mark the SMSed block dirty.
3238         * passes.c (rest_of_handle_sms): Call update_life_info for all
3239         basic-blocks.
3240         * testsuite/gcc.dg/20050321-1.c: New test.
3241
3242 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
3243
3244         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
3245         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
3246         movqi_internal): Likewise.
3247
3248 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
3249
3250         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
3251         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
3252         xtensa_b4const): Delete prototypes.
3253         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
3254         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
3255         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
3256         xtensa_extra_constraint): New prototypes.
3257         (add_operand, arith_operand, nonimmed_operand, mem_operand,
3258         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
3259         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
3260         move_operand, const_float_1_operand, fpmem_offset_operand,
3261         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
3262         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
3263         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
3264         argument type to HOST_WIDE_INT.
3265         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
3266         xtensa_mask_immediate): Likewise.
3267         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
3268         Likewise.  Also make these functions static.
3269         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
3270         (xtensa_const_ok_for_letter_p): New.
3271         (add_operand, arith_operand, nonimmed_operand, mem_operand,
3272         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
3273         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
3274         move_operand, const_float_1_operand, fpmem_offset_operand,
3275         branch_operator, ubranch_operator, boolean_operator): Move to
3276         predicates.md.
3277         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
3278         (xtensa_mem_offset): Change return type to bool.
3279         (xtensa_extra_constraint): New.
3280         (gen_int_relational): Update type of const_range_p function pointer.
3281         Use xtensa_b4const_or_zero.
3282         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
3283         xtensa_const_ok_for_letter_p.  Update comments.
3284         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
3285         (PREDICATE_CODES): Delete.
3286         * config/xtensa/xtensa.md: Include predicates.md.
3287         * config/xtensa/predicates.md: New file.
3288
3289 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3290
3291         * config/v850/v850-protos.h: Remove the prototypes for
3292         reg_or_int9_operand, reg_or_const_operand,
3293         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
3294         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
3295         movsi_source_operand, power_of_two_operand,
3296         not_power_of_two_operand, special_symbolref_operand,
3297         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
3298         register_is_ok_for_epilogue.
3299         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
3300         reg_or_int9_operand, reg_or_const_operand,
3301         call_address_operand, special_symbolref_operand,
3302         movsi_source_operand, power_of_two_operand,
3303         not_power_of_two_operand, register_is_ok_for_epilogue,
3304         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
3305         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
3306         predicates.md.
3307         * config/v850/v850.h (PREDICATE_CODES): Remove.
3308         * config/v850/v850.md: Include predicates.md.
3309         * config/v850/predicates.md: New.
3310
3311 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
3312
3313         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
3314         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
3315         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
3316         (itoolsdir, itoolsdatadir): Move definition above new first use.
3317         (install-itoolsdirs): New rule.
3318         (install-mkheaders): Depend on install-itoolsdirs, not
3319         install-include-dir.
3320
3321 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3322
3323         * tree-into-ssa.c: Remove obsolete comments.
3324
3325 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
3326
3327         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
3328         unrolling if -fpeel-loops is specified, too.
3329         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3330         Remove superfluous check for flag_unroll_loops.
3331
3332 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
3333
3334         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
3335         (lrint_optab, llrint_optab): Define corresponding macros.
3336         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
3337         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
3338         pattern and llrint_optab using llrintdi2 patterns.
3339         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
3340         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
3341         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
3342         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
3343         flag_unsafe_math_optimizations is set.
3344
3345 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
3346
3347         * combine.c (combine_simplify_rtx, simplify_if_then_else,
3348         simplify_logical, if_then_else_cond, known_cond,
3349         simplify_comparison): Adjust calls to reverse_comparison.
3350         Don't use combine_reversed_comparison_code).
3351         (combine_reversed_comparison_code): Remove.
3352         (reversed_comparison): Using reversed_comparison_code, move it...
3353         * jump.c (reversed_comparison): ... here.
3354         * rtl.h (reversed_comparison): Add prototype.
3355
3356 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3357
3358         * builtins.c (fold_builtin): Take decomposed arguments of
3359         CALL_EXPR.
3360         * fold-const.c (fold_ternary): Update a call to fold_builtin.
3361         * gimplify.c (gimplify_call_expr): Likewise.
3362         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
3363         * tree.h: Update the prototype of fold_builtin.
3364
3365 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
3366
3367         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
3368         * rtlhooks.c (gen_lowpart_no_emit_general): New.
3369         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
3370         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
3371         * simplify-rtx.c (simplify_binary_operation_1): Use it.
3372
3373 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3374
3375         * builtins.c (fold_builtin_1): Take decomposed arguments of
3376         CALL_EXPR.
3377         (fold_builtin): Update a call to fold_builtin_1.
3378
3379 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
3380
3381         PR other/20564
3382         * gcov.c (output_lines): Only output function block summary when
3383         outputting branch information.
3384         * doc/gcov.texi: Document format of preamble and additional block
3385         information lines.
3386
3387 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3388
3389         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
3390         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
3391         the defaults false if BITS_PER_UNIT != 8.
3392         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
3393         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
3394         than BITS_PER_UNIT != 8.
3395         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
3396         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
3397         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
3398         #undefs.
3399         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
3400         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
3401
3402 2005-03-20  Roger Sayle  <roger@eyesopen.com>
3403
3404         PR middle-end/20539
3405         * fold-const.c (fold_binary): Fix type mismatch between
3406         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
3407         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
3408         for non-truth-valued expressions.
3409
3410         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
3411         and FUNCTION_DECL in the main switch.
3412         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
3413         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
3414         we also need to convert their operands to match.
3415         <TRUTH_NOT_EXPR>: Likewise.
3416
3417 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
3418
3419         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
3420         diagnostic without checking whether an lvalue.
3421         * c-common.h (lvalue_p): Remove.
3422         (enum lvalue_use): Update comment.
3423         (lvalue_or_else): Replace by lvalue_error.
3424         * c-typeck.c (lvalue_p): Make static.
3425         (lvalue_or_else): New.  Call lvalue_error.
3426
3427 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
3428
3429         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
3430         (function_arg_advance): Use rs6000_parm_start.
3431         (function_arg, rs6000_arg_partial_bytes): Likewise.
3432
3433 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
3434
3435         * c-common.c (check_case_value): Adjust comment about stripping
3436         NOPs.
3437         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
3438         * c-typeck.c (default_conversion, convert_arguments,
3439         build_modify_expr, convert_for_assignment, store_init_value,
3440         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
3441         manually.  Remove inaccurate comments.
3442
3443 2005-03-20  Roger Sayle  <roger@eyesopen.com>
3444             Joseph S. Myers  <joseph@codesourcery.com>
3445
3446         * varasm.c (do_assemble_alias): Restore comment describing function.
3447         Annotate the target parameter as potentially unused.
3448
3449 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3450
3451         PR target/18551
3452         * config/avr/avr.c (avr_output_function_prologue): Do not use
3453         current_function_name() in a label, use a local label instead.
3454
3455 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
3456
3457         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
3458         flag_finite_math_only, not flag_unsafe_math_optimizations.
3459
3460 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3461
3462         * builtins.c (fold_builtin_1): Update a call to
3463         targetm.fold_builtin.
3464         * hooks.c (hook_tree_tree_bool_null): Rename to
3465         hook_tree_tree_tree_bool_null.  Take one more argument of type
3466         tree.
3467         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
3468         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
3469         hook_tree_tree_tree_bool_null.
3470         * target.h (gcc_target): Update the prototype of fold_builtin.
3471         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
3472         arguments of CALL_EXPR.
3473         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
3474         new prototype.
3475
3476 2005-03-20  Jan Hubicka  <jh@suse.cz>
3477
3478         * cgraph.h (cgraph_node): Add prev_clone pointer.
3479         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
3480         (cgraph_clone_node): Produce doubly linked chain.
3481
3482 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
3483
3484         * c-common.c (handle_aligned_attribute, check_function_sentinel,
3485         get_nonnull_operand, handle_sentinel_attribute,
3486         check_function_arguments_recurse): Do not strip NOPS from
3487         INTEGER_CSTs.
3488         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
3489         Likewise.
3490         * c-format.c (get_constant): Likewise.
3491         * c-parser.c (c_parser_postfix_expression): Likewise.
3492         * c-typeck.c (set_init_index): Likewise.
3493         (convert_arguments): Don't check for NOP_EXPR containing integer
3494         constant.
3495
3496 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3497
3498         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
3499         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
3500         Take decomposed arguments of CALL_EXPR.
3501         (fold_builtin_1): Update calls to the functions mentioned
3502         above.
3503
3504 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
3505
3506         * c-decl.c (check_bitfield_type_and_width): Require bit-field
3507         width to have integer type.
3508         (build_enumerator): Require enumerator value to have integer type.
3509
3510 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
3511
3512         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
3513         to __builtin_inff.
3514
3515 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
3516
3517         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
3518         std=iso9899:199x): Correct descriptions.
3519
3520 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
3521
3522         * config.gcc: Consistently use solaris2.1[0-9]* instead of
3523         solaris2.1[0-9].
3524
3525 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3526
3527         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
3528         of CALL_EXPR.
3529         (expand_builtin_memcpy, fold_builtin_1): Update calls to
3530         fold_builtin_memcpy.
3531
3532         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
3533         arguments of CALL_EXPR.
3534         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
3535         fold_builtin_found, fold_builtin_1): Update calls to
3536         fold_trunc_transparent_mathfn.
3537
3538 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3539
3540         PR middle-end/20493
3541         * fold-const.c (fold_widened_comparison): Don't optimize casts of
3542         function pointers on targets that require function pointer
3543         canonicalization.
3544         (fold_sign_changed_comparison): Likewise.
3545
3546 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
3547
3548         * combine.c (try_combine): When changing the mode of a hard reg, make
3549         sure that doing so is valid.
3550
3551 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
3552
3553         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
3554         (TARGET_HANDLE_OPTION): Override default.
3555         (avr_handle_option): New function.
3556         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
3557         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
3558         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
3559         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
3560         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
3561         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
3562         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
3563         (TARGET_OPTIONS): Delete.
3564         * config/avr/avr.opt: New file.
3565
3566 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3567
3568         * config/m32r/m32r-protos.h: Remove the prototypes for
3569         call_address_operand, symbolic_operand, seth_add3_operand,
3570         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
3571         reg_or_uint16_operand, reg_or_cmp_int16_operand,
3572         two_insn_const_operand, move_src_operand,
3573         move_double_src_operand, move_dest_operand,
3574         eqne_comparison_operator, signed_comparison_operator,
3575         large_insn_p, conditional_move_operand, carry_compare_operand,
3576         m32r_block_immediate_operand, extend_operand,
3577         reg_or_eq_int16_operand, int8_operand, and
3578         reg_or_zero_operand.
3579         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
3580         seth_add3_operand, int8_operand, cmp_int16_operand,
3581         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
3582         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
3583         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
3584         move_double_src_operand, move_dest_operand,
3585         eqne_comparison_operator, signed_comparison_operator,
3586         extend_operand, small_insn_p, large_insn_p,
3587         conditional_move_operand, carry_compare_operand,
3588         m32r_block_immediate_operand): Move to predicates.md.
3589         (MAX_MOVE_BYTES): Move to m32r.h.
3590         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
3591         * config/m32r/m32r.md: Include predicates.md.
3592         * config/m32r/predicates.md: New.
3593
3594 2005-03-18  James E Wilson  <wilson@specifixinc.com>
3595
3596         PR c++/19769
3597         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
3598         origin.
3599
3600 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3601
3602         * config/mn10300/mn10300-protos.h: Remove the prototypes for
3603         call_address_operand, const_8bit_operand.
3604         * config/mn10300/mn10300.c (call_address_operand,
3605         const_8bit_operand, const_1f_operand): Move to predicates.md.
3606         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
3607         * config/mn10300/mn10300.md: Include predicates.md.
3608         * config/mn10300/predicates.md: New.
3609
3610 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
3611
3612         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
3613         declarations in diagnostics and %E for identifiers, not %s.
3614
3615 2005-03-18  Jan Hubicka  <jh@suse.cz>
3616             Dale Johannesen  <dalej@apple.com>
3617
3618         * basic-block.h (scale_bbs_frequencies_int,
3619         scale_bbs_frequencies_gcov_type): Declare.
3620         * cfg.c (RDIV): New macro.
3621         (update_bb_frequency_for_threading): Fix.
3622         * basic-block.h (scale_bbs_frequencies_int,
3623         scale_bbs_frequencies_gcov_type): New.
3624         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
3625         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
3626         scale_bbs_frequencies_int.
3627         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
3628
3629 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3630
3631         * config/m32r/m32r-protos.h: Remove the prototypes for
3632         call_address_operand, symbolic_operand, seth_add3_operand,
3633         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
3634         reg_or_uint16_operand, reg_or_cmp_int16_operand,
3635         two_insn_const_operand, move_src_operand,
3636         move_double_src_operand, move_dest_operand,
3637         eqne_comparison_operator, signed_comparison_operator,
3638         large_insn_p, conditional_move_operand, carry_compare_operand,
3639         m32r_block_immediate_operand, extend_operand,
3640         reg_or_eq_int16_operand, int8_operand, and
3641         reg_or_zero_operand.
3642         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
3643         seth_add3_operand, int8_operand, cmp_int16_operand,
3644         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
3645         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
3646         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
3647         move_double_src_operand, move_dest_operand,
3648         eqne_comparison_operator, signed_comparison_operator,
3649         extend_operand, small_insn_p, large_insn_p,
3650         conditional_move_operand, carry_compare_operand,
3651         m32r_block_immediate_operand): Move to predicates.md.
3652         (MAX_MOVE_BYTES): Move to m32r.h.
3653         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
3654         * config/m32r/m32r.md: Include predicates.md.
3655         * config/m32r/predicates.md: New.
3656
3657         * config/pa/pa-protos.h: Add prototypes for magic_milli and
3658         shadd_constant_p.
3659         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
3660         symbolic_operand, symbolic_memory_operand,
3661         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
3662         indexed_memory_operand, move_dest_operand, move_src_operand,
3663         prefetch_cc_operand, prefetch_nocc_operand,
3664         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
3665         arith_operand, arith11_operand, pre_cint_operand,
3666         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
3667         ireg_operand, int5_operand, uint5_operand, int11_operand,
3668         uint32_operand, arith5_operand, and_operand, ior_operand,
3669         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
3670         pc_or_label_operand, div_operand, plus_xor_ior_operator,
3671         shadd_operand, movb_comparison_operator,
3672         cmpib_comparison_operator): Move to predicates.md.
3673         (magic_milli, shadd_constant_p): Make it extern.
3674         * config/pa/pa.h (PREDICATE_CODES): Remove.
3675         * config/pa/pa.md: Include predicates.md.
3676         * config/pa/predicates.md: New.
3677
3678         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
3679         predicate.
3680
3681 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3682
3683         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
3684         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
3685         config/alpha/freebsd.h, config/alpha/linux.h,
3686         config/alpha/netbsd.h, config/alpha/osf5.h,
3687         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
3688         config/h8300/h8300-protos.h, config/h8300/h8300.c,
3689         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
3690         doc/cppopts.texi: Update copyright.
3691
3692 2005-03-18  Jan Hubicka  <jh@suse.cz>
3693
3694         PR middle-end/20225
3695         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
3696         too late.
3697         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
3698         called too late.
3699
3700 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3701
3702         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
3703         VEC_safe_push.
3704
3705 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
3706
3707         * combine.c (gen_binary): Remove.
3708         (known_cond, simplify_shift_const, find_split_point,
3709         combine_simplify_rtx, simplify_if_then_else, simplify_set,
3710         simplify_logical, expand_field_assignment, extract_left_shift,
3711         force_to_mode, if_then_else_cond, apply_distributive_law,
3712         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
3713         simplify_comparison, reversed_comparison): Replace with
3714         simplify_gen_binary, simplify_gen_relational or
3715         distribute_and_simplify_rtx.
3716         (distribute_and_simplify_rtx): New function.
3717
3718 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
3719             Paolo Bonzini  <gcc.gnu.org>
3720
3721         * calls.c (setjmp_call_p, special_function_p): Update comments
3722         at the head of the functions.
3723
3724 2005-03-18  Jan Hubicka  <jh@suse.cz>
3725
3726         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
3727
3728         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
3729         function body should be released; do not proactively release function
3730         bodies in non-unit-at-a-time mode.
3731
3732 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
3733
3734         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
3735         mno-fp-ret-in-387 multilib variants.
3736
3737 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
3738
3739         * common.opt (m): Remove.
3740         * opts.c (handle_option): Pass 'm' options to set_target_switch if
3741         table lookup fails.
3742         (common_handle_option): Remove OPT_m case.
3743
3744 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3745
3746         * builtins.c (fold_builtin_bitop): Take decomposed arguments
3747         of CALL_EXPR.
3748         (fold_builtin_1): Update a call to fold_builtin_bitop.
3749
3750         * builtins.c (fold_builtin_signbit): Take decomposed arguments
3751         of CALL_EXPR.
3752         (fold_builtin_1): Update a call to fold_builtin_signbit.
3753
3754 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
3755
3756         PR tree-optimization/20474
3757         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
3758         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
3759
3760 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3761
3762         * config/h8300/h8300-protos.h: Remove prototypes for
3763         general_operand_src, general_operand_dst, single_one_operand,
3764         single_zero_operand, call_insn_operand,
3765         two_insn_adds_subs_operand, small_call_insn_operand,
3766         jump_address_operand, bit_operand, bit_memory_operand,
3767         stack_pointer_operand, const_int_gt_2_operand,
3768         const_int_ge_8_operand, const_int_qi_operand,
3769         const_int_hi_operand, incdec_operand, bit_operator,
3770         nshift_operator, eqne_operator, gtle_operator,
3771         gtuleu_operator, iorxor_operator.
3772         Add prototypes for h8sx_shift_type h8sx_classify_shift and
3773         h8300_ldm_stm_parallel.
3774         * config/h8300/h8300.c (h8sx_shift_type,): Move to
3775         h8300-protos.h.
3776         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
3777         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
3778         (h8300_ldm_stm_parallel): Make it extern.
3779         (h8300_ldm_parallel, h8300_stm_parallel,
3780         h8300_return_parallel, general_operand_src,
3781         general_operand_dst, h8300_dst_operand, h8300_src_operand,
3782         nibble_operand, reg_or_nibble_operand, single_one_operand,
3783         single_zero_operand, call_insn_operand,
3784         two_insn_adds_subs_operand, small_call_insn_operand,
3785         jump_address_operand, bit_operand, bit_memory_operand,
3786         stack_pointer_operand, const_int_gt_2_operand,
3787         const_int_ge_8_operand, const_int_qi_operand,
3788         const_int_hi_operand, incdec_operand, eqne_operator,
3789         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
3790         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
3791         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
3792         nshift_operator): Move to predicates.md.
3793         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
3794         * config/h8300/h8300.md: Include predicates.md.
3795         * config/h8300/predicates.md: New.
3796
3797 2005-03-17  Richard Henderson  <rth@redhat.com>
3798
3799         * config.gcc (ia64*-*-hpux*): Add extra_options.
3800         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
3801         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3802         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
3803         (ia64_tls_size_string, ia64_tune_string): Remove.
3804         (ia64_tune): Init to PROCESSOR_ITANIUM2.
3805         (TARGET_DEFAULT_TARGET_FLAGS): New.
3806         (TARGET_HANDLE_OPTION): New.
3807         (ia64_override_options): Move options parsing ...
3808         (ia64_handle_option): ... here.  New.
3809         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
3810         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
3811         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
3812         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
3813         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
3814         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
3815         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
3816         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
3817         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
3818         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
3819         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
3820         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
3821         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
3822         TARGET_EARLY_STOP_BITS): Remove.
3823         (TARGET_ILP32): Default false.
3824         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
3825         (enum ia64_inline_type): New.
3826         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3827         * config/ia64/ia64.md: Update for new definitions of
3828         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
3829         * config/ia64/ia64.opt: New file.
3830         * config/ia64/ilp32.opt: New file.
3831
3832 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3833
3834         PR target/18380
3835         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
3836
3837 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3838
3839         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
3840         instead of MASK_H8300S.
3841         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
3842         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
3843         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
3844         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
3845         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
3846         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
3847         TARGET_SWITCHES): Remove.
3848         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
3849         TARGET_H8300SX.
3850         * config/h8300/h8300.opt: New.
3851
3852         * config/alpha/alpha.opt, config/arc/arc.opt,
3853         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
3854         notices.
3855
3856 2005-03-17  Ian Lance Taylor  <ian@airs.com>
3857
3858         * gmon.c: Remove.
3859
3860 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
3861
3862         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
3863         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
3864         (TARGET_HANDLE_OPTION): Override default.
3865         (arc_handle_option): New function.
3866         (arc_init): Remove code to set arch_cpu_string.
3867         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
3868         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
3869         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
3870         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
3871         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
3872         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
3873         (arc_rodata_string, TARGET_OPTIONS): Delete.
3874         * config/arc/arc.opt: New file.
3875
3876 2005-03-17  Richard Henderson  <rth@redhat.com>
3877
3878         * doc/extend.texi (Weak Pragmas): New section.
3879         (attribute alias): Clarify that target must be in the same
3880         translation unit.
3881
3882 2005-03-17  Richard Henderson  <rth@redhat.com>
3883
3884         * config/alpha/alpha.opt: New file.
3885         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
3886         of alpha_cpu.
3887         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
3888         alpha_fprm_string, alpha_fptm_string): Make static.
3889         (alpha_tls_size_string): Remove.
3890         (alpha_handle_option): New.
3891         (override_options): Update for alpha_cpu/alpha_tune split.
3892         (alpha_file_start): Likewise.
3893         (TARGET_DEFAULT_TARGET_FLAGS): New.
3894         (TARGET_HANDLE_OPTION): New.
3895         * config/alpha/alpha.h (alpha_tune): Declare.
3896         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
3897         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
3898         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
3899         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
3900         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
3901         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
3902         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
3903         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
3904         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
3905         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
3906         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
3907         (TARGET_DEFAULT): Remove MASK_FP.
3908         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
3909         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
3910         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
3911         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
3912         alpha_tls_size_string): Remove.
3913         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
3914         (attribute tune): Rename from attribute cpu.
3915         * config/alpha/ev4.md: Update to match.
3916         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
3917         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
3918         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
3919         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
3920         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
3921         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
3922
3923 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
3924
3925         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
3926         and return without creating new state if before_nops_num is nonzero.
3927         * config/ia64/ia64.md (first_insn): New attribute.
3928         (alloc): Set it to yes.
3929
3930 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3931
3932         * tree-vectorizer.c (new_vec_stmt_info): Initialize
3933         STMT_VINFO_SUBVARS to NULL.
3934         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3935
3936 2005-03-16 Dale Johannesen  <dalej@apple.com>
3937
3938         * rtlanal.c (find_first_parameter_load):  Rewrite to
3939         return actual first param load or the call if none,
3940         instead of first in block, when not all loads exist.
3941
3942 2005-03-16  Roger Sayle  <roger@eyesopen.com>
3943
3944         * optabs.c (expand_copysign_absneg): Make static.
3945         * optabs.h (expand_copysign_absneg): Delete prototype.
3946         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
3947
3948 2005-03-16  Richard Henderson  <rth@redhat.com>
3949
3950         PR middle-end/15700
3951         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
3952         (alias_pairs): Rename from output_defs.
3953         (find_decl_and_mark_needed): Split out from assemble_alias.
3954         (do_assemble_alias): New.
3955         (assemble_output_def): Remove.
3956         (finish_aliases_1, finish_aliases_2): New.
3957         (process_pending_assemble_output_defs): Remove.
3958         (assemble_alias): Defer aliases for which we don't yet have a
3959         non-external decl for the target symbol.
3960         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
3961         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
3962         * toplev.c (compile_file): Use finish_aliases_2 instead of
3963         process_pending_assemble_output_defs.
3964         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
3965         (process_pending_assemble_output_defs): Remove.
3966
3967 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3968
3969         Fix PR tree-optimization/20489
3970
3971         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
3972         for empty structures.
3973
3974 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3975
3976         Fix PR tree-optimization/20490
3977
3978         * tree-ssa-pre.c (create_expression_by_pieces): Use
3979         force_gimple_operand on result of fold.
3980
3981 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
3982
3983         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
3984         of closing parenthesis.
3985
3986 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3987
3988         * builtins.c (expand_movstr): Update a call to
3989         fold_builtin_strcpy.
3990         (expand_builtin_strncpy): Update a call to
3991         fold_builtin_strncpy.
3992         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
3993         arguments of CALL_EXPR.
3994         (fold_builtin_1): Update calls to fold_builtin_strcpy and
3995         fold_builtin_strncpy.
3996         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
3997         * tree.h: Update the prototypes of fold_builtin_strcpy and
3998         fold_builtin_strncpy.
3999
4000 2005-03-16  Steven Bosscher  <stevenb@suse.de>
4001             Dorit Naishlos  <dorit@il.ibm.com>
4002
4003         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
4004         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
4005         error.
4006
4007 2005-03-16  Steven Bosscher  <stevenb@suse.de>
4008
4009         * tree-inline.c (walk_type_fields, walk_tree,
4010         walk_tree_without_duplicates): Move from here...
4011         * tree.c: ...to here.
4012
4013 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
4014
4015         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
4016         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
4017         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
4018         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
4019         (version): Define using $(BASEVER_c).
4020         (Makefile, config.status, build/gcov-iov.o): No longer depends on
4021         version.c.
4022         (version.o): Depend on version files; add custom generation command.
4023         (prefix.o): Define BASEVER on command line.
4024         (s-iov): Depend on version files; adjust command.
4025         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
4026         Add gcc-vers.texi.
4027         (gcc-vers.texi): New rule.
4028         (doc/%.info, doc/%.dvi): Add -I . to command line.
4029         (doc/gccinstall.dvi): Likewise.
4030         (PACKAGE): Delete.  All uses replaced with "gcc".
4031         * aclocal.m4: Do not include gcc-version.m4.
4032         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
4033         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
4034         Set is_release based on contents of DEV-PHASE.
4035         Set gcc_version based on contents of BASE-VER.
4036         Define WIN32_REGISTRY_KEY only if the user overrode the default.
4037         * config.in, configure: Regenerate.
4038         * gccbug.in: Determine version of GCC in use at runtime.
4039         * gcov-iov.c: Get version number and development phase from
4040         command line, not by including version.c.
4041         * intl.c: Replace all uses of PACKAGE with "gcc".
4042         * libada-mk.in: Delete unused "gcc_version" variable.
4043         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
4044         * version.c: (VERSUFFIX): New hook for redistributors; adjust
4045         commentary to match.
4046         (version_string): Put together from pieces.
4047         * config/alpha/x-vms: Do not use $(gcc_version).
4048         * config/i386/t-nwld: Likewise.
4049         * doc/include/gcc-common.texi: Include gcc-vers.texi for
4050         version-GCC and DEVELOPMENT.
4051
4052 2005-03-15  Roger Sayle  <roger@eyesopen.com>
4053
4054         PR tree-optimization/17454
4055         * tree.c (tree_size): Add case for TREE_BINFO.
4056         * fold-const.c (fold_checksum_tree): Only clear the overloaded
4057         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
4058
4059 2005-03-15  Roger Sayle  <roger@eyesopen.com>
4060
4061         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
4062         op1 whilst expanding the signed widenening multiply variant.
4063
4064 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
4065
4066         * toplev.c (display_target_options): Avoid unused variable warning if
4067         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
4068         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
4069         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
4070         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
4071         (mips_isa_info): New variable.
4072         (mips_parse_cpu): Remove the first argument and leave the caller
4073         to report errors.
4074         (TARGET_HANDLE_OPTION): Override default.
4075         (mips_handle_option): New function.  Move option validation code from...
4076         (override_options): ...here.  Update calls to mips_parse_cpu.
4077         * config/mips/mips.h (mips_arch_string, mips_tune_string)
4078         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
4079         (SUBTARGET_TARGET_OPTIONS): Delete.
4080         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
4081         (mno-flush-func, mtune=): New options.
4082
4083 2005-03-15  Roger Sayle  <roger@eyesopen.com>
4084             Richard Henderson  <rth@redhat.com>
4085
4086         * real.c (c4x_single_format, c4x_extended_format): Provide values
4087         for signbit_ro for c4x's single and extended floating point formats.
4088         * optabs.c (expand_copysign): Use the floating point format's
4089         signbit_ro for expanding via expand_copysign_absneg, and it's
4090         signbit_rw field for expanding via expand_copysign_bit.
4091
4092 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
4093
4094         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
4095         known_alignment_for_access_p.
4096         (known_alignment_for_access_p): New.
4097         (do_peeling_for_alignment): Field made int instead of bool and renamed
4098         to peeling_for_alignment.
4099         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
4100         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
4101         functionality used to be in vect_analyze_operations.
4102         (vect_analyze_operations): Code to determine vectorization factor was
4103         moved to vect_determine_vectorization_factor.
4104         (vect_enhance_data_refs_alignment): Update to correct alignment when it
4105         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
4106         factor.
4107         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
4108         be part of vect_analyze_operations).
4109         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
4110         creating the guard condition, as the number of iterations may be
4111         constant.
4112         (slpeel_tree_peel_loop_to_edge): Use new name of
4113         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
4114         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
4115         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
4116         (vect_do_peeling_for_alignment): Use fold.
4117         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
4118
4119         (vect_update_inits_of_dr): Renamed to
4120         vect_update_init_of_dr.
4121         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
4122         (vectorizable_store): Fix assertion to use == instead of =.
4123
4124 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
4125
4126         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
4127         call_used_regs for wCG registers.
4128
4129 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
4130
4131         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
4132         for non-offsettable memory references to cope with outstanding reload
4133         replacements, take 2.
4134
4135 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
4136
4137         PR target/18668
4138         * config/i386/i386.h (x86_fisttp): New.
4139         (TARGET_FISTTP): New macro.
4140         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
4141         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
4142         instruction when fisttp flag is set.
4143         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
4144
4145         * config/i386/i386.md (type attribute): Add fisttp.
4146         (unit attribute): Set to i387 for fisttp type.
4147         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
4148         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
4149         TARGET_FISTTP.
4150         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
4151         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
4152         macros.
4153         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
4154         patterns for TARGET_FISTTP.  Enable patterns for
4155         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
4156         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
4157         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
4158         implement fisttp x87 insn.
4159         (fix_trunc*_i387_fisttp splitters): New patterns.
4160         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
4161         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
4162         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
4163         clobber.
4164         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
4165         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
4166         Implement using mode macros. Disable patterns for TARGET_FISTTP.
4167         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
4168         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
4169         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
4170         Disable patterns for TARGET_FISTTP.
4171         (fix_trunc*_i387 splitters): Implement usign mode macros.
4172         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
4173         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
4174         (fix_trunx*_sse peephole2s): Implement using mode macros.
4175
4176 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
4177
4178         PR rtl-optimization/20291
4179         * combine.c (try_combine): If splitting fails, re-try with
4180         original combined pattern, i.e. before clobber stripping.
4181
4182 2005-03-14  Eric Christopher  <echristo@redhat.com>
4183
4184         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
4185         STACK_GROWS_DOWNWARD.
4186
4187 2005-03-14  Roger Sayle  <roger@eyesopen.com>
4188
4189         * real.h (struct real_format): Split the signbit field into two
4190         two fields, signbit_ro and signbit_rw.
4191         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
4192         mips_double_format, ieee_extended_motorola_format,
4193         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
4194         ieee_extended_intel_128_format, ibm_extended_format,
4195         mips_extended_format, ieee_quad_format, mips_quad_format,
4196         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
4197         i370_double_format, c4x_single_format, c4x_extended_format,
4198         real_internal_format): Update initializers for new field.
4199         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
4200         real_format structure.
4201         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
4202         field of the real_format structure.
4203
4204 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
4205
4206         Fix PR tree-optimization/20458
4207
4208         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
4209         DECL_EXTERNAL on STRUCT_FIELD tags.
4210         (clear_call_clobbered): Ditto.
4211         * tree-ssa-operands.c (note_addressable): Make sure the original
4212         variable doesn't slip into the addressable list if we have
4213         subvars.
4214         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
4215         tags too.
4216
4217 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
4218
4219         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
4220         (-fwide-exec-charset): Likewise.
4221         (-finput-charset): Likewise.
4222         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
4223         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
4224         * c.opt (Wnormalized): New.
4225
4226 2005-03-14  Devang Patel  <dpatel@apple.com>
4227
4228         * doc/invoke.texi: Add reference to Visibility document.
4229
4230 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
4231
4232         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
4233         MASK_SPLIT_ADDRESSES.
4234         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
4235         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
4236         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
4237         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
4238         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
4239         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
4240         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
4241         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
4242         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
4243         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
4244         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
4245         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
4246         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
4247         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
4248         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
4249         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
4250         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
4251         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
4252         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
4253         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
4254         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
4255         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
4256         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
4257         (TARGET_EXPLICIT_RELOCS): Delete.
4258         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
4259         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
4260         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
4261         (override_options): Set MASK_LONG64 if -mint64 is given and no
4262         -mlongXX option is.  Complain about -mint64 -mlong32.
4263         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
4264         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
4265         * config/mips/mips.opt: New file.
4266
4267 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
4268
4269         * config.gcc (extra_options): New variable for listing option files.
4270         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
4271         * configure.ac (extra_opt_files): New AC_SUBST variable.
4272         (tm_file_list, tm_include_list): Include options.h first.
4273         * configure: Regenerate.
4274         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
4275         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
4276         (s-options-h): New rule.
4277         (options.h): Depend on it.
4278         (TEXI_GCCINT_FILES): Add options.texi.
4279         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
4280         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
4281         * target.h (gcc_target): Add default_target_flags and handle_option.
4282         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
4283         (TARGET_HANDLE_OPTION): New macros.
4284         (TARGET_INITIALIZER): Include them.
4285         * opt-functions.awk (opt_args, nth_arg): New functions.
4286         (switch_flags): Handle the "Target" flag.
4287         (var_args): Delete.
4288         (var_name): Use opt_args and nth_arg.
4289         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
4290         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
4291         macros for the "Mask" and "InverseMask" options.
4292         * opts.h (cl_var_cond): New enum.
4293         (cl_option): Replace the "has_set_value" and "set_value" fields with
4294         "var_cond" and "var_value".
4295         (CL_TARGET): New macro.
4296         (option_enabled, print_filtered_help): Declare.
4297         (decode_options): Move definition.
4298         * opts.c (handle_option): Search for the original option before
4299         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
4300         var_cond and var_value fields.  Use targetm.handle_option to handle
4301         target options.
4302         (decode_options): Set target_flags to targetm.default_target_flags.
4303         (print_filtered_help): Make global.  Handle CL_TARGET.
4304         (option_enabled): New function.
4305         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
4306         (display_target_options, set_target_switch, print_switch_values)
4307         (default_pch_valid_p): Guard uses of target_switches with
4308         #ifdef TARGET_SWITCHES.  Also...
4309         (display_target_options): Display the CL_TARGET entries in cl_options.
4310         (set_target_option): Don't complain about the "" option when
4311         TARGET_SWITCHES is undefined.
4312         (print_switch_values): Use option_enabled.
4313         (default_pch_valid_p): Check cl_options[] when looking for something
4314         that has changed the value of target_flags.
4315         * c.opt: Remove documentation from top of file.
4316         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
4317         * doc/sourecebuild.texi: Refer to the new options documentation
4318         instead of c.opt.  Document machine-specific .opt files.
4319         * doc/tm.texi (target_flags): Say that this variable is declared
4320         by options.h.
4321         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
4322         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
4323         an alternative.
4324         * doc/options.texi: New file.
4325
4326 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
4327
4328         PR middle-end/18628
4329         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
4330         register.
4331
4332 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
4333
4334         PR c++/20280
4335         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
4336         temporary variable of pointer type if an lvalues is required.
4337         (gimplify_modify_expr_rhs): Request an rvalue from it.
4338         (gimplify_expr): Pass fallback on.
4339
4340 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
4341
4342         * cfgbuild.c: Update comments.
4343
4344 2005-03-14  Roger Sayle  <roger@eyesopen.com>
4345
4346         PR rtl-optimization/17236
4347         * optabs.c (expand_doubleword_mult): New helper function split out
4348         from expand_binop.  Permute the order in which instructions are
4349         emitted to minimize the number of simultaneously live registers.
4350         (expand_binop): Call expand_doubleword_mult to synthesize a double
4351         word multiplication.
4352
4353 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
4354
4355         * basic-block.h: Update the prototypes of cached_make_edge and
4356         rtl_make_eh_edge.
4357         * cfg.c (cached_make_edge): Take edge_cache representing one
4358         row of the adjacency matrix of edges.
4359         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
4360         (make_edges): Initialize edge_cache to represent one row of
4361         the adjacency matrix of edges.
4362
4363 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
4364
4365         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
4366         New functions.
4367         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
4368         Remove unused removed_phis variable.
4369         (conditional_replacement): Use build1/build2.
4370         (abs_replacement): Use last_and_only_stmt and build1/build2.
4371
4372 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
4373
4374         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
4375         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
4376         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
4377         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
4378         * c-common.c (handle_novops_attribute): New function.
4379         (c_common_attribute_table): Add "no vops" entry.
4380         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
4381         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
4382         * tree-ssa-operands.c (get_call_expr_operands): Do not
4383         create virtual operands for calls with ECF_NOVOPS flag.
4384         * tree.h (DECL_IS_NOVOPS): New macro.
4385         (struct tree_decl): Add novops_flag.
4386         (ECF_NOVOPS): New constant.
4387
4388 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
4389
4390         PR target/17688
4391         * config/i386/i386.c (x86_use_himode_fiop): New.
4392         (x86_use_simode_fiop): Rename from x86_use_fiop.
4393         * config/i386/i386.h (x86_use_himode_fiop): Declare.
4394         (TARGET_USE_HIMODE_FIOP): New.
4395         (x86_use_simode_fiop): Rename from x86_use_fiop.
4396         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
4397
4398         * config/i386/i386.md (X87MODEI12): New mode macro define.
4399         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
4400         to implement x87 FP compare with HImode input operands.
4401         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
4402         Use X87MODEI12 mode macro to handle HImode input operands.
4403         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
4404         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
4405         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
4406         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
4407         macro to implement x87 operators with HImode input operands.
4408         (fop splitters): Use X87MODEI12 mode macro to handle HImode
4409         input operands.
4410
4411 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
4412
4413         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
4414         integer_zerop.
4415         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
4416         constants invariant.
4417
4418 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
4419
4420         * basic-block.h (BB_VISITED): Removed.
4421         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
4422
4423 2005-03-14  Falk Hueffner  <falk@debian.org>
4424
4425         PR bootstrap/20424
4426         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
4427
4428 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
4429
4430         * ggc-zone.c: Fix comment typos.
4431
4432         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
4433         stringpool.c, config/mips/mips-protos.h: Update copyright.
4434
4435 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
4436
4437         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
4438         throughout with its typedef, "rtx".
4439         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
4440         (rs6000_tls_symbol_ref_1): Remove inline keyword.
4441         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
4442         regs in comment to match code.
4443
4444 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
4445
4446         * except.c (check_handled): Make it static.
4447         * except.h: Remove the corresponding prototype.
4448
4449         * function.c (get_func_frame_size): Make it static.
4450         * function.h: Remove the corresponding type.
4451
4452         * regclass.c (reg_class_superclasses, reg_class_subclasses):
4453         Make them static.
4454         * hard-reg-set.h: Remove the corresponding declarations.
4455
4456         * tree-cfg.c (verify_stmts): Check that
4457         bb_for_stmt (stmt) == bb for every PHI node and statement.
4458
4459 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
4460
4461         * config.gcc: Remove excess indentation.
4462         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
4463
4464 2005-03-13  Roger Sayle  <roger@eyesopen.com>
4465
4466         PR middle-end/19331
4467         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
4468         * fold-const.c (fold_sign_changed_comparison): Likewise.
4469         (fold_binary): Optimize comparisons against widened operands if
4470         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
4471
4472 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4473
4474         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
4475         (sparc_override_options): Initialize it.
4476         (sparc_struct_value_rtx): Set it on the MEM to be returned.
4477
4478 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
4479
4480         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
4481         (reg_or_none500mem_operand): New predicate.
4482         (zero_reg_mem_operand): New predicate.
4483         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
4484         to reg_or_none500mem_operand.
4485         (extendsfdf2_fpr): Add MEM alternative.
4486         (extenddftf2_internal): Change operand2 predicate to
4487         zero_reg_mem_operand.
4488
4489 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
4490
4491         * ggc-zone.c: Rewritten.
4492
4493         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
4494         if there are none.
4495         * configure.ac: Define GGC_ZONE for --with-gc=zone.
4496         * config.in: Regenerated.
4497         * configure: Regenerated.
4498         * gengtype.c (write_types_process_field, write_func_for_structure):
4499         Pass new argument to gt_pch_note_object.
4500         * ggc-common.c (struct ptr_data): Add TYPE.
4501         (gt_pch_note_object): Take TYPE argument and save it.
4502         (call_count): Update call to ggc_pch_count_object.
4503         (call_alloc): Update call to ggc_pch_alloc_object.
4504         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
4505         file.
4506         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
4507         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
4508         (ggc_alloc_zone_stat): Delete.
4509         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
4510         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
4511         (ggc_pch_alloc_object): Update prototypes.
4512         (garbage_zone): Delete.
4513         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
4514         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
4515         pointers.
4516         (tree_id_zone): New variable.
4517         (ggc_alloc_cleared_zone): Remove unused.
4518         (ggc_alloc_zone): Define.
4519         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
4520         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
4521         ggc_alloc_zone_stat.
4522         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
4523         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
4524         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
4525         (make_node_stat): Likewise.  Use tree_id_zone.
4526
4527 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
4528             Joseph S. Myers  <joseph@codesourcery.com>
4529
4530         * configure.ac: Check for MIPS TLS.
4531         * configure: Regenerated.
4532         * config/mips/mips-protos.h (enum mips_symbol_type): Add
4533         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
4534         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
4535         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
4536         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
4537         (mips_classify_symbol, mips_symbolic_constant_p)
4538         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
4539         (mips_tls_operand_p, mips_call_tls_get_addr)
4540         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
4541         (mips_tls_symbol_ref_1): New functions.
4542         (mips_legitimize_address, mips_legitimize_const_move): Call
4543         mips_legitimize_tls_address.
4544         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
4545         for MIPS16.
4546         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
4547         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
4548         (mips_char_to_class): Document V1_REG.
4549         (HAVE_AS_TLS): Provide default.
4550         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
4551         constants.
4552         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
4553         !TARGET_ABICALLS.
4554         (tls_get_tp_<mode>): New instruction.
4555
4556 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
4557
4558         * configure.ac: Update checks for target tools.
4559         * configure: Regenerated.
4560
4561 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
4562
4563         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
4564
4565 2005-03-13  Roger Sayle  <roger@eyesopen.com>
4566
4567         * expmed.c (expand_mult): Use synthetic multiplication sequences for
4568         more classes of DImode multiplication by constant.  Allow both
4569         multiplication by small negative constants (by performing a
4570         multiplication by a positive constant and negating the result) and
4571         multiplications by large powers of two, by using a left shift.
4572
4573 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
4574
4575         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
4576         of basic blocks into work_stack.
4577
4578         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
4579         config/mips/vr.h: Update copyright.
4580
4581         * c-decl.c (c_init_decl_processing): Remove useless calls to
4582         build_function_type.
4583
4584         * builtins.c (fold_trunc_transparent_mathfn,
4585         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
4586         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
4587         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
4588         fold_builtin_strcpy, fold_builtin_strncpy,
4589         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
4590         TREE_TYPE (exp).
4591
4592         * builtins.c (expand_builtin_mathfn_3): Remove local variable
4593         before_call.
4594
4595         * lambda-code.c (lambda_compute_auxillary_space): Remove local
4596         variable determinant.
4597
4598         * tree-cfg.c (group_case_labels): Remove local variable type.
4599
4600         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
4601         variable ann.
4602
4603         * tree-ssa-phiopt.c (value_replacement): Remove local variable
4604         result.
4605
4606 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
4607
4608         PR target/18251
4609         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
4610         (*movmemqi_insn): Delete.
4611         (*movmemhi): Delete.
4612
4613 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
4614
4615         * builtins.c (fold_builtin_classify): Take decomposed
4616         arguments of CALL_EXPR.
4617         (fold_builtin_1): Update a call to fold_builtin_classify.
4618
4619 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
4620
4621         PR c/20402
4622         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
4623         through into call to parser_xref_tag after parse error.
4624         (c_parser_struct_declaration): Consistently return NULL_TREE on
4625         error.
4626
4627 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
4628
4629         * tree-flow-inline.h (ref_contains_array_ref): New function.
4630         (lookup_subvars_for_var): Ditto.
4631         (get_subvars_for_var): Ditto.
4632         (var_can_have_subvars): Ditto.
4633
4634         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
4635         (struct subvar): New type.
4636
4637         * tree-dfa.c (okay_component_ref_for_subvars): New function.
4638
4639         * tree-optimize.c (init_tree_optimization_passes): Call
4640         pass_create_structure_vars.
4641
4642         * tree-ssa-alias.c: Include vec.h.
4643         (init_alias_info): Don't auto-clear call clobbered on struct-field
4644         tags.
4645         (compute_flow_insensitive_aliasing): Handle subvars.
4646         (group_aliases): Handle STRUCT_FIELD aliases.
4647         (setup_pointers_and_addressables): Ditto.
4648         Don't mark variables non-addressable if they still have
4649         addressable subvars.
4650         Also mark subvars addressable when the real variable is marked
4651         addressable.
4652         (add_pointed_to_var): Try to prune the pointed-to set by only
4653         pointing to subvars when possible.
4654         Otherwise, make sure we set addresses_needed and pt_vars to
4655         properly include subvars.
4656         (bitpos_of_field): New function.
4657         (push_fields_onto_fieldstack): Ditto.
4658         (get_or_create_used_part_for): Ditto.
4659         (create_overlap_variables_for): Ditto.
4660         (find_used_portions): Ditto.
4661         (create_structure_vars): Ditto.
4662         (pass_create_structure_vars): New structure.
4663
4664         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
4665         (get_expr_operands): Handle subvars.  Also try to turn
4666         COMPONENT_REF accesses into must-defs now that we can accurately
4667         portray it.
4668         (note_addressable): Try to only mark as addressable those subvars
4669         we know a COMPONENT_REF touches.
4670         (overlap_subvar): New function.
4671
4672         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
4673         Handle subvar storing.
4674         (vect_address_analysis): Update caller of vect_object_analysis.
4675
4676         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
4677
4678         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
4679         (STMT_VINFO_SUBVARS): New macro.
4680
4681         * common.opts: add flag_tree_salias.
4682
4683         * opts.c (decode_options): flag_tree_salias defaults to on.
4684
4685         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
4686
4687         * doc/tree-ssa.texi: Document structural alias analysis.
4688
4689 2005-03-12  Steven Bosscher  <stevenb@suse.de>
4690
4691         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
4692         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
4693         * tree-ssa-operands.c (get_expr_operands): Likewise.
4694         (get_expr_operands): Likewise for ERROR_MARK.
4695
4696 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
4697
4698         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
4699         var.
4700
4701         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
4702         removed_phis.
4703
4704         * tree-ssa-pre.c (compute_avail): Remove local variable val.
4705         (mark_operand_necessary): Remove local variable ver.
4706
4707         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
4708         variable prefix_len.
4709
4710         * value-prof.c (mod_subtract_transform): Remove local variable
4711         value.
4712
4713         * builtins.c (fold_builtin_exponent): Take decomposed
4714         arguments of CALL_EXPR.
4715         (fold_builtin_1): Update a call to fold_builtin_exponent.
4716
4717         * builtins.c (fold_builtin_logarithm): Take decomposed
4718         arguments of CALL_EXPR.
4719         (fold_builtin_1): Update a call to fold_builtin_logarithm.
4720
4721         * c-decl.c (c_init_decl_processing): Remove local variables
4722         ptr_ftype_void and ptr_ftype_ptr.
4723
4724         * gimplify.c (gimplify_expr): Remove local variables r0 and
4725         r1.
4726
4727         * reg-stack.c (move_for_stack_reg): Remove local variable
4728         push_insn.
4729         (compare_for_stack_reg): Remove local variable flags_user.
4730         (convert_regs_1): Remove local variable deleted.
4731
4732         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
4733         variable new_cond.
4734         (combine_blocks): Remove local variables exits and new_e.
4735
4736         * tree-inline.c (expand_call_inline): Remove local variable
4737         decl.
4738
4739         * tree-ssa-live.c (create_ssa_var_map,
4740         calculate_live_on_entry): Remove local variable snn.
4741
4742 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
4743
4744         * c-lex.c (c_lex_with_flags): Add parameter to call to
4745         cpp_spell_token.
4746
4747 2005-03-11  Per Bothner  <per@bothner.com>
4748
4749         * c-tree.h (struct c_declarator): New id_loc field.
4750         * c-pragma.h (c_lex_with_flags): Take position reference.
4751         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
4752         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
4753         (c_lex): Pass dummy location to c_lex_with_flags.
4754         * c-parser.c (c_lex_one_token): Set c_token's location using
4755         c_lex_with_flags, instead of input_location, which might be "ahead".
4756         (c_parser_direct_declarator): Set declarator's id_loc from
4757         c_token's id_loc.
4758         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
4759         declarator's id_loc, rather than probably-imprecise input_location.
4760         (build_id_declarator): Initialize c_declarator's id_loc field.
4761
4762 2005-03-11  Roger Sayle  <roger@eyesopen.com>
4763
4764         PR middle-end/20419
4765         * builtins.c (expand_builtin_signbit): Force the signbit's word
4766         into an integer register to avoid SUBREGs of floating point modes.
4767
4768 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
4769
4770         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
4771         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
4772         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
4773         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
4774
4775 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
4776
4777         PR rtl-optimization/20306
4778         * expr.c (emit_move_complex): Set try_int false if mode is
4779         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
4780         emit_block_move if try_int is true.
4781
4782 2005-03-11  Richard Henderson  <rth@redhat.com>
4783
4784         PR target/20415
4785         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
4786         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
4787         to match.
4788
4789 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
4790
4791         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
4792         (TARGET_FIX_VR4130): New macro.
4793         (TARGET_OPTIONS): Add -mfix-vr4130.
4794         (ISA_HAS_MACCHI): New macro.
4795         (ASM_SPEC): Add -mfix-vr4130.
4796         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
4797         (override_options): Handle mips_fix_vr4130_string.
4798         (mips_avoid_hazards): Clear all_noreorder_p
4799         if we're working around VR4130 errata and the macc alternatives
4800         are not available.
4801         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
4802         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
4803         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
4804         (MULTILIB_DEFAULTS): Remove leading "march=".
4805         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
4806         if no architecture option is given.
4807         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
4808         VR4130 multilibs.
4809         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
4810         * doc/invoke.texi: Document -mfix-vr4130.
4811
4812 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
4813
4814         * config/mips/mips.c (override_options): Only warn about -mint64
4815         deprecation if TARGET_INT64.
4816
4817 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4818
4819         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
4820         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
4821         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
4822         are non-specific regarding the nonnull parameter positions.
4823         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
4824         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
4825         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
4826         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
4827
4828         * builtins.def: Use the non-specific "nonnull" attibute lists.
4829
4830 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
4831
4832         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
4833         single_pred_edge, single_succ, single_pred): Improve comments.
4834
4835 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
4836
4837         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
4838         single_pred_edge, single_succ, single_pred): New inline functions.
4839         * bb-reorder.c (rotate_loop, find_traces_1_round,
4840         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
4841         duplicate_computed_gotos): Use the single_succ/pred functions.
4842         * cfganal.c (forwarder_block_p): Ditto.
4843         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
4844         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4845         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
4846         merge_seq_blocks): Ditto.
4847         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
4848         * cfglayout.c (fixup_reorder_chain): Ditto.
4849         * cfgloop.c (mark_single_exit_loops, update_latch_info,
4850         canonicalize_loop_headers, verify_loop_structure): Ditto.
4851         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
4852         mfb_update_loops, create_preheader, force_single_succ_latches,
4853         create_loop_notes): Ditto.
4854         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
4855         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
4856         commit_one_edge_insertion, purge_dead_edges,
4857         cfg_layout_can_merge_blocks_p): Ditto.
4858         * except.c (sjlj_emit_function_enter): Ditto.
4859         * flow.c (init_propagate_block_info): Ditto.
4860         * function.c (thread_prologue_and_epilogue_insns): Ditto.
4861         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
4862         insert_insn_end_bb): Ditto.
4863         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
4864         find_if_case_2): Ditto.
4865         * lambda-code.c (perfect_nestify): Ditto.
4866         * lcm.c (optimize_mode_switching): Ditto.
4867         * loop-doloop.c (doloop_modify): Ditto.
4868         * loop-init.c (loop_optimizer_init): Ditto.
4869         * loop-iv.c (simplify_using_initial_values): Ditto.
4870         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
4871         * loop-unswitch.c (unswitch_loop): Ditto.
4872         * modulo-sched.c (generate_prolog_epilog): Ditto.
4873         * predict.c (combine_predictions_for_insn, estimate_probability,
4874         tree_estimate_probability, last_basic_block_p,
4875         estimate_bb_frequencies): Ditto.
4876         * profile.c (branch_prob): Ditto.
4877         * regrename.c (copyprop_hardreg_forward): Ditto.
4878         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
4879         * tracer.c (layout_superblocks): Ditto.
4880         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
4881         cfg_remove_useless_stmts_bb, cleanup_control_flow,
4882         cleanup_control_expr_graph, disband_implicit_edges,
4883         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
4884         tree_verify_flow_info, tree_make_forwarder_block,
4885         tree_forwarder_block_p, remove_forwarder_block,
4886         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
4887         * tree-if-conv.c (tree_if_conversion): Ditto.
4888         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
4889         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
4890         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
4891         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
4892         copy_loop_headers): Ditto.
4893         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
4894         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
4895         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
4896         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
4897         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
4898         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
4899         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
4900         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
4901         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
4902         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
4903         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
4904         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
4905         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
4906         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
4907         slpeel_add_loop_guard): Ditto.
4908
4909 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
4910
4911         PR tree-optimization/15784
4912         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
4913         and -1 - A to ~A.
4914
4915         * stmt.c (expand_case): Don't change index_type.  Convert minval
4916         to the proper type.
4917
4918         PR tree-optimization/20130
4919         * fold-const.c (fold): Fold x * -1 into -x.
4920
4921 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4922
4923         PR rtl-optimization/20331
4924         * rtlanal.c (modified_between_p): Check its address first for MEM.
4925         (modified_in_p): Likewise.
4926
4927 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
4928
4929         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
4930
4931 2005-03-10  Steven Bosscher  <stevenb@suse.de>
4932
4933         * expr.c (expand_expr_real_1): If possible, use a conditional
4934         move for expanding MIN_EXPR and MAX_EXPR.
4935         Use temp for moving around rtx-en.
4936
4937 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
4938
4939         PR rtl-opt/20412
4940         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
4941         correct mode.
4942
4943 2005-03-10  Roger Sayle  <roger@eyesopen.com>
4944
4945         * builtins.c (expand_builtin_signbit): Extend to handle floating
4946         point modes wider than the largest integer type, using the
4947         operand_subword_force function to obtain the signbit's word.
4948
4949 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
4950
4951         PR target/20322
4952         * combine.c (try_combine): If recog_for_combine added CLOBBERs
4953         to NEWI2PAT, fail to combine if they are used by NEWPAT.
4954
4955 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
4956
4957         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
4958
4959 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
4960
4961         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
4962         type void.
4963         (perform_edge_inserts): Unconditionally call
4964         free_dominator_info.
4965
4966         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
4967
4968 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
4969
4970         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
4971
4972 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
4973
4974         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
4975
4976         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
4977         gcc_unreachable.
4978         (rtl_register_value_prof_hooks,
4979         tree_value_profile_transformations,
4980         tree_register_value_prof_hooks): Likewise.
4981         * var-tracking.c (stack_adjust_offset_pre_post,
4982         variable_htab_free, variable_union, dataflow_set_different_2,
4983         count_uses, variable_was_changed, set_frame_base_location,
4984         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
4985         vt_add_function_parameters): Likewise.
4986         * varasm.c (named_section_real, named_section, make_decl_rtl,
4987         asm_emit_uninitialised, assemble_integer, decode_addr_const,
4988         const_hash_1, compare_constant, copy_constant, force_const_mem,
4989         output_constant_pool_2, output_constant_pool_1, output_constant,
4990         output_constructor, make_decl_one_only, decl_tls_model,
4991         default_no_named_section, default_elf_select_section_1,
4992         default_unique_section_1): Likewise.
4993         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
4994         * vmsdbgout.c (addr_const_to_string): Likewise.
4995
4996         PR c++/20375
4997         * function.c (struct assign_parm_data_one): Remove last_named
4998         field.
4999         (assign_parm_find_data_types): Don't determine last_named.
5000         Reorder named_parm determination.
5001         (assign_parms): Only setup varargs on the last non-varadic
5002         parameter.
5003
5004 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
5005
5006         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
5007         sda base address on medium model.
5008
5009 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
5010
5011         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
5012         * cfgloop.c (flow_loop_nodes_find): Export.
5013         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
5014         Declare.
5015         * cfgloopmanip.c (fix_loop_structure): New function.
5016         * predict.c (predict_loops): Clean up the loops information.
5017         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
5018         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
5019         loop structure.
5020         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
5021         (rewrite_into_loop_closed_ssa): Declaration changed.
5022         * tree-loop-linear.c (linear_transform_loops): Add argument to
5023         rewrite_into_loop_closed_ssa call.
5024         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
5025         * tree-ssa-loop-im.c (move_computations): Ditto.
5026         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
5027         * tree-vectorizer.c (vectorize_loops): Ditto.
5028         * tree-optimize.c: Include cfgloop.h.
5029         (execute_todo): Choose whether to call cleanup_tree_cfg or
5030         cleanup_tree_cfg_loop.
5031         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
5032         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
5033         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
5034         cleanup_tree_cfg_loop call.
5035         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
5036         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
5037         work on part of cfg.
5038
5039 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
5040
5041         PR inline-asm/20314
5042         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
5043         with multiple alternatives.
5044
5045         * stmt.c (parse_output_constraint): Fix a typo.
5046
5047 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
5048
5049         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
5050         assembly directive instead of deprecated "no-generics".
5051
5052 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
5053
5054         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
5055         for non-offsettable memory references to cope with outstanding reload
5056         replacements.
5057         * config/s390/s390.md ("reload_outti"): Call find_replacement to
5058         avoid losing outstanding address reloads.
5059         ("reload_outdi", "reload_outdf"): Likewise.
5060
5061 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5062
5063         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
5064         code.  Add more cbrt transformations.
5065
5066 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5067
5068         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
5069
5070 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
5071
5072         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
5073         NULL_TREE when a given tree is not simplified.
5074         (fold): Return the original tree when any of the functions
5075         mentioned above NULL_TREE.
5076
5077         * fold-const.c (fold_unary, fold_binary): Take decomposed
5078         arguments, code, type, op0, and op1 in case of fold_binary.
5079         (fold): Update calls to fold_unary and fold_binary.
5080
5081 2005-03-09  Roger Sayle  <roger@eyesopen.com>
5082
5083         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
5084         a fndecl and an arglist instead of a CALL_EXPR, exp.
5085
5086 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
5087
5088         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
5089
5090         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
5091
5092         * expr.c (expand_assignment): Remove orig_to_rtx.
5093
5094         * fold-const.c (int_const_binop): Remove no_overflow.
5095
5096         * ifcvt.c (noce_emit_move_insn): Remove inmode.
5097
5098         * loop-iv.c (get_biv_step_1): Remove lhs.
5099
5100         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
5101
5102         * real.c (real_nan): Remove neg.
5103
5104         * function.c (thread_prologue_and_epilogue_insns): Remove i
5105         and newinsn.
5106
5107         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
5108         tb.
5109
5110         * tree-eh.c (tree_could_trap_p): Remove idx.
5111
5112         * tree-into-ssa.c (ann): Remove ann.
5113
5114         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
5115
5116         * tree-sra.c (decide_block_copy): Remove inst_count.
5117
5118         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
5119
5120         * tree-ssa-loop-im.c (lhs): Remove.
5121
5122         * cfgbuild.c (state, STATE, SET_STATE,
5123         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
5124         make_edges.
5125         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
5126         (find_basic_blocks): Set the state of each basic block to
5127         BLOCK_NEW.
5128
5129 2005-03-08  Jeff Law  <law@redhat.com>
5130
5131         * tree-cfg.c (cleanup_control_flow): If removal of a computed
5132         goto results in the removal of edges in the CFG, then we need
5133         to recompute dominators.
5134
5135 2005-03-09  Ben Elliston  <bje@au.ibm.com>
5136
5137         * c-common.c (c_do_switch_warnings): Comment fix.
5138
5139 2005-03-08  Julian Brown  <julian@codesourcery.com>
5140
5141         * Patch from 2005-03-08 reverted for causing regressions and
5142         ppc-darwin bootstrap failure.
5143
5144 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
5145
5146         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
5147         Define the real function for ppc-darwin.
5148         * c-typeck.c (convert_arguments): Check for target-specific
5149         invalid argument call to unprototyped function.
5150         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
5151         New Macro.
5152         * target.h (invalid_arg_for_unprototyped_fn): New field
5153         in struct calls.
5154         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
5155         default target hook.
5156         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
5157         Declare.
5158
5159 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5160
5161         * c-typeck.c (constructor_stack, constructor_range_stack,
5162         initializer_stack): Make them static.
5163
5164         * cfg.c (rbi_pool): Make it static.
5165
5166         * gimple-low.c (lower_stmt_body): Make it static.
5167         * tree-flow.h: Remove the corresponding prototype.  Don't
5168         declare lower_data.
5169
5170         * sched-deps.c (cache_size): Make it static.
5171
5172         * stor-layout.c (lang_adjust_rli): Make it static.
5173
5174 2005-03-08  Julian Brown  <julian@codesourcery.com>
5175
5176         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
5177         from being used for symbols with vague linkage when
5178         HAVE_GAS_COMDAT_GROUP is true.
5179
5180 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
5181
5182         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
5183         nlabel == JUMP_LABEL (jump).
5184
5185 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5186
5187         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
5188         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
5189         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
5190         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
5191
5192 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
5193
5194         PR c/14411
5195         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
5196         * c-common.c (handle_returns_twice): New function.
5197         (c_common_attribute_table): Declare eturns_twice' attribute.
5198         * doc/extend.texi: Document eturns_twice' attribute.
5199         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
5200         (struct tree_decl): Add returns_twice_flag.
5201
5202 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5203
5204         * tree-ssa-phiopt.c: Fix a comment typo.
5205
5206         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
5207         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
5208         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
5209         copyright.
5210
5211 2005-03-08  Richard Henderson  <rth@redhat.com>
5212
5213         * config/alpha/alpha.c (code_for_builtin): Replace special-case
5214         builtin codes with ctzdi2, clzdi2, popcountdi2.
5215         (struct alpha_builtin_def): Add is_const.
5216         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
5217         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
5218         (alpha_init_builtins): Init them.  Set nothrow and const attributes
5219         on builtins.
5220         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
5221         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
5222         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
5223         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
5224         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
5225         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
5226         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
5227         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
5228         (TARGET_FOLD_BUILTIN): New.
5229         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
5230         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
5231         (ffsdi2): Use ctz.
5232         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
5233
5234 2005-03-08  Ira Rosen  <irar@il.ibm.com>
5235
5236         PR tree-optimization/20122
5237         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
5238         condition of access function instead of base.
5239
5240 2005-03-07  Jeff Law  <law@redhat.com>
5241             Steven Bosscher  <stevenb@suse.de>
5242
5243         * tree-cfg.c (find_taken_edge_computed_goto): New function.
5244         (find_taken_edge): Call find_taken_edge_computed_goto as
5245         appropriate.  Allow any gimple invariant rather than just
5246         INTEGER_CST for VAL.
5247         (cleanup_control_flow): Cleanup a computed goto which has turned
5248         into a simple goto.
5249         (tree_merge_blocks): If block B has any forced labels, move
5250         them to the start of block A.
5251         * tree-ssa-dom.c (thread_across_edge): Allow threading across
5252         computed gotos as well.
5253         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
5254         removal of unnecessary computed gotos too.
5255         (lookup_redirection_data): Fix type of INSERT argument.  Callers
5256         updated.
5257
5258 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5259
5260         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
5261         Remove trailing spaces.
5262
5263         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
5264         unshare_all_trees): Make them static.
5265         * tree-gimple.h: Remove the corresponding prototypes.
5266
5267         * diagnostic.h: Remove unused prototype
5268         debug_output_buffer.
5269         * modulo-sched.c: Remove unused prototype
5270         set_row_column_for_ps.
5271
5272         * tree-ssa-phiopt.c (tree_ssa_phiopt,
5273         replace_phi_edge_with_variable): Remove unused variable i.
5274
5275 2005-03-07  Per Bothner  <per@bothner.com>
5276
5277         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
5278
5279 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
5280
5281         PR tree-opt/17671
5282         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
5283         bbs on the COND_EXPR instead of the PHI_NODEs.
5284         (candidate_bb_for_phi_optimization): Remove.
5285         (replace_phi_with_stmt): Rename to ...
5286         (replace_phi_edge_with_variable): this and change so that we
5287         replace the phi argument instead of removing the PHI.
5288         (conditional_replacement): Change so we deal with PHI with more
5289         than two arguments.
5290         (value_replacement): Likewise.
5291         (abs_replacement): Likewise.
5292
5293 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
5294
5295         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
5296         output_e500_flip_gt_bit.
5297
5298         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
5299         as bit 31.
5300         (rs6000_generate_compare): Fix logic to look at the correct bits.
5301         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
5302         Look at GT bit.
5303         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
5304         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
5305         gen_move_from_CR_gt_bit.
5306
5307         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
5308         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
5309         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
5310
5311         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
5312         (E500_CR_IOR_COMPARE): New constant.
5313
5314 2005-03-08  Earl Chew <earl_chew@agilent.com>
5315             David Billinghurst <David.Billinghurst@riotinto.com>
5316
5317         * config/i386/host-cygwin.c: New file to support precompiled
5318         headers on cygwin
5319         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
5320         * config.host: Use above files for cygwin host.
5321
5322 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
5323
5324         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
5325         ordering ops from earlier change.
5326
5327 2005-03-07  Per Bothner  <per@bothner.com>
5328
5329         Various fixes to allow us to again build if --enable-mapped-location:
5330         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
5331         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
5332         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
5333         local variable loc. Change logic appropriately.
5334         * tree-vect-transform.c (vect_finish_stmt_generation): Use
5335         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
5336         * c-parser.c (c_parser_for_statement): Initialize loc variable.
5337         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
5338         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
5339
5340 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
5341
5342         PR rtl-optimization/19683
5343         * reload1.c (choose_reload_regs): Pass the number of bits, not the
5344         number of bytes, to smallest_int_for_mode.  Fix arguments to
5345         REG_CANNOT_CHANGE_MODE_P.
5346
5347 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5348
5349         * reorg.c (relax_delay_slots): Check that the jump is
5350         conditional before trying to invert it.
5351
5352 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
5353
5354         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
5355         Make them static.
5356
5357         * calls (stack_arg_under_construction): Make it static.
5358
5359         * flow.c (regs_live_at_setjmp): Make it static.
5360         * flow.h: Remove the corresponding prototype.
5361
5362         * reload1.c (reload_startobj, reload_firstobj,
5363         something_needs_operands_changed, reload_inherited,
5364         reload_inheritance_insn, reload_override_in,
5365         reload_spill_index): Make them static.
5366
5367         * recog.c (verify_changes): Make it static.
5368         * recog.h: Remove the corresponding prototype.
5369
5370         * cfgbuild.c (find_sub_basic_blocks): Remove.
5371         * basic-block.h: Remove the corresponding prototype.
5372         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
5373         in comments.
5374         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
5375
5376         * tree-ssa-operands.c (check_build_stmt): Remove.
5377
5378         * stor-layout.c (set_alignment): Remove.
5379         * tree.h: Remove the corresponding prototype.
5380
5381         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
5382
5383         * tree-ssa-dce.c (control_dependence_map,
5384         visited_control_parents): Make them static.
5385
5386         * cfghooks.c (verify_flow_info): Remove local variable
5387         num_bb_notes.
5388
5389         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
5390         last_bb_seen.
5391
5392         * loop-unswitch.c (unswitch_loop): Remove local variable src.
5393
5394 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
5395
5396         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
5397
5398 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
5399
5400         * config/ia64/hpux.h (LINK_SPEC): Add -z.
5401         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
5402         PARALLEL for an empty structure.
5403
5404 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
5405
5406         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
5407
5408         * fold-const.c (fold_binary): Unroll the very first "for"
5409         loop.
5410
5411 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
5412
5413         * config/rs6000/predicates.md (branch_comparison_operator): Remove
5414         redundant match_code test.
5415         (scc_comparison_operator): Swap match_operand and match_code
5416         tests.
5417         (branch_positive_comparison_operator): Same.
5418         (trap_comparison_operator): Use comparison_operator and swap with
5419         match_code test.
5420
5421 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5422
5423         PR target/20288
5424         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
5425         (out_movhi_r_mr): Read low byte of volatile MEM first.
5426         (out_movhi_mr_r): Write high byte of volatile MEM first.
5427
5428 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
5429
5430         * cselib.c (reg_values, reg_values_size): Make them static.
5431
5432         * cse.c (cse_reg_info_table): Make it static.
5433
5434         * fold-const.c (fold_unary): Use build1 instead of copy_node.
5435
5436 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
5437
5438         * cse.c (find_best_addr): Use canon_for_address.
5439
5440 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
5441
5442         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
5443         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
5444         SUBREG and MEM, respectively.
5445
5446         * fold-const.c (fold_binary): Use code instead of t.
5447
5448         * fold-const.c (optimize_minmax_comparison): Take decomposed
5449         arguments code, type, op0, and op1 instead of t.
5450         (fold_binary): Update a call to optimize_minmax_comparison.
5451
5452         * fold-const.c (fold_range_test): Take decomposed arguments
5453         code, type, op0, and op1 instead of t.
5454         (fold_binary): Update a call to fold_range_test.
5455
5456         * fold-const.c (fold_binary_op_with_conditional_arg): Take
5457         decomposed arguments code, type, op0, and op1 instead of t.
5458         (fold_binary): Update a call to fold_range_test.
5459
5460 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
5461
5462         * fold-const.c (fold_binary): Avoid directly using the original
5463         expression t as much as possible.
5464
5465 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
5466
5467         * c-semantics.c (build_stmt): Use TYPE_P instead of
5468         IS_NON_TYPE_CODE_CLASS.
5469         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
5470         (NON_TYPE_CHECK): Use TYPE_P instead of
5471         IS_NON_TYPE_CODE_CLASS.
5472
5473         * fold-const.c (fold): Remove handling of binary expressions.
5474
5475 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
5476
5477         * doc/c-tree.texi: Wrap comments in @r{}.
5478         * doc/cpp.texi: Likewise.
5479         * doc/cppinternals.texi: Likewise.
5480         * doc/extend.texi: Likewise.
5481         * doc/md.texi: Likewise.
5482         * doc/objc.texi: Likewise.
5483         * doc/sourcebuild.texi: Likewise.
5484         * doc/tm.texi: Likewise.
5485         * doc/tree-ssa.texi
5486
5487 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
5488
5489         * predict.c (apply_return_prediction): Standardize PHI chain
5490         walking.
5491         * tree-ssa.c (ssa_redirect_edge): Likewise.
5492
5493         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
5494         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
5495         Update copyright.
5496
5497         * tree-phinodes.c (remove_phi_node): Drop the last argument.
5498         * tree-flow.h: Adjust the prototype for remove_phi_node.
5499         * lambda-code.c (perfect_nestify): Adjust a call to
5500         remove_phi_node.
5501         * tree-cfg.c
5502         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
5503         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
5504         Likewise.
5505         * tree-ssa-dce.c (remove_dead_phis): Likewise.
5506         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
5507         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
5508         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
5509
5510         * combine.c (simplify_and_const_int): Use gen_int_mode instead
5511         of GEN_INT (trunc_int_for_mode (...)).
5512         * loop-iv.c (iv_number_of_iterations): Likewise.
5513         * postreload.c (reload_cse_move2add): Likewise.
5514         * simplify-rtx.c (simplify_const_unary_operation,
5515         simplify_const_binary_operation): Likewise.
5516         * stor-layout.c (get_mode_bounds): Likewise.
5517
5518         * fold-const.c (fold_binary): New.
5519         (fold): Call fold_binary on binary expressions.
5520
5521 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
5522
5523         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
5524         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
5525         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
5526         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
5527         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
5528
5529 2005-03-04  Devang Patel  <dpatel@apple.com>
5530
5531         PR tree-optimization/18815
5532         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
5533         loops with zero exit edges.
5534
5535 2005-03-04  Devang Patel  <dpatel@apple.com>
5536
5537         * doc/invoke.texi: Remove reference to webpage that does not exist.
5538
5539 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
5540             Joseph S. Myers  <joseph@codesourcery.com>
5541
5542         PR c++/19797
5543         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
5544         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
5545         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
5546         * pa.c (get_plabel): Change argument to symbol_ref.  Call
5547         maybe_get_identifier instead of get_identifier.
5548         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
5549         (struct deferred_plabel): Replace name field with symbol field.
5550         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
5551         ASM_OUTPUT_EXTERNAL_REAL is defined.
5552         (output_global_address): Use output_addr_const for output of all
5553         symbol_refs.
5554         (output_deferred_plabels): Use symbol_ref instead of name for address
5555         output.
5556         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
5557         ASM_OUTPUT_SYMBOL_REF): New macros.
5558         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
5559         comment.
5560         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
5561         label.
5562
5563 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
5564
5565         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
5566         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
5567
5568 2005-03-04  Jeff Law  <law@redhat.com>
5569
5570         * basic-block.h (rediscover_loops_after_threading): Declare.
5571         * tree-ssa-dom.c: Include cfgloop.h.
5572         (tree_ssa_dominator_optimize): Discover loops and some basic
5573         properties.  Remove forwarder blocks recreated by loop header
5574         canonicalization.  Also mark backedges in the CFG.
5575         * tree-ssa-threadupdate.c: Include cfgloop.h
5576         (rediscover_loops_after_threading): Define.
5577         (struct local_info): New field, JUMP_THREADED.
5578         (prune_undesirable_thread_requests): New function.
5579         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
5580         then record that fact for the callers of redirct_edges.
5581         (thread_block): If BB has incoming backedges, then call
5582         prune_undesirable_thraed_requests.    Note when we are
5583         going to have to rediscover loop information.  Return a
5584         boolean indicating if any jumps were threaded.
5585         (thread_through_all_blocks): Bubble up boolean indicating
5586         if any jumps were threaded.
5587         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
5588         (tree-ssa-threadupdate.o): Similarly.
5589
5590 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
5591
5592         * fold-const.c (fold_ternary): Unroll the "for" loop to
5593         extract operands.
5594
5595 2005-03-04  Andrew Haley  <aph@redhat.com>
5596
5597         * unwind-dw2-fde-glibc.c (struct
5598         unw_eh_callback_data.check_cache): New field.
5599         (frame_hdr_cache): New.
5600         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
5601         Cache frame header info.
5602
5603 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
5604
5605         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
5606         (print_c_condition): Declare.
5607         * read-rtl.c (ptr_loc): New structure.
5608         (ptr_locs, ptr_loc_obstack, joined_conditions)
5609         (joined_conditions_obstack): New variables.
5610         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
5611         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
5612         (join_c_conditions, print_c_condition): New functions.
5613         (apply_macro_to_string): Associate the new string with the same
5614         source location as the old one.
5615         (add_condition_to_string): Use join_c_conditions.
5616         (read_string): Use set_rtx_ptr_loc to record a filename and line
5617         number for the string.
5618         (read_rtx): Initialize the new variables above.
5619         * genattrtab.c (write_test_expr, write_attr_value): Use
5620         print_c_condition.
5621         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
5622         comment above the GCC_VERSION check.
5623         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
5624         Inline the definition of MAYBE_EVAL.
5625         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
5626         * genoutput.c (process_template): Likewise.
5627         * genpreds.c (write_predicate_subfunction): Likewise.
5628         (write_predicate_expr): Use print_c_condition.
5629         * genrecog.c (write_cond): Likewise.
5630         * gensupport.c (process_rtx): Use join_c_conditions to join the
5631         conditions of a define_insn_and_split.  Record a source location
5632         for the string after the "&&".
5633         (alter_test_for_insn): Use join_c_conditions.
5634
5635 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
5636
5637         Revert for now:
5638         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
5639         PR tree-optimization/15784
5640         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
5641         and -1 - A to ~A.
5642
5643 2005-03-04  Ben Elliston  <bje@au.ibm.com>
5644
5645         * gcc.c (option_map): Add --coverage.
5646         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
5647         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
5648         * config/darwin.h: Pass -lgcov for `coverage'.
5649         * doc/invoke.texi (Debugging Options): Document --coverage.
5650
5651 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
5652
5653         * gcse.c (bypass_block): Use find_edge wherever possible.
5654
5655 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
5656
5657         Fix PR debug/20253
5658
5659         * c-opts.c (c_common_parse_file): Call start_source_file
5660         and end_source_file at the approriate times.
5661
5662         * dwarf2out.c (dwarf2out_finish): Don't auto-end
5663         the main file, it will be done for us now.
5664
5665 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
5666
5667         * fold-const.c (fold_ternary): New.
5668         (fold): Call fold_ternary on ternary expressions.  Remove
5669         handling of ternary expressions.
5670
5671 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
5672
5673         PR tree-optimization/15784
5674         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
5675         and -1 - A to ~A.
5676
5677 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
5678
5679         * config/rs6000/predicates.md (branch_comparison_operator):
5680         Convert from C block to conditional format.
5681
5682 2005-03-03  Jan Hubicka  <jh@suse.cz>
5683
5684         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
5685         and non-constant public variables.
5686
5687 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
5688
5689         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
5690         with LABEL_EXPR.
5691
5692         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
5693         EDGE_I.
5694
5695         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
5696         calls to release_ssa_name and release_phi_node.
5697
5698         * fold-const.c (fold): Remove handling of unary expressions.
5699
5700         * fold-const.c (fold_unary): Avoid directly using the original
5701         expression t as much as possible.
5702
5703 2005-03-03  Roger Sayle  <roger@eyesopen.com>
5704             Andrew Pinski  <pinskia@physics.uc.edu>
5705
5706         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
5707         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
5708
5709 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
5710
5711         Describe special registers SRP and MOF as allocatable registers.
5712         * config/cris/cris.c (cris_md_asm_clobbers): New function.
5713         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
5714         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
5715         TARGET_HAS_MUL_INSNS.
5716         (cris_print_operand) <case 'd'>: New case.
5717         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
5718         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
5719         define.
5720         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
5721         (REG_ALLOC_ORDER): Update for MOF.
5722         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
5723         SPECIAL_REGS.
5724         (GENERAL_REGS): No longer a define of ALL_REGS.
5725         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
5726         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
5727         Adjust accordingly.
5728         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
5729         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
5730         (SECONDARY_RELOAD_CLASS): Define.
5731         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
5732         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
5733         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
5734         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
5735         (REGISTER_MOVE_COST): Define.
5736         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
5737         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
5738         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
5739         (CRIS_MOF_REGNUM): New define_constants.
5740         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
5741         special registers.
5742         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
5743         New patterns.
5744         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
5745         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
5746         Adjust for MOF being properly described as a register.
5747         (indir_to_reg_split): Name this split.  Conditionalize on the
5748         destination register being a general register.
5749         (movei): Conditionalize on on operands 0 and 1 having the same
5750         register class.
5751
5752 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
5753
5754         PR target/20277
5755         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
5756         -mcpu to override any other explicitly given flags.
5757
5758 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
5759
5760         * recog.c (verify_changes, confirm_change_group): New functions,
5761         broken out of apply_change_group.
5762         (apply_change_group): Use them.
5763         * recog.h (verify_change, confirm_change_group): Declare.
5764         * rtl.h (redirect_jump_2): Declare.
5765         * jump.c (redirect_exp, invert_exp): Delete.
5766         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
5767         (redirect_jump_2): New function, broken out of redirect_jump.
5768         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
5769         (invert_jump): Use invert_jump_1 and redirect_jump_2.
5770         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
5771
5772 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
5773
5774         * varasm.c (named_section): Use xstrdup rather than doing it by
5775         hand.
5776
5777         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
5778
5779 2005-03-02  Devang Patel  <dpatel@apple.com>
5780
5781         Undo PR tree-optimization/18815 fix.
5782
5783 2005-03-02  Devang Patel  <dpatel@apple.com>
5784
5785         PR tree-optimization/18815
5786         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
5787         loops with zero exit edges.
5788
5789 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5790
5791         * cfg.c (connect_src, connect_dest, disconnect_src,
5792         disconnct_dest): New.
5793         (unchecked_make_edge, remove_edge, redirect_edge_succ,
5794         redirect_edge_pred): Use the new functions.
5795
5796         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
5797         free_dominance_info only when needed.
5798
5799 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
5800
5801         PR target/20276
5802         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
5803         (reg_or_sub_cint64_operand): Same.
5804
5805 2005-03-02  Jeff Law  <law@redhat.com>
5806
5807         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
5808         CFG_ALTERED in the main DOM iteration loop.
5809
5810 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
5811
5812         PR c++/19916
5813         * varasm.c (initializer_constant_valid_p): Allow conversions
5814         between OFFSET_TYPEs.  Tidy.
5815
5816 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
5817
5818         * config/cris/cris.md ("return"): Remove epilogue delay list
5819         sanity check.
5820
5821 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
5822
5823         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
5824         for Thumb.
5825         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
5826
5827 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5828
5829         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
5830         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
5831         config/m68k/m68k.c, config/mips/mips.h,
5832         config/rs6000/rs6000-protos.h, doc/contrib.texi,
5833         doc/include/gcc-common.texi: Update copyright.
5834
5835         PR middle-end/18029 and PR middle-end/18030
5836         * expr.c (optimize_bitfield_assignment_op): Add a special case
5837         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
5838
5839         * fold-const.c (fold_unary): New.
5840         (fold): Call fold_unary on unary expressions.
5841
5842 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
5843
5844         * cgraph.h (struct cgraph_edge): Add prev_caller and
5845         prev_callee fields.
5846         (cgraph_node_remove_callees): Export.
5847         * cgraph.c (cgraph_create_edge): Initialize prev_caller
5848         and prev_callee.
5849         (cgraph_edge_remove_callee): New function.
5850         (cgraph_edge_remove_caller): Likewise.
5851         (cgraph_remove_edge): Use.
5852         (cgraph_redirect_edge_callee): Likewise.
5853         (cgraph_node_remove_callees): New function.
5854         (cgraph_node_remove_callers): Likewise.
5855         (cgraph_remove_node): Use.
5856         * tree-optimize.c (tree_rest_of_compilation): Use
5857         cgraph_node_remove_callees instead of manual loop.
5858         * cgraphunit.c (cgraph_finalize_function): Likewise.
5859         (cgraph_expand_function): Likewise.
5860         (cgraph_remove_unreachable_nodes): Likewise.
5861
5862 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
5863
5864         PR c/8927
5865         * c-tree.h (undeclared_variable, build_external_ref): Add extra
5866         argument.
5867         * c-decl.c (undeclared_variable): Take location as argument.
5868         * c-typeck.c (build_external_ref): Likewise.
5869         * c-parser.c (c_parser_postfix_expression): Pass location of
5870         identifier to build_external_ref.
5871
5872 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
5873
5874         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
5875         CCEQ mode for branch_positive_comparison_operator test.
5876         * config/rs6000/predicates (branch_comparison_operator): Revert to
5877         define_predicate.
5878         (scc_comparison_operator): Same.
5879         (branch_positive_comparison_operator): Same.
5880
5881 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
5882
5883         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
5884         (cris_delay_slots_for_epilogue): Remove.
5885         (save_last): Move into cris_target_asm_function_epilogue.
5886         (cris_target_asm_function_epilogue): Remove tests for file being
5887         NULL.
5888         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
5889         (cris_delay_slots_for_epilogue): Remove prototypes.
5890         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
5891         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
5892
5893 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
5894
5895         * config/rs6000/predicates.md (branch_comparison_operator): Change
5896         to define_special_predicate.
5897         (scc_comparison_operator): Same.
5898         (branch_positive_comparison_operator): Same.
5899
5900 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
5901
5902         * Makefile.in (tree-ssa-sink.o): New.
5903         (OBJS-common): Add tree-ssa-sink.o.
5904         * common.opt: Add -ftree-sink
5905         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
5906         * timevar.def (TV_TREE_SINK): new timevar.
5907         * tree-flow.h (is_hidden_global_store): Prototype.
5908         * tree-optimize.c (init_tree_optimization_passes): Add
5909         pass_sink_code.
5910         * tree-pass.h (pass_sink_code): New.
5911         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
5912         for non-obvious global store store to is_hidden_global_store, and
5913         call that new function.
5914         * tree-ssa-sink.c: New file.
5915         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
5916         * doc/passes.texi: Document forward store motion.
5917         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
5918         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
5919         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
5920         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
5921
5922 2005-03-01  Per Bothner  <per@bothner.com>
5923
5924         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
5925         and we have a non-zero column-number, add it to the message.
5926         Also factor out the diagnostic_kind_text.
5927
5928 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
5929
5930         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
5931         flow_loop_pre_header_scan, flow_loop_pre_header_find,
5932         flow_loop_scan): Removed.
5933         (flow_loop_dump): Do not dump removed fields.
5934         (flow_loop_free): Do not free removed fields.
5935         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
5936         (loop_exit_edge_p): New function.
5937         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
5938         num_pre_header_edges, entry_edges, num_entries, exit_edges,
5939         num_exits, exits_doms.
5940         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
5941         LOOP_EDGES, LOOP_ALL): Removed.
5942         (flow_loop_scan): Declaration removed.
5943         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
5944         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
5945         flow_loops_find.
5946         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
5947         (if_convert): Call flow_loops_find and flow_loops_free
5948         when calling mark_loop_exit_edges.
5949         * cfgloopanal.c (mark_loop_exit_edges): Moved from
5950         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
5951         free_dominance_info calls.
5952         * loop-init.c (flow_loops_find): Ditto.
5953         * passes.c (rest_of_handle_branch_prob): Ditto.
5954         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
5955         * loop-unroll.c (analyze_insns_in_loop): Do not use
5956         EDGE_LOOP_EXIT.
5957         * predict.c (predict_loops): Do not call flow_loop_scan.
5958         Use get_loop_exit_edges.
5959         (tree_estimate_probability): Do not pass flags to flow_loops_find.
5960         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
5961         Do not use EDGE_LOOP_EXIT.
5962         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
5963         to bb_with_exit_edge_p.
5964         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
5965         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
5966         to bb_with_exit_edge_p.
5967         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
5968         EDGE_LOOP_EXIT.
5969         * tree-loop-linear.c (linear_transform_loops): Do not call
5970         flow_loop_scan.  Use loop->single_exit.
5971         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
5972         (vect_analyze_loop_form): Do not call flow_loop_scan.
5973         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
5974         loop->single_exit.
5975         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
5976         loop->single_exit.
5977         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
5978         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
5979         slpeel_tree_duplicate_loop_to_edge_cfg,
5980         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
5981         Use loop_preheader_edge and loop->single_exit.  Do not call
5982         flow_loop_scan.
5983
5984 2005-03-01  Nick Clifton  <nickc@redhat.com>
5985
5986         * config/arm/arm.c (thumb_find_work_register): Check all of the
5987         argument registers to see if they are free, and a couple of
5988         special cases where the last argument register but can be proved
5989         to be available during the function's prologue.
5990         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
5991         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
5992         thumb_unexpanded_epilogue): Use unsigned long as the type for the
5993         register bit-mask.
5994         (thumb_compute_save_reg_mask): Likewise.  Also use
5995         thumb_find_work_register() to ensure that there is agreement about
5996         which work register is going to be used in the prologue.
5997         (thumb_output_function_prologue): Use unsigned long as the type
5998         for the register bit-mask.  Also delay pushing the link register if
5999         other high registers are going to be pushed.
6000         (thumb_compute_save_reg_mask, emit_multi_reg_push,
6001         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
6002         redundant prototypes.
6003
6004 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
6005
6006         PR target/19819
6007         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
6008         and after reload in REG+REG indexed addresses without REG_POINTER
6009         set in the base and not set in the index.
6010
6011 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6012
6013         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
6014         Don't undefine here.
6015         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
6016         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
6017         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
6018         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
6019         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
6020         Delete.
6021         * config.gcc (sh*-*-linux*): Use config/linux.h.
6022
6023 2005-02-28  Dale Johannesen  <dalej@apple.com>
6024             Stan Shebs  <shebs@apple.com>
6025
6026         Rewrite of 64-bit Darwin structure-by-value pass/return.
6027         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
6028         intoffset, use_stack, named.
6029         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
6030         (rs6000_darwin64_record_arg_advance_flush):  New.
6031         (rs6000_darwin64_record_arg_advance_recurse): New.
6032         (rs6000_darwin64_record_arg_flush):  New.
6033         (rs6000_darwin64_record_arg_recurse):  New.
6034         (rs6000_darwin64_record_arg):  New.
6035         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
6036         (function_arg_boundary):  Handle 128-bit aligned structs.
6037         (function_arg_advance):  Rewrite darwin64 struct handling.
6038         (function_arg):  Call rs6000_darwin64_record_arg.
6039         (function_arg_partial_nregs):  Handle darwin64 structs.
6040         (rs6000_darwin64_function_value):  Remove.
6041         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
6042
6043 2005-02-28  Roger Sayle  <roger@eyesopen.com>
6044
6045         PR tree-optimization/20216
6046         * tree-chrec.c (tree_fold_factorial): Delete.
6047         (tree_fold_binomial): Change argument list to take a return type
6048         and change the type of K to unsigned int.  Rewrite to avoid explicit
6049         evaluation of factorials, and (recursively) calling fold to perform
6050         compile-time arithmetic.  Return NULL on (internal) overflow.
6051         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
6052         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
6053         if any intermediate calculation overflows.
6054         (chrec_apply): Update call to chrec_evaluate.
6055
6056 2005-02-28  James E Wilson  <wilson@specifixinc.com>
6057
6058         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
6059
6060 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
6061
6062         PR c/20245
6063         * c-parser.c (c_parser_compound_statement): Return error_mark_node
6064         instead of NULL_TREE on error.
6065
6066 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
6067
6068         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
6069         (EASY_VECTOR_15_ADD_SELF): Remove.
6070         (num_insns_constant_wide): Not static.
6071         (validate_condition_mode): Not static.
6072         (toc_relative_expr_p): Not static.
6073         (legitimate_indirect_address_p): Not static.
6074         (macho_lo_sum_memory_operand): Not static.
6075         (invalid_e500_subreg): Not static.
6076         (easy_vector_same): Not static.
6077         (easy_vector_splat_const): Not static.
6078         (RS6000_SYMBOL_REF_TLS_P): Remove.
6079         (any_operand): Delete.
6080         (any_parallel_operand): Delete.
6081         (count_register_operand): Delete.
6082         (altivec_register_operand): Delete.
6083         (xer_operand): Delete.
6084         (s8bit_cint_operand): Delete.
6085         (short_cint_operand): Delete.
6086         (u_short_cint_operand): Delete.
6087         (non_short_cint_operand): Delete.
6088         (exact_log2_cint_operand): Delete.
6089         (gpc_reg_operand): Delete.
6090         (cc_reg_operand): Delete.
6091         (cc_reg_not_cr0_operand): Delete.
6092         (reg_or_short_operand): Delete.
6093         (reg_or_neg_short_operand): Delete.
6094         (reg_or_aligned_short_operand): Delete.
6095         (reg_or_u_short_operand): Delete.
6096         (reg_or_cint_operand): Delete.
6097         (reg_or_arith_cint_operand): Delete.
6098         (reg_or_add_cint64_operand): Delete.
6099         (reg_or_sub_cint64_operand): Delete.
6100         (reg_or_logical_cint_operand): Delete.
6101         (got_operand): Delete.
6102         (got_no_const_operand): Delete.
6103         (easy_fp_constant): Delete.
6104         (easy_vector_constant): Delete.
6105         (easy_vector_constant_add_self): Delete.
6106         (zero_constant): Delete.
6107         (zero_fp_constant): Delete.
6108         (volatile_mem_operand): Delete.
6109         (offsettable_mem_operand): Delete.
6110         (mem_or_easy_const_operand): Delete.
6111         (add_operand): Delete.
6112         (non_add_cint_operand): Delete.
6113         (logical_operand): Delete.
6114         (non_logical_cint_operand): Delete.
6115         (mask_operand): Delete.
6116         (mask_operand_wrap): Delete.
6117         (mask64_operand): Delete.
6118         (mask64_2_operand): Delete.
6119         (and64_operand): Delete.
6120         (and64_2_operand): Delete.
6121         (and_operand): Delete.
6122         (reg_or_mem_operand): Delete.
6123         (lwa_operand): Delete.
6124         (symbol_ref_operand): Delete.
6125         (call_operand): Delete.
6126         (current_file_function_operand): Delete.
6127         (input_operand): Delete.
6128         (rs6000_nonimmediate_operand): Delete.
6129         (rs6000_tls_symbol_ref): Delete.
6130         (save_world_operation): Delete.
6131         (restore_world_operation): Delete.
6132         (load_multiple_operation): Delete.
6133         (store_multiple_operation): Delete.
6134         (vrsave_operation): Delete.
6135         (mfcr_operation): Delete.
6136         (mtcrf_operation): Delete.
6137         (lmw_operation): Delete.
6138         (stmw_operation): Delete.
6139         (branch_comparison_operator): Delete.
6140         (branch_positive_comparison_operator): Delete.
6141         (scc_comparison_operator): Delete.
6142         (trap_comparison_operator): Delete.
6143         (boolean_operator): Delete.
6144         (boolean_or_operator): Delete.
6145         (min_max_operator): Delete.
6146         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
6147         (EASY_VECTOR_15): Moved to here.
6148         (EASY_VECTOR_15_ADD_SELF): Move to here.
6149         (PREDICATE_CODES): Delete.
6150         * config/rs6000/rs6000-protos.h: Delete predicate functions.
6151         Declare functions no longer static.
6152         * config/rs6000/predicates.md: New.
6153         * config/rs6000/rs6000.md: Include predicates.md
6154
6155 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
6156
6157         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
6158         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
6159         REG_ALWAYS_RETURN.
6160         * cfgrtl.c (need_fake_edge_p): Likewise.
6161         * combine.c (distribute_notes): Likewise.
6162         * emit-rtl.c (try_split): Likewise.
6163         * recog.c (peephole2_opimize): Likewise.
6164         * reg-notes.def (ALWAYS_RETURN): Remove.
6165         * rtl.h (LCT_ALWAYS_RETURN): Remove.
6166         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
6167         * tree.h (ECF_ALWAYS_RETURN): Remove.
6168
6169 2005-02-28  Roger Sayle  <roger@eyesopen.com>
6170
6171         PR middle-end/19874
6172         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
6173         between different machine modes is never a "useless" conversion.
6174
6175 2005-02-28  Geert Bosch  <bosch@gnat.com>
6176
6177         PR ada/15977
6178         * doc/contrib.texi: List contributors for Ada front end
6179
6180 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
6181
6182         * simplify-rtx.c (simplify_unary_operation_1,
6183         simplify_const_unary_operation): New, extracted from...
6184         (simplify_unary_operation): ... this one.
6185         (simplify_binary_operation_1,
6186         simplify_const_binary_operation): New, extracted from...
6187         (simplify_binary_operation): ... this one.
6188         * rtl.h (simplify_const_unary_operation,
6189         simplify_const_binary_operation): Add prototypes.
6190
6191 2005-02-28  Julian Brown  <julian@codesourcery.com>
6192
6193         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
6194         building libjava and caused PR regression/20228.
6195
6196 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
6197
6198         PR bootstrap/17383
6199         * Makefile.in (host_subdir): New.
6200         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
6201         * configure: Regenerate.
6202
6203 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
6204
6205         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
6206         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
6207         installation directory first.
6208
6209 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
6210
6211         PR target/19065.
6212         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
6213         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
6214         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
6215         * config/cris/cris.md: Tweak comments referring to Q.
6216         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
6217         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
6218         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
6219         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
6220         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
6221         Insert spaces in constraints to align alternatives vertically for
6222         readability.
6223         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
6224         operand 1: "M".
6225
6226 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6227
6228         PR rtl-optimization/17728
6229         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
6230         operand 0 from general_operand to move_dest_operand.
6231
6232 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6233
6234         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
6235         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
6236         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
6237         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
6238
6239 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
6240
6241         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
6242         * configure: Regenerate.
6243         * libada-mk.in: Remove CC; rename
6244         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
6245
6246 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
6247
6248         PR tree-opt/20188
6249         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
6250         for the lhs, also walk over the tree.  Likewise for rhs.
6251
6252 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
6253
6254         * tree-ssa-dom.c (simple_iv_increment_p): New function.
6255         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
6256         Do not propagate value of iv before increment over the increment.
6257
6258 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
6259
6260         * c-parser.c: New file.
6261         * c-parse.in: Remove.
6262         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
6263         Remove.
6264         (c-parser.o): Add dependencies.
6265         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
6266         maintainer-clean, TAGS): Update.
6267         * c-config-lang.in (gtfiles): Update.
6268         * gengtype-lex.l: Don't handle "@@".
6269         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
6270         objc_build_synchronized, objc_begin_try_stmt,
6271         objc_begin_catch_clause, objc_finish_catch_clause,
6272         objc_build_finally_clause, objc_finish_try_stmt): New.
6273         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
6274         type_seen_p.
6275         (c_parse_init): Update comment.
6276         * c-decl.c (c_init_decl_processing): Update comment.
6277         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6278         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
6279         new c_declspecs members.
6280
6281 2005-02-25  Julian Brown  <julian@codesourcery.com>
6282
6283         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
6284         from being used for symbols with vague linkage when
6285         HAVE_GAS_COMDAT_GROUP is true.
6286
6287 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
6288
6289         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
6290
6291 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
6292
6293         PR target/19930
6294         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
6295         (LIBGCC2_HAS_DF_MODE): New.
6296         (LIBGCC2_HAS_XF_MODE): New.
6297         (LIBGCC2_HAS_TF_MODE): New.
6298         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
6299         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
6300         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
6301         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
6302         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
6303         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
6304         and add _fixtfdi, _fixunstfdi, _floatditf
6305         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
6306         L_fixunstfdi, L_floatditf.
6307         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
6308         (LIBGCC2_HAS_TF_MODE): Define.
6309
6310 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
6311
6312         PR tree-optimization/20204
6313         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
6314         REWRITE_THIS_STMT markers on PHI nodes.
6315         (rewrite_initialize_block): Likewise.
6316
6317 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
6318
6319         * version.c (version_string): Update to 4.1.
6320
6321 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
6322
6323         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
6324         Clarify that the alternative way doesn't work in GNU C++.
6325
6326 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
6327
6328         PR tree-optimization/19937
6329         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
6330         to the type of the induction variable.
6331
6332 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
6333
6334         PR rtl-optimization/20117
6335         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
6336         the block including noncopyable insn.
6337
6338 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6339
6340         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
6341         calls to find_reg_note.
6342
6343 2005-02-24  Richard Henderson  <rth@redhat.com>
6344
6345         PR tree-opt/20127
6346         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
6347         the type.
6348
6349 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
6350
6351         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
6352         vector types if to use base reg for misaligned non-word ld/std.
6353
6354 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
6355
6356         PR target/14619
6357         * config/cris/cris.c (cris_target_asm_function_prologue): Create
6358         dwarf2 label manually and put it after, not before the prologue.
6359
6360 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
6361
6362         PR target/19019
6363         * reload.c (operands_match_p): Only increment register number for
6364         SCALAR_INT_MODE_P modes in multiple hard registers.
6365
6366         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
6367         Fix formatting.
6368
6369 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6370
6371         * ChangeLog.5: Fix log message typo(s).
6372         * ChangeLog.7: Likewise.
6373         * ChangeLog.tree-ssa: Likewise.
6374         * cfgexpand.c: Fix comment typo(s).
6375         * conflict.c: Likewise.
6376         * defaults.h: Likewise.
6377         * dwarf2out.c: Likewise.
6378         * gcse.c: Likewise.
6379         * ggc-page.c: Likewise.
6380         * tree-eh.c: Likewise.
6381         * tree-ssa-dom.c: Likewise.
6382
6383 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
6384
6385         PR target/19019
6386         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
6387         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
6388         if SHARED is defined.
6389
6390         PR target/20196
6391         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
6392         allow splitting only if operands 0 and 3 don't overlap.
6393
6394 2005-02-24  Richard Henderson  <rth@redhat.com>
6395
6396         PR middle-end/19953
6397         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
6398         (fold_builtin_1): Call them.
6399         * fold-const.c (fold_complex_mult_parts): Split out from ...
6400         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
6401         (fold_complex_div_parts, fold_complex_div): New.
6402         (fold): Use them.
6403         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
6404
6405 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6406
6407         * tree-ssa-ccp.c (visit_assignment): Verify that result of
6408         VIEW_CONVERT_EXPR is_gimple_min_invariant.
6409
6410         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
6411         (print_node): Likewise.
6412         Print TYPE_SIZES_GIMPLIFIED.
6413
6414 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
6415
6416         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
6417         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
6418         operands as commutative in constraints.
6419
6420 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
6421
6422         * tree-into-ssa.c: Re-organize internal functions.
6423
6424 2005-02-24  Richard Henderson  <rth@redhat.com>
6425
6426         PR middle-end/18902
6427         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
6428         for c99.
6429         * common.opt (fcx-limited-range): New.
6430         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
6431         * toplev.c (flag_complex_method): Initialize to 1.
6432         (process_options): Set flag_complex_method to 0 if
6433         flag_cx_limited_range.
6434         * doc/invoke.texi (-fcx-limited-range): New.
6435
6436 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6437
6438         * cse.c (delete_trivially_dead_insns): Speed up by using
6439         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
6440         prev_real_insn.
6441
6442 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
6443
6444         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
6445         functions when -mid-shared-library is being used.
6446
6447 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
6448
6449         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
6450         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
6451         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
6452         * system.h: Poison LINK_LIBGCC_SPECIAL.
6453
6454 2005-02-23  James E Wilson  <wilson@specifixinc.com>
6455
6456         * gengtype.c (note_insn_name): Make 1 element larger.
6457
6458 2005-02-23  Roger Sayle  <roger@eyesopen.com>
6459
6460         PR target/20018
6461         PR rtl-optimization/20097
6462         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
6463         BImode SUBREGs of SImode registers which confuse the ia64 backend.
6464
6465 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
6466
6467         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
6468         * t-aix52 (SHLIB_INSTALL): Same.
6469
6470 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6471
6472         * genpreds.c: Update copyright.
6473
6474 2005-02-23  Michael Beach  <michaelb@ieee.org>
6475
6476         PR target/20159
6477         * config/sparc/t-elf (startup files): Assemble with CPP.
6478
6479 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
6480
6481         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
6482         (write_predicate_expr): Likewise.
6483
6484 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
6485
6486         PR tree-optimization/20100
6487         PR tree-optimization/20115
6488         * tree-optimize.c (init_tree_optimization_passes): Remove
6489         pass_maybe_create_global_var.
6490         * tree-pass.h (pass_maybe_create_global_var): Remove.
6491         * tree-ssa-alias.c (aliases_computed_p): Declare.
6492         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
6493         (count_calls_and_maybe_create_global_var): Remove.
6494         (pass_maybe_create_global_var): Remove.
6495         (init_alias_info): Do not declare aliases_computed_p.
6496         (maybe_create_global_var): If the function contains no
6497         call-clobbered variables and a mix of pure/const and regular
6498         function calls, create .GLOBAL_VAR.
6499         Mark all call-clobbered variables for renaming.
6500         (merge_pointed_to_info): Update comment.
6501         (add_pointed_to_var): Likewise.
6502         (is_escape_site): Likewise.
6503         Accept struct alias_info * instead of size_t *.
6504         Update all users.
6505         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
6506         as necessary.
6507         * tree-ssa-operands.c (get_call_expr_operands): If
6508         ALIASES_COMPUTED_P is false, do not add call-clobbering
6509         operands.
6510         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
6511         (delete_tree_ssa): Likewise.
6512
6513 2005-02-22  James E Wilson  <wilson@specifixinc.com>
6514
6515         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
6516         (do_compile): Do call it here.
6517
6518 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6519
6520         PR rtl-optimization/20017.
6521         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
6522         rest_of_handle_cse2, rest_of_handle_gcse): Call
6523         delete_dead_jumptables immediately before calling cleanup_cfg.
6524
6525 2005-02-22  Devang Patel  <dpatel@apple.com>
6526
6527         PR 19952
6528         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
6529         all labels
6530
6531 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
6532
6533         * config/rs6000/aix.h (WINT_TYPE): Define.
6534
6535 2005-02-22  Stan Shebs  <shebs@apple.com>
6536
6537         * config/rs6000/rs6000.c (rs6000_override_options): Default to
6538         natural alignment for 64-bit Darwin.
6539         (rs6000_parse_alignment_option): Warn about uses of -malign-power
6540         on 64-bit Darwin.
6541         * doc/invoke.texi: Document this.
6542
6543 2005-02-22  DJ Delorie  <dj@redhat.com>
6544
6545         * c-common.c (c_common_type_for_mode): Pass the mode's precision
6546         to make_[un]signed_type, not the mode itself.
6547
6548 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6549
6550         * cfg.c (cached_make_edge): Call make_edge if edge cache is
6551         not available.  Use tail calls wherever possible.
6552         (make_edge): Call unchecked_make_edge to create an edge.
6553
6554         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
6555         (coalesce_ssa_name): Don't check for
6556         SSANORM_USE_COALESCE_LIST.
6557         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
6558
6559 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
6560
6561         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
6562         (rewrite_into_ssa): ... here.
6563
6564 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
6565
6566         PR tree-optimization/19786
6567         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
6568         tag to another's may-alias bitmap when adding to the other's list.
6569
6570 2005-02-21  DJ Delorie  <dj@redhat.com>
6571
6572         * tree-ssa-loop-ivopts.c (computation_cost): Start register
6573         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
6574         registers in unsupported ways.
6575         * expmed.c (init_expmed): Likewise.
6576
6577 2005-02-21  Stan Cox  <scox@redhat.com>
6578
6579         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
6580
6581 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6582
6583         * tree-cfg.c (fold_cond_expr_cond): New.
6584         (make_edges): Call fold_cond_expr_cond.
6585         (find_taken_edge): Accept nothing but INTEGER_CST.
6586         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
6587         and 1.
6588         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
6589
6590         * flow.c (delete_dead_jumptables): Speed up by scanning insns
6591         that do not belong to any basic block.
6592
6593 2005-02-21  Jeff Law  <law@redhat.com>
6594
6595         * cfganal.c (find_unreachable_blocks): Manually CSE load of
6596         e->dest.
6597
6598 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6599
6600         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
6601         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
6602         Adjust their definitions.
6603         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
6604         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
6605
6606         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
6607         genautomata.c, langhooks.c, langhooks.h, system.h,
6608         config/arm/lib1funcs.asm: Update copyright.
6609
6610 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
6611
6612         * dbxout.c (dbxout_function_end): Emit Lscope label always.
6613
6614 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
6615
6616         PR bootstrap/13770
6617         * doc/install.texi: Document --with-gc.
6618
6619 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
6620
6621         * simplify-rtx.c (simplify_unary_operation): Add a missing
6622         "break" statement.
6623
6624 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
6625
6626         PR tree-optimization/18663
6627         * tree-ssa-dom.c (extract_range_from_cond): Return 0
6628         if the type has variable bounds.
6629
6630 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6631
6632         * gcse.c: Remove an obsolete comment.
6633
6634         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
6635
6636 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
6637
6638         * doc/extend.texi (Function Attributes) <Attribute const>: The
6639         attribute "pure" is below this text, not above.
6640
6641 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6642
6643         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
6644         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
6645         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
6646
6647 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
6648
6649         PR 18785
6650         * langhooks.h (struct lang_hooks): Add to_target_charset.
6651         * langhooks.c (lhd_to_target_charset): New function.
6652         * langhooks-def.h: Declare lhd_to_target_charset.
6653         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
6654         (LANG_HOOKS_INITIALIZER): Update.
6655         * c-common.c (c_common_to_target_charset): New function.
6656         * c-common.h: Declare it.
6657         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
6658         c_common_to_target_charset.
6659
6660         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
6661         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
6662         Delete definitions.
6663         * system.h: Poison them.
6664         * doc/tm.texi: Don't discuss them.
6665         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
6666         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
6667         (pp_c_char): Do not attempt to generate letter escapes for
6668         newline, tab, etc.
6669         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
6670         * config/mips/mips.c (mips_output_ascii): Likewise.
6671
6672 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
6673
6674         PR tree-optimization/19951
6675         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
6676         is abnormal.
6677
6678 2005-02-19  Steven Bosscher  <stevenb@suse.de>
6679
6680         PR middle-end/19698
6681         * function.h (struct function): New field `max_loop_depth'.
6682         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
6683         (flow_loops_find): Reset the max loop depth count before finding loops.
6684         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
6685         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
6686         (calculate_global_regs_live): Make sure the loop will terminate
6687         when the initial sets are not empty.
6688
6689 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
6690
6691         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
6692         object inside.
6693         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
6694
6695 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
6696
6697         PR other/19525
6698         * doc/invoke.texi: Remove documentation of %M spec.
6699         * gcc.c: Likewise.
6700         (init_spec): Remove %M suffix from -lgcc_s.
6701         (do_spec_1): Remove 'M' case.
6702         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
6703         to put shared libraries in the multilib directory.  Remove the
6704         shlib_so_soname substitution variable.  Don't add a multilib encoding
6705         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
6706         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
6707         SHLIB_INSTALL as well as SHLIB_LINK.
6708         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
6709         (SHLIB_NAME): Delete.
6710         (SHLIB_DIR): New macro.
6711         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
6712         (SHLIB_INSTALL): Adjust accordingly.
6713         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
6714         * config/t-slibgcc-sld: Likewise.
6715         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
6716         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
6717         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
6718         in $(SHLIB_DIR).
6719         (SHLIBUNWIND_INSTALL): Adjust accordingly.
6720         * config/i386/t-nwld (SHLIB_SONAME): Delete.
6721         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
6722         Use @shlib_base_name@ instead of @shlib_so_name@.
6723         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
6724         and @shlib_base_name@.so in @multilib_dir@.
6725         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
6726         to the install path.
6727         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
6728         (SHLIB_LINK): Remove previous workaround.
6729         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
6730         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
6731         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
6732         the install path.
6733         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
6734         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
6735         (SHLIB_INSTALL): Adjust accordingly.
6736         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
6737         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
6738         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
6739         config/t-slibgcc-elf-ver.
6740
6741 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
6742             Jakub Jelinek  <jakub@redhat.com>
6743
6744         PR tree-optimization/19828
6745         * tree-ssa-loop-im.c: Add a TODO comment.
6746         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
6747         without side-effects.
6748
6749 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
6750
6751         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
6752         call fold_convert.
6753
6754 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
6755
6756         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
6757         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
6758         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
6759         functions.
6760         (ia64_reorg): Delete fixup_errata call.
6761         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
6762         (TARGET_SWITCHES): Delete -mb-step entry.
6763
6764 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
6765
6766         PR c/20043
6767         * c-typeck.c (composite_type): Handle quals in transparent unions.
6768         (type_lists_compatible_p): Likewise.
6769
6770 2005-02-18  Stan Shebs  <shebs@apple.com>
6771
6772         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
6773         expressions in the .literal8 section.
6774
6775 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
6776
6777         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
6778
6779 2005-02-18  Roger Sayle  <roger@eyesopen.com>
6780
6781         * fold-const.c (constant_boolean_node): Always create values of the
6782         specified type, don't bother calling truthvalue_conversion.
6783
6784 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6785
6786         * except.c (output_function_exception_table): Call
6787         assemble_external_libcall (eh_personality_libfunc).
6788
6789 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6790
6791         PR target/19886
6792         * config/ia64/ia64.h (struct machine_function): Add state_num.
6793         * config/ia64/ia64.c (process_epilogue,
6794         process_for_unwind_directive): Use new unwind state numbers each
6795         time rather than state 1.
6796
6797 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6798
6799         PR target/20054
6800         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
6801         before the "*llgt_didi" pattern.
6802
6803 2005-02-18  Jason Merrill  <jason@redhat.com>
6804
6805         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
6806
6807 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
6808
6809         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
6810         (div0): Use it in place of ARM_FUNC_ALIAS.
6811         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
6812
6813 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
6814
6815         PR middle-end/20030
6816         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
6817         access, the lower bound of the array type if it exists.
6818
6819 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
6820
6821         PR c++/20008
6822         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
6823         cases that are out-of-range for the index type.
6824
6825 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
6826
6827         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
6828         (estimate_case_costs): Don't call convert.
6829         * expmed.c (expand_shift): Likewise.
6830         (make_tree): Call fold_convert instead of convert.
6831
6832 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
6833
6834         PR c++/19813
6835         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
6836         that ref to be marked MEM_READONLY_P doesn't have base that needs
6837         constructing.
6838
6839 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6840
6841         * genautomata.c (output_get_cpu_unit_code_func,
6842         output_cpu_unit_reservation_p): Don't generate old-style function
6843         definitions.
6844
6845 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
6846
6847         PR c++/20023
6848         PR tree-optimization/20009
6849         * convert.c (convert_to_integer): Revert 2005-02-16 change.
6850
6851         PR tree-optimization/18947
6852         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
6853         inline, remove all nodes that are inlined into the extern inline
6854         being redefined.
6855
6856 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6857
6858         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
6859         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
6860         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
6861         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
6862         Update copyright.
6863
6864 2005-02-17  Roger Sayle  <roger@eyesopen.com>
6865
6866         PR tree-optimization/19917
6867         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
6868         to be potentially trapping.
6869
6870 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6871
6872         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
6873
6874 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
6875
6876         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
6877         tem becomes a local variable which is set to the value of the
6878         back end defined INITIAL_FRAME_ADDRESS macro.
6879         (expand_builtin_frame_address): Omit the base parameter to
6880         expand_builtin_return_addr.
6881         (expand_builtin_profile_func): Likewise.
6882         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
6883         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
6884         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
6885
6886 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
6887
6888         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
6889         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
6890         * config/frv/frv.c (frv_function_epilogue): Likewise.
6891
6892 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
6893
6894         * lambda-code (perfect_nestify): Remove mark/unmark
6895         for rewriting hack.
6896         * tree-loop-linear.c (linear_transform_loops): Add
6897         rewrite_into_ssa call so that ssa is correct for
6898         rewriting into loop closed.
6899
6900 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
6901
6902         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
6903         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
6904         BITMAP_FREE.
6905         * bt-load.c (btr_def_live_range, combine_btr_defs,
6906         migrate_btr_def, migrate_btr_defs): Likewise.
6907         * cfgcleanup.c (thread_jump): Likewise.
6908         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
6909         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
6910         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
6911         df_rd_local_compute, df_reg_info_compute): Likewise.
6912         * dominance.c (init_dom_info, free_dom_info): Likewise.
6913         * flow.c (init_propagate_block_info,
6914         free_propagate_block_info): Likewise.
6915         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
6916         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
6917         modify_reg_pav): Likewise.
6918         * loop-invariant.c (find_defs, find_invariant_insn,
6919         find_invariants, free_inv_motion_data): Likewise.
6920         * predict.c (tree_predict_by_opcode,
6921         estimate_bb_frequencies): Likewise.
6922         * stmt.c (expand_case): Likewise.
6923         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
6924         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
6925         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
6926         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
6927         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
6928         rewrite_ssa_into_ssa): Likewise.
6929         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6930         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
6931         analyze_edges_for_bb, perform_edge_inserts): Likewise.
6932         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
6933         * tree-sra.c (tree_sra): Likewise.
6934         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
6935         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
6936         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
6937         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
6938         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
6939         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
6940         Likewise.
6941         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
6942         calculate_live_on_entry, calculate_live_on_exit,
6943         build_tree_conflict_graph): Likewise.
6944         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
6945         record_important_candidates, set_use_iv_cost, find_depends,
6946         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
6947         tree_ssa_iv_optimize_finalize): Likewise.
6948         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
6949         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
6950         tree_duplicate_loop_to_header_edge): Likewise.
6951         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
6952         * tree-ssa.c (verify_flow_insensitive_alias_info,
6953         verify_name_tags, verify_ssa, init_tree_ssa,
6954         delete_tree_ssa): Likewise.
6955         * tree-ssanames.c (marked_ssa_names, init_ssanames,
6956         fini_ssanames): Likewise.
6957         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
6958
6959 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
6960
6961         * config/rs6000/t-rtems: Completely reworked.
6962
6963 2005-02-17  Ira Rosen  <irar@il.ibm.com>
6964
6965         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
6966
6967 2005-02-17  Ira Rosen  <irar@il.ibm.com>
6968
6969         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
6970         POINTER_TYPE_P when checking that type is a pointer.
6971         (vect_get_memtag): Remove.
6972         (vect_address_analysis): Use POINTER_TYPE_P. Call
6973         vect_object_analysis with dummy parameter for memtag.
6974         (vect_object_analysis): Extract memtag (functionality that
6975         used to be in vect_get_memtag and moved here). Fix printings.
6976         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
6977         with correct parameters. Remove call to vect_get_memtag.
6978
6979 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
6980
6981         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
6982         (tree-vectorizer.o): Added missing dependencies.
6983
6984         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
6985         decleration.
6986         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
6987         declaration in tree-vectorizer.c, now has an extern declaration in
6988         tree-vectorizer.h).
6989         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
6990         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
6991         get_vectype_for_scalar_type, vect_is_simple_use,
6992         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
6993         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
6994         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
6995         vectorizable_store, vectorizable_operation, vectorizable_assignment,
6996         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
6997         find_loop_location): Likewise.
6998
6999         * tree-vectorizer.c (langhooks.h): #include removed.
7000         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
7001         moved to tree-vectorized.h.
7002         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
7003         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
7004         get_vectype_for_scalar_type, vect_is_simple_use,
7005         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
7006         vect_supportable_dr_alignment, new_loop_vec_info,
7007         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
7008         vect_set_verbosity_level, find_loop_location): Likewise.
7009
7010         (vect_analyze_loop): Function externalized. Declaration moved to
7011         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
7012         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
7013         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
7014         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
7015         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
7016         vect_enhance_data_refs_alignment, vect_analyze_operations,
7017         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
7018         vect_stmt_relevant_p, vect_get_loop_niters,
7019         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
7020         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
7021         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
7022         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
7023         vect_get_memtag): Likewise.
7024
7025         (vectorizable_load): Function externalized. Declaration moved to
7026         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
7027         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
7028         vect_transform_loop): Likewise.
7029         (vect_transform_stmt): Moved to tree-vect-transform.c.
7030         (vect_align_data_ref, vect_create_destination_var,
7031         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
7032         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
7033         vect_get_vec_def_for_operand, vect_init_vector,
7034         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
7035         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
7036         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
7037         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
7038         vect_do_peeling_for_loop_bound): Likewise.
7039
7040         * tree-vect-analyze.c: New file.
7041         * tree-vect-transform.c: New file.
7042
7043 2005-02-17  Jason Merrill  <jason@redhat.com>
7044
7045         PR mudflap/19319, c++/19317
7046         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
7047         slot explicit.
7048
7049 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
7050
7051         * doc/install.texi (Specific): Update link for Darwin-specific
7052         tool binary site.
7053
7054 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
7055
7056         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
7057         constant_boolean_node.
7058
7059 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
7060
7061         PR target/19019
7062         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
7063         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
7064
7065 2005-02-16  Richard Henderson  <rth@redhat.com>
7066
7067         PR 19920
7068         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
7069         with W_TYPE_SIZE.
7070         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
7071         replace uses with Wtype_MAXp1_F.
7072         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
7073         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
7074         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
7075         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
7076         and HAVE_TFMODE as appropriate.
7077         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
7078         (__floatdisf): Likewise.
7079         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
7080         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
7081         (Wtype_MAXp1_F): New.
7082         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
7083         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
7084
7085 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
7086
7087         * PR target/19162
7088         * arm.c (arm_apply_result_size): New function.
7089         * arm.h (APPLY_RESULT_SIZE): Define.
7090         * arm-protos.h (arm_apply_result_size): Add prototype.
7091         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
7092         (movxf): New expand.
7093         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
7094         (call_value_symbol): Remove predicate for operand 0.
7095         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
7096         (untyped_call): Rework to correclty return values for any type.
7097         (untyped_return): New expand.
7098         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
7099
7100 2005-02-16  Stan Shebs  <shebs@apple.com>
7101
7102         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
7103         * config/rs6000/t-darwin8: New, for 64-bit multilib.
7104
7105 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
7106
7107         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
7108         configure settings on Solaris 7 and later.
7109
7110 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
7111
7112         PR tree-optimization/19865
7113         * tree-optimize.c (init_tree_optimization_passes): Run
7114         pass_may_alias after pass_sra.
7115
7116 2005-02-16  Richard Henderson  <rth@redhat.com>
7117             Stuart Hastings  <stuart@apple.com>
7118
7119         PR debug/19521
7120         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
7121         Do nothing if debug info suppressed for this function.
7122         (dbxout_begin_function): Early exit if debug info suppressed for
7123         this function.
7124
7125 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
7126
7127         PR target/20007
7128         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
7129         find_basic_blocks.
7130         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7131
7132         PR tree-optimization/19967
7133         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
7134         expand_builtin_strchr, expand_builtin_strrchr): Take a new
7135         argument TYPE.  Adjust calls to fold_builtin_XXX.
7136         (expand_builtin, fold_builtin_1): Adjust calls to
7137         expand_builtin_XXX.
7138         (fold_builtin_strchr, fold_builtin_strpbrk,
7139         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
7140         result to a requested type TYPE.
7141
7142 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
7143
7144         PR middle-end/19857
7145         * fold-const.c (fold): Don't optimize (T)(x & cst) to
7146         (T)x & (T)cst if (T)cst overflows.
7147         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
7148         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
7149
7150 2005-02-15  Jeff Law  <law@redhat.com>
7151
7152         * gcse.c (blocks_with_calls): New bitmap.
7153         (alloc_gcse_mem): Allocate it.
7154         (free_gcse_mem): Free it.
7155         (clear_modifY_mem_tables): Clear it.
7156         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
7157         when we encounter CALL_INSNs.
7158         (compute_transp, case MEM): Handle blocks with calls separate
7159         from blocks without calls.  Use bitmap iterators rather than
7160         FOR_EACH_BB.
7161
7162 2005-02-15  Peter O'Gorman  <peter@pogma.com>
7163
7164         PR bootstrap/18810
7165         * mklibgcc.in (vis_hide): Use a temporary object file, not
7166         -o /dev/null.
7167
7168 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
7169
7170         PR target/19924
7171         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
7172         access optimization.
7173
7174 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
7175             Alan Modra  <amodra@bigpond.net.au>
7176
7177         PR target/19019
7178         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
7179         (_xlqsub): Rename to __gcc_qsub.
7180         (_xlqmul): Rename to __gcc_qmul.
7181         (_xlqdiv): Rename to __gcc_qdiv.
7182         Provide versioned symbol aliases with old names.
7183         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
7184         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
7185         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
7186         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
7187         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
7188
7189 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
7190
7191         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
7192         Fold ~(A - 1) and ~(A + -1) to -A.
7193
7194 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
7195
7196         PR pch/14940
7197         PR target/19300
7198         * config/host-linux.c (linux_gt_pch_use_address): Copy from
7199         config/pa/pa-host.c:pa_gt_pch_use_address.
7200
7201 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
7202
7203         * tree-vn.c (get_value_handle): Make sure that given an
7204         is_gimple_min_invariant expression, we always return it.
7205
7206 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7207
7208         * passes.c (rest_of_handle_gcse): Fix a comment.
7209
7210 2005-02-15  Jeff Law  <law@redhat.com>
7211
7212         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
7213         bitmap.
7214         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
7215         (canon_list_insert, record_last_mem_set_info): Similarly.
7216         (clear_modify_mem_tables): Similarly.
7217
7218 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7219
7220         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
7221         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
7222         config/mips/mips.md, config/rs6000/aix.h,
7223         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
7224
7225 2005-02-15  Richard Henderson  <rth@redhat.com>
7226
7227         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
7228         call to be best_edge.
7229
7230 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
7231
7232         * basic-block.h: Adjust the prototype for find_basic_blocks.
7233         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
7234         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
7235         find_basic_blocks.
7236
7237         * flow.c (recompute_reg_usage): Remove all arguments.
7238         * passes.c (rest_of_compilation): Adjust the call to
7239         recompute_reg_usage.
7240         * rtl.h: Adjust the prototype for recompute_reg_usage.
7241
7242 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
7243
7244         * tree-dump.c (dump_files): Update to reflect new member
7245         of dump_file_info.
7246         (dump_register): Add new argument.
7247         Set glob name.
7248         (dump_switch_p_1): Check against glob name if doglob was passed.
7249         (dump_switch_p): Check against regular first, then glob if
7250         we didn't have any hits on the dump name.
7251         * tree-optimize.c (register_one_dump_file):
7252         Pass in glob name as well.
7253         * tree-pass.h (struct dump_file_info): Add glob
7254         member.
7255
7256 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
7257
7258         PR preprocessor/16323
7259         * doc/invoke.texi: Document that -Wendif-labels is on by default.
7260
7261 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
7262
7263         PR target/19019
7264         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
7265         (trunctfdf2_internal1): New.
7266         (trunctfdf2_internal2): Renamed from trunctfdf2.
7267
7268 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
7269
7270         PR tree-optimization/19853
7271         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
7272
7273 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
7274
7275         * passes.c (rest_of_handle_loop_optimize): Remove calls to
7276         delete_dead_jumptables and cleanup_cfg.
7277
7278 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
7279
7280         * reload.c (find_reloads): Swap address_reloaded flags when
7281         swapping commutative operands.
7282
7283 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
7284
7285         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
7286         Use standard_iv_increment_position for computing the bsi position
7287         for create_iv.
7288         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
7289         the bsi position.
7290
7291 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
7292
7293         PR target/17428
7294         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
7295         life range of hard registers.
7296         * value-prof.c (insn_prefetch_values_to_profile): Only
7297         scan normal insns.
7298
7299         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
7300         profile in libcalls.
7301
7302 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
7303
7304         * bitmap.h (bitmap_and_compl_into): Return bool.
7305         * bitmap.c (bitmap_and_compl_into): Return changed flag.
7306
7307 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
7308
7309         PR tree-optimization/19944
7310         * fold-const.c (fold): Re-add ABS_EXPR folding.
7311
7312 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
7313
7314         PR target/19019
7315         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
7316         {TARGET,MASK}_XL_COMPAT.
7317         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
7318         MASK_XL_COMPAT.
7319         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
7320         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
7321         TARGET_XL_COMPAT.
7322         (rs6000_arg_partial_bytes): Same.
7323         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
7324         and XL compatibility enabled.
7325         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
7326         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
7327         test to final condition.
7328         (cmptf_internal2): New.
7329         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
7330         xl-compat.  Add TFmode information to description.
7331
7332 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
7333
7334         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
7335
7336 2005-02-13  Jason Merrill  <jason@redhat.com>
7337
7338         PR c++/16405
7339         * fold-const.c (fold_indirect_ref_1): Split out from...
7340         (build_fold_indirect_ref): Here.
7341         (fold_indirect_ref): New fn.
7342         * tree.h: Declare it.
7343         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
7344         (gimplify_modify_expr_rhs): Likewise.
7345         (gimplify_expr): Likewise.
7346
7347 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
7348
7349         PR tree-optimization/14303
7350         PR tree-optimization/15784
7351         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
7352         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
7353         ABS_EXPR<x> != 0 to x != 0.
7354
7355 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
7356
7357         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
7358         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
7359         spelling conventions.
7360
7361         * passes.c (rest_of_handle_gcse): Don't run cse_main and
7362         delete_trivially_dead_insns too many times.
7363
7364         * passes.c (rest_of_handle_gcse): Remove dead assignments to
7365         tem and tem2.
7366
7367 2005-02-12  Ira Rosen  <irar@il.ibm.com>
7368
7369         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
7370         (vect_is_simple_iv_evolution): Remove redundant parameter
7371         and step check.
7372         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
7373         without last parameter.
7374         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
7375         Return pointer step. Call vect_is_simple_iv_evolution without
7376         last parameter. Check only that the step is multiple of size
7377         type. Remove stmt_vinfo updates.
7378         (vect_get_memtag_and_dr): Remove.
7379         (vect_get_memtag): New function.
7380         (vect_address_analysis): New function.
7381         (vect_object_analysis): New function.
7382         (vect_analyze_data_refs): Call vect_object_analysis and
7383         vect_get_memtag. Update stmt_vinfo fields.
7384
7385 2005-02-12  Ira Rosen  <irar@il.ibm.com>
7386
7387         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
7388         exist and are objects. Remove checks for pointer.
7389         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
7390         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
7391         (vect_create_data_ref_ptr): Likewise.
7392         (vect_base_addr_differ_p): New function.
7393         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
7394         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
7395         Don't set the DR_BASE_NAME field of data-ref.
7396         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
7397
7398 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
7399
7400         * optabs.h (enum optab_index): Add new OTI_ldexp.
7401         (ldexp_optab): Define corresponding macro.
7402         * optabs.c (init_optabs): Initialize ldexp_optab.
7403         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
7404         patterns.
7405         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
7406         using ldexp_optab.
7407         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
7408         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
7409
7410         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
7411         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
7412         intrinsics.
7413
7414 2005-02-12  Ira Rosen  <irar@il.ibm.com>
7415
7416         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
7417         to base_address.
7418         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
7419         stmt_vec_info.
7420         (vect_get_base_and_offset): Always return an address.
7421         (vect_create_addr_base_for_vector_ref): Remove treatment for
7422         different data reference types.
7423         (vect_compute_data_ref_alignment): Rename base to base_address in
7424         stmt_vec_info. Get the object in order to force its alignment.
7425         (vect_get_memtag_and_dr): Rename base to base_address in
7426         stmt_vec_info. Extract the object for memtag analysis.
7427
7428 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
7429
7430         PR regression/19898.
7431         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
7432         changes cc_status, use apply modified_in_p to part of cc_status
7433         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
7434         body.
7435
7436 2005-02-11  Richard Henderson  <rth@redhat.com>
7437
7438         * tree-complex.c (expand_complex_libcall): New.
7439         (expand_complex_multiplication): Use it for c99 compliance.
7440         (expand_complex_division): Likewise.
7441         * fold-const.c (fold_complex_add, fold_complex_mult): New.
7442         (fold): Call them.
7443         * builtins.c (built_in_names): Remove const.
7444         * tree.c (build_common_builtin_nodes): Build complex arithmetic
7445         builtins.
7446         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
7447         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
7448         (built_in_names): Remove const.
7449         * c-common.c (c_common_type_for_mode): Handle complex modes.
7450         * flags.h, toplev.c (flag_complex_method): Rename from
7451         flag_complex_divide_method.
7452         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
7453         __mulsc3, __muldc3, __mulxc3, __multc3): New.
7454         * libgcc2.h: Declare them.
7455         * libgcc-std.ver: Export them.
7456         * mklibgcc.in (lib2funcs): Build them.
7457
7458 2005-02-11  Steven Bosscher  <stevenb@suse.de>
7459
7460         PR tree-optimization/19876
7461         Partially revert my change from 2005-01-14
7462         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
7463         (compute_antic): ...and remove the loop here.
7464
7465 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
7466
7467         PR middle-end/19858
7468         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
7469         is number of inner's bits, avoid creating a BIT_FIELD_REF.
7470
7471         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
7472         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
7473
7474 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
7475
7476         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
7477         offsets for the big-endian 32-bit case.
7478
7479 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
7480
7481         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
7482
7483 2005-02-11  Dale Johannesen  <dalej@apple.com>
7484
7485         * cselib.c (cselib_process_insn):  Clear out regs where
7486         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
7487         * reload.c (find_equiv_reg): Ditto.
7488
7489 2005-02-11  Ian Lance Taylor  <ian@airs.com>
7490
7491         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
7492         with no elements.
7493
7494         * tree.c (build_function_type_list): Work correctly if there are
7495         no arguments.
7496
7497 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
7498
7499         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
7500         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
7501         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
7502         TARGET_ZARCH instead of TARGET_64BIT.
7503
7504 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
7505
7506         * config/rs6000/t-rtems:
7507         (MULTILIB_OPTIONS): Remove mcpu=602.
7508         (MUTLILIB_DIRNAMES): Remove m602.
7509         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
7510         Let mcpu=602 match mcpu=603.
7511         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
7512
7513 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7514
7515         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
7516         signal trampolines.
7517
7518 2005-02-10  David Daney  <ddaney@avtrex.com>
7519
7520         * config/alpha/linux-unwind.h: Add exception clause to copyright.
7521         * config/i386/linux-unwind.h: Likewise.
7522         * config/ia64/linux-unwind.h: Likewise.
7523         * config/mips/linux-unwind.h: Likewise.
7524         * config/pa/linux-unwind.h: Likewise.
7525         * config/rs6000/linux-unwind.h: Likewise.
7526         * config/s390/linux-unwind.h: Likewise.
7527         * config/sh/linux-unwind.h: Likewise.
7528         * config/sparc/linux-unwind.h: Likewise.
7529
7530 2005-02-10  Steven Bosscher  <stevenb@suse.de>
7531
7532         PR tree-optimization/17549
7533         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
7534         TER to replace a DEF with its expression if the DEF and the
7535         rhs of the expression we replace into have the same root
7536         variable.
7537
7538 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
7539
7540         * config/mips/mips.md: Fix the placement of the match_scratch in the
7541         lea64 peephole2.
7542
7543 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7544
7545         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
7546         Fix comment typos.
7547
7548 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
7549
7550         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
7551         (strip_offset): Handle addresses.
7552         (add_address_candidates): Use strip_offset.
7553         (difference_cost): Reflect strip_offset change.
7554         (force_var_cost, difference_cost): Strip nops.
7555
7556 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7557
7558         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
7559
7560         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
7561         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
7562         config/cris/cris-protos.h, config/cris/cris.c: Update
7563         copyright.
7564
7565 2005-02-10  Jeff Law  <law@redhat.com>
7566
7567         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
7568         (lookup_avail_expr): Similarly.
7569
7570 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
7571
7572         * builtins.c (fold_builtin_powi): New function.
7573         (fold_builtin_1): Call it.
7574
7575 2005-02-10  Steven Bosscher  <stevenb@suse.de>
7576
7577         PR documentation/19309
7578         * doc/cpp.texi: The __GNUC__ and related predefined macros
7579         are also defined for the "standalone" cpp.
7580         Some non-GCC compilers may also define __GNUC__.
7581
7582 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
7583
7584         PR c/19342
7585         * c-typeck.c (common_type): New routine.  Old common_type renamed
7586         to...
7587         (c_common_type): ...this.
7588         (build_conditional_expr, build_binary_op): Use c_common_type instead
7589         of common_type.
7590
7591 2005-02-10  Steven Bosscher  <stevenb@suse.de>
7592
7593         * doc/md.texi: Replace @samp{length} with @code{length}.
7594
7595 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
7596
7597         PR tree-optimization/18687
7598         * tree-flow.h (find_loop_niter): Declare.
7599         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
7600         Try using scev even for loops with more than one exit.
7601         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
7602         (struct ivopts_data): Added niters field.
7603         (struct nfe_cache_elt): New.
7604         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
7605         functions.
7606         (tree_ssa_iv_optimize_init): Initialize niters cache.
7607         (determine_number_of_iterations): Removed.
7608         (find_induction_variables): Do not call determine_number_of_iterations.
7609         Access niters for single exit through niter_for_single_dom_exit.
7610         (add_iv_outer_candidates): Access niters for single exit through
7611         niter_for_single_dom_exit.
7612         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
7613         number_of_iterations_cond.
7614         (iv_period): New function.
7615         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
7616         (may_replace_final_value): Take data argument.  Use
7617         niter_for_single_dom_exit.
7618         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
7619         (rewrite_use_compare): Pass data to may_eliminate_iv.
7620         (rewrite_use_outer): Pass data to may_replace_final_value.
7621         (free_loop_data): Clean up the niters cache.
7622         (tree_ssa_iv_optimize_finalize): Free the niters cache.
7623         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
7624         * tree-ssa-loop-niter.c (find_loop_niter): New function.
7625         (find_loop_niter_by_eval): Use tree_int_cst_lt.
7626         (num_ending_zeros): Moved to tree.c.
7627         * tree.h (num_ending_zeros): Declare.
7628         * tree.c (num_ending_zeros): Moved from tree.c.
7629
7630 2005-02-09  Richard Henderson  <rth@redhat.com>
7631
7632         * builtins.c (DEF_BUILTIN): Add COND argument.
7633         * tree.h (DEF_BUILTIN): Likewise.
7634         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
7635         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
7636         match.
7637         (DEF_BUILTIN_STUB): New.
7638         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
7639         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
7640         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
7641         * c-common.c (DEF_BUILTIN): Add COND argument.
7642         * tree.c (local_define_builtin): New.
7643         (build_common_builtin_nodes): New.
7644
7645 2005-02-09  Roger Sayle  <roger@eyesopen.com>
7646
7647         * fold-const.c (fold_strip_sign_ops): New function to simplify a
7648         floating point expression ignoring the sign of the result.
7649         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
7650         (fold) <MULT_EXPR>: Use it to simplify x*x.
7651         * tree.h (fold_strip_sign_ops): Prototype here.
7652         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
7653         argument.  Use fold_strip_sign_ops to simplify the first argument.
7654         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
7655         first argument when the second argument is an even integer
7656         constant, but only with -funsafe_math_optimizations.
7657         (fold_builtin_1): Update call to fold_builtin_copysign.
7658
7659 2005-02-09  Ian Lance Taylor  <ian@airs.com>
7660
7661         PR middle-end/19583
7662         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
7663         just check whether EH_FILTER_FAILURE falls through.
7664
7665 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
7666
7667         * gcc/haifa-sched.c (schedule_block): Make queued sched group
7668         insns return to ready list in the next turn.
7669
7670 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
7671
7672         PR middle-end/19402
7673         * builtins.def: New __builtin_powi[lf].
7674         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
7675         (expand_builtin_powi): New function.
7676         (expand_builtin): Dispatch to expand_builtin_powi.
7677         * libgcc2.h: Add prototypes for __builtin_powi[lf].
7678         * libgcc2.c: Add __builtin_powi[lf] implementation.
7679         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
7680         * optabs.h: Add powi_optab.
7681         * optabs.c (init_optabs): Initialize powi_optab.
7682         * doc/extend.texi: Document __builtin_powi[lf].
7683
7684 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
7685
7686         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
7687         exists.
7688
7689 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
7690
7691         PR middle-end/19854
7692         * fold-const.c (try_move_mult_to_index): Remove redundant
7693         type argument.  Create ADDR_EXPR with correct type.
7694         (fold): Update callers of try_move_mult_to_index.  Convert
7695         result to the appropriate type.
7696
7697 2005-02-09  Roger Sayle  <roger@eyesopen.com>
7698
7699         PR target/19597
7700         * config/avr/avr.c (default_rtx_costs): Delete.
7701         (avr_operand_rtx_cost): New function.
7702         (avr_rtx_costs): Completely rewrite.
7703
7704 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
7705
7706         PR target/19806
7707         * config/cris/cris.c (in_code): New variable.
7708         (cris_output_addr_const): Now a static function, a wrapper for
7709         output_addr_const.
7710         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
7711         case from old cris_output_addr_const.
7712         (cris_asm_output_label_ref): Similar for LABEL_REF.
7713         (cris_output_addr_const_extra): Similar for UNSPEC.
7714         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
7715         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
7716         * config/cris/cris-protos.h (cris_output_addr_const): Remove
7717         declaration.
7718         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
7719         (cris_asm_output_label_ref): Declare.
7720
7721 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
7722
7723         PR preprocessor/19801
7724         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
7725         filenames that changed when libcpp was moved to the toplevel.
7726
7727 2005-02-07  Roger Sayle  <roger@eyesopen.com>
7728
7729         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
7730         zero extensions of BImode operands.  Call lowpart_subreg instead
7731         of gen_lowpart_common and gen_lowpart_SUBREG.
7732
7733 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
7734
7735         PR ada/19489
7736         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
7737         * configure.ac: Set cc_for_cross_gnattools.
7738         * configure: Regenerate.
7739
7740 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
7741
7742         PR target/19803
7743         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
7744
7745 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7746
7747         PR debug/19327
7748         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
7749         of nested functions.
7750
7751 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
7752
7753         * doc/extend.texi: Document deprecated extensions allowing
7754         static floating-point members to have initializers and allowing
7755         floating-point literals in integral constant expressions.
7756
7757 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7758
7759         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
7760         config/darwin7.h, config/mips/mips.c,
7761         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
7762         Update copyright.
7763
7764         * cse.c: Update comments.
7765
7766 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
7767
7768         PR middle-end/19775
7769         * builtins.c (fold_builtin_sqrt): Transform
7770         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
7771         pow(x,y*0.5).
7772
7773 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
7774             Dorit Naishlos  <dorit@il.ibm.com>
7775
7776         * doc/invoke.texi (ftree-vectorizer-verbose): New.
7777         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
7778         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
7779         was added.
7780         * tree.h (vect_set_verbosity_level): New extern function declaration
7781         added.
7782         * tree-vectorizer.h (verbosity_levels): New enum type.
7783         * tree-vectorizer.c (vect_debug_stats): Function removed.
7784         (vect_debug_details): Likewise.
7785         (vect_verbosity_level): Global variable was defined and initialized.
7786         (vect_dump): Global variable definition.
7787         (vect_print_dump_info): New function.
7788         (vect_set_dump_settings): New function.
7789         (vect_set_verbosity_level): New function.
7790         (vectorize_loops): Add call to vect_set_dump_settings.
7791
7792         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
7793         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7794         (slpeel_tree_peel_loop_to_edge): Likewise.
7795
7796         (vect_analyze_offset_expr): Call to vect_print_dump_info with
7797         appropriate verbosity level instead of call to vect_debug_details
7798         or vect_debug_stats.
7799         (vect_get_base_and_offset):
7800         (vect_create_addr_base_for_vector_ref):
7801         (get_vectype_for_scalar_type):
7802         (vect_create_data_ref_ptr):
7803         (vect_init_vector):
7804         (vect_get_vec_def_for_operand):
7805         (vect_finish_stmt_generation):
7806         (vectorizable_assignment):
7807         (vectorizable_operation):
7808         (vectorizable_store):
7809         (vectorizable_load):
7810         (vect_transform_stmt):
7811         (vect_update_ivs_after_vectorizer):
7812         (vect_do_peeling_for_loop_bound):
7813         (vect_update_inits_of_drs):
7814         (vect_do_peeling_for_alignment):
7815         (vect_transform_loop):
7816         (vect_is_simple_use):
7817         (vect_analyze_operations):
7818         (vect_is_simple_iv_evolution):
7819         (vect_analyze_scalar_cycles):
7820         (vect_analyze_data_ref_dependence):
7821         (vect_analyze_data_ref_dependences):
7822         (vect_compute_data_ref_alignment):
7823         (vect_enhance_data_refs_alignment):
7824         (vect_analyze_data_refs_alignment):
7825         (vect_analyze_data_ref_access):
7826         (vect_analyze_data_ref_accesses):
7827         (vect_analyze_pointer_ref_access):
7828         (vect_get_memtag_and_dr):
7829         (vect_analyze_data_refs):
7830         (vect_mark_relevant):
7831         (vect_stmt_relevant_p):
7832         (vect_mark_stmts_to_be_vectorized):
7833         (vect_can_advance_ivs_p):
7834         (vect_get_loop_niters):
7835         (vect_analyze_loop_form):
7836         (vect_analyze_loop):
7837         (vectorize_loops): Likewise.
7838
7839         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
7840         (vect_update_inits_of_drs):
7841         (vect_do_peeling_for_alignment):
7842         (vect_transform_loop):
7843         (vect_analyze_operations):
7844         (vect_analyze_scalar_cycles):
7845         (vect_analyze_data_ref_dependences):
7846         (vect_analyze_data_refs_alignment):
7847         (vect_analyze_data_ref_accesses):
7848         (vect_analyze_data_refs):
7849         (vect_mark_stmts_to_be_vectorized):
7850         (vect_get_loop_niters):
7851         (vect_analyze_loop_form):
7852         (vect_analyze_loop): Likewise.
7853         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
7854
7855 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
7856
7857         PR bootstrap/19796
7858         Revert:
7859         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
7860         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
7861         either -ffast-math or -funsafe-math-optimizations is in use.
7862
7863         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
7864         * config/mips/irix-csr.c: New file.
7865         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
7866         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
7867         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
7868         executables.
7869
7870 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
7871
7872         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
7873         redundant, incorrect definitions.
7874
7875         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
7876         expand.
7877         ("*tls_indirect_call"): New, reference hard regs directly.
7878         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
7879
7880 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
7881
7882         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
7883         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
7884
7885 2005-02-06  Roger Sayle  <roger@eyesopen.com>
7886
7887         PR rtl-optimization/19800
7888         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
7889         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
7890         gen_lowpart.
7891
7892 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
7893
7894         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
7895
7896 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
7897
7898         PR other/17135
7899         * doc/invoke.texi: Correct documentation of -freorder-functions.
7900
7901 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
7902
7903         PR other/14402
7904         * doc/invoke.texi: Don't mention gccbug.
7905
7906 2005-02-06  Roger Sayle  <roger@eyesopen.com>
7907             Andrew Pinski  <pinskia@physics.uc.edu>
7908             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
7909
7910         * simplify-rtx.c (simplify_relational_operation_1): Simplify
7911         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
7912         into just (zero_extract:SI FOO (const_int 1) BAR).
7913
7914 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
7915
7916         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
7917         macro locally.  Don't give last revision date.  Use GCC version
7918         number from gcc-common.texi.
7919         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
7920         revision date.  Use GCC version number from gcc-common.texi.
7921         Describe being a library as current state rather than as 3.x
7922         history.
7923         * doc/gcc.texi: Remove last update date.
7924         * doc/gccint.texi: Likewise.  Update copyright dates.
7925         * doc/install.texi: Update copyright dates.
7926
7927 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
7928
7929         PR other/7549
7930         * doc/invoke.texi: Mention for each option included in -Wall that
7931         it is included in -Wall.
7932         * doc/gcc.texi: Update copyright and last modification date.
7933
7934 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
7935
7936         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
7937         unnecessary cast to original induction variable increments.
7938
7939 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
7940
7941         PR tree-optimization/18219
7942         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
7943         in distributed form.
7944
7945 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
7946
7947         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
7948         Set bitpos and offset later in the function.  Do nothing if the
7949         target is a register and if the bitfield lies completely outside
7950         that register.
7951         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
7952         here.  Return an uninitialised register if the source value is stored
7953         in a register and the bitfield lies completely outside that register.
7954
7955 2005-02-06  Steven Bosscher  <stevenb@suse.de>
7956
7957         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
7958         not SET_DEST.
7959
7960 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
7961
7962         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
7963
7964 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
7965
7966         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
7967         * config/darwin8.h: New.
7968         * config/darwin7.h: Update comment.
7969
7970 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
7971             Dorit Naishlos  <dorit@il.ibm.com>
7972
7973         * tree-vectorizer.h (LOC): New type.
7974         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
7975         (loop_line_number): New field in struct _loop_vec_info.
7976         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
7977
7978         * tree-vectorizer.c (input.h): Included.
7979         (find_loop_location): New function.
7980         (vect_debug_stats): Argument changed from loop to LOC. Computation of
7981         loop line number removed.
7982         (vect_debug_details): Likewise.
7983         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
7984
7985         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
7986         call to vect_debug_details/stats changed from loop to loop_loc.
7987         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7988         (slpeel_tree_peel_loop_to_edge): Likewise.
7989
7990         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
7991         changed from NULL to UNKNOWN_LOC.
7992         (vect_get_base_and_offset):
7993         (vect_create_addr_base_for_vector_ref):
7994         (get_vectype_for_scalar_type):
7995         (vect_create_data_ref_ptr):
7996         (vect_init_vector):
7997         (vect_get_vec_def_for_operand):
7998         (vect_finish_stmt_generation):
7999         (vectorizable_assignment):
8000         (vectorizable_operation):
8001         (vectorizable_store):
8002         (vectorizable_load):
8003         (vect_transform_stmt):
8004         (vect_update_ivs_after_vectorizer):
8005         (vect_do_peeling_for_loop_bound):
8006         (vect_do_peeling_for_alignment):
8007         (vect_transform_loop):
8008         (vect_is_simple_use):
8009         (vect_analyze_operations):
8010         (vect_is_simple_iv_evolution):
8011         (vect_analyze_scalar_cycles):
8012         (vect_analyze_data_ref_dependences):
8013         (vect_compute_data_ref_alignment):
8014         (vect_enhance_data_refs_alignment):
8015         (vect_analyze_data_ref_access):
8016         (vect_analyze_data_ref_accesses):
8017         (vect_analyze_pointer_ref_access):
8018         (vect_get_memtag_and_dr):
8019         (vect_analyze_data_refs):
8020         (vect_mark_relevant):
8021         (vect_stmt_relevant_p):
8022         (vect_mark_stmts_to_be_vectorized):
8023         (vect_can_advance_ivs_p):
8024         (vect_get_loop_niters):
8025         (vect_analyze_loop):
8026         (vectorize_loops): Likewise.
8027
8028         (vectorizable_load): Argument in call to vect_debug_details/stats
8029         changed from loop to LOOP_LOC (loop_vinfo).
8030         (vect_transform_loop):
8031         (vect_analyze_operations):
8032         (vect_analyze_scalar_cycles):
8033         (vect_analyze_data_ref_dependence):
8034         (vect_enhance_data_refs_alignment):
8035         (vect_analyze_data_ref_accesses):
8036         (vect_analyze_pointer_ref_access):
8037         (vect_analyze_data_refs):
8038         (vect_analyze_loop): Likewise.
8039
8040         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
8041         changed from loop to loop_loc.
8042
8043         (vect_enhance_data_refs_alignment): Removed unused variable loop.
8044
8045 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
8046             Dorit Naishlos  <dorit@il.ibm.com>
8047
8048         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
8049         declaration added.
8050         (vect_analyze_data_ref_dependences): Likewise.
8051
8052         (vect_is_simple_use): Argument changed from loop structure to
8053         loop_vect_info structure.
8054         (vect_can_advance_ivs_p): Likewise.
8055         (vect_create_index_for_vector_ref): Likewise.
8056         (vect_update_ivs_after_vectorizer): Likewise.
8057         (new_stmt_vec_info): Likewise.
8058
8059         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
8060         changed from loop to loop_vinfo.
8061         (vect_create_data_ref_ptr): First argument in call to
8062         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
8063         (vectorizable_assignment): Second argument in call to vect_is_simple_use
8064         was changed from loop to loop_vinfo.
8065         (vectorizable_operation): Likewise.
8066         (vectorizable_store): Likewise.
8067         (vect_mark_stmts_to_be_vectorized): Likewise.
8068         (vect_do_peeling_for_loop_bound): First argument in call to
8069         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
8070         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
8071         was changed from loop to loop_vinfo.
8072         (vect_analyze_data_ref_dependences): Third argument in call to
8073         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
8074
8075         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
8076         (vect_create_data_ref_ptr): Likewise.
8077         (vect_init_vector): Likewise.
8078         (vect_get_vec_def_for_operand): Likewise.
8079         (vectorizable_assignment): Likewise.
8080         (vectorizable_operation): Likewise.
8081         (vectorizable_store): Likewise.
8082         (vectorizable_load): Likewise.
8083         (vect_update_ivs_after_vectorizer): Likewise.
8084         (vect_is_simple_use): Likewise.
8085         (vect_analyze_data_ref_dependence): Likewise.
8086         (vect_analyze_pointer_ref_access): Likewise.
8087         (vect_can_advance_ivs_p): Likewise.
8088
8089         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
8090         before _stmt_vec_info.
8091         (_stmt_vec_info): Loop field replaced by loop_vec_info.
8092         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
8093         (new_stmt_vec_info): Argument changed from loop structure to
8094         loop_vect_info structure
8095
8096         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
8097         (vect_analyze_offset_expr): Avoid 80 columns overflow.
8098         (vect_create_addr_base_for_vector_ref): Likewise.
8099         (vect_analyze_pointer_ref_access): Likewise.
8100
8101 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
8102
8103         PR tree-opt/19768
8104         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
8105         phi flag if the phi is abnormal.
8106
8107 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
8108
8109         PR tree-opt/19736
8110         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
8111         information for the new statement.
8112
8113 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
8114
8115         PR driver/19117
8116         * gcc.c (main): Include the target in -v output.
8117
8118 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
8119
8120         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
8121         Do not drop the extend if we'd have to add a paradoxical subreg
8122         later.  Include optabs.h and insn-codes.h.
8123         * Makefile.in (combine.o): Depend on $(OPTABS_H).
8124
8125 2005-02-02  Roger Sayle  <roger@eyesopen.com>
8126
8127         PR middle-end/19405
8128         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
8129         * fold-const.c (const_binop): Avoid constant folding floating
8130         point operations in modes that use composite representations.
8131         * simplify-rtx.c (simplify_binary_operation): Likewise.
8132
8133 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
8134
8135         * config/rs6000/altivec.md (altivec_dst): Make the first operand
8136         a REG, not a MEM.
8137         (altivec_dstt): Likewise.
8138         (altivec_dstst): Likewise.
8139         (altivec_dststt): Likewise.
8140         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
8141         of first operand.
8142
8143 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
8144
8145         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
8146         EXPR_LOCUS from orig_cond to the new cond_stmt.
8147         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
8148         the new vec_stmt.
8149
8150 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
8151
8152         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
8153         standard_iv_increment_position. Remove call to bsi_next
8154         (no need to bump the iterator anymore).
8155         (vect_create_index_for_vector_ref): Call
8156         standard_iv_increment_position. Remove second function argument.
8157         (vect_finish_stmt_generation): Remove call to bsi_next
8158         (no need to bump the iterator anymore).
8159         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
8160         to vect_create_index_for_vector_ref.
8161
8162 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
8163
8164         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
8165         phis are used out of the loop.
8166
8167 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
8168
8169         PR c/17807
8170         * c-decl.c (undef_nested_function): New variable.
8171         (pop_scope): Diagnose undefined nested functions.
8172         (finish_function): Don't attempt cgraph processing or genericizing
8173         if current top-level function contained an undefined nested
8174         function.  Reset undef_nested_function at the end of a top-level
8175         function.
8176
8177 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
8178
8179         * tree.c (build_int_cst_type): Take sign of the value into account
8180         when deciding whether sign extend the value.
8181
8182 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
8183
8184         PR c/18502
8185         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
8186         (cpp_options, cc1_options): Change %{std*&ansi} to
8187         %{std*&ansi&trigraphs}.
8188
8189 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8190
8191         * cse.c: Update comments.
8192
8193 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
8194
8195         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
8196         arguments go on the stack.  Do not put complex doubles in odd/even
8197         pairs.
8198
8199 2005-02-02  Steven Bosscher  <stevenb@suse.de>
8200
8201         * doc/invoke.texi: Update the options enabled at -O1, -O2,
8202         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
8203         -ftree-pre, and -fthread-jumps.
8204
8205 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
8206
8207         PR tree-optimization/19578
8208         * tree-flow.h (modified_noreturn_calls): Declare.
8209         (noreturn_call_p): Declare.
8210         * tree-flow-inline.h (noreturn_call_p): New function.
8211         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
8212         * tree-cfg.c (modified_noreturn_calls): New variable.
8213         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
8214         that contain a mid-block noreturn call.
8215         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
8216
8217 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8218
8219         * df.c (df_def_record_1, df_uses_record): Don't use
8220         DF_FOR_REGALLOC.
8221         * df.h (DF_FOR_REGALLOC): Remove.
8222
8223 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
8224
8225         PR c/19435
8226         * c-typeck.c (really_start_incremental_init): Reset
8227         constructor_max_index for arrays of incomplete type.
8228
8229 2005-02-02  Jeff Law  <law@redhat.com>
8230
8231         * gcse.c (struct reg_set): Store the block index where the register
8232         was set rather than the setting insn.
8233         (record_one_set, compute_transp): Corresponding changes.
8234         (pre_insert_copy_insn): Do not call replace_one_set.
8235         (replace_one_set): Remove.
8236
8237 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
8238
8239         PR other/15514
8240         * doc/gcov.texi: Fix typo.
8241
8242 2005-02-01  Richard Henderson  <rth@redhat.com
8243
8244         PR target/19680
8245         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
8246         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
8247         type to bool.
8248         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
8249         * config/i386/i386-protos.h: Update.
8250
8251 2005-02-01  Steven Bosscher  <stevenb@suse.de>
8252
8253         PR tree-optimization/19217
8254         * tree-cfg.c (verify_expr): Use the data field to see if TP was
8255         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
8256         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
8257         that it is walking a PHI node.
8258
8259 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
8260
8261         * doc/extend.texi (Nested Functions): Update.
8262
8263 2005-02-01  Richard Henderson  <rth@redhat.com>
8264
8265         PR 19696
8266         * optabs.c (expand_copysign_absneg): Export.
8267         * optabs.h (expand_copysign_absneg): Declare.
8268         * config/rs6000/rs6000.md (copysigntf3): New.
8269
8270 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
8271
8272         PR tree-optimization/19633
8273         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
8274         * tree-ssa-alias.c (init_alias_info): Initialize.
8275         (merge_pointed_to_info): Set.
8276         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
8277         (dump_points_to_info_for): Show value of pt_null.
8278         (struct count_ptr_d): Declare.
8279         (find_ptr_dereference): Remove.
8280         (ptr_is_dereferenced_by): Remove.
8281         (count_ptr_derefs): New local function.
8282         (count_uses_and_derefs): New local function.
8283         (compute_points_to_and_addr_escape): Call it.  If the number
8284         of dereferences is greater than zero, mark the pointer as
8285         dereferenced.  If there are fewer dereferences than uses of
8286         the pointer, the pointer's value escapes.
8287
8288 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
8289
8290         PR tree-optimization/19670
8291         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
8292         here...
8293         (verify_use): ... set it here, instead.
8294
8295 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
8296
8297         * doc/sourcebuild.texi (Test directives): Fix formatting.
8298
8299         * doc/sourcebuild.texi (Test directives): Describe selector
8300         expressions.
8301
8302 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
8303
8304         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
8305         specific 64-bit CPUs.
8306
8307 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
8308
8309         PR target/16201
8310         * arm.c (arm_eliminable_register): New function.
8311         (adjacent_mem_locations): Don't allow eliminable registers.  Use
8312         HOST_WIDE_INT for address offsets.
8313         * arm-protos.h (arm_eliminable_register): Add prototype.
8314
8315 2005-02-01  Steven Bosscher  <stevenb@suse.de>
8316
8317         PR optimization/15242
8318         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
8319         * basic-block.h (duplicate_computed_gotos): Add prototype.
8320         * bb-reorder.c (duplicate_computed_gotos): New function to
8321         duplicate sufficiently small blocks ending in a computed jump.
8322         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
8323         if not optimizing for size.
8324         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
8325         never do tail merging for blocks ending in a computed jump.
8326         * doc/invoke.texi: Document the max-goto-duplication-insns param.
8327
8328 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8329
8330         Patch from Richard Sandiford <rsandifo@redhat.com>
8331         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
8332         from inheriting a subreg equivalence with a non-spill register.
8333
8334         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
8335
8336 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
8337
8338         * config/frv/frv.c (movcc_fp_destination_operand): New.
8339         (gpr_or_memory_operand): Fix typo in comment.
8340         (gpr_or_memory_operand_with_scratch): New.
8341         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
8342         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
8343         movcc_fp_destination_operand.
8344         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
8345         Legitimize memory addresses using a scratch register.
8346
8347 2005-01-31  Jeff Law  <law@redhat.com>
8348
8349         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
8350         bitmap a sparse bitmap instead of a simple bitmap.
8351         (mark_def_sites_initialize_block):  Corresponding changes.
8352         (ssa_mark_def_sites_initialize_block): Likewise.
8353         (ssa_mark_phi_uses): Likewise.
8354         (mark_def_site, ssa_mark_def_sites): Likewise.
8355         (mark_def_site_blocks): Likewise.
8356         (rewrite_ssa_into_ssa): Likewise.
8357
8358         * tree-ssa-dom.c (record_cond): Pass correct variable type
8359         for last argument to htab_find_slot_with_hash.
8360
8361         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
8362         effects when optimizing 0 % X.  Do not try to optimize X % 0.
8363
8364 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
8365
8366         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
8367         1_mmalua.
8368
8369 2005-02-01  Eric Christopher  <echristo@redhat.com>
8370
8371         * config/mips/mips.c (override_options): Warn if -mint64
8372         is used.
8373         * doc/invoke.texi (MIPS Options): Document that -mint64 is
8374         deprecated.
8375
8376 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8377
8378         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
8379         timestamp.
8380         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
8381         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
8382         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
8383         (cached_regno): Initialize to INVALID_REGNUM.
8384         (cse_reg_info_table_size,
8385         cse_reg_info_table_first_uninitialized,
8386         cse_reg_info_timestamp): New.
8387         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
8388         get_cse_reg_info.
8389         (init_cse_reg_info, get_cse_reg_info_1): New.
8390         (get_cse_reg_info): Cache the last look-up.
8391         (new_basic_block): Update the code to clear mappings from
8392         registers to cse_reg_info entries.
8393         (cse_main): Call init_cse_reg_info.
8394
8395         * cse.c (get_cse_reg_info): Update a comment.
8396
8397 2005-01-31  Steven Bosscher  <stevenb@suse.de>
8398
8399         PR c/19333
8400         * c-decl.c (start_decl): Do not warn about arrays of elements with
8401         an incomplete type here.
8402         (grokdeclarator): Do it here by making a pedwarn an error.
8403         * c-typeck.c (push_init_level): If there were previous errors with
8404         the constructor type, do not warn about braces for initializers.
8405         (process_init_element): Likewise for excess initializer elements.
8406
8407 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8408
8409         * cse.c (delete_trivially_dead_insn): Don't iterate.
8410
8411 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
8412
8413         * config/rs6000/rs6000.md (copysignsf3): New expand.
8414         (copysigndf3): Likewise.
8415
8416 2005-01-31  Steven Bosscher  <stevenb@suse.de>
8417
8418         * recog.c (constrain_operands): Only look for earlyclobber operand
8419         conflicts if an '&' constraint was seen.
8420
8421 2005-01-31  Marc Espie <espie@openbsd.org>
8422
8423         * config.gcc: Don't include embedded systems fragment, switches default
8424         debugging format to ELF.
8425         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
8426         longer pick it up there.
8427
8428 2005-01-31  Dale Johannesen  <dalej@apple.com>
8429
8430         * doc/extend.texi (nested functions): Fix linkage description.
8431         Clarify that static is not allowed.
8432
8433 2005-01-31  Dale Johannesen  <dalej@apple.com>
8434
8435         * config/rs6000/darwin.md (movsf_low_di):  Make work.
8436         (movdf_low_di):  Make work.
8437
8438 2005-01-31  Dale Johannesen  <dalej@apple.com>
8439
8440         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
8441         Make work for 64 bit.
8442
8443 2005-01-31  Roger Sayle  <roger@eyesopen.com>
8444             Dale Johannesen  <dalej@apple.com>
8445
8446         PR middle-end/19650
8447         * fold-const.c (fold_binary_op_with_conditional_arg):
8448         Make types match original operands, before STRIP_NOPS.
8449
8450 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
8451
8452         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
8453         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
8454         (struct gcc_sigcontext): Delete.  Merge contents to..
8455         (struct gcc_ucontext): ..here.
8456         (get_sigcontext): Delete.
8457         (get_regs): New function, like get_sigcontext but return regs ptr.
8458         64-bit version finds regs from r1 to support vdso.
8459         (ppc_linux_aux_vector): New function.
8460         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
8461         and vector regs.
8462
8463 2005-01-31  Ira Rosen  <irar@il.ibm.com>
8464
8465         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
8466         sizetype.
8467         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
8468         redundant fold. Fix misalignment for MINUS_EXPR.
8469         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
8470         (vect_analyze_pointer_ref_access): Likewise.
8471         (vect_get_memtag_and_dr): Likewise.
8472
8473 2005-01-31  Richard Henderson  <rth@redhat.com>
8474
8475         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
8476         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
8477         absnegdf2_i387, absnegxf2_i387): Likewise.
8478
8479 2005-01-31  Richard Henderson  <rth@redhat.com>
8480
8481         PR 19696
8482         * optabs.c (expand_copysign_absneg): New.
8483         (expand_copysign_bit): Split out from ...
8484         (expand_copysign): ... here.  Use expand_copysign_absneg.
8485
8486 2005-01-30  Roger Sayle  <roger@eyesopen.com>
8487
8488         PR middle-end/19697
8489         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
8490         constant as the second operand and a register as the third.
8491
8492 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
8493
8494         PR target/19704
8495         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
8496         that dllimport'd functions do not use all call-clobbered registers
8497         to pass parameters.
8498
8499 2005-01-30  Richard Henderson  <rth@redhat.com>
8500
8501         PR 19696
8502         * optabs.c (expand_absneg_bit): Split out from expand_unop and
8503         expand_abs_nojump and generalize.  Use operand_subword and
8504         emit_no_conflict_block.  Support large modes.
8505         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
8506         back to maximum.
8507         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
8508         negation to subtraction.
8509         (expand_copysign): Check that the format has signed zeros.
8510         Use operand_subword and emit_no_conflict_block.  Support large modes.
8511
8512 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
8513
8514         Fix PR tree-optimization/19624
8515
8516         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
8517         * tree-ssa-pre.c: Add cfgloop.h.
8518         Update comment.
8519         (pre_stats): New member, constified.
8520         (inserted_exprs): New static variable.
8521         (NECESSARY): New macro.
8522         (create_expression_by_pieces): Fold the expression, and
8523         mark it as defaulting to not necessary. Also put in
8524         inserted_exprs.
8525         (fully_constant_expression): New function.
8526         (insert_into_preds_of_block): Modify to not insert phis when we
8527         are playing with induction variables.
8528         Push phis onto the inserted_exprs vector, and mark them as not
8529         necessary by default.
8530         (insert_aux): Call fully_constant_expression on eprime.
8531         If all edges produce the same value, mark it constant.
8532         (mark_operand_necessary): New function.
8533         (remove_dead_inserted_code): New function.
8534         (init_pre): Init loop optimizer to get loop info.
8535         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
8536         (execute_pre): Commit edge inserts, then remove dead code.
8537
8538 2005-01-30  Richard Henderson  <rth@redhat.com>
8539
8540         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
8541         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
8542
8543 2005-01-30  Richard Henderson  <rth@redhat.com>
8544
8545         PR target/19700
8546         * config/i386/i386.c (ix86_expand_copysign): New.
8547         (ix86_split_copysign_const): New.
8548         (ix86_split_copysign_var): Rename from ix86_split_copysign,
8549         rearrange op1/nmask operands.
8550         * config/i386/i386-protos.h: Update.
8551         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
8552         (copysigndf3): Likewise.
8553         (copysignsf3_const, copysigndf3_const): New.
8554         (copysignsf3_var): Rename from copysignsf3, split out splitter
8555         and fix split predicate for X constraint.
8556         (copysigndf3_var): Similarly.
8557
8558 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8559
8560         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
8561         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
8562         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
8563
8564 2005-01-29  Richard Henderson  <rth@redhat.com>
8565
8566         PR target/19690
8567         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
8568         of # and * in constraints.
8569
8570 2005-01-29  Richard Henderson  <rth@redhat.com>
8571
8572         PR middle-end/19689
8573         * expr.c (store_field): Don't strip sub-mode cast when the input
8574         data is even smaller.
8575
8576 2005-01-29  Richard Henderson  <rth@redhat.com>
8577
8578         PR middle-end/19687
8579         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
8580         union being empty.
8581
8582 2005-01-29  Richard Henderson  <rth@redhat.com>
8583
8584         * combine.c (make_field_assignment): Fix argument order
8585         to gen_int_mode.
8586
8587 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
8588
8589         PR tree-optimization/15791
8590         * fold-const.c (extract_array_ref): New function.
8591         (fold): Fold comparisons between &a[i] and &a[j] or
8592         semantically equivalent trees.
8593
8594 2005-01-29  Jeff Law  <law@redhat.com>
8595
8596         * gcse.c (insert_expr_in_table): Revamp handling of available
8597         and anticipatable occurrence lists to avoid unnecessary list
8598         walking.
8599         (insert_set_in_table): Similarly.
8600
8601 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
8602
8603         * c-common.c (fix_string_type): Just use c_build_qualified_type to
8604         build string type.
8605         (c_build_qualified_type): Build qualified array types with
8606         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
8607         * c-decl.c (c_make_fname_decl): Build unqualified array type
8608         before qualified type.
8609         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
8610         type is qualified, not just if type itself is.  Don't apply
8611         qualifiers to array type when declarator is processed.  Apply
8612         qualifiers to field type whether or not it is an array type.
8613         Don't handle array types specially for applying qualifiers to
8614         variables.
8615         * c-typeck.c (composite_type): Build unqualified element type and
8616         array type when forming composite of array types.
8617         (common_pointer_type, comptypes, comp_target_types,
8618         type_lists_compatible_p, build_indirect_ref, build_array_ref,
8619         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
8620         types.
8621         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
8622         (args2) in variables a1 and a2.
8623
8624 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8625
8626         * cse.c (n_elements_made, max_elements_made): Remove.
8627         (insert): Don't touch n_elements_made.
8628         (cse_main): Don't touch n_elements_made or max_elements_made.
8629
8630 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
8631
8632         PR target/15384
8633         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
8634         configuration part of dp-bit.c to be lost.
8635
8636 2005-01-28  Roger Sayle  <roger@eyesopen.com>
8637
8638         * expmed.c (expand_mult_highpart_optab): When attempting to use
8639         a non-widening multiplication in a wider mode, the operands need
8640         to be converted (zero or sign extended) to that mode.
8641
8642 2005-01-28  Ian Lance Taylor  <ian@airs.com>
8643
8644         PR middle-end/16558
8645         PR middle-end/19583
8646         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
8647         through if both operands fall through.
8648
8649 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8650
8651         * cse.c (fold_rtx) <PC>: Don't optimize.
8652
8653 2005-01-28  Jeff Law  <law@redhat.com>
8654
8655         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
8656         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
8657
8658 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8659
8660         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
8661         cse_reg_info_used_list_end): Remove.
8662         (cse_reg_info_list, cse_reg_info_list_free): New.
8663         (get_cse_reg_info): When allocating an instance of
8664         cse_reg_info, add it to the beginning of the cse_reg_info_list
8665         list.  Remove code to maintain cse_reg_info_used_list.
8666         (new_basic_block): Reset the free list to the beginning of
8667         cse_reg_info_list.
8668
8669 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
8670
8671         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
8672         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
8673         (frv_expand_mdpackh_builtin): New function.
8674         (frv_expand_builtin): Use it to expand __MDPACKH.
8675         * doc/extend.texi (__MDPACKH): Update documentation.
8676
8677 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
8678
8679         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
8680         SSE_FLOAT_MODE_P for use_sse computation.
8681
8682 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
8683
8684         PR target/19663
8685         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
8686
8687 2005-01-27  Richard Henderson  <rth@redhat.com>
8688
8689         * builtins.c (expand_builtin_copysign): New.
8690         (expand_builtin): Call it.
8691         * genopinit.c (optabs): Add copysign_optab.
8692         * optabs.c (init_optabs): Initialize it.
8693         (expand_copysign): New.
8694         * optabs.h (OTI_copysign, copysign_optab): New.
8695         (expand_copysign): Declare.
8696
8697         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
8698         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
8699
8700         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
8701         (ix86_expand_fp_absneg_operator): ... here.
8702         (ix86_split_copysign): New.
8703         * config/i386/i386-protos.h: Update.
8704         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
8705         (copysignsf3, copysigndf3): New.
8706
8707         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
8708         (copysignsf3, ncopysignsf3): New.
8709         (copysigndf3, ncopysigndf3): New.
8710         (copysignxf3, ncopysignxf3): New.
8711         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
8712
8713 2005-01-27  Arend Bayer  <arend.bayer@web.de>
8714             Kazu Hirata  <kazu@cs.umass.edu>
8715
8716         * cse.c: (find_best_addr): Don't call copy_rtx before calling
8717         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
8718         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
8719         NULL_RTX.
8720
8721 2005-01-27  Jeff Law  <law@redhat.com>
8722
8723         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
8724         definitions of SSA_NAMEs which are not being rewritten.
8725         (rewrite_ssa_into_ssa): Only initialize the current definition
8726         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
8727         If checking is enabled, assert that SSA_NAME_AUX is clear for all
8728         SSA_NAMEs before returning.
8729
8730 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
8731
8732         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
8733         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
8734         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
8735         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
8736         config/mips/iris6.h, config/sh/sh.c: Update copyright.
8737
8738 2005-01-27  Steven Bosscher  <stevenb@suse.de>
8739
8740         PR middle-end/17278
8741         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
8742         higher to -O2 and higher.  Likewise for tree PRE.
8743         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
8744         and better.
8745
8746 2005-01-27  Ian Lance Taylor  <ian@airs.com>
8747
8748         PR middle-end/19583
8749         * gimple-low.c (try_catch_may_fallthru): New static function.
8750         (block_may_fallthru): Handle TRY_CATCH_EXPR.
8751         * tree-inline.c (expand_call_inline): Don't warn about reaching
8752         the end of a non-void function being inlined if the function uses
8753         a return slot.
8754
8755 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
8756
8757         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
8758
8759         PR c/18946
8760         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
8761         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
8762         (implicitly_declare): Handle error_mark_node.
8763
8764 2005-01-27  Richard Henderson  <rth@redhat.com>
8765
8766         PR tree-opt/14329
8767         * tree.h (struct tree_decl): Add debug_expr_is_from.
8768         (DECL_DEBUG_EXPR_IS_FROM): New.
8769         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
8770         * dwarf2out.c (dwarf2out_var_location): Update to match.
8771         * tree-outof-ssa.c (create_temp): Likewise.
8772         * var-tracking.c (track_expr_p): Likewise.
8773         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
8774         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
8775         * toplev.c (default_tree_printer): Likewise.
8776
8777 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
8778
8779         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
8780         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
8781
8782 2005-01-27  Steven Bosscher  <stevenb@suse.de>
8783
8784         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
8785         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
8786         ASM_CLOBBERS): Add tree checks.
8787
8788         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
8789         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
8790         * c-common.def (SWITCH_STMT): Update to match.
8791         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
8792         macros instead of SWITCH_EXPR ones.
8793         * c-dump.c (c_dump_tree): Likewise.
8794         * c-gimplify.c (gimplify_switch_stmt): Likewise.
8795         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
8796
8797         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
8798
8799 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
8800
8801         * unwind-dw2.c (execute_stack_op): Add missing cases for
8802         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
8803
8804 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8805
8806         * config.gcc (Obsolete configurations): Remove 'dummy', add
8807         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
8808         sparc-*-openbsd*.
8809
8810 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
8811
8812         PR tree-optimization/19633
8813         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
8814         CALL_EXPRs.
8815         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
8816         are no call-clobbered variables.
8817         * tree-outof-ssa.c (check_replaceable): Return false for calls
8818         with side-effects.
8819
8820 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
8821
8822         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
8823         even for variables with NULL DECL_INITIAL.
8824
8825 2005-01-26  Stuart Hastings  <stuart@apple.com>
8826
8827         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
8828
8829 2005-01-26  Richard Henderson  <rth@redhat.com>
8830
8831         PR middle-end/18008
8832         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
8833         field's type.
8834         * expr.c (store_field): Strip conversions to odd-bit-sized types
8835         if the destination field width matches.
8836
8837 2005-01-26  Richard Henderson  <rth@redhat.com>
8838
8839         * c-decl.c, expmed.c, expr.c: Revert last change.
8840
8841 2005-01-26  Richard Henderson  <rth@redhat.com>
8842
8843         PR middle-end/18008
8844         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
8845         field's type.
8846         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
8847         if we don't need the bits above those present in the current mode.
8848         * expr.c (store_field): Strip conversions to odd-bit-sized types
8849         if the destination field width matches.
8850
8851 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
8852
8853         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
8854         either -ffast-math or -funsafe-math-optimizations is in use.
8855
8856 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8857
8858         PR target/19293
8859         PR target/19329
8860         * config/avr/avr.c (notice_update_cc): Only set condition code for
8861         ashrqi3 if shift count > 0.
8862         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
8863         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
8864         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
8865         count <= 0 as a no-op, and shift count >= width by copying zero
8866         or sign bit to all bits of the result.
8867         * config/avr/avr.md (all shifts): Add alternatives for zero shift
8868         count, with attribute "length" set to 0 and "cc" set to "none".
8869
8870 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
8871
8872         * doc/invoke.texi: Document -mTLS.
8873
8874         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
8875         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
8876         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
8877         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
8878         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
8879         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
8880         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
8881         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
8882
8883         * configure.ac: Check for a TLS capable gas.
8884
8885         * configure: Regenerate.
8886
8887 2005-01-26  Richard Henderson  <rth@redhat.com>
8888
8889         PR middle-end/18008
8890         * combine.c (make_field_assignment): Simplify store to zero_extract
8891         from a source with an overlapping mask.
8892
8893 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
8894
8895         2004-11-11  Eric Christopher  <echristo@redhat.com>
8896
8897         * config/frv/frv.md: Add fr400_integer automaton. Don't
8898         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
8899         to TYPE_MACC.
8900
8901 2005-01-26  Steven Bosscher  <stevenb@suse.de>
8902
8903         PR middle-end/16585
8904         * cfgbuild.c (make_edges): Do not clear or set
8905         current_function_has_computed_jump.
8906         * function.h (struct function): Remove the has_computed_jump field.
8907         (current_function_has_computed_jump): Do not define.
8908         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
8909         in a computed jump.  Ignore current_function_has_computed_jump.
8910
8911 2005-01-26  Richard Henderson  <rth@redhat.com>
8912
8913         PR middle-end/19515
8914         * expr.c (categorize_ctor_elements): New argument p_must_clear.
8915         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
8916         fully initialized.
8917         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
8918         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
8919         objects into static storage if they have more than one non-zero value.
8920         * tree.h (categorize_ctor_elements): Update decl.
8921
8922 2005-01-26  Steven Bosscher  <stevenb@suse.de>
8923
8924         PR middle-end/19616
8925         * tree.h (CALL_EXPR_TAILCALL): Add comment.
8926         * calls.c (check_sibcall_argument_overlap_1): Revert the change
8927         to this function from 2004-07-10.
8928         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
8929         the current function for tail call optimizations if the address
8930         of one of it its arguments is taken.
8931
8932 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
8933
8934         * cse.c (fold_rtx): Call equiv_constant only when necessary.
8935
8936 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
8937
8938         * function.c (expand_function_end): If current_function_calls_alloca,
8939         emit stack restore in a place that is reached when the function falls
8940         through at the end.
8941
8942 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
8943
8944         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
8945         rule to avoid matching inappropriate suffix rule.
8946
8947 2005-01-26  Jan Hubicka  <jh@suse.cz>
8948
8949         PR tree-optimization/19241
8950         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
8951
8952 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
8953
8954         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
8955         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
8956         of doubling.
8957         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
8958         <sim*>: Always use crt1.o, regardless of N in simN.
8959         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
8960         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
8961         (CRT_CALL_STATIC_FUNCTION): Remove.
8962         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
8963         use crt1.o, regardless of N in simN.
8964         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
8965         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
8966         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
8967         case isystem setting.
8968         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
8969
8970 2005-01-25  Ian Lance Taylor  <ian@airs.com>
8971
8972         * gimple-low.c (block_may_fallthru): Correct handling of
8973         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
8974
8975 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
8976
8977         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
8978         handlers to match indentation; nested under the mtune=* handler.
8979         Similar for mcpu= and march=.
8980
8981 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
8982
8983         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
8984         * config/mips/linux64.h (LIB_SPEC): Likewise.
8985         * config/mn10300/linux.h (LIB_SPEC): Likewise.
8986         * config/sh/linux.h (LIB_SPEC): Likewise.
8987
8988 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
8989
8990         * config/frv/frv.c (frv_legitimize_tls_address): New.
8991         (TARGET_HAVE_TLS): Define.
8992         (FRV_SYMBOL_REF_TLS_P): Define.
8993         (frv_override_options): Handle new register classes.
8994         (frv_legitimate_address_p): Reject tls addresses.
8995         (frv_legitimize_address): Handle TLS addresses.
8996         (gen_inlined_tls_plt): New.
8997         (gen_tlsmoff): New.
8998         (frv_legitimize_tls_address): New.
8999         (unspec_got_name): Add TLS entries.
9000         (got12_operand): Add R_FRV_TLSMOFF12 case.
9001         (frv_emit_move): Fixup TLS addresses.
9002         (frv_emit_movsi): Legitimize TLS addresses.
9003
9004         * config/frv/frv.h (MASK_BIG_TLS): New.
9005         (TARGET_BIG_TLS): New.
9006         (HAVE_AS_TLS): Define.
9007         (TARGET_SWITCHES): Add -mTLS and -mtls options.
9008         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
9009         (REG_CLASS_NAMES): Same.
9010         (REG_CLASS_CONTENTS): Same.
9011         (CONSTRAINT_LEN): New.
9012         (REG_CLASS_FROM_CONSTRAINT): New.
9013         (PREDICATE_CODES): Add symbolic_operand.
9014
9015         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
9016         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
9017         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
9018         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
9019         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
9020         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
9021         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
9022         GR9_REG, GR14_REG, LRREG.
9023         (type): Add load_or_call attribute.
9024         ("load_or_call"): New reservation.
9025         ("call_gettlsoff"): New.
9026         ("tls_indirect_call"): New.
9027         ("tls_load_gottlsoff12"): New.
9028         ("tlsoff_hilo"): New.
9029         ("tls_tlsdesc_ldd"): New.
9030         ("tls_tlsoff_ld"): New.
9031         ("tls_lddi"): New.
9032
9033         * config/frv/frv-protos.h (symbolic_operand): Protoize.
9034
9035         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
9036
9037         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9038         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
9039         * config/frv/frv.c (TLS_BIAS): Define.
9040         (frv_output_dwarf_dtprel): New.
9041
9042 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
9043
9044         PR rtl-optimization/19579
9045         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
9046         both A and B, see if they don't clobber registers the other expr uses.
9047
9048 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
9049
9050         * real.c (do_add): Initialize signalling and canonical members.
9051
9052         * real.c (real_from_integer): Zero out destination.
9053
9054 2005-01-18  Jan Hubicka  <jh@suse.cz>
9055
9056         PR tree-optimize/19337
9057         * tree-inline.c (initialize_inlined_parameters): Copy
9058         saved_static_chain_decl only.
9059
9060 2005-01-25  Richard Henderson  <rth@redhat.com>
9061
9062         PR target/19556
9063         PR target/19584
9064         * config/i386/i386.c (x86_inter_unit_moves): Zero.
9065         (ix86_preferred_reload_class): Rewrite fp-constant section, with
9066         80387 enabled, to return a proper subclass.  Return the subset that
9067         overlaps with GENERAL_REGS for PLUS.
9068         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
9069
9070 2005-01-25  Richard Henderson  <rth@redhat.com>
9071
9072         PR middle-end/19609
9073         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
9074
9075 2005-01-25  Roger Sayle  <roger@eyesopen.com>
9076
9077         * expmed.c (choose_multiplier): Change interface to return the
9078         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
9079         (expand_divmod): Update calls to choose_multiplier.
9080
9081 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9082
9083         PR middle-end/19330
9084         * expmed.c (extract_bit_field): Use adjust_address instead of
9085         gen_lowpart when op0 is a MEM.
9086
9087 2005-01-24  Steven Bosscher  <stevenb@suse.de>
9088
9089         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
9090
9091 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
9092
9093         * config/mips/irix-csr.c: New file.
9094         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
9095         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
9096         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
9097         executables.
9098
9099 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
9100
9101         PR bootstrap/19364
9102         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
9103         sparc/elf.h, add sparc/sp-elf.h.
9104         (sparc-*-rtems*): Likewise.
9105         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
9106         tm-dwarf2.h, add sparc/sp-elf.h.
9107         (sparc86x-*-elf): Likewise.
9108         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
9109         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
9110         TARGET_OS_CPP_BUILTINS.
9111         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9112         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9113         Undefine it.
9114         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
9115         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
9116         (SWITCH_TAKES_ARG): Likewise.
9117         (LOCAL_LABEL_PREFIX): Likewise.
9118         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
9119         (TARGET_N_FORMAT_TYPES): Delete.
9120         (TARGET_FORMAT_TYPES): Likewise.
9121         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9122         * config/sparc/elf.h: Delete.
9123         * config/sparc/sp-elf.h: New file.
9124
9125 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9126
9127         * tree-flow-inline.h (phi_arg_from_edge): Remove.
9128         * tree-flow.h: Remove the corresponding prototype.
9129         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
9130         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
9131
9132 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
9133
9134         PR target/17751
9135         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
9136         for AIX ABI or ELF -fPIC.
9137         (rs6000_emit_load_toc_table): Don't create toc_section here.
9138         (rs6000_xcoff_file_start): Nor here.
9139
9140 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
9141
9142         * sh.c (ra.h): Don't #include.
9143         (hard_regs_intersect_p): New function, resurrected from ra.c.
9144
9145         * sh.c: Fix 1996 Copyright.
9146
9147 2005-01-24  Richard Henderson  <rth@redhat.com>
9148             Aldy Hernandez  <aldyh@redhat.com>
9149
9150         * regrename.c (note_sets): Handle subregs.
9151
9152 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
9153
9154         PR bootstrap/18058
9155         * genconditions.c (write_header, write_conditions): Elide file if
9156         not GCC >= 3.0.1.
9157
9158 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9159
9160         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
9161         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
9162         Update copyright.
9163
9164 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
9165
9166         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
9167         expand_builtin_printf, expand_builtin_fprintf,
9168         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
9169         checking against POINTER_TYPE.
9170         (validate_arglist): Handle POINTER_TYPE code by checking
9171         POINTER_TYPE_P.
9172
9173 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
9174
9175         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
9176         init_rtlanal): New.
9177         (for_each_rtx): Call for_each_rtx_1.
9178         * rtl.h (init_rtlanal): Declare.
9179         * toplev.c (backend_init): Call init_rtlanal.
9180
9181 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
9182
9183         * flow.c (propagate_one_insn): Formatting.
9184
9185         PR middle-end/19551
9186         * flow.c (libcall_dead_p): Be more conservative if unsure.
9187         If there are any instructions between insn and call, see if they are
9188         all dead before saying the libcall is dead.
9189
9190 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
9191
9192         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
9193         operand constraint for operand 0.
9194
9195 2005-01-23  Richard Henderson  <rth@redhat.com>
9196
9197         PR 19486
9198         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
9199         edges leading to join block.
9200
9201 2005-01-23  Roger Sayle  <roger@eyesopen.com>
9202
9203         * expmed.c (expand_mult_highpart): Make static.  Change type of
9204         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
9205         (expand_divmod): Updates calls to expand_mult_highpart by using
9206         gen_int_mode to pass a CONST_INT rtx.
9207         * rtl.h (expand_mult_highpart): Remove prototype.
9208
9209 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9210
9211         * flow.c (regset_bytes, regset_size): Remove.
9212
9213         * cfganal.c: Fix a reference to Harvey's paper.
9214
9215 2005-01-23  Steven Bosscher  <stevenb@suse.de>
9216
9217         PR rtl-optimization/19464
9218         * tree-optimize.c (init_tree_optimization_passes): Add one more
9219         copyrename pass just before out-of-ssa.
9220
9221 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
9222
9223         PR bootstrap/18058
9224         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
9225         * ggc-none.c (ggc_free): Define.
9226
9227 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9228
9229         * cse.c (max_reg, max_insn_uid): Remove.
9230         (cse_main): Don't access max_reg or max_insn_uid.
9231
9232         * c-common.c (explicit_flag_signed_bitfields,
9233         lang_statement_code_p, lang_expand_function_end): Remove.
9234         * c-common.h: Remove the corresponding declarations.
9235         * c-opts.c (c_common_handle_option): Remove all write access
9236         to explicit_flag_signed_bitfields.
9237
9238         * cgraph.c (cgraph_varpool_n_nodes): Remove.
9239         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
9240         * cgraph.h: Remove the corresponding declaration.
9241
9242         * gcse.c (null_pointer_info): Remove.
9243
9244 2005-01-23  Roger Sayle  <roger@eyesopen.com>
9245             Eric Botcazou  <ebotcazou@libertysurf.fr>
9246
9247         * combine.c (simplify_logical): Only simplify logical expressions
9248         of the form ior(and(x,y),z) by the inverse distributive law if the
9249         result is cheaper than the original.
9250
9251 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9252
9253         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
9254         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
9255         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
9256         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
9257         config/freebsd-spec.h, config/arm/arm.h,
9258         config/h8300/h8300.md, config/i386/i386.md,
9259         config/i386/predicates.md, config/i386/sse.md,
9260         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
9261         config/vax/vax.md: Fix comment typos.  Follow spelling
9262         conventions.
9263
9264 2005-01-23  Steven Bosscher  <stevenb@suse.de>
9265
9266         * gengtype.c (walk_type): Produce `not equal to' compares for loop
9267         tests, instead of `less than'.
9268
9269 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
9270
9271         * function.c (assign_parm_setup_block): When creating a new stack slot
9272         for a parameter, get its alignment from the parameter's DECL_ALIGN
9273         rather than the type's TYPE_ALIGN.  Make sure that the parameter
9274         is at least word aligned.
9275
9276 2005-01-22  Roger Sayle  <roger@eyesopen.com>
9277
9278         PR middle-end/19378
9279         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
9280
9281 2005-01-22  Richard Henderson  <rth@redhat.com>
9282
9283         PR target/19506
9284         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
9285         in both compare operands.
9286         (movdfcc_1_sse_max): Likewise.
9287         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
9288         (movdfcc_1_sse): Likewise.
9289         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
9290         scratch register as needed.
9291
9292 2005-01-22  Richard Henderson  <rth@redhat.com>
9293
9294         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
9295
9296         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
9297
9298 2005-01-22  Richard Henderson  <rth@redhat.com>
9299
9300         * genopinit.c (optabs): Use smin/smax for floating point too.
9301         * doc/md.texi: Update to match.  Clarify that floating point
9302         results are undefined for +0/-0 and NaN.
9303         * doc/rtl.texi: Likewise.
9304         * rtl.def (SMIN, SMAX): Likewise
9305         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
9306
9307         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
9308         leading 's' to the name.
9309         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
9310         smaxxf3, sminxf3): Likewise.
9311         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
9312         Likewise.
9313
9314 2005-01-22  Paul Brook  <paul@codesourcery.com>
9315
9316         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
9317
9318 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
9319
9320         * config/s390/s390.c (struct processor_costs): New fields
9321         dlgr, dlr, dr, dsgfr, dsgr.
9322         (z900_cost, z990_cost): Values for new fields.
9323         (s390_rtx_costs): New cases MEM und COMPARE in switch
9324         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
9325         DIV, MOD, UDIV, UMOD.
9326
9327 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
9328
9329         * config/s390/s390.md ("doloop_si64"): Reload input value directly
9330         into the register being decremented.
9331         ("doloop_si31", "doloop_di"): Likewise.
9332         ("*doloop_si_long"): Adapt pattern.
9333
9334 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
9335
9336         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
9337         access registers.
9338         (CLASS_MAX_NREGS): Likewise.
9339
9340 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
9341
9342         * doc/tree-ssa.texi (Statement Operands): Add example for new
9343         must-def macro. Note deprecation of old operands interface.
9344
9345 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
9346
9347         PR tree-optimization/19484
9348         * tree-cfg.c (remove_fallthru_edge): New function.
9349         (cleanup_control_flow): Remove fallthru edges from calls that are
9350         now known not to return.
9351
9352 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
9353
9354         Fix PR tree-optimization/19038
9355         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
9356         copies with loop variant ones.
9357
9358 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
9359
9360         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
9361         config/alpha/alpha-protos.h, config/alpha/alpha.h,
9362         config/alpha/alpha.md, config/alpha/predicates.md,
9363         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
9364         config/sparc/sol2.h: Update copyright.
9365
9366         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
9367         first label to see if it is a nonlocal label.
9368
9369 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
9370             Andrew Pinski  <pinskia@physics.uc.edu>
9371
9372         PR target/19491
9373         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
9374         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
9375
9376 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
9377
9378         * config/rs6000/rtems.h: Update copyright.
9379
9380 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
9381
9382         PR target/19548
9383         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
9384         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
9385         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
9386
9387 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9388
9389         PR c/18809
9390         * c-typeck.c (convert_arguments): Check for error_mark_node.
9391
9392 2005-01-21  Ian Lance Taylor  <ian@airs.com>
9393
9394         PR tree-optimization/13000
9395         * tree-inline.c: Include "tree-flow.h".
9396         (expand_call_inline): If warn_return_type, warn if non-void inline
9397         function falls through.
9398         * tree-cfg.c (execute_warn_function_return): Don't warn about
9399         control reaching end if TREE_NO_WARNING is set.  Set
9400         TREE_NO_WARNING.
9401         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
9402         has been lowered.
9403         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
9404         branch if we don't need one.
9405         * c-typeck.c: Include "tree-flow.h"
9406         (c_finish_bc_stmt): Don't add a goto if the current statement
9407         list doesn't fall through to the current point.
9408
9409 2005-01-21  Roger Sayle  <roger@eyesopen.com>
9410
9411         PR rtl-optimization/576
9412         * real.c (real_arithmetic): Change return type from void to bool
9413         to return an indication that the result may be inexact.
9414         * real.h (real_arithmeric): Update prototype.
9415         * fold-const.c (const_binop):  Don't constant fold floating
9416         point expressions when the user specifies -frounding-math and
9417         the result may depend upon the run-time rounding mode.
9418         (fold_convert_const_real_from_real): Clean-up.
9419         (fold_initializer): Ignore flag_rounding_math for initializers.
9420         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
9421         constant fold FP operations with flag_rounding_math if the
9422         result may depend upon the run-time rounding mode.
9423
9424 2005-01-21  Tom Tromey  <tromey@redhat.com>
9425
9426         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
9427
9428 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9429
9430         * tree-cfg.c: Fix comment typos.
9431
9432 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
9433
9434         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
9435         around the call to rest_of_handle_branch_target_load_optimize.
9436
9437 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
9438
9439         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
9440         (sparc64-*-openbsd*): Likewise.
9441         (sparclite-*-elf*): Include tm-dwarf2.h.
9442         (sparc86x-*-elf*): Likewise.
9443         (sparc64-*-elf*): Likewise.
9444         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
9445         (DBX_DEBUGGING_INFO): Likewise.
9446         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
9447         (PREFERRED_DEBUGGING_TYPE): Likewise.
9448         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
9449         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
9450         (PREFERRED_DEBUGGING_TYPE): Likewise.
9451         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
9452         (PREFERRED_DEBUGGING_TYPE): Likewise.
9453         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
9454
9455 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
9456
9457         PR target/18701
9458         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
9459
9460 2005-01-20  Paul Brook  <paul@codesourcery.com>
9461
9462         * doc/rtl.texi: Document value extension requirements for CONST_INT.
9463
9464 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9465
9466         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
9467         label is first in a sequence of labels.
9468
9469         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
9470
9471 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
9472             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9473
9474         * doc/sourcebuild.texi (Test Directives): New.
9475
9476 2005-01-20  Roger Sayle  <roger@eyesopen.com>
9477
9478         * real.c (real_floor): Don't leave the result uninitialized when
9479         mode is VOIDMode, but return the unrounded intermediate value.
9480         (real_ceil): Likewise.
9481
9482 2005-01-20  Paul Brook  <paul@codesourcery.com>
9483
9484         * config/arm/arm.md (insv): Use gen_int_mode.
9485
9486 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
9487
9488         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
9489         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9490         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9491         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9492         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9493
9494 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
9495
9496         Fix PR debug/19124
9497         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
9498         fbreg, so we have to assume we can't.
9499         (loc_descriptor_from_tree_1): Ditto.
9500         (containing_function_has_frame_base): New function.
9501         (add_location_or_const_value_attribute): Use it.
9502         Also try to generate a frame_base from a single element location
9503         list.
9504
9505 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9506
9507         PR tree-optimization/15349
9508         * timevar.def (TV_TREE_MERGE_PHI): New.
9509         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
9510         PHI_WANTED.
9511         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
9512         calls to tree_forwarder_block_p.
9513         (remove_forwarder_block_with_phi, merge_phi_nodes,
9514         gate_merge_phi, pass_merge_phi): New.
9515         * tree-optimize.c (init_tree_optimization_passes): Add
9516         pass_merge_phi.
9517         * tree-pass.h: Add an extern for pass_merge_phi;
9518
9519 2005-01-20  Richard Henderson  <rth@redhat.com>
9520
9521         PR target/19418
9522         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
9523         (_mm_castps_pd, _mm_castps_si128): New.
9524         (_mm_castsi128_ps, _mm_castsi128_pd): New.
9525
9526 2005-01-20  Richard Henderson  <rth@redhat.com>
9527
9528         PR target/19530
9529         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
9530         __builtin_ia32_vec_init_v2si.
9531         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
9532         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
9533         (ix86_init_mmx_sse_builtins): Create it.
9534         (ix86_expand_builtin): Expand it.
9535         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
9536         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
9537         (vec_extractv2si_0, vec_extractv2si_1): New.
9538
9539 2005-01-20  Richard Henderson  <rth@redhat.com>
9540
9541         PR target/16533
9542         * config/i386/i386.c (ix86_expand_push): New.
9543         * config/i386/mmx.md (push<MMXMODE>1): New.
9544         * config/i386/sse.md (push<SSEMODE>1): New.
9545         * config/i386/i386-protos.h: Update.
9546
9547 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9548
9549         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
9550         copyright.
9551
9552 2005-01-20  Richard Henderson  <rth@redhat.com>
9553
9554         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
9555         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
9556
9557 2005-01-19  Richard Henderson  <rth@redhat.com>
9558
9559         PR target/19350
9560         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
9561         to V4SFmode in SSE1 fallback load path.
9562
9563 2005-01-19  Richard Henderson  <rth@redhat.com>
9564
9565         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
9566         in QImode expansion to ix86_expand_vector_set.
9567         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
9568
9569 2005-01-19  Richard Henderson  <rth@redhat.com>
9570
9571         PR target/19511
9572         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
9573         subclass of the input class.
9574         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
9575         Always true for cross-SSE1 classes.  Rationalize conditionals.
9576         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
9577         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
9578         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
9579         (movdi_2): Add MMX/SSE zeros.
9580         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
9581         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
9582         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
9583         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
9584         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
9585         (zero_extendsidi2_rex64_1): Remove.
9586         (MOV0 peephole): Check GENERAL_REG_P.
9587
9588 2005-01-19  Richard Henderson  <rth@redhat.com>
9589
9590         PR target/19427
9591         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
9592         shufps elements.
9593         (ix86_expand_vector_extract): Likewise.
9594
9595 2005-01-19  Richard Henderson  <rth@redhat.com>
9596
9597         PR middle-end/19304
9598         * expr.c (emit_move_change_mode): New argument force; use
9599         simplify_gen_subreg if true.
9600         (emit_move_via_alt_mode): Merge into ...
9601         (emit_move_via_integer): ... here.
9602         (emit_move_ccmode): Use emit_move_change_mode directly.
9603
9604 2005-01-19  Richard Henderson  <rth@redhat.com>
9605
9606         PR target/19518
9607         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
9608         (alpha_preferred_reload_class): Handle CONST_VECTOR.
9609         (alpha_emit_set_const_1): Add no_output parameter; don't emit
9610         rtl if true.
9611         (alpha_emit_set_const): Likewise.  Make static.
9612         (alpha_emit_set_long_const): Make static.
9613         (alpha_extract_integer): Split out from alpha_expand_mov.
9614         (alpha_split_const_mov): Likewise.
9615         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
9616         (alpha_legitimate_constant_p): New.
9617         * config/alpha/alpha-protos.h: Update.
9618         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
9619         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
9620         * config/alpha/alpha.md (movsi): Add n alternative.
9621         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
9622         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
9623         (splitters for all of the above): Use alpha_split_const_mov.
9624         * config/alpha/predicates.md (non_add_const_operand): New.
9625         (non_zero_const_operand): New.
9626         (input_operand): Use alpha_legitimate_constant_p after reload.
9627
9628 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
9629
9630         PR tree-optimization/19038
9631         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
9632         (add_candidate): Add ivs with increment in latch only if
9633         allow_ip_end_pos_p is true.
9634         (determine_iv_cost): Use empty_block_p.
9635
9636 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
9637
9638         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
9639         (compute_dominance_frontiers): Ditto.
9640
9641 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
9642
9643         PR target/19529
9644         * config/sh/t-rtems: New.
9645         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
9646
9647 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
9648
9649         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
9650         the offset of the selected field.
9651
9652 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
9653
9654         * tree-cfg.c (remove_forwarder_block): Fix the check to
9655         prevent a nonlocal label from appearing in the middle of a
9656         basic block.
9657
9658 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
9659
9660         PR rtl-optimization/19462
9661         * reorg.c (find_end_label): Create return insn only if
9662         current_function_epilogue_delay_list is empty.
9663
9664 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
9665
9666         * doc/passes.texi: Remove paragraph mentioning new-ra.
9667
9668 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
9669
9670         PR rtl-optimization/15139
9671         * combine.c: Include params.h.
9672         (count_rtxs): New function.
9673         (record_value_for_reg): If replace_rtx would replace at least
9674         2 occurrences of REG in VALUE and TEM is really large, replace REG with
9675         (clobber (const_int 0)) instead of TEM.
9676         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
9677         * params.h (MAX_LAST_VALUE_RTL): New.
9678         * Makefile.in (combine.o): Depend on $(PARAMS_H).
9679         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
9680
9681         PR c/17297
9682         * c-typeck.c (digest_init): Only call build_vector if all constructor
9683         elements are *_CST nodes.
9684         * gimplify.c (gimplify_init_constructor): Likewise.
9685
9686         PR middle-end/19164
9687         * c-typeck.c (digest_init): Only call build_vector if inside_init
9688         is a CONSTRUCTOR.
9689
9690 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
9691
9692         * toplev.c (init_asm_output): Remove dead #ifdef.
9693
9694 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9695
9696         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
9697
9698 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
9699
9700         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
9701         accessing DECL_FUNCTION_CODE.
9702         * dojump.c (do_jump): Likewise.
9703         * gimplify.c (gimplify_call_expr): Likewise.
9704         * predict.c (expr_expected_value): Likewise.
9705         (strip_builtin_expect): Likewise.
9706         * tree-inline.c (estimate_num_insns_1): Likewise.
9707         * tree-ssa-loop-im.c (stmt_cost): Likewise
9708         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
9709         (tree_expr_nonnegative_p): Likewise.
9710
9711 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
9712
9713         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
9714         variant of the load_pcrel_sym pattern.
9715         * config/sparc/sparc.md (P macro): Move to the top.
9716         (load_pcrel_sym): Macroize using P.
9717         (save_register_window): Likewise.
9718
9719 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
9720
9721         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
9722         ("sordered"): Same.
9723
9724 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
9725
9726         PR C/19472
9727         * c-typeck.c (build_asm_expr): Strip nops off
9728         input memory operands.
9729
9730 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
9731
9732         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
9733         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
9734         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
9735         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
9736
9737 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
9738
9739         PR target/19379
9740         * config/i386/i386.c (override_options): If the 80387 is disabled,
9741         then do not return FP values using FP registers.
9742
9743 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
9744
9745         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
9746         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
9747         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
9748         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
9749         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
9750         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
9751         output.h, postreload-gcse.c, postreload.c, recog.c,
9752         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
9753         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
9754         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
9755         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
9756         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
9757         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
9758         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
9759         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
9760
9761         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
9762         config/alpha/alpha.c, config/arm/vfp.md,
9763         config/i386/emmintrin.h, config/i386/i386-modes.def,
9764         config/i386/i386-protos.h, config/i386/i386.h,
9765         config/i386/pmmintrin.h, config/i386/ppro.md,
9766         config/i386/predicates.md, config/i386/xmmintrin.h,
9767         config/i860/i860.c, config/ia64/ia64-modes.def,
9768         config/ia64/ia64-protos.h, config/ia64/ia64.h,
9769         config/ia64/ia64.md, config/ia64/itanium1.md,
9770         config/ia64/itanium2.md, config/ia64/predicates.md,
9771         config/iq2000/iq2000.h, config/mips/linux64.h,
9772         config/rs6000/aix41.h, config/rs6000/aix43.h,
9773         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
9774         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
9775         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
9776         config/sparc/linux64.h, config/sparc/litecoff.h,
9777         config/sparc/sp64-elf.h, config/sparc/sparc.c,
9778         config/sparc/sparc.h, config/sparc/sparc.md,
9779         config/sparc/sysv4-only.h: Update copyright.
9780
9781 2005-01-18  Richard Henderson  <rth@redhat.com>
9782
9783         PR target/19496
9784         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
9785
9786 2005-01-18  Marc Espie  <espie@openbsd.org>
9787         * config/i386/openbsdelf.h: Typo.
9788
9789 2005-01-18  Richard Henderson  <rth@redhat.com>
9790
9791         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
9792         special case for sse.
9793         * config/i386/predicates.md (sse_comparison_operator): Likewise.
9794
9795 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
9796
9797         * tree-inline.c (estimate_num_insns_1): Added cases for
9798         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
9799
9800 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
9801
9802         PR rtl-optimization/19296
9803         * combine.c (simplify_comparison): Rewrite the condition under
9804         which a non-paradoxical SUBREG of a PLUS can be lifted when
9805         compared against a constant.
9806
9807 2005-01-18  Andi Kleen <ak@muc.de>
9808
9809         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
9810         * c.opt (-Wpointer-sign): Add.
9811         * doc/invoke.texi: (-Wpointer-sign): Add.
9812
9813 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
9814
9815         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
9816         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
9817         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
9818         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
9819         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
9820         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
9821         for TARGET_MIX_SSE_I387.
9822         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
9823         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
9824         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
9825         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
9826         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
9827         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
9828         TARGET_MIX_SSE_I387.
9829         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
9830         from expander.
9831
9832 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
9833
9834         PR target/19424
9835         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
9836         Add movaps alternative for xmm reg->reg move.
9837
9838 2005-01-17  Jeff Law  <law@redhat.com>
9839
9840         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
9841         at the end of the main DOM loop rather than just before DOM exits.
9842
9843 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
9844
9845         PR tree-optimization/19121
9846         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
9847         adding aliases to a name tag, also add them to the pointer's
9848         type tag.
9849         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
9850         sensitive alias info at all.  Only check that the two pointers
9851         have compatible pointed-to sets.
9852         * tree-ssa.c (verify_name_tags): Verify that the alias set of
9853         a pointer's type tag is a superset of the alias set of the
9854         pointer's name tag.
9855
9856 2005-01-17  James E Wilson  <wilson@specifixinc.com>
9857
9858         PR target/19357
9859         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
9860         comment to document why.
9861
9862 2005-01-17  Richard Henderson  <rth@redhat.com>
9863
9864         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
9865         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
9866         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
9867         sse2_vmsminv2df3_finite): New.
9868         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
9869         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
9870         Force op1 into register.
9871
9872 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
9873
9874         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
9875         bubblestrap from always rebuilding build directory.
9876
9877 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
9878
9879         * config/s390/s390.md ("*clc"): Remove incorrect '='.
9880         ("*cmpmem_short"): Likewise.
9881
9882 2005-01-17  Steven Bosscher  <stevenb@suse.de>
9883
9884         * basic-block.h: Document BB_* flags.
9885         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
9886         use an sbitmap instead.
9887         * sched-rgn.c (compute_trg_info): Likewise.
9888
9889 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
9890
9891         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
9892         redundant target_cpu_default and extra_parts lines.  Use the default
9893         "from-abi" ISA.
9894         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
9895         (SUBTARGET_EXTRA_SPECS): Delete.
9896         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
9897         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
9898         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
9899         and "n32" for -mabi=n32.
9900
9901 2005-01-17  Ian Lance Taylor  <ian@airs.com>
9902
9903         PR c/5675
9904         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
9905         fold constant variables into initial values.
9906
9907 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
9908
9909         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
9910
9911         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
9912         through the statements backward.
9913
9914 2005-01-17  Ian Lance Taylor  <ian@airs.com>
9915
9916         PR middle-end/13127:
9917         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
9918         a variable set to the return value of the inlined function.
9919
9920 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
9921
9922         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
9923         when modes are tieable.
9924
9925 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
9926
9927         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
9928         of pthread_create to find out if threads are enabled.
9929         * gthr-posix95.h (__gthread_active_p): Likewise.
9930
9931 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
9932
9933         * common.opt (-fnew-ra): Remove.
9934         * ra*.*: Remove.
9935         * toplev.h (flag_new_regalloc): Remove.
9936         * Makefile.in (ra*.*): Don't mention.
9937         * passes.c (rest_of_handle_new_regalloc): Remove.
9938         (rest_of_handle_combine, rest_of_compilation): Always consider
9939         flag_new_regalloc as false.
9940         * doc/invoke.texi: Don't document -fnew-ra.
9941
9942 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
9943
9944         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
9945         last parameter to reg_scan.
9946         * loop.c (loop_optimize): Likewise.
9947         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
9948         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
9949         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
9950         rest_of_handle_gcse, rest_of_handle_loop_optimize,
9951         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
9952         * regclass.c (reg_scan): Likewise, for the declaration.
9953         * rtl.h (reg_scan): Likewise, for the prototype.
9954
9955 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
9956
9957         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
9958         mark_dfs_back_edges.
9959
9960 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
9961
9962         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
9963         (compute_avail): Uses don't go in tmp_gen.
9964
9965 2005-01-16  Steven Bosscher  <stevenb@suse.de>
9966
9967         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
9968         loop to look for a free slot in a page entry.
9969
9970 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9971
9972         PR target/16304
9973         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
9974         * toplev.c (compile_file): Call process_pending_assemble_output_defs
9975         just before targetm.asm_out.file_end.
9976         * tree.h (process_pending_assemble_output_defs): Declare.
9977         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
9978         New functions.
9979         (assemble_alias): Defer generation of assembly code for defines when
9980         TARGET_DEFERRED_OUTPUT_DEFS is true.
9981         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
9982         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
9983         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
9984
9985 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9986
9987         PR target/19336
9988         * pa.c (pa_scalar_mode_supported_p): New function.
9989         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9990         * pa.h (MIN_UNITS_PER_WORD): Add comment.
9991
9992         * pa-protos.h (prefetch_operand): Delete.
9993         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
9994         * pa.c (prefetch_operand): Delete.
9995         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
9996         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
9997         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
9998         and prefetch_nocc_operand.
9999         * pa.md (prefetch): Rework to avoid reload problems handling short
10000         displacements when a cache control completer needs to be provided.
10001         (prefetch_32, prefetch_64): Delete.
10002         (prefetch_cc, prefetch_nocc): New patterns.
10003
10004 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
10005
10006         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
10007
10008 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10009
10010         PR ada/19388
10011         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
10012         exceeds maximum alignment for global common data.
10013         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
10014         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
10015
10016 2004-01-15  Roger Sayle  <roger@eyesopen.com>
10017
10018         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
10019
10020 2004-01-15  Roger Sayle  <roger@eyesopen.com>
10021
10022         * harg-reg-set.h (reg_class_names): Prototype global array.
10023         * regclass.c (reg_class_names): Declare here and initialize to
10024         REG_CLASS_NAMES.
10025         (dump_regclass): Remove local declaration of reg_class_names.
10026         (regclass): Likewise.
10027         * cfg.c (dump_flow_info): Likewise.
10028         * ra-debug.c (reg_class_names): Likewise.
10029         * regrename.c (reg_class_names): Likewise.
10030         * reload.c (reg_class_names): Likewise.
10031         * reload1.c (spill_failure): Likewise.
10032         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
10033
10034 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
10035
10036         * config/s390/s390.md ("reload_outti"): Remove predicate for
10037         output operand.  Abort if operand is not a MEM.
10038         ("reload_outdi", "reload_outdf"): Likewise.
10039
10040 2005-01-15  Marc Espie  <espie@openbsd.org>
10041
10042         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
10043         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
10044         * config/openbsd.h:  Fix C++ includes for native configurations.
10045         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
10046         Add trampoline support.
10047         * config/i386/openbsdelf.h: New.
10048
10049 2005-01-15  Marc Espie  <espie@openbsd.org>
10050
10051         * collect2.c (main): Explicitly parse -dynamic-linker option.
10052
10053 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
10054
10055         PR tree-optimization/19060
10056         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
10057         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
10058         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
10059         and handle extract_range_from_cond returning false.
10060         * fold-const.c (fold): Optimize comparisons with min/max even for
10061         width > HOST_BITS_PER_WIDE_INT.
10062
10063 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
10064
10065         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
10066         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
10067         Remove little endian multilib variants.
10068         Add mips32 multilib variant.
10069
10070 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10071
10072         * explow.c (copy_all_reg, stabilize): Remove.
10073         * expr.h: Remove the corresponding prototypes.
10074
10075         * rtlanal.c (regs_set_between_p): Remove.
10076         * rtl.h: Remove the corresponding prototype.
10077
10078 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
10079
10080         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
10081         to rs6000_nonimmediate_operand.
10082         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
10083         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
10084         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
10085         rs6000_nonimmediate_operand.
10086         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
10087         rs6000_nonimmediate_operand.
10088
10089 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
10090
10091         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
10092
10093 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
10094
10095         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
10096         on e500v2.
10097         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
10098         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
10099
10100         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
10101         (rs6k_nonimmediate_operand): New.
10102         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
10103         correctly.
10104         (legitimate_lo_sum_address_p): Same.
10105         (rs6000_legitimize_address): Same.
10106         (rs6000_legitimize_reload_address): Same.
10107         (rs6000_legitimate_address): Same.
10108         (spe_build_register_parallel): Pass DF and DC modes in a DI
10109         register.
10110
10111         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
10112         to rs6k_nonimmediate_operand.
10113
10114         * config/rs6000/spe.md ("*frob_df_di"): New.
10115         ("*frob_di_df"): New.
10116         ("*frob_di_df_2"): New.
10117         ("*mov_sidf_e500_subreg0"): New.
10118         ("*mov_sidf_e500_subreg4"): New.
10119         ("*movdf_e500_double"): Change predicate to
10120         rs6k_nonimmediate_operand.
10121
10122 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
10123
10124         * postreload.c (move2add_note_store): Only call
10125         trunc_int_for_mode on scalar integers.
10126
10127 2005-01-14  Steven Bosscher  <stevenb@suse.de>
10128
10129         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
10130         replace BB_VISITED uses.
10131         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
10132         (propagate_necessity): Check the bitmap instead of BB_VISITED.
10133         (tree_dce_done): Free visited_control_parents.
10134         (perform_tree_ssa_dce): Allocate and clear it.
10135         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
10136         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
10137         instead of BB_VISITED.
10138
10139 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10140
10141         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
10142         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
10143         Remove unused prototypes.
10144
10145 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
10146
10147         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
10148         64-bit register usage.
10149         (spe_func_has_64bit_regs_p): Add FIXME note.
10150
10151 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
10152
10153         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
10154         flag_finite_math_only with flag_unsafe_math_optimizations.
10155
10156 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
10157
10158         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
10159         end-of-stack check.
10160         (__tpf_eh_return): Copy TPF private stack area from the module
10161         boundary stack frame.  Add check for when module addresses are
10162         equal, but no stub address is found.
10163
10164 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
10165
10166         PR target/7525
10167         * arm.h (struct machine_function): Add call_via field.
10168         (thumb_call_via_label): Declare.
10169         * arm.c (thumb_call_via_label): New variable.
10170         (thumb_call_reg_needed): New variable.
10171         (arm_output_function_epilogue): For Thumb code, output any per-function
10172         call-indirect trampolines.
10173         (thumb_call_via_reg): New function.
10174         (arm_file_end): New function.
10175         (TARGET_ASM_FILE_END): Call arm_file_end.
10176         (aof_file_end): Likewise.
10177         * arm-protos.h (thumb_call_via_reg): Declare.
10178         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
10179         thumb_call_via_reg in normal case.
10180
10181 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
10182
10183         PR middle-end/19084
10184         PR rtl-optimization/19348
10185         * recog.c (peephole2_optimize): Do global life update if some peephole
10186         decides it doesn't need at least one of its inputs and that change
10187         influences liveness at the start of the basic block.
10188
10189         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
10190         arguments instead of 1.
10191
10192 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
10193
10194         PR middle-end/18820
10195         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
10196         zero for nested functions needing a static chain or functions
10197         with a non-constant address.
10198
10199 2005-01-13  Roger Sayle  <roger@eyesopen.com>
10200
10201         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
10202         (and (sign_extend X) C) into (zero_extend (and X C)).
10203
10204 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
10205
10206         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
10207
10208 2005-01-13  Richard Henderson  <rth@redhat.com>
10209
10210         PR target/19009
10211         PR target/19250
10212         PR target/19252
10213         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
10214         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
10215         not just TARGET_SSE.
10216         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
10217         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
10218         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
10219         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
10220         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
10221         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
10222         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
10223         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
10224         (movdicc_c_rex64): Rename with '*'.
10225         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
10226         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
10227         (movsfcc_1_387): Rename from movsfcc_1.
10228         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
10229         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
10230         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
10231         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
10232         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
10233         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
10234         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
10235         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
10236         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
10237         sse_movdfcc_const0_4): Remove.
10238         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
10239         recognize min/max early.  Update for changed sse cmove patterns.
10240         (ix86_split_sse_movcc): New.
10241         * config/i386/i386-protos.h: Update.
10242
10243 2005-01-13  Steven Bosscher  <stevenb@suse.de>
10244
10245         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
10246         (fix_stmt_v_may_defs): Likewise.
10247
10248 2005-01-13  Richard Henderson  <rth@redhat.com>
10249
10250         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
10251         for converting the mask.
10252
10253 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
10254
10255         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
10256         definition to 600.
10257
10258 2005-01-13  Richard Henderson  <rth@redhat.com>
10259
10260         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
10261         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
10262         IX86_BUILTIN_MOVDQ2Q): Remove.
10263         (IX86_BUILTIN_VEC_EXT_V4SI): New.
10264         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
10265         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
10266         shuffling.
10267         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
10268         (sse2_pextrw): Fix immediate constraint.
10269         (sse2_loadq, sse2_loadq_rex64): Remove.
10270         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
10271         Use __builtin_ia32_vec_ext_<size>.
10272         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
10273
10274 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
10275
10276         * function.c (assign_parm_setup_block): Look inside original
10277         entry_parm when inspecting PARALLEL.
10278
10279 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
10280             Joel Sherrill  <joel@oarcorp.com>
10281
10282         PR target/19399
10283         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
10284         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
10285         rtems_gxx_recursive_mutex_init.
10286         (__gthread_recursive_mutex_lock): New function.
10287         (__gthread_recursive_mutex_trylock): Likewise.
10288         (__gthread_recursive_mutex_unlock): Likewise.
10289
10290 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
10291
10292         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
10293
10294 2005-01-13  Jan Beulich  <jbeulich@novell.com>
10295
10296         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
10297         (ashrti3_internal): Indicate output is early clobber. Generate result
10298         into output rather than first input. Use move for low word of output
10299         if shift count is exactly 64.
10300         (lshrti3_internal): Likewise.
10301
10302 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
10303
10304         PR target/18329
10305         PR target/18330
10306         * reload1.c (delete_output_reload): Don't delete an output reload
10307         if the pseudo lives longer than a single basic block.  Adjust and
10308         improve wording of comment.
10309
10310 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
10311
10312         PR target/19334
10313         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
10314         of TYPE_SIZE where we mean the number of bytes.
10315
10316 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
10317
10318         * function.c (assign_parm_setup_block): Relax condition on
10319         multi-register optimization.
10320
10321 2005-01-12  Nick Clifton  <nickc@redhat.com>
10322
10323         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
10324         an "in_delay_slot" attribute of "no" to prevent them being used in
10325         delay slots.  This is forbidden because they might generate
10326         exceptions.
10327
10328 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
10329
10330         PR target/19389
10331         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
10332         with r->Y and Y->r.
10333
10334 2005-01-12  Nick Clifton  <nickc@redhat.com>
10335
10336         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
10337         passed on to GAS) but do not define, as GAS no longer supports or
10338         needs the -m2000 option.
10339
10340 2005-01-11  Roger Sayle  <roger@eyesopen.com>
10341
10342         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
10343         type as args of unprototyped builtins aren't automatically promoted.
10344         (fold_builtin_abs): Likewise.
10345
10346 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10347
10348         * Makefile.in: Set a `build-warn' variable.
10349
10350 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
10351
10352         PR tree-optimization/17949
10353         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
10354         (find_interesting_uses_address): Use it.
10355
10356 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
10357
10358         * regrename.c (kill_value): Handle subreg's that won't simplify.
10359
10360 2005-01-11  Richard Henderson  <rth@redhat.com>
10361
10362         PR target/13366
10363         * config/i386/i386.h (enum ix86_builtins): Move ...
10364         * config/i386/i386.c: ... here.
10365         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
10366         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
10367         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
10368         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
10369         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
10370         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
10371         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
10372         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
10373         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
10374         IX86_BUILTIN_LOADDDUP): Remove.
10375         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
10376         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
10377         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
10378         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
10379         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
10380         (ix86_init_builtins): Make static.
10381         (ix86_init_mmx_sse_builtins): Update for changed builtins.
10382         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
10383         if all the modes match.  Otherwise, fake it.
10384         (get_element_number, ix86_expand_vec_init_builtin,
10385         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
10386         (ix86_expand_builtin): Make static.  Update for changed builtins.
10387         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
10388         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
10389         (ix86_expand_vector_init_duplicate): New.
10390         (ix86_expand_vector_init_low_nonzero): New.
10391         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
10392         Split out from ix86_expand_vector_init; handle integer modes.
10393         (ix86_expand_vector_init): Use them.
10394         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
10395         * config/i386/i386-protos.h: Update.
10396         * config/i386/predicates.md (reg_or_0_operand): New.
10397         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
10398         (movv2sf_internal): Likewise.  And a splitter to match them all.
10399         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
10400         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
10401         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
10402         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
10403         (mmx_pinsrw): Fix operand ordering.
10404         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
10405         rather than sse_loadss expander.
10406         (movv2df splitter): Similarly.
10407         (sse_loadss, sse_loadlss): Remove.
10408         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
10409         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
10410         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
10411         (sse3_movddup): Rename with '*'.
10412         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
10413         (sse2_loadsd): Remove.
10414         (vec_dupv2df_sse3): Rename from sse3_loadddup.
10415         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
10416         (sse2_pinsrw): Fix argument ordering.
10417         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
10418         (sse2_stored): Remove 'r' destination.
10419         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
10420         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
10421         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
10422         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
10423         vec_extractv16qi, vec_initv16qi): New.
10424
10425         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
10426         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
10427         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
10428         constructor form.
10429         (_mm_load_pd, _mm_store_pd): Use plain dereference.
10430         (_mm_load_si128, _mm_store_si128): Likewise.
10431         (_mm_load1_pd): Use _mm_set1_pd.
10432         (_mm_load_sd): Use _mm_set_sd.
10433         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
10434         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
10435         (_mm_set_epi64): Use _mm_set_epi64x.
10436         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
10437         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
10438         _mm_setr_epi8): Use _mm_set_foo form.
10439         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
10440         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
10441         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
10442         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
10443         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
10444         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
10445         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
10446         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
10447         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
10448         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
10449         (_mm_movedup_pd): Use _mm_shuffle_pd.
10450         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
10451         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
10452         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
10453         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
10454         Use _mm_setzero_ps.
10455         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
10456         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
10457         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
10458         (_mm_store_ps): Use raw dereference.
10459         (_mm_store1_ps): Use _mm_storeu_ps.
10460         (_mm_storer_ps): Use _mm_store_ps.
10461         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
10462         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
10463
10464 2005-01-11  Stan Shebs  <shebs@apple.com>
10465
10466         * config/rs6000/rs6000.c (machopic_output_stub): Issue
10467         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
10468
10469 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
10470
10471         PR target/18761
10472         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10473         Skip all DECLs except for FIELD_DECLs.
10474
10475 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
10476
10477         * config/s390/s390.c (override_options): Return error if
10478         -mbackchain, -mpacked-stack and -mhard-float are used together.
10479         (s390_va_start): Remove the backchain && packed-stack special case.
10480         (s390_gimplify_va_arg): Likewise.
10481         * doc/invoke.texi: Remove the ABI incompatibility note.
10482
10483 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
10484
10485         * config/s390/s390.c (struct s390_frame_layout): Remove
10486         save_backchain_p.
10487         (s390_frame_info, s390_emit_prologue): Replace occurrences of
10488         save_backchain_p with TARGET_BACKCHAIN.
10489
10490 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
10491
10492         PR target/18916
10493         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
10494         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
10495         * function.c (locate_and_pad_parm): Set new field.
10496         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
10497         Tweak where_pad test to include "none".  Always set mem align for
10498         stack_parm.
10499         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
10500         not sufficient for type.
10501         (assign_parm_setup_block): If stack_parm is zero on entry, always
10502         make a new stack local.  Block move old stack parm if necessary
10503         to new aligned stack local.
10504         (assign_parm_setup_stack): Use a block move to handle
10505         potentially misaligned entry_parm.
10506         (assign_parms_unsplit_complex): Specify required alignment when
10507         creating stack local.
10508         * calls.c (compute_argument_addresses): Override alignment of stack
10509         arg calculated from its type with the alignment given by
10510         FUNCTION_ARG_BOUNDARY.
10511         (store_one_arg): Likewise.
10512
10513 2005-01-11  Jan Beulich  <jbeulich@novell.com>
10514
10515         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
10516         Change respective itanium_class attribute to ialu.
10517         (shladdp4_internal): New.
10518         * config/ia64/predicates.md (shladd_log2_operand): New.
10519
10520 2005-01-11  Richard Henderson  <rth@redhat.com>
10521
10522         * expr.c (store_constructor): Use rtvec_alloc instead of
10523         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
10524
10525 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
10526
10527         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
10528
10529 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
10530
10531         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
10532         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
10533         (TARGET_RWRELOC): Define.
10534         (ia64_rwreloc_section_type_flags): Delete.
10535         (ia64_section_type_flags): New function.
10536         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
10537         (TARGET_RWRELOC): Define.
10538
10539 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
10540
10541         PR target/18987
10542         * config/ia64/ia64.c (process_set): For alloc insn, only call
10543         process_epilogue is !frame_pointer_needed.
10544
10545 2005-01-10  Roger Sayle  <roger@eyesopen.com>
10546
10547         PR c++/19355
10548         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
10549         unary operator and can't be treated as a binary/comparison operator.
10550
10551 2005-01-10  Richard Henderson  <rth@redhat.com>
10552
10553         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
10554         (ix86_return_in_memory): Likewise.
10555         (function_arg_advance):  Likewise.  Mirror structure in function_arg
10556         for choosing register to advance.
10557
10558 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
10559
10560         * tree-vectorizer.c, tree.def: Fix comment typos.
10561
10562 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
10563
10564         * config/s390/s390.c (struct processor_costs): 4 new fields:
10565         ddbr, ddr, debr, der.
10566         (s390_rtx_costs): More precise handling of divide instructions.
10567
10568 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
10569
10570         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
10571
10572 2005-01-10  Jan Beulich  <jbeulich@novell.com>
10573
10574         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
10575         names resulting from -ffunction-sections/-fdata-sections and linkonce
10576         ones.
10577         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
10578         based on the section name. Rearrange the section name comparison logic
10579         slightly so that each section name is compared against at most once.
10580
10581 2005-01-10  Ben Elliston  <bje@au.ibm.com>
10582
10583         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
10584         targets for which -fPIC reduces limitations on the GOT size.
10585
10586 2005-01-09  Falk Hueffner  <falk@debian.org>
10587
10588         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
10589         X/C1 cmpop C2.
10590
10591 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
10592
10593         PR target/18720
10594         * collect2.c (main): Set aixrtl_flag for -brtl option.
10595         (resolve_lib_name): Search for .so file extension before .a
10596         if aixrtl_flag set.
10597
10598 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
10599
10600         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
10601         (vect_analyze_data_refs_alignment): Add dump prints.
10602
10603 2005-01-09  Ira Rosen  <irar@il.ibm.com>
10604
10605         * tree-vectorizer.c (vect_analyze_offset_expr): Use
10606         expr_invariant_in_loop_p.
10607         Initialize outputs first thing in the function.
10608         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
10609         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
10610         (vect_analyze_pointer_ref_access): Check that the initial condition of
10611         the access function is loop invariant.
10612
10613 2005-01-09  Richard Henderson  <rth@redhat.com>
10614
10615         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
10616         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
10617         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
10618         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
10619         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
10620         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
10621         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
10622         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
10623         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
10624         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
10625         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
10626         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
10627         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
10628         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
10629         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
10630         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
10631         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
10632         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
10633         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
10634         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
10635         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
10636         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
10637         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
10638         mmx_ prefix.
10639         (mmx_clrdi, pavgusb): Remove.
10640         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
10641         with leading sse_ prefix.
10642         * config/i386/sse.md: Receive them.
10643         * config/i386/mmx.md: New file.
10644         (MMXMODE12, MMXMODE24, mmxvecsize): New.
10645         (subrv2sf3): Turn into expander for normal subtraction.
10646         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
10647         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
10648         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
10649         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
10650         commutative; use ix86_binary_operator_ok.
10651         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
10652         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
10653         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
10654         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
10655         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
10656         Macroize from existing patterns; use ix86_binary_operator_ok.
10657         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
10658         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
10659         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
10660         with vec_select+vec_concat.
10661         (mmx_pshufw, mmx_pshufw_1): Likewise.
10662         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
10663         (mmx_uavgv4hi3): Model correctly.
10664         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
10665         _mm_xor_si64): Remove casts.
10666
10667 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
10668
10669         PR tree-optimization/19224
10670         * tree-scalar-evolution.c (get_instantiated_value,
10671         set_instantiated_value): New functions.
10672         (instantiate_parameters_1): Cache the results.
10673         (instantiate_parameters, resolve_mixers): Initialize and free
10674         the cache.
10675
10676 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
10677
10678         * config/i386/i386.md (addhi_4): Correct reference in comment.
10679         (addqi_4): Same.
10680
10681 2005-01-08  Richard Henderson  <rth@redhat.com>
10682
10683         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
10684         (_mm_cvtsi128_si64x): Likewise.
10685         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
10686         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
10687         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
10688         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
10689         * config/i386/i386-protos.h: Update.
10690         * config/i386/i386.c (print_operand): Add 'H'.
10691         (ix86_fixup_binary_operands): Split out from ...
10692         (ix86_expand_binary_operator): ... here.
10693         (ix86_fixup_binary_operands_no_copy): New.
10694         (ix86_expand_fp_absneg_operator): Handle vector mode results.
10695         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
10696         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
10697         (safe_vector_operand): Use CONST0_RTX.
10698         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
10699         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
10700         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
10701         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
10702         special cases.
10703         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
10704         (IX86_BUILTIN_CMPNGESS): New.
10705         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
10706         (attr type): Add sselog1.
10707         (attr unit, attr memory): Handle it.
10708         (movti, movti_internal, movti_rex64): Move near other integer moves.
10709         (movtf, movtf_internal): Move near other fp moves.
10710         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
10711         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
10712         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
10713         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
10714         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
10715         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
10716         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
10717         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
10718         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
10719         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
10720         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
10721         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
10722         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
10723         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
10724         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
10725         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
10726         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
10727         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
10728         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
10729         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
10730         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
10731         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
10732         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
10733         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
10734         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
10735         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
10736         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
10737         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
10738         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
10739         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
10740         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
10741         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
10742         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
10743         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
10744         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
10745         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
10746         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
10747         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
10748         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
10749         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
10750         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
10751         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
10752         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
10753         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
10754         same time.
10755         (SSEPUSH, push<SSEPUSH>): Remove.
10756         (MMXPUSH, push<MMXPUSH>): Remove.
10757         (sse_movaps, sse_movaps_1, sse_movups): Remove.
10758         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
10759         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
10760         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
10761         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
10762         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
10763         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
10764         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
10765         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
10766         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
10767         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
10768         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
10769         (ppro_sse_log_V4SF): Handle sselog1.
10770         * config/i386/predicates.md (const_0_to_1_operand): New.
10771         (const_0_to_255_mul_8_operand): New.
10772         (const_1_to_31_operand): Rename from const_int_1_31_operand.
10773         (const_2_to_3_operand, const_4_to_7_operand): New.
10774         * config/i386/sse.md: New file.
10775         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
10776         (sse_movups): Rename from sse_movups_1.
10777         (sse_loadlss): Rename from sse_loadss_1.
10778         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
10779         from the name.
10780         (negv4sf2): Use ix86_expand_fp_absneg_operator.
10781         (absv4sf2, negv2df, absv2df): New.
10782         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
10783         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
10784         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
10785         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
10786         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
10787         (sse3_addsubv4sf3): Model correctly.
10788         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
10789         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
10790         (sse_movhlps): Model with vec_select+vec_concat.
10791         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
10792         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
10793         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
10794         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
10795         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
10796         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
10797         sse2_pshufhw_1): Likewise.
10798         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
10799         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
10800         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
10801         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
10802         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
10803         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
10804         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
10805         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
10806         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
10807         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
10808         sminv8hi3): Mark commutative
10809         operands.  Use ix86_binary_operator_ok.
10810         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
10811         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
10812         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
10813         sse2_punpcklqdq): Allow operand2 in memory.
10814         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
10815         sse2_movsd): Add memory alternatives.
10816         (sse_storelps): Turn expander into an insn; split after reload.
10817         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
10818         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
10819
10820 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
10821
10822         * configure.ac (DWARF-2 debug_line): Use objdump.
10823         * configure: Regenerate.
10824
10825 2005-01-08  Jeff Law  <law@redhat.com>
10826             Diego Novillo  <dnovillo@redhat.com>
10827
10828         PR tree-optimization/18241
10829         * tree-nrv.c (tree_nrv): Ignore volatile return values.
10830         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
10831         statements with volatile operands.
10832         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
10833         operands after marking a statement with has_volatile_ops.
10834
10835 2005-01-08  Roger Sayle  <roger@eyesopen.com>
10836
10837         * tree.c (int_fits_type_p): Always honor integer constant
10838         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
10839
10840 2005-01-08  Roger Sayle  <roger@eyesopen.com>
10841
10842         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
10843         the latent bug in rtl_delete_block has been resolved.
10844
10845 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
10846
10847         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
10848         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
10849
10850 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
10851
10852         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
10853         library as @multilib_dir@/$(SHLIB_SONAME).
10854
10855 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10856
10857         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
10858         * configure: Regenerate.
10859
10860 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
10861
10862         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
10863         TYPE_MODE.
10864
10865 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
10866
10867         PR target/13674
10868         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
10869         Convert non-word aligned offset address using ld/std into
10870         indirect address.
10871
10872 2005-01-07  Richard Henderson  <rth@redhat.com>
10873
10874         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
10875
10876 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
10877
10878         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
10879
10880 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
10881
10882         PR tree-optimization/19283
10883         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
10884         is not shorter than the original type.
10885
10886         PR rtl-optimization/19012
10887         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
10888
10889         PR rtl-optimization/18861
10890         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
10891         (FULL_STATE): Define.
10892         (mark_tablejump_edge): New function.
10893         (purge_dead_tablejump_edges): New function.
10894         (find_bb_boundaries): Use it.
10895
10896         PR tree-optimization/18828
10897         * builtins.c (expand_builtin_next_arg): Remove argument and all
10898         the argument checking.
10899         (expand_builtin): Adjust caller.
10900         (expand_builtin_va_start): Likewise.  Remove error for too many
10901         arguments.
10902         (fold_builtin_next_arg): Issue error for too many arguments.
10903         After checking arguments, replace them with magic arguments that
10904         prevent further checking of the args.
10905
10906 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10907
10908         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
10909
10910 2005-01-06  Roger Sayle  <roger@eyesopen.com>
10911
10912         PR target/6077
10913         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
10914         and %{.S:...} (and their negative variants) to test whether the
10915         input file is assembler or pre-processed-assembler independent of
10916         the actual filename extension.
10917
10918 2005-01-06  Roger Sayle  <roger@eyesopen.com>
10919
10920         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
10921         of sign or zero extended values.
10922
10923 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
10924
10925         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
10926         for IBM long double format correctly.
10927
10928 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
10929
10930         Fix PR tree-optimization/18792
10931
10932         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
10933         to first_loop_depth, and use loop depth instead of loop number.
10934         (build_classic_dir_vector): Ditto.
10935         (compute_data_dependences_for_loop): Use depth, not loop number.
10936         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
10937         number. Pass in loops, instead of loop numbers.
10938         (gather_interchange_stats): Ditto.
10939         (linear_transform_loops): Ditto.
10940
10941 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
10942
10943         PR rtl-opt/13299
10944         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
10945         biv_fits_mode_p, extension_within_bounds_p): New functions.
10946         (check_ext_dependent_givs): Use them.
10947
10948 2005-01-06  Roger Sayle  <roger@eyesopen.com>
10949
10950         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
10951         more than one barrier, in which case we should delete them all.
10952
10953 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
10954
10955         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
10956
10957 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
10958
10959         Fix PR middle-end/19286
10960         Fix PR debug/19267
10961         * dwarf2out.c (gen_subprogram_die): If we've already tried to
10962         output this subprogram, simply ignore this attempt to do it again.
10963         (add_abstract_origin_attribute): Don't abort trying to add the abstract
10964         origin attribute if it's not possible.
10965         (gen_block_die): Don't ignore subblocks of "unused" blocks.
10966         (decls_for_scope): Ditto.
10967         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
10968         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
10969
10970 2005-01-05  Richard Henderson  <rth@redhat.com>
10971
10972         PR target/11327
10973         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
10974         (bdesc_2arg): Use it.
10975         (ix86_expand_binop_builtin): Force operands into registers
10976         when optimizing.
10977         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
10978         ix86_expand_sse_compare, ix86_expand_sse_comi,
10979         ix86_expand_builtin): Likewise.
10980
10981 2005-01-05  Richard Henderson  <rth@redhat.com>
10982
10983         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
10984         and VEC_SELECT.
10985         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
10986         (mulv4hi3): Set itanium_class mmmul.
10987         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
10988         (fpack): Rename from fpack_sfsf.
10989
10990 2005-01-05  Richard Henderson  <rth@redhat.com>
10991
10992         PR rtl-opt/10692
10993         * reload1.c (do_input_reload): Restrict the optimization deleteing
10994         a previous output reload to RELOAD_FOR_INPUT.
10995
10996 2005-01-05  Steven Bosscher  <stevenb@suse.de>
10997
10998         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
10999         comment that we fall through after case.
11000         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
11001         (distribute_links): Likewise.
11002         * cse.c (cse_insn): Likewise.
11003         * cselib.c (cselib_invalidate_mem): Likewise.
11004         * df.c: Update comments at the top of the file.
11005         (read_modify_subreg_p): Update comments here too.
11006         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
11007         * flow.c (mark_set_1): Likewise.
11008         (mark_used_regs): Likewise.
11009         * gcse.c (mems_conflict_for_gcse_p): Likewise.
11010         (canon_list_insert): Likewise.
11011         (mark_set): Likewise.
11012         (try_replace_reg): Likewise.
11013         (store_killed_in_insn): Likewise.
11014         * loop.c (count_one_set): Likewise.
11015         (basic_induction_var): Likewise.
11016         * postreload-gcse.c (find_mem_conflicts): Likewise.
11017         * postreload.c (reload_combine_note_store): Likewise.
11018         (move2add_note_store): Likewise.
11019         * reload.c (find_equiv_reg): Likewise.
11020         (mark_referenced_resources): Likewise.
11021         * rtlanal.c (set_noop_p): Likewise.
11022         (note_stores): Likewise.
11023         (note_uses): Likewise.
11024         * sched-deps.c (sched_analyze_1): Likewise.
11025         * sched-rgn.c (check_live_1): Likewise.
11026         (update_live_1): Likewise.
11027         * config/i860/i860.c: Likewise.
11028
11029         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
11030         an lvalue.
11031         (ZERO_EXTRACT): Mention that this one can be an lvalue.
11032
11033         * doc/rtl.texi: Update documentation for bit-fields and SET.
11034
11035 2005-01-05  Roger Sayle  <roger@eyesopen.com>
11036
11037         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
11038
11039 2005-01-05  Jan Hubicka  <jh@suse.cz>
11040             Richard Henderson  <rth@redhat.com>
11041
11042         PR target/18910
11043         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
11044         with an offset.
11045
11046 2005-01-05  Richard Henderson  <rth@redhat.com>
11047
11048         PR target/12902
11049         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
11050         (sse_shufps): Change operand 3 to const_int_operand.
11051         (sse2_storelps): Fix typo in template.
11052         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
11053         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
11054         (ix86_expand_builtin): Likewise.
11055
11056 2005-01-05  Julian Brown  <julian@codesourcery.com>
11057
11058         * config/arm/arm.c (arm_return_in_memory): Treat complex types
11059         as aggregates for AAPCS ABIs.
11060
11061 2005-01-05  Stan Shebs  <shebs@apple.com>
11062
11063         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
11064         Mach-O getters if ppc64.
11065         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
11066         size argument.
11067         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
11068         signed four-byte field for global code case.
11069         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
11070
11071 2005-01-05  Roger Sayle  <roger@eyesopen.com>
11072
11073         PR middle-end/19100
11074         * c-common.c: Include real.h.
11075         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
11076         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
11077         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
11078         * Makefile.in (c-common.o): Update dependencies.
11079
11080 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
11081
11082         * c-parse.in (asm_string): Add trailing semicolon.
11083
11084 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
11085
11086         * c-parse.in (asm_string): New.  Don't allow wide strings in
11087         'asm'.
11088         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
11089         asm_string instead of STRING.
11090
11091 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
11092
11093         * c-typeck.c (constructor_no_implicit): Remove.
11094         (set_designator, process_init_element): Don't check
11095         constructor_no_implicit.
11096
11097 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
11098             Kaz Kojima  <kkojima@gcc.gnu.org>
11099
11100         PR target/16482
11101         * lcm.c (create_pre_exit): New.
11102         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
11103         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
11104
11105 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
11106
11107         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
11108         -msoft-float in target_float_switch.
11109         * arm.c (arm_override_options): Fix processing of target_float_switch.
11110
11111 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
11112
11113         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
11114         preferencing.
11115
11116 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
11117
11118         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
11119         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
11120
11121 2005-01-04  Roger Sayle  <roger@eyesopen.com>
11122
11123         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
11124         if deleting the then-block allows the test-block to fallthru to the
11125         else-block.
11126
11127 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
11128
11129         PR c/19152
11130         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
11131         after the full declaration if the are in two different TUs.
11132
11133 2005-01-04  Richard Henderson  <rth@redhat.com>
11134
11135         PR tree-opt/19158
11136         * tree-sra.c (generate_one_element_init): Just
11137         call gimplify_and_add.
11138         (generate_element_init): Record the
11139         new referenced variables and mark them for renaming
11140         and split out to ...
11141         (generate_element_init_1): This.
11142         (scalarize_init): Don't call push_gimplify_context/
11143         pop_gimplify_context.
11144
11145 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
11146
11147         * toplev.c (get_src_pwd): Handle failure of getpwd().
11148
11149 2005-01-04  Roger Sayle  <roger@eyesopen.com>
11150
11151         * fold-const.c (fold_single_bit_test): Delete unreachable handling
11152         of TRUTH_NOT_EXPR.
11153         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
11154         all the cases handled by it are inverted by invert_truthvalue.
11155
11156 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11157
11158         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
11159         (save_register_windowsi): Likewise.
11160
11161 2005-01-04  Richard Henderson  <rth@redhat.com>
11162
11163         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
11164
11165 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
11166
11167         PR middle-end/17767
11168         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
11169         any simplifications of vector mode comparison operators.
11170         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
11171
11172 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
11173             Devang Patel  <dpatel@apple.com>
11174
11175         PR tree-optimization/18308
11176         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
11177         the operands before creating a new expression.
11178         * dojump.c (do_jump): Make drop_through_label available
11179         for all cases.  Add expansion of COND_EXPR.
11180
11181 2005-01-04  Ira Rosen  <irar@il.ibm.com>
11182
11183         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
11184         INTEGER_CST instead of TREE_CONSTANT.
11185         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
11186         instead of TREE_CONSTANT.
11187         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
11188         instead of TREE_CONSTANT.
11189
11190 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11191
11192         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
11193
11194 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
11195
11196         PR target/19240
11197         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
11198         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
11199
11200 2005-01-03  Richard Henderson  <rth@redhat.com>
11201
11202         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
11203         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
11204         fold_convert_const_real_from_real): Split out from ...
11205         (fold_convert_const): ... here.
11206
11207 2005-01-03  Richard Henderson  <rth@redhat.com>
11208
11209         PR target/19235
11210         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
11211         (mov<MMXMODEI>_internal): Likewise.
11212         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
11213         Add V2SF case; use it for SSE1; don't use TI.
11214         (movdf_integer): Likewise.
11215         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
11216
11217 2005-01-03  Ira Rosen  <irar@il.ibm.com>
11218
11219         * tree-vectorizer.c (vect_strip_conversions): New function.
11220         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
11221         check for binary class.
11222
11223 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
11224
11225         Fix PR debug/17924
11226         Fix PR debug/19191
11227         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
11228         is a decl.
11229         * gimple-low.c (mark_blocks_with_used_vars): New function.
11230         (mark_blocks_with_used_subblocks): Ditto.
11231         (mark_used_blocks): Ditto.
11232         (pass_mark_used_blocks): New pass.
11233         * tree-inline.c: Include debug.h.
11234         (expand_call_inline): Call outlining_inline_function here.
11235         * tree-optimize.c (init_tree_optimization_passes): Add
11236         pass_mark_used_blocks.
11237         * tree-pass.h (pass_mark_used_blocks): New.
11238         * Makefile.in (tree-inline.o): Add debug.h dependency.
11239
11240 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
11241
11242         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
11243         VAR_DECLs to have weak_import attribute.
11244
11245         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
11246         'struct ucontext'.
11247
11248 2004-01-03  Steven Bosscher  <stevenb@suse.de>
11249
11250         * passes.c (rest_of_compilation): Don't run regmove if only
11251         flag_expensive_optimizations, require flag_regmove instead.
11252
11253 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
11254
11255         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
11256         register "sparc".
11257         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
11258         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
11259         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
11260         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
11261
11262 2005-01-03  Richard Henderson  <rth@redhat.com>
11263
11264         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
11265         (ia64_const_ok_for_letter_p): New.
11266         (ia64_const_double_ok_for_letter_p): New.
11267         (ia64_extra_constraint): New.
11268         (ia64_expand_vecint_compare): New.
11269         (ia64_expand_vcondu_v2si): New.
11270         (ia64_expand_vecint_cmov): New.
11271         (ia64_expand_vecint_minmax): New.
11272         (ia64_print_operand): Add 'v'.
11273         (ia64_preferred_reload_class): New.
11274         (ia64_vector_mode_supported_p): New.
11275         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
11276         (PREFERRED_RELOAD_CLASS): Move to function.
11277         (CONST_OK_FOR_LETTER_P): Move to function.
11278         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
11279         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
11280         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
11281         (EXTRA_CONSTRAINT): Move to function.
11282         * config/ia64/ia64.md: Include vect.md.
11283         (itanium_class): Add mmalua.
11284         (type): Handle it.
11285         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
11286         (1b_mmalua): New.
11287         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
11288         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
11289         CONST0_RTX.
11290         (const_int_2bit_operand): New.
11291         (fr_reg_or_0_operand): New.
11292         * config/ia64/ia64-modes.def: Add vector modes.
11293         * config/ia64/ia64-protos.h: Update.
11294         * config/ia64/vect.md: New file.
11295
11296 2005-01-03  Richard Henderson  <rth@redhat.com>
11297
11298         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
11299
11300 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
11301
11302         PR target/19236
11303         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
11304         to SFmode.
11305         (log1pdf2): Change mode of operands[0,1] to DFmode.
11306
11307 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
11308
11309         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
11310         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
11311         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
11312         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
11313         SPARC_RELAXED_ORDERING.
11314
11315 2005-01-03  Richard Henderson  <rth@redhat.com>
11316             Uros Bizjak  <uros@kss-loka.si>
11317
11318         PR target/14631
11319         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
11320         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
11321         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
11322         handling.
11323         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
11324         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
11325         const_pow2_1_to_128_operand): New predicates.
11326
11327 2005-01-02  Greg McGary  <greg@mcgary.org>
11328
11329         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
11330         anonymous decls.
11331         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
11332         object.  [ptr_type]: Remove unused variable.
11333         Remember nearest addressable array-element or record-component
11334         when checking bitfield components.  Tolerate empty BIND_EXPR.
11335
11336 2005-01-01  Richard Henderson  <rth@redhat.com>
11337
11338         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
11339         that don't narrow the value.  Fail for other conversions.
11340
11341 2005-01-01  Richard Henderson  <rth@redhat.com>
11342
11343         PR c/19031
11344         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
11345         * c-lang.c (finish_file): Don't do it here.
11346         * objc/objc-act.c (objc_finish_file): Likewise.
11347
11348         * cgraph.c (decl_assembler_name_equal): New.
11349         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
11350         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
11351         * cgraph.h (struct cgraph_varpool_node): Add next.
11352         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
11353         * varasm.c (assemble_alias): Mark the target as needed.
11354
11355 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
11356
11357         PR middle-end/19221
11358         * function.c (get_arg_pointer_save_area): Use entry_of_function
11359         instead of get_insns.
11360
11361 2005-01-01  Roger Sayle  <roger@eyesopen.com>
11362             Andrew Pinski  <pinskia@physics.uc.edu>
11363             James E. Wilson  <wilson@specifixinc.com>
11364
11365         PR rtl-optimization/12092
11366         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
11367         is zero.
11368
11369 2005-01-01  Roger Sayle  <roger@eyesopen.com>
11370             Olivier Hainque  <hainque@act-europe.fr>
11371
11372         * tree.c (int_fits_type_p): A narrower type always fits in a
11373         wider one, except for negative values into unsigned types.
11374
11375 2005-01-01  Roger Sayle  <roger@eyesopen.com>
11376
11377         * tree.c (int_fits_type_p): Compare the result of force_fit_type
11378         with the original constant rather than require TREE_OVERFLOW.
11379
11380 2005-01-01  Steven Bosscher  <stevenb@suse.de>
11381
11382         PR middle-end/17544
11383         * c-decl.c (finish_function): If compiling C99, annotate the
11384         compiler generated return with the current file name and line 0.
11385         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
11386         the source line is greater than 0.
11387         (remove_bb): Likewise.