OSDN Git Service

2935df709228e26f8c72bd2030bc3a4ae9fb1c7b
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
2
3         * c-decl.c (groktypename_in_parm_context): Remove function.
4         * c-tree.h (groktypename_in_parm_context): Remove prototype.
5
6 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
7
8         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
9         * c-parse.in: Include c-common.h instead of objc-act.h.
10         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
11         myparms, myparm): Remove %type declarations.
12         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
13         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
14         declarations.
15         (objc_inherit_code, objc_public_flag): Remove.
16         (typespec_nonreserved_nonattr): Call
17         objc_get_protocol_qualified_type() instead of get_static_reference()
18         and get_protocol_reference().
19         (stmt_nocomp): Call grokparm() on @catch parameter.
20         (objcdef): Move semantic action to objc_finish_implementation().
21         (classdef): Move semantic action to objc_start_class_interface(),
22         objc_continue_interface(), objc_finish_interface(),
23         objc_start_class_implementation(), objc_continue_implementation(),
24         objc_start_category_interface() and
25         objc_start_category_implementation().
26         (protocoldef): Move semantic actions to objc_start_protocol() and
27         objc_finish_interface().
28         (ivar_decl_list): Remove nonterminal.
29         (visibility_spec): Move semantic actions to objc_set_visibility().
30         (ivar_decls): Remove assignment to $$.
31         (ivar_decl): Rephrase in terms of component_decl; call
32         objc_add_instance_variable().
33         (ivars, ivar_declarator): Remove nonterminals.
34         (opt_semi): New nonterminal.
35         (methodtype): Remove semantic actions.
36         (methoddef): Move semantic actions to objc_set_method_type(),
37         objc_start_method_definition() and objc_finish_method_definition().
38         (methodproto): Move semantic actions to objc_set_method_type() and
39         objc_add_method_declaration().
40         (methoddecl): Use objc_typename instead of typename; move semantic
41         actions to objc_build_method_signature().
42         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
43         (optparmlist): Express in terms of optparms and optellipsis.
44         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
45         nonterminals.
46         (keyworddecl): Use objc_typename instead of typename.
47         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
48         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
49
50 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
51
52         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
53         (MD_FALLBACK_FRAME_STATE_FOR): Update.
54         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
55         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
56         (MD_FROB_UPDATE_CONTEXT): Remove default.
57         (uw_update_context_1): Instead #ifdef invocation.
58         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
59         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
60         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
61         (MD_UNWIND_SUPPORT): Undefine this instead.
62         * config/i386/gnu.h: Likewise.
63         * config/alpha/linux-unwind.h: New file, macro converted to
64         function, extracted from..
65         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
66         (MD_UNWIND_SUPPORT): Define.
67         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
68         * config/i386/linux-unwind.h, config/i386/linux.h,
69         config/i386/linux64.h: Likewise.
70         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
71         MD_HANDLE_UNWABI too.
72         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
73         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
74         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
75         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
76         * config/sparc/linux-unwind.h, config/sparc/linux.h,
77         config/sparc/linux64.h: Likewise.
78         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
79         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
80         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
81         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
82         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
83
84 2004-09-07  Jan Hubicka  <jh@suse.cz>
85
86         * cse.c (fold_rtx):  Avoid building of
87         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
88
89         * tree-ssa-pre.c (grand_bitmap_obstack): New.
90         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
91         (init_pre): Initialize obstack.
92         (fini_pre): Free obstack.
93
94 2004-09-07  David Daney  <ddaney@avtrex.com>
95
96         * config.gcc: Added support for --with-divide=[breaks|traps] for
97         mips targets.
98         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
99         (TARGET_DIVIDE_TRAPS): New macro.
100         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
101         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
102         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
103         GENERATE_DIVIDE_TRAPS.
104         (mips_output_division): Emit conditional trap if
105         GENERATE_DIVIDE_TRAPS is set.
106         * doc/install.texi: Document --with-divide.
107         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
108
109 2004-09-07  Caroline Tice  <ctice@apple.com>
110
111         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
112         EDGE_CROSSING, to flags test case.
113         
114 2004-09-07  Jan Hubicka  <jh@suse.cz>
115
116         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
117         class too.
118
119 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
120
121         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
122         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
123         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
124         or gcc_unreachable.
125         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
126         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
127         alloc_aux_for_edges, free_aux_for_edges): Likewise.
128         * cfgcleanup.c (try_forward_edges,
129         merge_blocks_move_predecessor_nojumps,
130         merge_blocks_move_successor_nojumps): Likewise.
131         * cfgexpand.c (expand_gimple_cond_expr,
132         expand_gimple_tailcall): Likewise.
133         * cfghooks.c (duplicate_block): Likewise.
134         * cfglayout.c (record_effective_endpoints,
135         insn_locators_initialize, change_scope, fixup_reorder_chain,
136         verify_insn_chain, fixup_fallthru_exit_predecessor,
137         duplicate_insn_chain, cfg_layout_finalize): Likewise.
138         * cfgloopanal.c (check_irred): Likewise.
139         * cfgloop.c (superloop_at_depth, flow_loops_free,
140         flow_loop_entry_edges_find, flow_loops_find,
141         flow_loop_outside_edge_p, get_loop_body,
142         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
143         get_loop_exit_edges, num_loop_branches, cancel_loop,
144         verify_loop_structure): Likewise.
145         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
146         duplicate_loop_to_header_edge, create_preheader,
147         create_loop_notes): Likewise.
148         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
149         edirect_branch_edge, force_nonfallthru_and_redirect,
150         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
151         commit_edge_insertions, commit_edge_insertions_watch_calls,
152         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
153         cfg_layout_redirect_edge_and_branch_force,
154         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
155         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
156         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
157         cgraph_varpool_node): Likewise.
158         * cgraphunit.c (cgraph_finalize_function,
159         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
160         cgraph_expand_function, cgraph_remove_unreachable_nodes,
161         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
162         cgraph_mark_inline, cgraph_expand_all_functions,
163         cgraph_build_static_cdtor): Likewise.
164         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
165         simplify_logical, distribute_notes, insn_cuid): Likewise.
166         * conflict.c (conflict_graph_add, print_conflict): Likewise.
167         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
168         coverage_checksum_string): Likewise.
169         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
170         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
171         cse_cc_succs, cse_condition_code_reg): Likewise.
172         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
173         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
174         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
175         cselib_record_set): Likewise.
176
177 2004-09-07  Jan Hubicka  <jh@suse.cz>
178
179         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
180
181 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
182
183         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
184         fold_convert.
185         (fold_builtin_strpbrk): Likewise.
186         * expr.c (array_ref_low_bound): Likewise.
187         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
188         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
189         * tree-sra.c (generate_element_zero): Likewise.
190         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
191         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
192         add_old_iv_candidates, add_iv_candidates): Likewise.
193         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
194
195 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
196
197         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
198         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
199         c_expand_expr, boolean_increment, nonnull_check_p,
200         check_function_arguments_recurse, fold_offsetof_1): Likewise.
201         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
202         builtin_define_type_max): Likewise.
203         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
204         implicit_decl_warning, builtin_function, build_compound_literal,
205         complete_array_type, grokdeclarator, get_parm_info,
206         start_function, store_parm_decls_oldstyle,
207         c_write_global_declarations): Likewise.
208         * c-format.c (get_constant, decode_format_attr,
209         maybe_read_dollar_number, get_flag_spec, check_format_arg,
210         check_format_types, format_type_warning,
211         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
212         init_dynamic_diag_info, handle_format_attribute): Likewise.
213         * c-gimplify.c (push_context, pop_context, finish_bc_block): 
214         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
215         * c-objc-common.c (c_tree_printer): Likewise.
216         * c-pch.c (pch_init): Likewise.
217         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
218         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
219         * c-typeck.c (c_incomplete_type_error, composite_type,
220         common_pointer_type, common_type, same_translation_unit_p,
221         tagged_types_tu_compatible_p, finish_init, pop_init_level,
222         set_designator, set_nonincremental_init_from_string,
223         process_init_element, c_finish_if_stmt): Likewise.
224         * caller-save.c (init_caller_save, save_call_clobbered_regs,
225         insert_restore, insert_save, insert_one_insn): Likewise.
226         * calls.c (emit_call_1, compute_argument_block_size,
227         precompute_arguments, expand_call, emit_library_call_value_1,
228         store_one_arg): Likewise.
229
230 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
231
232         * configure.ac (enable-checking): Add release option. Reorganize
233         to avoid repetition.
234         * configure: Rebuilt.
235         * doc/install.texi (enable-checking): Amend documentation.
236
237 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
238
239         PR bootstrap/17313
240         * Makefile.in (specs.ready): Depend on cc1$(exeext).
241
242 2004-09-06  James E Wilson  <wilson@specifixinc.com>
243
244         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
245         movdf_hardfloat_32bit): Split fG into two alternatives.
246         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
247
248         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
249
250 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
251
252         * final.c (output_in_slot): Delete.
253         (final_scan_insn): Revert 2004-09-03 change.
254         (output_asm_insn): Likewise.
255         * config/sparc/sparc.c (output_return): Likewise.
256         (output_sibcall): Likewise.
257
258 2004-09-06  Jan Hubicka  <jh@suse.cz>
259
260         * loop.c (loop_dump_aux): Do not print RTL when not available.
261         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
262         frontend specific type nodes.
263         (produce_memory_decl_rtl): Break out from ...
264         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
265         (get_computation_at): Avoid random tree sharing.
266         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
267
268 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
269
270         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
271         unnecessary commands.
272
273 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
274
275         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
276         (bitmap.o): Likewise.
277
278 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
279
280         Unify the management of RTL and tree-level dump files.
281
282         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
283         Don't print function name to the dump file, the pass manager
284         would do this for us. Add code from the top of
285         rest_of_compilation, up to the initial RTL dump.
286         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
287         close the DFI_sibling dump file.
288         (rest_of_compilation): Don't do that here.  Remove code up to the
289         initial RTL dump.
290         (init_optimization_passes): Remove.
291         (pass_rest_of_compilation): Change pass name to NULL.
292         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
293         Do not call init_optimization_passes.
294         * toplev.h (init_optimization_passes): Remove.
295
296         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
297         finish_graph_dump_file): Remove SUFFIX parameter.
298         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
299         finish_graph_dump_file): Likewise.
300
301         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
302         * cfgexpand.c (pass_expand): Adjust.
303         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
304         * passes.c (pass_rest_of_compilation): Adjust.
305         * predict.c (pass_profile): Adjust.
306         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
307         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
308         pass_split_crit_edges, pass_warn_function_return): Adjust.
309         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
310         * tree-dfa.c (pass_referenced_vars): Adjust.
311         * tree-eh.c (pass_lower_eh): Adjust.
312         * tree-if-conv.c (pass_build_ssa): Adjust.
313         * tree-into-ssa.c (pass_build_ssa): Adjust.
314         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
315         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
316         * tree-nrv.c (pass_nrv): Adjust.
317         * tree-optimize.c (pass_gimple, pass_all_optimizations,
318         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
319         pass_init_datastructures): Adjust.
320         * tree-outof-ssa.c (pass_del_ssa): Adjust.
321         * tree-profile.c (pass_tree_profile): Adjust.
322         * tree-sra.c (pass_sra): Adjust.
323         * tree-ssa-alias.c (pass_may_alias): Adjust.
324         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
325         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
326         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
327         * tree-ssa-dom.c (pass_dominator): Adjust.
328         * tree-ssa-dse.c (pass_dse): Adjust.
329         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
330         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
331         * tree-ssa-loop-ch.c (pass_ch): Adjust.
332         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
333         pass_loop_done, pass_complete_unroll, pass_iv_canon,
334         pass_iv_optimize, pass_vectorize): Adjust.
335         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
336         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
337         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
338         pass_late_warn_uninnitialized): Adjust.
339         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
340
341         * Makefile.in (tree-dump.o): Add new dependencies.
342         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
343         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
344         Likewise.
345         * toplev.c (dump_file_name): New.
346         * tree-dump.c (dump_enable_all): Add LETTER parameter.
347         (struct dump_file_info): Add NUM and LETTER fields.
348         (dump_files): Adjust and add RTL dump files.
349         (dump_register): Add NUM and LETTER fields.
350         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
351         (dump_begin): Use get_dump_file_name.
352         (dump_switch_p_1): Adjust call to dump_enable_all.
353         * tree-dump.h (dump_register): Adjust prototype.
354         * tree-optimize.c (register_one_dump_file): Take dump file index.
355         Support flags for RTL dumps.
356         (register_dump_files): Fill in NUM field of struct dump_file_info.
357         Track properties both when the gate is executed and when it is not.
358         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
359         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
360         dumps of RTL.
361         * tree-pass.h (dump_file_name): New.
362         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
363         New.
364
365         * Makefile.in (passes.o): Add new dependencies.
366         * passes.c (struct dump_file_info, enum dump_file_index,
367         dump_file_tbl, init_optimization_passes): Remove.
368         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
369         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
370         dump_enabled_p.
371         (finish_optimization_passes): Update finish_graph_dump_file loop.
372         (enable_rtl_dump_file): Remove.
373         * tree-dump.c (dump_files): Adjust and add RTL dump files.
374         (enable_rtl_dump_file): Add here.
375         * tree.h (enum tree_dump_index): Add RTL dump file indices.
376         * doc/invoke.texi (Debugging options): Document new RTL debugging
377         options.  Update.
378
379 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
380
381         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
382         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
383         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
384         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
385         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
386         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
387         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
388         vec.h: Fix comment formatting.
389
390 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
391
392         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
393         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
394         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
395         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
396         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
397         tree-ssa-loop-niter.c, tree-ssa-operands.c,
398         tree-ssa-operands.h, tree-ssa-propagate.c,
399         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
400         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
401
402 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
403
404         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
405         vectorizer is enabled.
406
407 2004-09-05  Andreas Jaeger  <aj@suse.de>
408
409         * tree-if-conv.c: Spell check comments and clean up whitespace.
410
411 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
412
413         * tree-ssa-loop-ivopts.c: New file.
414         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
415         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
416         target_pres_cost, target_spill_cost): Declare.
417         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
418         spill_cost): Renamed to ...
419         (target_avail_regs, target_res_regs, target_small_cost,
420         target_pres_cost, target_spill_cost): ... and exported.
421         (init_set_costs, global_cost_for_size): Work with renamed variables.
422         * common.opt (flag_ivopts): New flag.
423         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
424         REF_ORIGINAL.
425         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
426         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
427         generating SSA form.
428         (force_gimple_operand): New function.
429         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
430         * tree-cfg.c (stmt_bsi): New function.
431         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
432         PARAM_IV_MAX_CONSIDERED_USES): New.
433         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
434         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
435         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
436         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
437         * tree-nested.c (build_addr): Export.
438         * tree-optimize.c (init_tree_optimization_passes): Add
439         pass_iv_optimize.
440         * tree-pass.h (pass_iv_optimize): Declare.
441         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
442         IMAGPART_EXPR.
443         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
444         as a phi node argument.
445         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
446         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
447         functions.
448         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
449         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
450         pass_iv_optimize): New pass.
451         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
452         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
453         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
454         * tree.h (REF_ORIGINAL): New macro.
455         (build_int_cst_type, unsigned_type_for, zero_p,
456         cst_and_fits_in_hwi, build_addr): Declare.
457         * doc/invoke.texi (-fivopts): Document.
458         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
459         PARAM_IV_MAX_CONSIDERED_USES): Document.
460         * doc/passes.texi: Document induction variable optimizations pass.
461
462 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
463
464         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
465         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
466         * c-common.c (c_common_attribute_table): Accept parameters to
467         sentinel attribute.
468         (check_function_sentinel, handle_sentinel_attribute): Likewise.
469         * doc/extend.texi: Update accordingly.
470
471 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
472
473         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
474         New.
475         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
476         attribute.
477         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
478         New functions.
479         (c_common_attribute_table): Add `sentinel' attribute.
480         (check_function_arguments): Handle `sentinel' attribute.
481         * doc/extend.texi: Document `sentinel' attribute.
482
483 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
484
485         * configure: Regenerated.
486
487 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
488
489         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
490
491         * tree.c (save_expr): No longer TREE_READONLY.
492
493 2004-09-04  Jan Hubicka  <jh@suse.cz>
494
495         * passes.c (rest_of_clean_state):  Fix merge conflict made during
496         commiting the patch.
497
498 2004-09-04  Jan Hubicka  <jh@suse.cz>
499
500         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
501
502 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
503
504         * doc/md.texi (shift patterns): New anchor.  Add reference to
505         TARGET_SHIFT_TRUNCATION_MASK.
506         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
507         * target.h (shift_truncation_mask): New target hook.
508         * targhook.h (default_shift_truncation_mask): Declare.
509         * targhook.c (default_shift_truncation_mask): Define.
510         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
511         (TARGET_INITIALIZER): Include it.
512         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
513         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
514         reject all out-of-range values.  Fix sign-extension code for modes
515         whose width is smaller than HOST_BITS_PER_WIDE_INT.
516         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
517         (expand_superword_shift, expand_subword_shift): Likewise.
518         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
519         (expand_binop): Use them to implement double-word shifts.
520         * config/arm/arm.c (arm_shift_truncation_mask): New function.
521         (TARGET_SHIFT_TRUNCATION_MASK): Define.
522
523 2004-09-04  Jan Hubicka  <jh@suse.cz>
524
525         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
526         (mix): New macro copied from hashtab.c
527         (iterative_hash_hashval_t, iterative_hash_pointer,
528         iterative_hash_host_wide_int): New functions based on hashtab.c
529         implementation.
530
531 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
532
533         * config/mips/mips.md (mask): New mode attribute.
534         (zero_extendsidi2): Add memory alternative.
535         (*zero_extendsidi2_mem): Delete.
536         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
537         memory_operand in the TARGET_MIPS16 check.
538         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
539         Redefine using :GPR and :SHORT.
540         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
541
542 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
543
544         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
545         using rint_optab.
546         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
547         expand_builtin_mathfn.
548         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
549         btrunc?f patterns for btrunc_optab. Implement rint_optab using
550         rint?f patterns.
551         * optabs.c (init_optabs): Initialize rint_optab.
552         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
553         Add new OTI_rint.
554         (btrunc_optab): Rename macro from trunc_optab.
555         (rint_optab): Define corresponding macro.
556
557         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
558         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
559
560         * config/i386/i386-protos.h (emit_i387_cw_initialization):
561         Change prototype. Add new int parameter.
562         * config/i386/i386.c (emit_i387_cw_initialization):
563         Handle new rounding modes.
564
565         * config/i386/i386.h (enum fp_cw_mode): Delete.
566         (MODE_NEEDED): Handle new rounding modes.
567         (EMIT_MODE_SET): Change condition to handle new rounding modes.
568
569         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
570         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
571         represent different rounding modes of frndint insn.
572         (type): Add frndint type.
573         (i387, length, memory): Handle this type.
574         (i387_cw): New attribute definition.
575         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
576         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
577         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
578         Add "i387_cw" attribute defined to "trunc".
579         (x86_fnstcw_1): Remove comment.
580         (*frndintxf2): Rename insn definition to frndintxf2. Move
581         insn definition near rint?f2 expanders.
582         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
583         rintf and rintl built-ins as inline x87 intrinsics.
584         (frndintxf2_floor): New pattern to implement floor rounding
585         mode with frndint x87 instruction.
586         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
587         floorf and floorl built-ins as inline x87 intrinsics.
588         (frndintxf2_ceil): New pattern to implement ceil rounding
589         mode with frndint x87 instruction.
590         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
591         ceilf and ceill built-ins as inline x87 intrinsics.
592         (frndintxf2_trunc): New pattern to implement trunc rounding
593         mode with frndint x87 instruction.
594         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
595         truncf and truncl built-ins as inline x87 intrinsics.
596         (frndintxf2_mask_pm): New pattern to implement rounding
597         mode with exceptions with frndint x87 instruction.
598         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
599         implement nearbyint, nearbyintf and nearbyintl built-ins as
600         inline x87 intrinsics.
601
602 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
603
604         * config/mips/mips.md (SHORT): New mode macro.
605         (size): New mode attribute.
606         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
607         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
608         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
609         !ISA_HAS_SEB_SEH.
610         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
611         *extend[qh]isi2_hw patterns and extending them to di.
612         (extendqihi2): Implement as define_insn_and_split that produces
613         extendqisi2 after reload.
614
615 2004-09-03  Devang Patel  <dpatel@apple.com>
616
617         * Makefile.in (OBJS-common): Add tree-if-conv.o
618         (tree-if-conv.o): New rule.
619         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
620         (get_loop_body_in_bfs_order): New.
621         * cfgloop.h (get_loop_body_in_bfs_order): New.
622         * tree-flow.h (enum move_pos): Move here from ..
623         * tree-ssa-loop-im.c (enum move_pos): here.
624         (movement_possibility): Make externally visible.
625         * tree-optimize.c (init_tree_optimization_passes): New entry for
626         if conversion pass.
627         * tree-pass.h (pass_if_conversion): New.
628         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
629         * tree-if-conv.c: New file.
630         * doc/passes.texi: Document tree if-conversion pass.
631         * doc/tree-ssa.texi: Same.
632
633 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
634
635         PR target/14925:
636         Makefile.in (LIB2ADDEHSTATIC): New.
637         (LIB2ADDEHSHARED): New.
638         (LIBUNWIND): New.
639         (LIBUNWINDDEP): New.
640         (SHLIBUNWIND_LINK): New.
641         (SHLIBUNWIND_INSTALL): New.
642         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
643         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
644         (clean): Remove libunwind*
645         (stage1-start): Remove and copy stage1/libunwind*.
646         (stage2-start): Remove and copy stage2/libunwind*.
647         (stage3-start): Remove and copy stage3/libunwind*.
648         (stage4-start): Remove and copy stage4/libunwind*.
649         (stageprofile-start): Remove and copy stageprofile/libunwind*.
650         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
651
652         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
653         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
654         tmake_file if --with-system-libunwind isn't used.
655
656         * config/ia64/t-glibc-libunwind: New file.
657         * config/t-libunwind-elf: Likewise.
658         * unwind-compat.c: Likewise.
659         * unwind-compat.h: Likewise.
660         * unwind-dw2-fde-compat.c: Likewise.
661
662         * config/ia64/t-glibc (LIB2ADDEH): Updated.
663         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
664
665         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
666         aliases if needed.
667         * unwind-dw2-fde-glibc.c: Likewise.
668         * unwind-dw2.c: Likewise.
669
670         * config/t-libunwind (LIB2ADDEH): Updated.
671         (LIB2ADDEHSTATIC): New.
672         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
673         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
674
675         * configure.ac: Change --enable-libunwind-exceptions to
676         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
677         * configure: Regenerated.
678         * config.in: Updated.
679
680         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
681         above and mention --with-system-libunwind.
682         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
683         removed in gcc 3.4.3 and later.
684
685         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
686         USE_LIBUNWIND_EXCEPTIONS is defined.
687
688         * mklibgcc.in: Support libunwind.
689
690 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
691
692         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
693         m_NOCONA.
694
695 2004-09-03  Richard Henderson  <rth@redhat.com>
696
697         PR middle-end/9997
698         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
699         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
700         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
701         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
702         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
703         resize_stack_vars_conflict, add_stack_var_conflict,
704         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
705         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
706         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
707         expand_one_static_var, expand_one_hard_reg_var,
708         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
709         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
710         (expand_used_vars): Rewrite.
711         * Makefile.in (cfgexpand.o): Update dependencies.
712
713 2004-09-04  Jan Hubicka  <jh@suse.cz>
714
715         * cfg.c (free_edge): Use ggc_free.
716         (expunge_block): Use ggc_free.
717         * passes.c (rest_of_clean_state): Free after compilation.
718         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
719         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
720
721 2004-09-03  James E Wilson  <wilson@specifixinc.com>
722
723         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
724         DECL_EXTERNAL check.
725
726 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
727
728         * final.c (output_in_slot): New global variable.
729         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
730         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
731         'output_in_slot' before invoking output_asm_insn.
732         (output_asm_insn): Add a space after the tab if 'output_in_slot'
733         is set.
734         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
735         final_scan_insn.
736         (output_sibcall): Likewise.
737
738 2004-09-03  Jan Hubicka  <jh@suse.cz>
739
740         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
741         * tree-ssanames (init_ssanames): Likewise.
742
743 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
744
745         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
746         objc_declare_protocols, objc_start_protocol,
747         objc_start_class_interface, objc_start_category_interface,
748         objc_continue_interface, objc_finish_interface,
749         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
750         objc_start_class_implementation, objc_start_category_implementation,
751         objc_continue_implementation, objc_finish_implementation,
752         objc_add_method_declaration, objc_start_method_definition,
753         objc_finish_method_definition, objc_build_keyword_decl,
754         objc_build_method_signature, objc_build_encode_expr,
755         objc_build_protocol_expr, objc_build_selector_expr,
756         objc_build_message_expr, objc_build_string_object,
757         objc_get_class_reference, objc_get_protocol_qualified_type,
758         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
759
760 2004-09-03  James E Wilson  <wilson@specifixinc.com>
761
762         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
763
764         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
765         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
766         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
767         (mips_recip1_<fmt>): Use frdiv1 type.
768         (mips_recip2_<fmt>): Use frdiv2 type.
769         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
770         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
771         and frsqrt1.
772         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
773
774 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
775
776         * reload.c (find_reloads): Swap operand_loc pointers for
777         find_dummy_reload if we have swapped two operands.
778
779 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
780
781         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
782         to get the tablejump-insn before the jump-table label.
783
784 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
785
786         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
787         objc_declare_protocols, objc_build_message_expr,
788         objc_finish_message_expr, objc_build_selector_expr,
789         objc_build_protocol_expr, objc_build_encode_expr,
790         objc_build_string_object, objc_get_protocol_qualified_type,
791         objc_get_class_reference, objc_get_class_ivars,
792         objc_start_class_interface, objc_start_category_interface,
793         objc_start_protocol, objc_continue_interface, objc_finish_interface,
794         objc_start_class_implementation, objc_start_category_implementation,
795         objc_continue_implementation, objc_finish_implementation,
796         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
797         objc_add_method_declaration, objc_start_method_definition,
798         objc_finish_method_definition, objc_add_instance_variable,
799         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
800         objc_finish_try_stmt, objc_begin_catch_clause,
801         objc_finish_catch_clause, objc_build_finally_clause,
802         objc_build_synchronized, objc_static_init_needed_p,
803         objc_generate_static_init_call): New prototypes.
804
805 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
806
807         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
808         is only one reg.
809         (ia64_function_value): Ditto.
810
811 2004-09-03  Jan Beulich  <jbeulich@novell.com>
812
813         * config.gcc: Resurrect NetWare as a target. Handle special case of
814         Novell linker to be used (specified through --with-ld=) and threading
815         model of either Posix (default) or NKS.
816         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
817         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
818         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
819         * config/i386/netware.c, config/i386/netware.h: New.
820         * config/i386/nwld.c, config/i386/nwld.h: New.
821         * config/i386/netware-crt0.c: New.
822         * config/i386/netware-libgcc.c: New.
823         * config/i386/netware-libgcc.def: New.
824         * config/i386/netware-libgcc.exp: New.
825         * config/i386/t-netware, config/i386/t-nwld: New.
826         * gthr-nks.h: New.
827         * doc/install.texi: Document NKS threading model.
828
829 2004-09-03  Jan Beulich  <jbeulich@novell.com>
830
831         PR c/7054
832         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
833         * tree.h (initial_max_fld_align): Declare
834         * stor-layout.c (initial_max_fld_align): Define and initialize.
835         (maximum_field_alignment): Initialize to the same value.
836         * common.opt: Add -fpack-struct= variant of switch.
837         * opts.c: Handle -fpack-struct= variant of switch.
838         * c-pragma.c: Change #pragma pack() handling so that it becomes
839         compatible to other compilers: accept individual 'push' argument,
840         make final pop restore (command line) default, correct interaction
841         of push/pop and sole specification of a new alignment (so that the
842         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
843         to #pragma pack(push, <n>).
844         * doc/extend.texi: New node "Structure-Packing Pragmas" under
845         "Pragmas", describing #pragma pack.
846         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
847         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
848         Document new TARGET_DEFAULT_PACK_STRUCT.
849
850 2004-09-03  Devang Patel  <dpatel@apple.com>
851
852         * dwarf2out.c (gen_field_die). Equate decl number to die.
853
854 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
855
856         PR target/15832
857         * global.c (modify_reg_pav): New function.
858         (make_accurate_live_analysis): Call the new function.  Move pavin
859         modification by earlyclobber set into the new function.
860
861 2004-09-03  Andreas Schwab  <schwab@suse.de>
862
863         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
864         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
865         extended.
866
867 2004-09-02  Jan Beulich  <jbeulich@novell.com>
868
869         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
870         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
871         not unwind code specific ones.
872         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
873         Remove unwind code specific dependencies.
874         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
875         Remove gbl-ctors.h.
876         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
877         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
878         * tsystem.h: Declare memcpy and memset when inhibit_libc.
879
880 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
881
882         * combine.c (try_combine): Delay modifying of insns which cannot
883         be easily undone.
884
885 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
886
887         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
888         tree-loop-im.
889         * gcc/tree-ssa-loop.c: Ditto
890         * gcc/tree-ssa-loop-ivcanon.c: Ditto
891         * gcc/doc/invoke.texi: Ditto.
892
893 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
894
895         * c-decl.c (store_parm_decls_newstyle): Make static.
896         (store_parm_decls_from): New function.
897         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
898         (store_parm_decls_from): New prototype.
899
900 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
901
902         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
903         HImode with STRICT_ALIGNMENT.
904
905 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
906
907         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
908         (TARGET_OS_CPP_BUILTINS): Likewise.
909         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
910         TARGET_BPABI_CPP_BUILTINS.
911
912 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
913
914         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
915
916 2004-09-02  Eric Christopher  <echristo@redhat.com>
917
918         * builtins.c (expand_builtin_cabs): Delete.
919         (expand_builtin): If unable to fold the values do a normal
920         library call for builtin_cab*.
921         (fold_builtin_cabs): Depend on optimize and optimize_size.
922         * optabs.c (expand_cmplxdiv_straight): Delete.
923         (expand_cmplxdiv_wide): Ditto.
924         (expand_vector_binop): Ditto.
925         (expand_vector_unop): Ditto.
926         (expand_complex_abs): Delete.
927         (expand_binop): Remove calls to above functions.
928         Remove open coding of complex arithmetic.
929         (expand_unop): Ditto.
930         * optabs.h: Remove prototypes.
931
932 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
933
934         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
935         * c-tree.h (store_parm_decls_newstyle): New prototype.
936
937 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
938
939         * config/rs6000/rs6000.c (expand_block_clear): Use vector
940         instructions if available.
941         (expand_block_move): Likewise.
942
943 2004-09-03  Jan Hubicka  <jh@suse.cz>
944
945         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
946
947 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
948
949         * config/arm/symbian.h (LIB_SPEC): Define to empty.
950         * config/arm/t-symbian (SHLIB_LC): Likewise.
951
952 2004-09-02  Paul Brook  <paul@codesourcery.com>
953
954         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
955
956 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
957
958         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
959         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
960         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
961         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
962         (mips_issue_rate): Remove unreachable abort.
963         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
964         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
965         (mips_block_move_straight, print_operand_address, mips_file_start)
966         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
967         (mips_output_conditional_branch, mips_expand_builtin_direct)
968         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
969         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
970         with gcc_assert.
971
972 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
973
974         * config/mips/mips.md (*lea_high64): Change split condition to
975         flow2_completed.  Add a peephole2 to generate a more parallel version.
976
977 2004-09-02  Jan Hubicka  <jh@suse.cz>
978
979         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
980         GGC.
981
982         * ggc-page.c: include tree-flow.h.
983         (extra_order_size_table): Add stmt_ann_d.
984         (STAT_LABEL): Rename from ....
985         (LABEL): ... this one.
986         * Makefile.in (ggc-page.o): Add dependency.
987
988         * ggc-common.c (ggc_force_collect): New global variable.
989         (loc_description): Add fields "freed", "collected"
990         (ptr_hash): New static hash
991         (ptr_hash_entry): New structure.
992         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
993         (ggc_record_overhead): Take ptr argument, record it
994         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
995         (cmp_statistics): Imrove sorting.
996         (dump_ggc_loc_statistics): Output newly collected statistics
997         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
998         (ggc_free): Call ggc_free_overhead.
999         (ggc_collect): Force collection when asked to be forced.
1000         (ggc_collect): Call ggc_prune_overhead_list.
1001         * ggc.h (ggc_force_collect): Declare
1002         (ggc_record_overhead): Update prototype.
1003         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
1004
1005 2004-09-02  James E Wilson  <wilson@specifixinc.com>
1006
1007         * common.opt (ftrapping-math): Default to on.
1008
1009 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
1010
1011         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
1012
1013 2004-09-02  Denis Chertykov  <denisc@overta.ru>
1014
1015         PR target/16884
1016         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
1017         match_scratch.
1018         (*movmemqi_insn): Likewise.
1019         (*movmemhi): Likewise.
1020         (clrmemhi): Likewise.
1021         (*clrmemqi): Likewise.
1022         (*clrmemhi): Likewise.
1023
1024 2004-09-02  Paul Brook  <paul@codesourcery.com>
1025
1026         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
1027         default_use_cxa_atexit=yes.
1028
1029 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
1030
1031         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
1032         (struct kernel_old_ucontext): Delete.
1033         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
1034         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
1035         when IN_LIGGCC2.
1036
1037 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
1038
1039         * toplev.c (process_options): Fix typo.
1040
1041 2004-09-01  Richard Henderson  <rth@redhat.com>
1042
1043         PR middle-end/17258
1044         * calls.c (initialize_argument_information): Tighten pass-through
1045         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
1046         Use build_fold_addr_expr.
1047         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
1048         that assumes ADDR_EXPR allocates stack space.
1049         * fold-const.c (build_fold_addr_expr_with_type): Look through
1050         WITH_SIZE_EXPR.
1051
1052 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
1053
1054         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
1055         * ggc.h (ggc_alloc_rtx): Delete.
1056
1057 2004-09-01  Roger Sayle  <roger@eyesopen.com>
1058
1059         * expmed.c (enum alg_code): Remove long unused enumeration values.
1060         (struct mult_cost): New structure to hold the "score" of a synthetic
1061         multiply sequence, including both a rtx_cost and a latency field.
1062         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
1063         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
1064         (struct algorithm): Change type of cost field to be mult_cost.
1065         (synth_mult): Change type of cost_limit argument to be a
1066         pointer to a mult_cost.  Update all cost comparisons to use the
1067         new mult_cost infrastructure.  For alg_add_factor and
1068         alg_sub_factor operations, latency is lower than the rtx_cost.
1069         (choose_mult_variant):  Update calls to synth_mult.  Perform
1070         cost comparisons using the new mult_cost infrastructure.
1071         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
1072         to optain the total rtx_cost of a synth_mult "algorithm".
1073
1074 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
1075
1076         * config/rs6000/power4.md: Increase store latency to 12.
1077         * config/rs6000/power5.md: Same.
1078
1079 2004-09-01  James E Wilson  <wilson@specifixinc.com>
1080
1081         PR target/14064
1082         * config/avr/avr.c (avr_unique_section): Delete prototype and
1083         definition.
1084         (TARGET_ASM_UNIQUE_SECTION): Delete.
1085
1086 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
1087
1088         * c-parse.in (primary): Call objc_build_message_expr(),
1089         objc_build_selector_expr(), objc_build_protocol_expr(),
1090         objc_build_encode_expr() and objc_build_string_object() instead of
1091         build_message_expr(), build_selector_expr(), build_protocol_expr(),
1092         build_encode_expr() and build_objc_string_object(), respectively.
1093         (component_decl_list2): Call objc_get_class_ivars() instead of
1094         get_class_ivars_from_name().
1095         (keyworddecl): Call objc_build_keyword_decl() instead of
1096         build_keyword_decl().
1097         (receiver): Call objc_get_class_reference() instead of
1098         get_class_reference().
1099         (reswords): Add blank line before @@ifobjc section, for clarity.
1100
1101 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
1102
1103         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
1104         to Altivec vetors.
1105
1106 2004-09-01  Wu Yongwei  <adah@sh163.net>
1107             Danny Smith  <dannysmith@users.sourceforge.net>
1108
1109         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
1110         not Windows 'DWORD'.
1111         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
1112         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
1113         (__gthr_win32_recursive_mutex_init_function): Add prototype for
1114         __GTHREAD_HIDE_WIN32API case..
1115         (__gthr_win32_recursive_mutex_lock): Likewise.
1116         (__gthr_win32_recursive_mutex_trylock): Likewise.
1117         (__gthr_win32_recursive_mutex_unlock): Likewise.
1118         (__gthread_recursive_mutex_init_function); Add definition for
1119         __GTHREAD_HIDE_WIN32API case.
1120         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
1121         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
1122         call to InterlockedDecrement.
1123
1124 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1125
1126         * tree-tailcall.c (find_tail_calls): Also fail is statement has
1127         volatile operands.
1128
1129         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
1130
1131         * doc/c-tree.texi: Document new operands for ARRAY_REF and
1132         COMPONENT_REF.
1133
1134 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1135
1136         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
1137         * common.opt (fspeculative-prefetching): New.
1138         * flags.h (flag_speculative_prefetching_set): Declare.
1139         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
1140         values.
1141         * opts.c (flag_sepculative_prefetching_set): New variable.
1142         (common_handle_option): Handle -fspeculative-prefetching.
1143         * passes.c (rest_of_compilation): Ditto.
1144         * profile.c (instrument_values, compute_value_histograms, branch_prob):
1145         Use vectors instead of arrays.
1146         * toplev.c (process_options): Handle -fspeculative-prefetching.
1147         * rtl-profile.c: Include ggc.h.
1148         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
1149         rtl_gen_one_value_profiler_no_edge_manipulation,
1150         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
1151         argument changed.
1152         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
1153         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
1154         argument changed.
1155         * value-prof.c: Include ggc.h.
1156         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
1157         macros.
1158         (insn_prefetch_values_to_profile, find_mem_reference_1,
1159         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
1160         speculative_prefetching_transform): New.
1161         (value_profile_transformations): Call speculative_prefetching_transform.
1162         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
1163         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
1164         tree_find_values_to_profile, find_values to profile): Use vectors
1165         instead of arrays.
1166         (free_profiled_values): Removed.
1167         * value-prof.h (struct histogram_value): Renamed to
1168         struct histogram_value_t.
1169         (histogram_value, histogram_values): New types.
1170         (find_values_to_profile): Declaration changed.
1171         (free_profiled_values): Removed.
1172         (struct profile_hooks): Type of argument of the hooks changed to
1173         histogram_value.
1174         * doc/invoke.texi (-fspeculative-prefetching): Document.
1175
1176 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1177
1178         PR rtl-optimization/16408
1179         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
1180
1181 2004-09-01  Richard Henderson  <rth@redhat.com>
1182
1183         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
1184         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
1185
1186 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
1187
1188         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
1189
1190 2004-09-01  Mike Stump  <mrs@apple.com>
1191
1192         * config/darwin.c (machopic_symbol_defined_p): In addition to
1193         being SYMBOL_REF_LOCAL_P, a symbol must also be
1194         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
1195         defined in this output file, or translation unit in the case
1196         of IMA not being used.
1197         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
1198         never need .indirect_symbol when indirecting.
1199
1200 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
1201
1202         * Makefile.in (bb-reorder.o): Add several dependencies.
1203
1204 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
1205
1206         * fold-const.c (operand_equal_p): Require equal sign also for
1207         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
1208
1209 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
1210
1211         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
1212         for use in configargs.h.  Put the cname in a separate variable.  Use
1213         that to set target_cpu_default2.
1214
1215 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
1216             Nick Clifton  <nickc@redhat.com>
1217
1218         * config/sh/sh.md ("length"): Increase branch length when
1219         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
1220         constant, 2 byte for aligning the constant.
1221
1222 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
1223
1224         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
1225         CPU.
1226         (arm7tdmi-s): New CPU name.
1227         * arm/arm.c (ARM_CORE): Update for new format.
1228         * arm/arm.h (ARM_CORE): Likewise.
1229         * arm/gentune.sh: Update for extra field.
1230         * config.gcc: Likewise.
1231         * arm/arm-tune.md: Regenerate.
1232         * doc/invoke.texi: Document the real processor names for ARM cpus.
1233
1234 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
1235
1236         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
1237         (floatdidf): New functions.
1238         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
1239         (floatdisf): New functions.
1240         * t-arm-elf: Use them.
1241
1242 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
1243
1244         * c-common.h (lookup_interface): Remove prototype.
1245         (is_class_name): Rename to objc_is_class_name.
1246         (lookup_objc_ivar): Rename to objc_lookup_ivar.
1247         (get_current_scope): Rename to objc_get_current_scope.
1248         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
1249         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
1250         (yylexname): Call objc_is_class_name() instead of is_class_name().
1251         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
1252         instead of lookup_objc_ivar().
1253         * stub-objc.c (lookup_interface): Remove stub.
1254         (is_class_name): Rename to objc_is_class_name.
1255         (lookup_objc_ivar): Rename to objc_lookup_ivar.
1256
1257 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
1258
1259         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
1260         * config/arm/lib1funcs.asm: Do not include supplemental .S files
1261         when compiling for Symbian.
1262         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
1263         (TARGET_OS_CPP_BUILTINS): Likewise.
1264         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
1265
1266 2004-08-31  Stan Shebs  <shebs@apple.com>
1267
1268         * toplev.c (process_options): Ensure debug_hooks is initialized.
1269
1270 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
1271
1272         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
1273         * target.h (cxx): Add export_class_data.
1274         * config/arm/arm.c (arm_cxx_export_class_data): New function.
1275         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
1276         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
1277
1278 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1279
1280         * config/sh/sh.c (output_branch): Check the insn length possibly
1281         in the delayed slot.
1282
1283 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1284
1285         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
1286         blank after ')'.
1287         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
1288
1289         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
1290         (c_sizeof_of_alignof_type): Likewise.
1291         * expr.c (array_ref_element_size): Likewise.
1292         (highest_pow2_factor_for_target): Likewise.
1293         * gimplify.c (canonicalize_addr_expr): Likewise.
1294         (gimplify_compound_lval): Likewise.
1295         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
1296         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
1297         * varasm.c (assemble_variable): Likewise.
1298         (output_constant_def_contents): Alignments are unsigned.
1299
1300 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1301             Jeff Law  <law@redhat.com>
1302
1303         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
1304         gets modified.
1305
1306 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
1307
1308         * hooks.c (hook_bool_void_true): New function.
1309         * hooks.h (hook_bool_void_true): Declare.
1310         * target-def.h (TARGET_CXX): Add
1311         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
1312         * target.h (struct cxx): Add key_method_may_be_inline.
1313         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
1314         function.
1315         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
1316         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
1317         __THUMB_INTERWORK.
1318
1319 2004-08-31  Denis Chertykov  <denisc@overta.ru>
1320
1321         PR target/15417
1322         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
1323         frame pointer register only in Pmode while reload in progress.
1324
1325 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
1326
1327         PR target/15334
1328         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
1329         because it breaks the 32-bit shift patterns that rely on a match_dup.
1330
1331 2004-08-31  Matt Austern  <austern@apple.com>
1332
1333         * config/darwin.c (darwin_make_decl_one_only): Allocate section
1334         names once per compilation, instead of once per symbol.
1335
1336 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
1337
1338         * Makefile.in (build_subdir): New substitution.
1339         (fixinc.sh): Simplify heavily since fixincludes is already built.
1340         (stmp-fixinc): Depend on specs.ready.
1341         (install-mkheaders): Use new location of fixincludes.
1342         (clean): Do not descend into fixinc.
1343         (FORBUILD): Replace with ../$(build_subdir).
1344         * configure.ac (build_subdir): Substitute.
1345         (FORBUILD): Do not set.
1346         (all_outputs): Remove fixinc/Makefile.
1347         (default commands): Do not create links in fixinc.
1348         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
1349         the fixincludes configuration steps and substituting
1350         @FIXINCL@ in fixinc.in.
1351         * fixinc.in: New, from fixinc/fixincl.sh.
1352
1353         * fixinc/*: Removed.
1354
1355 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1356
1357         * attribs.c (strip_attrs): Remove.
1358         (split_specs_attrs): Move ...
1359         * c-decl.c: ... to here.
1360         * tree.h (split_specs_attrs, strip_attrs): Remove.
1361         * c-tree.h (split_specs_attrs): Declare.
1362
1363 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
1364
1365         * read-rtl.c: Disable RTL checking.
1366         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
1367
1368 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
1369
1370         * config/mips/mips.md (fcond): New code macro and attribute.
1371         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
1372         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
1373         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
1374
1375 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
1376
1377         Revert:
1378         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
1379         PR rtl-optimization/16590
1380         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
1381
1382 2004-08-30  Andrew Pinski  <apinski@apple.com>
1383
1384         * hard-reg-set.h:
1385         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
1386         * ChangeLog: Fix previous ChangeLog entry.
1387
1388         PR rtl-opt/13987
1389         * config.host (use_long_long_for_widest_fast_int): New, default is
1390         off.
1391         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
1392         * configure.ac: If use_long_long_for_widest_fast_int, then
1393         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
1394         * configure: Regenerate.
1395         * config.in: Regenerate.
1396         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
1397         New: widest integer type supported efficiently in hardware for the
1398         host.
1399         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
1400         HOST_BITS_PER_WIDEST_FAST_INT.
1401         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
1402         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
1403         HOST_WIDEST_FAST_INT
1404         instead of HOST_WIDE_INT.
1405         (HARD_REG_SET_LONGS): Likewise.
1406         (UHOST_BITS_PER_WIDE_INT): Likewise.
1407         Change the checks for the fast cases to be based on
1408         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
1409
1410 2004-08-30  Steven Bosscher  <stevenb@suse.de>
1411
1412         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
1413         not the pointers.
1414
1415 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
1416
1417         PR 12738
1418         PR 17205
1419         Radar 3460526
1420         Radar 3775729
1421         * c-decl.c (grokdeclarator): Produce error for 'static' on local
1422         function declaration.
1423
1424 2004-08-30  Richard Henderson  <rth@redhat.com>
1425
1426         * expr.c (array_ref_element_size): Force aligned_size back to
1427         sizetype.
1428         (component_ref_field_offset): Similarly for aligned_offset.
1429         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
1430         low-bound, element-size, field-offset fields rather than
1431         computed values.
1432
1433 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
1434
1435         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
1436         redundant code.
1437
1438 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
1439
1440         * c-tree.h (struct language_function): Add arg_info element.
1441         * c-decl.c (current_function_arg_info): New.
1442         (grokdeclarator, store_parm_decls): Use it instead of
1443         DECL_ARGUMENTS.
1444         (c_push_function_context, c_pop_function_context): Save and
1445         restore it.
1446
1447 2004-08-30  Richard Henderson  <rth@redhat.com>
1448
1449         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
1450         COMPONENT_REF to pointer arithmetic.
1451         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
1452         constant "c" as a valid constant initializer.  Allow narrowing of
1453         differences against the same base object, for any base object.
1454
1455 2004-08-30  Richard Henderson  <rth@redhat.com>
1456
1457         * expr.c (expand_expr_addr_expr): New.
1458         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
1459
1460 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
1461
1462         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
1463         (mips_fp_condition): New enum.
1464         (mips_fp_conditions): New array.
1465         (print_fcc_operand): Delete.
1466         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
1467         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
1468         (builtin_description): Add "cond" field.
1469         (DIRECT_BUILTIN): Initialize it.
1470         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
1471         into INSN and CODE.  Initialize the "cond" field.
1472         (CMP_BUILTINS): Update accordingly.
1473         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
1474         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
1475         mips_fp_condition as argument.  Make it the final operand of the
1476         comparison instruction.
1477         (mips_expand_builtin): Update accordingly.
1478         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
1479         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
1480         the gaps.
1481         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
1482         Don't use the 'Q' operand prefix; just print the operand normally.
1483         (mips_cabs_*, mips_c_*): Delete, replacing with...
1484         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
1485         patterns.  Split the 4s versions into 2 ps patterns after reload.
1486
1487 2004-08-30  Richard Henderson  <rth@redhat.com>
1488
1489         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
1490         assuming an ADDR_EXPR is non-null.
1491
1492 2004-08-30  Jason Merrill  <jason@redhat.com>
1493
1494         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
1495
1496 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
1497
1498         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
1499         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
1500         gcc_assert and gcc_unreachable instead of abort.
1501         * alloc-pool.c (abort, fancy_abort): Remove.
1502         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
1503         gcc_assert or gcc_unreachable.
1504         * attribs.c (init_attributes, decl_attributes): Likewise.
1505         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
1506         mark_bb_for_unlikely_executed_section,
1507         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
1508         fix_crossing_unconditional_branches):  Likewise.
1509         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
1510         bitmap_operation):  Likewise.
1511         * bt-load.c (insn_sets_btr_p, augment_live_range,
1512         move_btr_def):  Likewise.
1513         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
1514         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
1515         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
1516         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
1517         expand_builtin_memcmp, expand_builtin_args_info,
1518         std_gimplify_va_arg_expr, expand_builtin_unop,
1519         expand_builtin_fputs, expand_builtin_profile_func,
1520         expand_builtin_fork_or_exec, fold_builtin_bitop,
1521         fold_builtin_classify, fold_builtin_fputs): Likewise.
1522
1523 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
1524
1525         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
1526         * gcov.c (abort): Remove undef.
1527
1528         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
1529         (struct tree_binfo): Remove primary field.
1530
1531 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
1532
1533         * fixinc/Makefile.in (machname.h): Remove.
1534         (fixincl.x): Do not pass $@ to genfixes.
1535         * fixinc/genfixes: Remove code to produce machname.h.
1536         * fixinc/fixincl.sh: Move it here instead.
1537         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
1538         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
1539         return a bool indicating whether pz_mn_name_pat is NULL.
1540         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
1541         Declare extern C variables for the ENV_TABLE.
1542         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
1543         instead use the result of mn_get_regexps.
1544         * fixinc/fixtests.c: Likewise.
1545
1546 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
1547
1548         * configure.ac: Do not run fixincludes after stage1 during
1549         toplevel bootstrap.
1550         * configure: Regenerate.
1551
1552 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
1553
1554         * sched-deps.c (get_condition): Partially revert previous, by never
1555         trying to extract the condition from a condjump.
1556
1557 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
1558
1559         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
1560         (handle_visibility_attribute, c_determine_visibility): Likewise.
1561         * c-common.h (my_friendly_assert): Remove.
1562
1563 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
1564
1565         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
1566         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
1567         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
1568         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
1569         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
1570
1571 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
1572
1573         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
1574         in COMPONENT_REF nodes.
1575
1576 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1577
1578         PR c++/15378
1579         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
1580         global_dc->warning_as_error_requested.
1581         * diagnostic.c (diagnostic_initialize): Tidy.
1582         * diagnostic.h (diagnostic_context::x_data): Remove
1583         (diagnostic_context::issue_warnings_are_errors_message): Rename
1584         from warnings_are_errors_message.
1585         (diagnostic_context::warning_as_error_requested): New.
1586
1587 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
1588
1589         * sched-deps.c (get_condition): Fix breakage in previous patch.
1590
1591 2004-08-30  Paul Brook  <paul@codesourcery.com>
1592
1593         * doc/install.texi: Fix broken mpfr link.
1594
1595 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
1596
1597         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
1598         other FreeBSD platforms.
1599
1600 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
1601
1602         * arm.h (REVERSE_CONDITION): Define.
1603         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
1604
1605 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
1606
1607         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
1608         just the codes, call reversed_comparison_code ().
1609         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
1610         (not_reg_cond): Use reversed_comparison_code.
1611         (and_reg_cond): Likewise.
1612         * ifcvt.c (cond_exec_process_if_block): Likewise.
1613         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
1614
1615 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
1616
1617         * sched-deps.c (get_condition): Rewrite using jump support functions.
1618         Use reversed_comparison_code.
1619         (conditions_mutex_p): Use reversed_comparison_code.
1620
1621 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1622
1623         * config/mips/mips.c (override_options): Disable hot/cold partitioning
1624         for MIPS16.
1625
1626 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1627
1628         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
1629         (mips_function_type): Move to mips.c.
1630         * config/mips/mips.c (mips_builtin_type): New enum.
1631         (builtin_description): Replace code and ftype with builtin_type
1632         and function_type.
1633         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
1634         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
1635         (CODE_FOR_mips_abs_ps): Define.
1636         (mips_bdesc): Use new macros.
1637         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
1638         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
1639         (mips_expand_builtin_direct): New function.
1640         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
1641         builtin.  Replace boolean parameter with builtin_type.
1642         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
1643         (mips_expand_4s_compare_builtin): Delete, replacing with...
1644         (mips_expand_builtin_compare): ...this new function.
1645
1646 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
1647
1648         PR rtl-optimization/16590
1649         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
1650
1651 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
1652
1653         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
1654         * tree-ssa-propagate.c: Fix documentation.
1655
1656 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1657
1658         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
1659         (mov[sd]fcc): Likewise.
1660
1661 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1662
1663         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
1664
1665 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1666
1667         * config/mips/mips.md (divide_condition): New mode attribute.
1668         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
1669         (sqrt[sd]f3): Redefine using SCALARF.
1670         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
1671         patterns.
1672
1673 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1674
1675         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
1676         (loadx, storex, fmt, UNITMODE): New mode attributes.
1677         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
1678         (mul[sd]f3): Redefine using :SCALARF.
1679         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
1680         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
1681         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
1682         Check TARGET_FUSED_MADD for V2SF too.
1683         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
1684         were already named.
1685         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
1686         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
1687
1688 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1689
1690         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
1691         V2SF_type_node if it will be needed.
1692
1693 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1694
1695         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
1696         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
1697         (mips_prepare_builtin_target): New function.
1698         (mips_expand_builtin): Use them.  Update calls to subroutines.
1699         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
1700         cmp_choice with a boolean argument to select between movt and movf.
1701         Take the comparison's icode as an argument, not the function's fcode.
1702         (mips_expand_compare_builtin): New function.  Rename existing function
1703         to mips_expand_scalar_compare_builtin.
1704         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
1705         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
1706         comparison's icode as an argument, not the builtin's fcode.
1707
1708 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1709
1710         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
1711         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
1712         registers are false and -1 if all registers are true.
1713         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
1714         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
1715         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
1716         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
1717         (bc1any2t, bc1any2f): Likewise CCV2.
1718         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
1719
1720 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1721
1722         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
1723         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
1724         UNSPEC rather than an IF_THEN_ELSE.
1725         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
1726         mips_cond_move_tf_ps by name.
1727
1728 2004-08-29  Chao-ying Fu  <fu@mips.com>
1729             James E Wilson  <wilson@specifixinc.com>
1730
1731         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
1732         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
1733         * config/mips/mips-ps-3d.md: New file.
1734         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
1735         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1736         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
1737         (mips_output_move): Emit "mov.ps" for V2SFmode.
1738         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
1739         MODE_VECTOR_FLOAT.
1740         (override_options): Check if TARGET_MIPS3D and there was an explicit
1741         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
1742         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
1743         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
1744         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
1745         and allow CCV2 and CCV4 to occupy two and four CC registers.
1746         (print_fcc_operand): New function.
1747         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
1748         %Z to call print_fcc_operand.
1749         (mips_function_value): Handle MODE_VECTOR_FLOAT.
1750         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
1751         (mips_vector_mode_supported_p): New function.
1752         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
1753         (builtin_description): New struct.
1754         (mips_bdesc): New array of struct builtin_description.
1755         (mips_expand_builtin, mips_init_builtins,
1756         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
1757         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
1758         functions.
1759         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
1760         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
1761         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
1762         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
1763         "-mips3d", and "-mno-mips3d".
1764         (ASM_SPEC): Map -mips3d to -mips3d in gas.
1765         (EXTRA_CONSTRAINT_Y): New macro.
1766         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
1767         multi-letter constraint 'Y'.
1768         (CONSTRAINT_LEN): New macro.
1769         (enum mips_builtins): New for MIPS builtin functions.
1770         (enum mips_function_type): New for the types of MIPS builtin functions.
1771         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
1772         * config/mips/mips.md: New constants for paired single and MIPS-3D
1773         instructions.  Include the new mips-ps-3d.md file.
1774         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
1775         movv2sf_hardfloat_64bit): New named patterns.
1776         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
1777         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
1778         sdxc1_v2sf_di): New unnamed patterns.
1779         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
1780         const_vector support.
1781         (const_0_or_1_operand): New predicate.
1782         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
1783
1784 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
1785
1786         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
1787         (tree-ssa-propagate.o): New rule.
1788         (GTFILES): Add tree-ssa-propagate.c.
1789         * tree-flow.h (struct stmt_ann_d): Remove field
1790         in_ccp_worklist.
1791         * tree-ssa-propagate.c: New file.
1792         * tree-ssa-propagate.h: New file.
1793         * tree-ssa-ccp.c: Re-write to use the routines from
1794         tree-ssa-propagate.c.
1795
1796 2004-08-28  Andrew Pinski  <apinski@apple.com>
1797
1798         * tree-ssa-loop.c: Remove extra include of basic-block.h.
1799
1800 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
1801
1802         * c-common.h: Update comments about ObjC/ObjC++ entry points.
1803         (objc_is_reserved_word): New prototype.
1804         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
1805         separate section; these are call-backs.
1806         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
1807         ObjC/ObjC++ "@" keywords.
1808         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
1809         prototypes; they already live in c-common.h.
1810         * stub-objc.c: Update copyright notice.
1811         (objc_is_reserved_word): New stub.
1812
1813 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
1814
1815         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
1816         even when not checking.
1817
1818 2004-08-27  Jason Merrill  <jason@redhat.com>
1819
1820         PR c++/13684
1821         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
1822         (gimple_push_cleanup): Add eh_only parm.
1823         (gimplify_target_expr): Pass it.
1824         * c.opt (-fno-threadsafe-statics): New option.
1825         * c-opts.c (c_common_handle_option): Handle it.
1826         * c-common.h (flag_threadsafe_statics): Declare it.
1827         * c-common.c (flag_threadsafe_statics): Record it.
1828         * doc/invoke.texi: Document it.
1829         * tsystem.h (_GNU_SOURCE): Define.
1830         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
1831         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
1832         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
1833         (__gthread_recursive_mutex_init_function): New fn.
1834         (__gthread_recursive_mutex_lock): New fn.
1835         (__gthread_recursive_mutex_trylock): New fn.
1836         (__gthread_recursive_mutex_unlock): New fn.
1837         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
1838         * gthr-win32.h, gthr-vxworks.h: Likewise.
1839         * gthr.h: Document.
1840
1841 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
1842
1843         * config/rs6000/rs6000.c (rs6000_override_options): Increase
1844         maximum skip to 15.  Set function alignment, jump alignment, and
1845         loop alignment to 16 for processors that form dispatch groups.
1846         (rs6000_rtx_costs): outer_code is used.
1847
1848 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
1849
1850         * stor-layout.c (sizetype_set): Remove.
1851         (set_sizetype): Don't test or set it.
1852
1853         * tree.h (size_int_type): Remove.
1854         * fold-const.c: Do not #include gt-fold-const.h.
1855         (size_htab_hash, size_htab_eq): Remove.
1856         (size_int_kind): Use build_int_cst.
1857         (new_const, size_htab): Remove.
1858         (size_int_type): Remove.
1859         (round_up): Use build_int_cst.
1860         (round_down): Likewise. Remove spurious constant build.
1861
1862 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
1863
1864         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
1865         Add is_release variable, use it for --enable-werror and
1866         --enable-checking defaults.
1867         * system.h (gcc_assert, gcc_unreachable): New.
1868         * doc/install.texi (--enable-checking): Update.
1869         * configure, config.in: Rebuilt.
1870
1871 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
1872
1873         * rtl.h (read_rtx): Change prototype.
1874         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
1875         line number.  Return true on success.
1876         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
1877         callers accordingly.
1878
1879 2004-08-26  Richard Henderson  <rth@redhat.com>
1880
1881         * c-typeck.c (build_offsetof): Remove.
1882         * c-tree.h (build_offsetof): Remove.
1883         * c-common.c (fold_offsetof_1, fold_offsetof): New.
1884         * c-common.h (fold_offsetof): Declare.
1885         * c-parse.in (offsetof_base): New.
1886         (offsetof_member_designator): Use it.  Build references, not just
1887         a tree list.
1888         (primary): Use fold_offsetof, not build_offsetof.
1889
1890 2004-08-26  Richard Henderson  <rth@redhat.com>
1891
1892         * tree.c (staticp): Return the static object.
1893         * tree.h (staticp): Update decl.
1894         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
1895         * langhooks.c (lhd_staticp): Return NULL_TREE.
1896         * langhooks-def.h (lhd_staticp): Update decl.
1897         * c-common.c (c_staticp): Return the static object.
1898         * c-common.h (c_staticp): Update decl.
1899
1900 2004-08-26  Richard Henderson  <rth@redhat.com>
1901
1902         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
1903         modes.
1904
1905 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
1906
1907         PR c/13801
1908         * c-decl.c (struct c_binding): Add type and inner_comp fields.
1909         (bind): Set type and inner_comp fields.
1910         (pop_scope): Restore type of decl to the correct type from an
1911         outer scope.  Give error when popping file scope for incomplete
1912         arrays completed incompatibly with default initialization in an
1913         inner scope.
1914         (diagnose_mismatched_decls): Handle externs with initializers at
1915         block scope.
1916         (pushdecl): Set type of external declaration at block scope based
1917         only on the visible declarations.  Save type when changing the
1918         type of a declaration.  Merge an external declaration at block
1919         scope with a visible static declaration at file scope.
1920         (implicitly_declare): Give recycled old declaration the new type
1921         except for incompatible declarations of built-in functions, saving
1922         the old type.
1923
1924 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
1925
1926         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
1927
1928 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
1929
1930         * tree-alias-common.c (gate_pta): New function.
1931         (pass_build_pta): Use it.
1932         (pass_del_pta): Use it.
1933         (delete_alias_vars): Don't check flag_tree_points_to.
1934
1935 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1936
1937         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
1938         TFmode as additional register mode cloberred by call.
1939
1940 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1941
1942         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
1943         parallel pattern for library call returning DImode in
1944         mixed mode.
1945
1946 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1947
1948         * config/rs6000/rs6000.c (function_arg): Generate parallel
1949         pattern for more split args.
1950
1951 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1952
1953         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
1954         either gen_movdi_di_update or gen_movdi_si_update depending on
1955         target mode.
1956         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
1957         to generate two versions.
1958
1959 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
1960
1961         * Makefile.in (lambda-code.o): New.
1962         (lambda-trans.o): Ditto.
1963         (TREE_DATA_REF_H): Ditto.
1964         (LAMBDA_H): Ditto.
1965         (lambda-mat.o): Use LAMBDA_H.
1966         (tree-data-ref.o): Ditto.
1967         * lambda-code.c: New file.  Lambda code generation algorithm.
1968         * lambda-trans.c: Ditto. Lambda transformation matrix support.
1969         * lambda.h: Add lambda loop structures.
1970         Add lambda loopnest structures.
1971         Add lambda body vector structure.
1972         Add lambda linear expression structures.
1973         Add prototypes for functions in new files.
1974         * lambda-mat.c: Include tree.h
1975
1976 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
1977             Sebastian Pop  <pop@cri.ensmp.fr>
1978
1979         * tree-data-ref.h: Include lambda.h
1980         (free_dependence_relation): Declared here.
1981         (free_dependence_relations): Ditto.
1982         (free_data_refs): Ditto.
1983         * tree-data-ref.c (free_dependence_relation): New function.
1984         (free_dependence_relations): Ditto.
1985         (free_data_refs): Ditot.
1986         (analyze_all_data_dependences): Free datarefs and dependence_relations.
1987         (build_classic_dist_vector): Store in the dependence_relations the
1988         information. Each arc in the dependence_relations graph is labelled
1989         with the distance and direction vectors.
1990         (build_classic_dir_vector): Ditto.
1991         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
1992         Now computes again the whole dependence graph including read-read
1993         relations.
1994         (compute_data_dependences_for_loop): Now dependence_relations contains
1995         all the data, and thus it doesn't need to initialize the classic_dir
1996         and classic_dist vectors.
1997         (analyze_all_data_dependences): Adjusted for using the new interface of
1998         compute_data_dependences_for_loop.  Remove the statistics dump.
1999
2000 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
2001
2002         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
2003         (xtensa_expand_block_move): Update comment.
2004         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
2005
2006 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
2007
2008         PR target/13506
2009         * toplev.c (crash_signal): If we crashed while emitting
2010         a user asm, then die more gracefully.
2011
2012 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2013
2014         PR target/17119.
2015         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
2016         checking for a valid constant, regardless of sign.
2017
2018 2004-08-25  Richard Henderson  <rth@redhat.com>
2019
2020         PR target/16974
2021         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
2022         if the constant satisfies add_operand.
2023
2024 2004-08-25  Richard Henderson  <rth@redhat.com>
2025
2026         PR debug/10695
2027         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
2028         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
2029         unwind info for >16-bit frames.
2030
2031 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
2032
2033         PR target/17171
2034         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
2035
2036 2004-08-25  Richard Henderson  <rth@redhat.com>
2037
2038         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
2039         (TARGET_CANNOT_FORCE_CONST_MEM): New.
2040
2041 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
2042
2043         * doc/tree-ssa.texi: Document new operand iterator.
2044
2045 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
2046
2047         PR target/16480
2048         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
2049         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
2050         as PLUS base regs.
2051
2052 2005-08-28  Paul Brook  <paul@codesourcery.com>
2053
2054         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
2055         -mfpu=vfp -march=armv5t
2056         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
2057
2058 2004-08-25  Richard Henderson  <rth@redhat.com>
2059
2060         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
2061         * target.h (struct gcc_target): Add scalar_mode_supported_p.
2062         * targhooks.c (default_scalar_mode_supported_p): New.
2063         * targhooks.h (default_scalar_mode_supported_p): Declare.
2064         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
2065
2066         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
2067         before attempting to create types.  Tidy.
2068         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
2069
2070         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
2071         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
2072
2073 2004-08-25  Richard Henderson  <rth@redhat.com>
2074
2075         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
2076         set REAL_MODE_FORMAT for TFmode.
2077
2078 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
2079
2080         * c-decl.c (grokparm): New function.
2081         * c-tree.h (grokparm): New prototype.
2082
2083 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
2084
2085         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
2086         iterator controlling structure.
2087         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
2088         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
2089         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
2090         iterator flags.
2091         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
2092         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
2093         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
2094         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
2095         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
2096         Empty operand pointers.
2097         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
2098         (op_iter_next_use): New.  Return next use_operand_p.
2099         (op_iter_next_def): New.  Return next def_operand_p.
2100         (op_iter_next_tree): New.  Return next operands as a tree.
2101         (op_iter_init): New.  Initialize an iterator structure.
2102         (op_iter_init_use): New.  Initialize structure and get the first use.
2103         (op_iter_init_def): New.  Initialize structure and get the first def.
2104         (op_iter_init_tree): New.  Initialize structure and get the first tree.
2105         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
2106         (op_iter_init_maydef): New.  Initialize structure and get the first
2107         V_MAY_DEF operands.
2108         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
2109         * tree-dfa.c (compute_immediate_uses_for_stmt,
2110         redirect_immediate_uses): Use new operand iterator.
2111         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
2112         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
2113         operands instead of using *_disappeared_p routines.
2114         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
2115         ssa_rewrite_stmt): Use new operand iterator.
2116         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
2117         rewrite_trees): Use new operand iterator.
2118         * tree-pretty-print.c (dump_vops): Use new operand iterator.
2119         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
2120         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
2121         dump_points_to_info): Use new operand iterator.
2122         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
2123         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
2124         operand iterator.
2125         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
2126         propagate_necessity): Use new operand iterator.
2127         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
2128         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
2129         a parameter instead of a stmt_ann_t.
2130         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
2131         build_tree_conflict_graph): Use new operand iterator.
2132         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
2133         rewrite_mem_refs): Use new operand iterator.
2134         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
2135         check_loop_closed_ssa_use): Use new operand iterator.
2136         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
2137         * tree-ssanames.c (release_defs): Use new operand iterator.
2138         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
2139
2140 2004-08-25  Adam Nemet  <anemet@lnxw.com>
2141
2142         * tlink.c (initial_cwd): New variable.
2143         (tlink_init): Initialize it.
2144         (recompile_files): Use tlink_execute() instead of system().  Don't
2145         duplicate verbose output of collect_execute.  Restore initial_cwd.
2146         Update comment before the function.
2147
2148 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
2149
2150         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
2151         accept) a cast from one Objective-C pointer type to another.
2152
2153 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
2154
2155         * doc/install.texi: Document that libstdc++-v3 requires
2156         now automake 1.9.1.
2157
2158 2004-08-25  Caroline Tice  <ctice@apple.com>
2159
2160         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
2161         to comments at start of function.
2162         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
2163         comment.
2164         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2165         merge_blocks_move_predecessor_nojumps,
2166         merge_blocks_move_successor_nojumps, merge_blocks_move,
2167         try_crossjump_to_edge, try_crossjump_bb): Likewise.
2168         * cfglayout.c (fixup_reorder_chain): Likewise.
2169         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2170         cfg_layout_can_merge_blocks_p):  Likewise.
2171         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
2172         * passes.c (rest_of_compilation): Update comments for calling
2173         optimization that partitions hot/cold basic blocks.
2174         * doc/invoke.texi:  Update documentation of
2175         freorder-blocks-and-partition flag.
2176
2177 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
2178
2179         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
2180         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
2181
2182 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
2183
2184         * config/mips/mips.md (any_shift): New code macro.
2185         (optab, insn): New code attributes.
2186         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
2187         Use the standard rather than internal patterns for the MIPS16
2188         double-shift optimization.
2189         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
2190         Redefine using :GPR and any_shift.
2191         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
2192         to cover all three shifts.
2193         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
2194         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
2195         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
2196
2197 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
2198
2199         * gimplify.c (lookup_tmp_var): Separate temporaries when not
2200         optimizing.
2201
2202 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2203
2204         PR libstdc++/17005 (fix for HP-UX 11.11)
2205         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
2206         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
2207         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
2208         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
2209         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
2210         (LINK_SPEC): Handle march=1.0 option.
2211         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
2212         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
2213         (SUBTARGET_OPTIONS): New define.
2214         (LINK_SPEC): Handle march=1.0 option.
2215         (STARTFILE_SPEC): New define.
2216         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
2217         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
2218         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
2219         (SUBTARGET_OPTIONS): New define.
2220         (LINK_SPEC): Handle march=1.0 option.
2221         (STARTFILE_SPEC): New define.
2222         * config/pa/pa.c (override_options): Add code to process -munix= option.
2223         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
2224         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
2225         defines.
2226         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
2227         (SUBTARGET_OPTIONS): Provide default define.
2228         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
2229         STANDARD_STARTFILE_PREFIX_2): New defines.
2230         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
2231         (ENDFILE_SPEC): Use %O.
2232         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
2233         Mention issue caused by changing namespace and runtime to UNIX 95/98.
2234         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
2235         Document -munix=std option.
2236
2237 2004-08-25  Steven Bosscher  <stevenb@suse.de>
2238
2239         * cse.c (cse_around_loop, cse_check_loop_start,
2240         cse_set_around_loop): Remove.
2241         (cse_basic_block): Remove the around_loop argument.
2242         (cse_end_of_basic_block): Remove the after_loop argument.
2243         (cse_main): Likewise.
2244         * rtl.h (cse_main): Update prototype.
2245         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
2246         rest_of_handle_gcse): Update cse_main calls.
2247
2248 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
2249
2250         * tree.h  (build_int_cst): New, sign extended constant.
2251         (build_int_cstu): New, zero extended constant.
2252         (build_int_cst_wide): Renamed from build_int_cst.
2253         * tree.c (build_int_cst, build_int_cstu): New.
2254         (build_int_cst_wide): Renamed from build_int_cst.
2255         (make_vector_type, build_common_tree_nodes,
2256         build_common_tree_nodes_2): Adjust build_int_cst calls.
2257         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
2258         expand_builtin_strpbrk, expand_builtin_fputs,
2259         build_string_literal, expand_builtin_printf,
2260         expand_builtin_sprintf, fold_builtin_classify_type,
2261         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
2262         fold_builtin_toascii, fold_builtin_isdigit,
2263         simplify_builtin_strstr, simplify_builtin_strpbrk,
2264         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
2265         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
2266         DEF_ATTR_INT): Likewise.
2267         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
2268         Likewise.
2269         * c-lex.c (interpret_integer, lex_charconst): Likewise.
2270         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
2271         * c-pretty-print.c (pp_c_integer_constant): Likewise.
2272         * c-typeck.c (really_start_incremental_init, push_init_level,
2273         set_nonincremental_init_from_string): Likewise.
2274         * calls.c (load_register_parameters): Likewise.
2275         convert.c (convert_to_pointer): Likewise.
2276         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
2277         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
2278         build_gcov_info): Likewise.
2279         * except.c (init_eh, assign_filter_values): Likewise.
2280         * expmed.c (store_fixed_bit_field, extract_bit_field,
2281         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
2282         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
2283         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
2284         * expr.c (convert_move, emit_group_load, emit_group_store,
2285         expand_assignment, store_constructor, store_field,
2286         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2287         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
2288         invert_truthvalue, optimize_bit_field_compare,
2289         decode_field_reference, all_ones_mask_p, constant_boolean_node,
2290         fold_div_compare, fold, fold_read_from_constant_string,
2291         fold_negate_const, fold_abs_const, fold_not_const, round_up,
2292         round_down): Likewise.
2293         * function.c (assign_parm_setup_block): Likewise.
2294         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
2295         Likewise.
2296         * stor-layout.c (layout_type, initialize_sizetypes,
2297         set_min_and_max_values_for_integral_type): Likewise.
2298         * tree-chrec.c (chrec_fold_multiply_poly_poly,
2299         reset_evolution_in_loop): Likewise.
2300         * tree-chrec.h (build_polynomial_chrec): Likewise.
2301         * tree-complex.c (build_replicated_const): Likewise.
2302         * tree-eh.c (honor_protect_cleanup_actions,
2303         lower_try_finally_onedest, lower_try_finally_copy,
2304         lower_try_finally_switch): Likewise.
2305         * tree-mudflap.c (mf_build_string, mx_register_decls,
2306         mudflap_register_call, mudflap_enqueue_constant): Likewise.
2307         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
2308         * tree-pretty-print.c (dump_generic_node): Likewise.
2309         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
2310         Likewise.
2311         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2312         * tree-ssa-loop-niter.c (number_of_iterations_cond,
2313         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
2314         Likewise.
2315         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
2316         canonicalize_loop_induction_variables): Likewise.
2317         * tree-vectorizer.c (vect_create_index_for_array_ref,
2318         vect_transform_loop_bound, vect_compute_data_ref_alignment):
2319         Likewise.
2320
2321         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
2322         alpha_gimplify_va_arg_1): Likewise.
2323         * config/arm/arm.c (arm_get_cookie_size): Likewise.
2324         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2325         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2326         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2327         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
2328         mips_gimplify_va_arg_expr): Likewise.
2329         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2330         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
2331         add_compiler_branch_island): Likewise.
2332         * config/s390/s390.c (s390_va_start): Likewise.
2333         * config/sh/sh.c (sh_va_start): Likewise.
2334         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2335         Likewise.
2336         * config/xtensa/xtensa.c (xtensa_va_start,
2337         xtensa_gimplify_va_arg_expr): Likewise.
2338
2339         * objc/objc-act.c (build_objc_string_object,
2340         build_objc_symtab_template, init_def_list, init_objc_symtab,
2341         init_module_descriptor, generate_static_references,
2342         build_selector_translation_table, get_proto_encoding,
2343         build_typed_selector_reference, build_selector_reference,
2344         build_next_objc_exception_stuff,
2345         build_method_prototype_list_template, generate_descriptor_table,
2346         generate_protocols, build_protocol_initializer,
2347         build_ivar_list_template, build_method_list_template,
2348         build_ivar_list_initializer, generate_ivars_list,
2349         generate_dispatch_table, generate_protocol_list,
2350         build_category_initializer, build_shared_structure_initializer,
2351         generate_shared_structures, handle_impent,
2352         generate_objc_image_info): Likewise.
2353
2354 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2355
2356         * cfglayout.c (duplicate_insn_chain): Remove references to
2357         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
2358         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
2359         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
2360         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
2361         and NOTE_INSN_LOOP_CONT.
2362         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
2363         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
2364         and NOTE_INSN_LOOP_CONT.
2365         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
2366         check_dbra_loop, loop_dump_aux): Remove references to removed notes
2367         and fields.
2368         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
2369         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
2370         references to removed notes and fields.
2371         (subtract_reg_term, ujump_to_loop_cont): Remove.
2372
2373 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
2374
2375         * doc/install.texi: Document that libcpp does not require
2376         Automake any longer.  Document that Automake 1.9.1 should
2377         work everywhere.
2378
2379 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
2380
2381         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
2382         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
2383         DWARF_DEBUGGING_INFO from choice-of-definition chain;
2384         restructure using C89 features (#elif, #error).
2385         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
2386         * config/sh/sh.h: Remove references to DWARF_DEBUG.
2387         * doc/invoke.texi: Remove references to DWARF version 1;
2388         clarify why -gdwarf-2<n> doesn't work.
2389
2390 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
2391
2392         * basic-block.h (BB_SET_PARTITION): Clear old value first.
2393         * cfg.c (clear_bb_flags): Don't clear partition setting.
2394         * ifcvt.c (find_if_case_1): Remove ??? comment.
2395
2396 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
2397
2398         PR target/17052
2399         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
2400         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
2401         current_function_stdarg in place of sysv_varargs_p.
2402         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
2403         sysv_varargs_p.
2404
2405 2004-08-24  Richard Henderson  <rth@redhat.com>
2406
2407         PR target/16298
2408         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
2409         random codes within CONST.
2410
2411 2004-08-24  James E Wilson  <wilson@specifixinc.com>
2412
2413         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
2414         -freorder-blocks-and-partition.
2415
2416 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2417
2418         PR middle-end/17044
2419         * tree-ssa-threadupdate.c (redirection_data): Make static.
2420         (thread_block): Use ggc_alloc_cleared to allocate struct
2421         redirection_data.  Don't free elements in redirection_data.
2422
2423 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2424
2425         * config/mips/predicates.md (small_data_pattern): Match prefetches.
2426
2427 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2428
2429         PR tree-optimization/17016
2430         * tree-ssa-loop-niter.c (number_of_iterations_cond,
2431         number_of_iterations_exit): Use POINTER_TYPE_P instead
2432         of testing for POINTER_TYPE.
2433
2434 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2435
2436         * tree-ssa-loop-ivcanon.c: New file.
2437         * tree-ssa-loop-manip.c (create_iv): New function.
2438         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
2439         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
2440         * cfgloop.c (mark_single_exit_loops): New function.
2441         (verify_loop_structure): Verify single-exit loops.
2442         * cfgloop.h (struct loop): Add single_exit field.
2443         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
2444         (mark_single_exit_loops): Declare.
2445         (tree_num_loop_insns): Declare.
2446         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
2447         (duplicate_loop_to_header_edge): Use it.
2448         * common.opt (fivcanon): New flag.
2449         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
2450         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
2451         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
2452         (bsi_insert_on_edge_immediate): New function.
2453         * tree-flow.h (bsi_insert_on_edge_immediate,
2454         canonicalize_induction_variables, tree_unroll_loops_completely,
2455         create_iv): Declare.
2456         * tree-optimize.c (init_tree_optimization_passes): Add
2457         pass_iv_canon and pass_complete_unroll.
2458         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
2459         * tree-scalar-evolution.c (get_loop_exit_condition,
2460         get_exit_conditions_rec, number_of_iterations_in_loop,
2461         scev_initialize): Use single_exit information.
2462         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
2463         missing assumptions.
2464         (loop_niter_by_eval):  Return number of iterations as unsigned
2465         int.
2466         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
2467         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
2468         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
2469         New passes.
2470         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
2471         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
2472         the defining statement is ready.
2473         * tree-vectorizer.c (vect_create_iv_simple): Removed.
2474         (vect_create_index_for_array_ref, vect_transform_loop_bound):
2475         Use create_iv.
2476         (vect_transform_loop_bound): Use single_exit information.
2477         (vect_analyze_loop_form): Cleanup bogus tests.
2478         (vectorize_loops): Do not call flow_loop_scan.
2479         * tree.h (may_negate_without_overflow_p): Declare.
2480         * fold-const.c (may_negate_without_overflow_p): Split out from ...
2481         (negate_expr_p): ... this function.
2482         (tree_expr_nonzero_p): Handle overflowed constants correctly.
2483         * doc/invoke.texi (-fivcanon): Document.
2484         * doc/passes.texi: Document canonical induction variable creation.
2485
2486 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2487
2488         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
2489         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
2490         using the mode of the operand to decide between them.
2491         * config/mips/mips.md (MOVECC): New mode macro.
2492         (ccreg): New mode attribute.
2493         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
2494         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
2495         (mov[sd]icc): Redefine using :GPR.
2496
2497 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2498
2499         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
2500         (mips_prefetch_cookie): New function.
2501         * config/mips/mips.c (print_operand_address): Fix handling of
2502         ADDRESS_CONST_INT.
2503         (mips_emit_prefetch): Delete.
2504         (mips_prefetch_cookie): New function.
2505         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
2506         mode of QImode for the address_operand.  Use mips_prefetch_cookie
2507         to calculate the first "pref" operand.
2508         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
2509         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
2510
2511 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
2512
2513         * arm.md: Include predicates.md.
2514         * predicates.md: New file.
2515         * arm.c (s_register_operand, arm_hard_register_operand)
2516         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
2517         (arm_immediate_operand, arm_neg_immediate_operand)
2518         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
2519         (arm_add_operand, arm_addimm_operand, arm_not_operand)
2520         (offsettable_memory_operand, alignable_memory_operand)
2521         (arm_reload_memory_operand, arm_float_rhs_operand)
2522         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
2523         (index_operand, shiftable_operator, logical_binary_operator)
2524         (shift_operator, equality_operator, arm_comparison_operator)
2525         (minmax_operator, cc_register, dominant_cc_register)
2526         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
2527         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
2528         (const_shift_operand, load_multiple_operation)
2529         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
2530         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
2531         (cirrus_register_operand, cirrus_fp_register)
2532         (cirrus_shift_const): Delete, replaced with equivalents in
2533         predicates.md.
2534         (shift_op): Handle ROTATE.
2535         * arm-protos.h: Delete declarations for above.
2536         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
2537         * t-arm (MD_INCLUDES): Add predicates.md.
2538         (s-preds): Depends on MD_INCLUDES.
2539
2540 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2541
2542         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
2543         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
2544         patterns.  Redefine using :GPR.  Give the match_operator a mode.
2545         Use '%2' rather than '%z2' for operand 2.
2546
2547 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2548
2549         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
2550         attribute.
2551
2552 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2553
2554         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
2555         of internal patterns.
2556         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
2557         Redefine using :P.
2558         (tablejump): Use expand_binop to calculate address.  Adjust names
2559         of internal patterns.
2560         (tablejump[sd]i): Renamed from tablejump_internal[12].
2561         Redefine using :P.
2562         (tablejump_mips16[12]): Delete.
2563
2564 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2565
2566         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
2567         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
2568         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
2569         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
2570         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
2571
2572 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2573
2574         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
2575         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
2576         using :GPR.
2577         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
2578         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
2579         (*branch_equality[sd]i_inverted): Likewise
2580         branch_equality{,_di}_inverted.
2581         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
2582         Redefine using :GPR.
2583
2584 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
2585
2586         * rtl.def: Reorganize, placing all codes used only in machine
2587         descriptions at the end.
2588
2589         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
2590         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
2591         rtx_name, rtx_format arrays by direct reference to rtl.def,
2592         first undefining GENERATOR_FILE.  Define enum insn_note and
2593         note_insn_name array by direct reference to insn-notes.def.
2594         (adjust_field_rtx_def): Remove local definition of rtx_name.
2595         Use symbolic names for insn notes.
2596         * Makefile.in (gengtype.o): Update dependencies.
2597
2598 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
2599
2600         * basic-block.h (struct basic_block_def): Reorder fields to
2601         eliminate interior padding.  Remove 'partition' field.
2602         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
2603         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
2604         (BB_COPY_PARTITION): New macros.
2605         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
2606         Replace all references to the 'partition' field of a basic
2607         block with new macros.
2608
2609         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
2610         * final.c (final_scan_insn): Don't handle it.
2611         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
2612         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
2613         * sched-rgn.c (sched_is_disabled_for_current_region_p):
2614         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
2615
2616 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2617
2618         * c-decl.c (c_init_decl_processing): Adjust
2619         build_common_tree_nodes call.
2620         * expmed.c (const_mult_add_overflow_p): Use
2621         build_distinct_type_copy.
2622         * stor-layout.c (early_type_list): Remove.
2623         (layout_type): Don't append to early_type_list.
2624         (initialize_sizetypes): Add signed_p argument.
2625         (set_sizetype): Overwrite the stub type nodes directly.
2626         * tree.c (copy_node_stat): Clear a type's value cache here ...
2627         (build_distinct_type): ... not here.
2628         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
2629         * tree.h (initialize_sizetypes): Add signed_p argument.
2630         (build_common_tree_nodes): Likewise.
2631
2632         * objc/objc-act.c (get_static_reference): Use
2633         build_variant_type_copy.
2634         (get_protocol_reference): Likewise.
2635         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
2636
2637 2004-08-24  Richard Henderson  <rth@redhat.com>
2638             Andrew Pinski  <apinski@apple.com>
2639
2640         * gimplify.c (gimplify_array_ref_to_plus): Delete.
2641         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
2642         for ARRAY_REF.
2643
2644         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
2645         ARRAY_REF also to get to the STRING_CST.
2646
2647 2004-08-24  Paul Brook  <paul@codesourcery.com>
2648
2649         * config/arm/arm.c (arm_override_options): Update error message.
2650         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
2651         TARGET_HARD_FLOAT_ABI.
2652         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
2653         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
2654
2655 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2656
2657         PR target/17093
2658         * config/m32r.md (movsi_sda): Add SI mode specification to
2659         UNSPEC.
2660
2661 2004-08-24  Nick Clifton  <nickc@redhat.com>
2662
2663         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
2664         of seth_add3_operand.
2665
2666 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2667
2668         * Makefile.in (PROTO_OBJS): Add errors.o.
2669         * protoize.c (fancy_abort): Remove.
2670         * mips-tfile.c (fancy_abort): Add parameters.
2671
2672 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
2673
2674         * doc/trouble.texi (C++ misunderstandings): Fix example code.
2675
2676 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
2677
2678         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
2679         (host-default.o): Add dependency on HOOKS_H.
2680         * config/x-linux: Likewise.
2681         * config/x-solaris: Likewise.
2682         * config/i386/x-mingw32: Likewise.
2683         * config/rs6000/x-darwin: Likewise.
2684
2685 2004-08-23  James E Wilson  <wilson@specifixinc.com>
2686
2687         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
2688         DEF_REG_NOTE.
2689
2690 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
2691
2692         PR c/14492
2693         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
2694
2695 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
2696
2697         * cfg.c (check_bb_profile): Fix typos.
2698         * function.c (assign_parm_is_stack_parm): Likewise.
2699         * tree-nested.c: Likewise.
2700
2701 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
2702
2703         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
2704         Remove TYPECODE.
2705         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
2706
2707 2004-08-23  Eric Christopher  <echristo@redhat.com>
2708
2709         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
2710         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
2711         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
2712         * target.h: Ditto.
2713         * hooks.h: Include machmode.h.
2714         (hook_bool_mode_false): Declare.
2715         * hooks.c (hook_bool_mode_false): Define.
2716         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
2717         * stor-layout.c (layout_type): Ditto.
2718         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
2719         Define to target macro.
2720         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
2721         * config/arm/arm.c: Ditto. Use.
2722         * config/arm/arm.h: Ditto.
2723         * config/arm/arm-protos.h: Ditto.
2724         * config/i386/i386.c: Ditto.
2725         * config/i386/i386.h: Ditto.
2726         * config/rs6000/rs6000.c: Ditto.
2727         * config/rs6000/rs6000.h: Ditto.
2728         * config/sh/sh.c: Ditto.
2729         * config/sh/sh.h: Ditto.
2730         * config/sh/sh-protos.h: Ditto.
2731         * config/sh/sh.md: Use.
2732         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
2733         to TARGET_VECTOR_MODE_SUPPORTED_P.
2734
2735 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
2736
2737         * Makefile.in (BUILD_ERRORS): Set to build-errors.
2738         (errors.o): New target for host.
2739         (build-errors.o): New target for build.
2740         (genobjs): Replace errors.o with build-errors.
2741         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
2742         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
2743         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
2744         (fix-header.o): Add errors.h
2745         * collect2.c (fancy_abort): Add parameters.
2746         * collect2.h (fancy_abort): Don't declare.
2747         * errors.h (fancy_abort): Don't declare.
2748         * errors.c: Include either bconfig.h or config.h.
2749         (fancy_abort): Trim filename.
2750         * fix-header.c (v_fatal, fatal): Remove.
2751         (progname): Remove definition.
2752         (main): Set progname here.
2753         * gcc.c (fancy_abort): Add parameters.
2754         * gcc.h (fancy_abort): Remove declaration.
2755         * gcov.c (fancy_abort): Remove.
2756         * rtl.h (fancy_abort): Don't declare.
2757         (abort): Don't define.
2758         * tree.h (fancy_abort): Don't declare.
2759         (abort): Don't define.
2760         * system.h (fancy_abort): Declare.
2761         (abort): Define to fancy_abort.
2762         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
2763
2764         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
2765         (usize_type, ubitsizetype): Remove.
2766         * stor-layout.c (set_sizetype): Don't initialize usizetype,
2767         ubitsizetype.
2768         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
2769
2770         * tree.h (build_distinct_type_copy): New.
2771         (build_type_copy): ... here.  Rename to ...
2772         (build_variant_type_copy): ... here.
2773         * tree.c (build_qualified_type): Rename build_type_copy call.
2774         (build_distinct_type_copy): New, broken out of ...
2775         (build_type_copy): ... here.  Rename to ...
2776         (build_variant_type_copy): ... here.  Use
2777         build_distinct_type_copy.
2778         (build_common_tree_nodes_2): Rename build_type_copy call.
2779         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
2780         call.
2781         (handle_packed_attribute, handle_unused_attribute,
2782         handle_transparanet_union_attribute, handle_aligned_attribute,
2783         handle_deprecated_attribute): Likewise.
2784         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
2785         Likewise.
2786         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
2787         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
2788         build_distinct_type_copy.
2789
2790 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2791
2792         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
2793         attribute.
2794
2795 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2796
2797         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
2798         loads and stores.
2799         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
2800         formerly unnamed patterns.  Redefine using :P for the address.  Remove
2801         explicit length attributes.
2802
2803 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2804
2805         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
2806         New functions.
2807         (single_reachable_address): Use them.
2808         (schedule_sm): Add dump.
2809         (is_call_clobbered_ref): New function.
2810         (determine_lsm_reg): Check whether the reference is call clobbered.
2811         Only work for gimple_reg_type values.
2812
2813 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2814
2815         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
2816         $31 store insns.  Redefine using :GPR.
2817
2818 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2819
2820         * config/mips/mips.md (P): New mode macro.
2821         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
2822         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
2823         Add mode attributes.
2824
2825 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2826
2827         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
2828         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
2829         later constants to cover the gap.
2830         (load, store): New mode attributes.
2831         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
2832         Use new unspec constants.
2833
2834 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2835
2836         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
2837         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
2838         to use register_operand rather than uns_arith_operand as the predicate
2839         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
2840         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
2841         Redefine using :GPR.  Make same predicate change here.  Extend the
2842         commutativity of operands 1 and 2 from the SImode version to the
2843         DImode one.
2844         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
2845         but with no predicate changes.
2846         (*nor[sd]i3): Redefine using :GPR.
2847
2848 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2849
2850         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
2851         noreturn functions.
2852
2853 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2854
2855         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
2856         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
2857         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
2858         rather than "%z2" (with a fake const0_rtx for operand 2).
2859         (ffs[sd]i2): Redefine using :GPR.
2860         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
2861
2862 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2863
2864         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
2865
2866 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2867
2868         * config/mips/mips.md (any_extend): New code macro.
2869         (u, su): New code attributes.
2870         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
2871         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
2872         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
2873         (*{s,u}mul_acc_di): Redefine using any_extend.
2874         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
2875         to reflect real insn names.
2876         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
2877         with an any_extend template.
2878         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
2879         Add '*' to name.
2880
2881 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2882
2883         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
2884         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
2885         (mul[sd]i3_r4000): Redefine using :GPR.
2886         (mulsi3_mult3): Don't check TARGET_MAD separately.
2887         (muldi3_mult3): Moved after mulsi_mult3.
2888
2889 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2890
2891         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
2892         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
2893         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
2894         (TARGET_GAS, TARGET_MIPS_AS): Delete.
2895         (TARGET_GPWORD): Define to true for n32 on IRIX.
2896         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
2897         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
2898         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
2899         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
2900         (MDEBUG_ASM_SPEC): Delete, folding into...
2901         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
2902         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
2903         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
2904         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
2905         to define asm_abi_default_spec.
2906         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
2907         (TARGET_ASM_SELECT_SECTION): Delete.
2908         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
2909         for non-mips16 code, removing previous workaround for SGI assemblers.
2910         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
2911         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
2912         (override_options): Remove !TARGET_GAS and !have_named_sections code.
2913         (print_operand): Fold TARGET_GAS conditionals into asm strings.
2914         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
2915         ASM_STABS_OP and ASM_STABN_OP.
2916         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
2917         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
2918         (mips_output_function_prologue): Remove !TARGET_GAS code.
2919         (mips_select_rtx_section): Remove !have_named_sections code.
2920         (mips_select_section): Delete.
2921         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
2922         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
2923         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
2924         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
2925         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
2926         * config/mips/windiss.h (ASM_SPEC): Likewise.
2927
2928 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2929
2930         * read-rtl.c (map_value, mapping, macro_group): New structures.
2931         (BELLWETHER_CODE): New macro.
2932         (modes, codes, bellwether_codes): New variables.
2933         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
2934         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
2935         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
2936         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
2937         (add_map_value, initialize_macros): New functions.
2938         (def_hash, def_hash_eq_p): Generalize to anything that points to,
2939         or starts with, a char * field.
2940         (find_macro, read_mapping, check_code_macro): New functions.
2941         (read_rtx_1): New, split out from read_rtx.  Handle the new
2942         define_{mode,code}_{macro,attr} constructs.  Use find_macro
2943         to parse the name of a code or mode.  Use BELLWETHER_CODE to
2944         extract the format and to choose a suitable code for rtx_alloc.
2945         Modify recursive invocations to use read_rtx_1.
2946         (read_rtx): Call initialize_macros.  Apply code and mode macros
2947         to the rtx returned by read_rtx_1.  Cache everything after the
2948         first macro expansion for subsequent read_rtx calls.
2949         * doc/md.texi: Document new .md constructs.
2950         * config/mips/mips.md (GPR): New mode macro.
2951         (d, si8_di5): New mode attributes.
2952         (any_cond): New code macro.
2953         (add[sd]i3): Redefine using :GPR.
2954         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
2955         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
2956         previously unnamed MIPS16 patterns.
2957         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
2958         lines.  Don't match (plus (const_int 0) ...).
2959         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
2960         Use a define_split to generate the addition.
2961         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
2962         (subsi3_internal): Delete.
2963         (*subsi3_extended): Renamed from subsi3_internal_2.
2964         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
2965         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
2966         using an any_cond template.
2967
2968 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2969
2970         * read-rtl.c (read_rtx): Tidy use of format_ptr.
2971
2972 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2973
2974         * read-rtl.c (string_obstack): New file-scope variable.
2975         (read_string, read_quoted_string, read_braced_string)
2976         (read_escape): Remove obstack parameter and use string_obstack instead.
2977         (read_rtx): Remove function-local rtl_obstack and initialize
2978         string_obstack instead.  Update call to read_string.
2979
2980 2004-08-22  Andrew Pinski  <apinski@apple.com>
2981
2982         PR c/15262
2983         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
2984         expression is not constant.
2985         (c_finish_return): Do not go through INDIRECT_REF when looking
2986         for the inner expression of an ADDR_EXPR for warning about.
2987
2988 2004-08-22  Richard Henderson  <rth@redhat.com>
2989
2990         PR 17075
2991         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
2992         create new blocks and fall through.
2993         (expand_gimple_basic_block): Update to match.
2994
2995 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
2996
2997         * reload.c (find_reloads_address): Make return value tri-state.
2998         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
2999         (find_reloads): Assume that reloaded addresses match 'o' or
3000         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
3001         returned 1 (not -1).  Omit optional reloads for address operands
3002         only if find_reloads_address returned 1 (not -1).
3003
3004         * config/s390/s390.c (legitimize_reload_address): New function.
3005         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
3006         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
3007         legitimize_reload_address.
3008
3009 2004-08-22  Richard Hendersion  <rth@redhat.com>
3010
3011         * tree.h (SAVE_EXPR_RESOLVED_P): New.
3012         * gimplify.c (gimplify_save_expr): Use it.
3013         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
3014         on the temporary variable.
3015
3016 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
3017
3018         * fold-const.c (rtl_expr_nonnegative_p): Delete.
3019         * tree.h (rtl_expr_nonnegative_p): Remove.
3020
3021 2004-08-22  Steven Bosscher  <stevenb@suse.de>
3022
3023         * config/i386/ppro.md (ppro_complex_insn): Add missing check
3024         for cpu==pentiumpro.
3025
3026         * combine.c (struct reg_stat): Fix comment typo.
3027
3028 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3029
3030         * c-tree.h (c_sizeof_nowarn): Remove.
3031
3032 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
3033
3034         * c-decl.c (set_array_declarator_type): Rename to
3035         set_array_declarator_inner.
3036         (build_c_parm, build_attrs_declarator, build_function_declarator):
3037         New functions.
3038         (make_pointer_declarator): Call build_attrs_declarator.
3039         * c-tree.h (set_array_declarator_type): Rename to
3040         set_array_declarator_inner.
3041         (build_c_parm, build_attrs_declarator, build_function_declarator):
3042         New prototypes.
3043         * c-parse.in (after_type_declarator,
3044         parm_declarator_starttypename, parm_declarator_nostarttypename,
3045         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
3046         firstparm): Use these functions
3047
3048 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
3049
3050         * c-decl.c (build_array_declarator, set_array_declarator_type,
3051         start_decl, grokdeclarator, grokparms): Change boolean parameters
3052         to type bool.
3053         * c-tree.h (build_array_declarator, set_array_declarator_type,
3054         start_decl): Update prototypes.
3055         * c-decl.c, c-parse.in: All callers changed.
3056
3057 2004-08-21  Mike Stump  <mrs@apple.com>
3058
3059         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
3060         (darwin_fix_and_continue): Likewise.
3061         (darwin_fix_and_continue_switch): Likewise.
3062         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
3063         (darwin_fix_and_continue): Likewise.
3064         (darwin_fix_and_continue_switch): Likewise.
3065
3066 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
3067
3068         PR  c++/16030
3069         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
3070         Remove, merging into ...
3071         (gen_stdcall_or_fastcall_suffix): New function, returning tree
3072         rather than const char*, and accepting additional parameter.
3073         Don't add suffix to '*'-prefixed symbols or variadic functions.
3074         (i386_pe_encode_section_info): Adjust for call to new function.
3075         Call change_decl_assembler_name.
3076
3077 2004-08-20  Mike Stump  <mrs@apple.com>
3078
3079         * config/darwin.c (machopic_indirect_data_reference): Mark
3080         stubs as defined.
3081         * config/386/386.c (darwin_local_data_pic): Add.
3082         (legitimate_constant_p): Reorder so that PLUS handling runs
3083         before darwin_local_data_pic to match the ordering in
3084         legitimate_pic_address_disp_p and so that MINUS runs after
3085         darwin_local_data_pic as otherwise the darwin_local_data_pic
3086         logic can be skipped, which would be very bad.
3087         (legitimate_pic_address_disp_p): Move from from here to
3088         darwin_local_data_pic so it can be reused.
3089
3090 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
3091
3092         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
3093         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
3094         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
3095         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
3096         (RS6000_ABI_NAME): Define as "linux".
3097         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
3098         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
3099         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
3100         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
3101         * config/rs6000/rs6000.c (dot_symbols): New global var.
3102         (rs6000_output_function_entry): New function, modified for
3103         !DOT_SYMBOLS..
3104         (print_operand <case 'z'>): ..extracted from here.
3105         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
3106         (rs6000_output_function_epilogue): Likewise.
3107         (rs6000_elf_declare_function_name): Likewise.
3108         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
3109         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
3110         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
3111         * configure: Regenerate.
3112         * config.in: Regenerate.
3113
3114 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
3115
3116         * reload.c (find_reloads_address): Fix thinko in previous change.
3117
3118         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
3119         a CONST_INT.
3120
3121 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
3122
3123         PR rtl-optimization/17099
3124         * combine.c (force_to_mode): Check if inner_mask has any bits set
3125         outside of GET_MODE (x) instead of op_mode.
3126
3127 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
3128
3129         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
3130         fragment.
3131         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
3132         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
3133         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
3134         architecture.
3135         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
3136         configurations.
3137         * config/arm/t-symbian: New file.
3138
3139 2004-08-20  Andrew Pinski  <apinski@apple.com>
3140
3141         * regrename.c (kill_value_regno): ANSIfy.
3142
3143 2004-08-20  Dale Johannesen  <dalej@apple.com>
3144
3145         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
3146
3147 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
3148
3149         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
3150         (kill_value_regno): New function, derived from kill_value.
3151         (kill_value): Update.
3152         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
3153
3154 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
3155
3156         Fix PR tree-optimization/17111
3157         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
3158         of non-value_handles.
3159         (bitmap_set_contains): All constants are in every set.
3160
3161 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
3162
3163         * fold-const.c (round_up, round_down): Use build_int_cst.
3164         Optimize common case.
3165
3166 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
3167             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3168
3169         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
3170         one_only_data_section): Rename to som_readonly_data_section,
3171         som_one_only_readonly_data_section and som_one_only_data_section.
3172         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
3173         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
3174         conditional defines.
3175         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
3176         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
3177         string values.
3178         (pa_select_section): Use renamed section functions.
3179         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
3180         SOM_READONLY_DATA_SECTION_FUNCTION,
3181         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
3182         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
3183         Define here ...
3184         * config/pa/som.h: ... not here.
3185         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
3186         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
3187         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
3188         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
3189         (READONLY_DATA_SECTION): Use som_readonly_data_section.
3190
3191 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
3192
3193         * fold-const.c (int_const_binop): Don't generate non-overflowing
3194         size-types specially.
3195         (fold_convert_const): Likewise.
3196
3197         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
3198         clear cache on copied sizetype.
3199
3200 2004-08-20  Ben Elliston  <bje@au.ibm.com>
3201
3202         * configure.ac: Don't escape apostrophe in --enable-coverage help.
3203         * configure: Regenerate.
3204
3205 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
3206
3207         PR 5620
3208         * gcc.c (struct stat input_stat): Don't define if
3209         HOST_LACKS_INODE_NUMBERS
3210         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
3211         than stat to determine if temp file is same as input file.
3212         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
3213         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
3214
3215 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
3216
3217         * configure.ac (mips*-*-*): Print an error if not using GAS.
3218         * configure: Regenerated.
3219         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
3220         comments about buggy MIPSpro assemblers.
3221         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
3222         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
3223         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
3224         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
3225         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
3226         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
3227         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
3228         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
3229         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
3230         of more general IRIX 6 definitions.
3231         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
3232         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
3233         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
3234         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
3235         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
3236         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
3237         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
3238         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
3239         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
3240         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
3241         (LINK_SPEC): Move most of definition to iris.h.
3242         (SUBTARGET_LINK_SPEC): New macro.
3243         (IRIX_STARTFILE_SPEC): Fold into...
3244         (STARTFILE_SPEC): ...here.
3245         (IRIX_ENDFILE_SPEC): Fold into...
3246         (ENDFILE_SPEC): ...here.
3247         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
3248         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
3249         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
3250         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
3251         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
3252         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
3253         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
3254         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
3255         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
3256         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
3257         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
3258         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
3259         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
3260         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
3261         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
3262         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
3263         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
3264         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
3265         (TARGET_IRIX6): Define to 1.
3266         (DRIVER_SELF_SPECS): Define.
3267         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
3268         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
3269         (SUBTARGET_LINK_SPEC): New macro.
3270         (IRIX_STARTFILE_SPEC): Fold into...
3271         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
3272         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
3273         (LIB_SPEC, LIBGCC_SPEC): Use them.
3274         (LIB_SPEC): Remove !mabi=* case.
3275         (IRIX_ENDFILE_SPEC): Fold into...
3276         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
3277         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
3278         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
3279         (TARGET_IRIX6): New macro.
3280         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
3281         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
3282         (LABEL_AFTER_LOC): Delete.
3283         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
3284         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
3285         (mips_build_builtin_va_list): Check TARGET_IRIX6.
3286         (override_options): Remove TARGET_SGI_O32_AS-related code.
3287         (irix_output_external_libcall): Make static.
3288         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
3289         LABEL_AFTER_LOC.
3290         (mips_file_start): Tidy guard for ABI sections.  Remove use of
3291         ABICALLS_ASM_OP; use .abicalls instead.
3292         (mips_output_aligned_decl_common, mips_declare_object_name)
3293         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
3294         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
3295         .globl foo .text directives.
3296         (irix_asm_named_section_1, irix_asm_named_section)
3297         (irix_section_align_entry, irix_section_align_htab)
3298         (irix_orig_asm_out_file, irix_section_align_entry_eq)
3299         (irix_section_align_entry_hash, irix_asm_output_align)
3300         (irix_file_start, irix_section_align_1, copy_file_data)
3301         (irix_file_end, irix_section_type_flags): Delete.
3302         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
3303         Use standard section syntax.  Remove protective "jr $31".
3304         (__gcc_fini): Likewise .gcc_fini.
3305         * config/mips/irix-crtn.asm: Adjust sections accordingly.
3306         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
3307         iris5gas.h.
3308         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
3309         from t-irix-gld.
3310         (EXTRA_MULTILIB_PARTS): Define.
3311         * config/mips/t-iris6: Remove bogus comment.
3312         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
3313         * config/mips/iris5gas.h, config/mips/iris5gld.h,
3314         config/mips/iris6gas.h, config/mips/iris6gld.h,
3315         config/mips/t-iris5-as, config/mips/t-iris5-gas
3316         config/mips/t-irix-gld: Delete.
3317         * config/mips/iris.h: New file.
3318         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
3319
3320 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
3321
3322         * postreload.c (reload_cse_move2add): Allow any condjump, but check
3323         that the implicit set isn't clobbered in the jump insn.
3324
3325 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
3326
3327         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
3328         * optabs.c (init_optabs): Don't check it.
3329         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
3330         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
3331
3332 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3333
3334         * config/s390/s390.md (s390_warn_framesize_string)
3335         (s390_warn_dynamic_string, s390_stack_size_string)
3336         (s390_stack_guard_string): New global string variables.
3337         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
3338         (s390_stack_guard): New global variables.
3339         (override_options): Added checks for the new options.
3340         (s390_emit_prologue): Emit stack check and trap code and perform
3341         compile time stack size checking.
3342
3343         * config/s390/s390.h (TARGET_OPTIONS): Added new options
3344         "warn-framesize", "warn-dynamicstack", "stack-size" and
3345         "stack-guard".
3346
3347         * doc/invoke.texi: Added documentation for the new options.
3348
3349 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
3350
3351         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
3352         to eliminate warning.
3353         (linear_search_fdes): Declare p as unsigned.
3354         (binary_search_mixed_encoding_fdes): Likewise.
3355         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
3356         to eliminate warning.
3357         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
3358         type cast.
3359
3360 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
3361
3362         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
3363         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
3364         instead of one.  Check for strictly legitimate address.
3365         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
3366         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
3367
3368 2004-08-19  Eric Christopher  <echristo@redhat.com>
3369
3370         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
3371         * langhooks.h (unsave_expr_now): Ditto.
3372         * tree.h (unsave_expr_1): Remove prototype.
3373         (lhd_unsave_expr_now): Rename to unsave_expr_now.
3374         * tree-inline.c (unsave_expr_1): Move here
3375         from tree.c. Make static.
3376         (unsave_expr_now): Rename from lhd_unsave_expr_now.
3377         * tree-sra.c: Fix up for rename.
3378         * tree-ssa-copy.c: Ditto.
3379         * tree-eh.c: Ditto.
3380         * tree.c (unsave_expr_1): Move to tree-inline.c.
3381
3382 2004-08-19  Caroline Tice  <ctice@apple.com>
3383
3384         * config/i386/cygming.h (switch_to_section):  Fix typo (change
3385         in_unlikely_text_section to in_unlikely_executed_text).
3386
3387 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
3388
3389         * vec.h (VEC_lower_bound): New macro.
3390
3391 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
3392
3393         PR target/16446
3394         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
3395         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
3396         treat each ABI separately.  Deal with n32/n64 complex float arguments.
3397         (function_arg): Add associated complex handling here.
3398
3399 2004-08-19  Richard Henderson  <rth@redhat.com>
3400
3401         * config/arm/arm.c (arm_gen_load_multiple): Use
3402         adjust_automodify_address.  Take base memory and offset instead
3403         of unchanging/struct/scalar bits.
3404         (arm_gen_store_multiple): Likewise.
3405         (arm_gen_movmemqi): Use adjust_automodify_address.
3406         * config/arm/arm-protos.h: Update decls.
3407         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
3408         (store_multiple): Similarly.
3409
3410 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
3411
3412         * regclass.c (globalize_reg): Update call_really_used_regs.
3413
3414 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
3415
3416         * doc/invoke.texi (integer-share-limit): Document.
3417
3418         * tree.h (TYPE_CACHED_VALUES_P): New.
3419         (TYPE_CACHED_VALUES): New.
3420         (TYPE_ORIG_SIZE_TYPE): Adjust.
3421         * tree.def (INTEGER_CST): Update documentation.
3422         * tree.c: Inlcude params.h.
3423         (build_int_cst): Cache small values.
3424         (build_type_copy): Do not copy the value cache.
3425         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
3426         unneeded zeroing.
3427         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
3428         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
3429         cache.
3430         * fold-const.c (force_fit_type): Copy value when setting
3431         overflows.
3432         (int_const_binop): Likewise.
3433         * stor-layout.c: Include params.h
3434         (set_sizetype): Create values cache.
3435         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
3436         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
3437         * params.h (INTEGER_SHARE_LIMIT): New.
3438         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
3439
3440 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
3441
3442         * gimplify.c (gimplify_minimax_expr): Remove.
3443         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
3444
3445 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
3446
3447         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
3448         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
3449
3450 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
3451
3452         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
3453
3454 2004-08-18  Andrew Pinski  <apinski@apple.com>
3455
3456         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
3457
3458 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
3459
3460         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
3461         (__aeabi_ul2f): Likewise.
3462
3463 2004-08-18  Richard Henderson  <rth@redhat.com>
3464
3465         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
3466         move to rtl completely.
3467         (struct meminsnbuf, xtensa_emit_block_move): Remove.
3468         (xtensa_find_mode_for_size): Remove.
3469         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
3470         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
3471
3472 2004-08-18  Richard Henderson  <rth@redhat.com>
3473
3474         * config/mcore/mcore.c (mode_from_align): Remove DImode.
3475         (block_move_sequence): Rewrite to use adjust_address.
3476         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
3477         Return boolean indicating success/failure.
3478         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
3479         * config/mcore/mcore.md (movmemsi): Update to match.
3480
3481 2004-08-18  Mike Stump  <mrs@apple.com>
3482
3483         * doc/invoke.texi (-mfix-and-continue): Add support for
3484         fast turn around debugging.
3485         (-ffix-and-continue): Likewise.
3486         (-mindirect-data): Likewise.
3487         (-findirect-data): Likewise.
3488         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
3489         (indirect_data): Likewise.
3490         (machopic_data_defined_p): Likewise.
3491         (machopic_output_indirection): Likewise.
3492         (darwin_encode_section_info): Likewise.
3493         (darwin_fix_and_continue): Likewise.
3494         (darwin_fix_and_continue_switch): Likewise.
3495         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
3496         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
3497         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
3498         (SUBTARGET_OPTIONS): Likewise.
3499         (darwin_fix_and_continue): Likewise.
3500         (darwin_fix_and_continue_switch): Likewise.
3501         (TARGET_FIX_AND_CONTINUE): Likewise.
3502         * config/rs6000.c (rs6000_emit_prologue): Likewise.
3503
3504 2004-08-19  Steven Bosscher  <stevenb@suse.de>
3505
3506         * basic-block.h (struct edge_def): Remove crossing_edge.
3507         (EDGE_CROSSING): New define.
3508         (EDGE_ALL_FLAGS): Update.
3509         * bb-reorder.c (find_traces_1_round, better_edge_p,
3510         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
3511         find_jump_block, fix_crossing_conditional_branches,
3512         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
3513         Replace all occurences of crossing_edge with an edge flag check
3514         or set/reset.
3515         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3516         try_crossjump_bb): Likewise.
3517         * cfglayout.c (fixup_reorder_chain): Likewise.
3518         * cfgrtl.c (force_nonfallthru_and_redirect,
3519         commit_one_edge_insertion): Likewise.
3520
3521         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
3522         * tree-flow.h (compute_dominance_frontiers): Move prototype...
3523         * basic-block.h:  ...here.
3524         * tree-cfg.c (compute_dominance_frontiers_1,
3525         compute_dominance_frontiers): Move from here...
3526         * cfganal.c: ...to here.  Include timevar.h.
3527
3528 2004-08-18  James E Wilson  <wilson@specifixinc.com>
3529
3530         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
3531         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
3532
3533         * config/mips/mips.md (type): Add frdiv.
3534         (divsf3+1, divsf3+2): Change type to frdiv.
3535         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
3536         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
3537
3538         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
3539         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
3540         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
3541         * config/mips/5000.md (r5k_fdiv_single): Likewise.
3542         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
3543         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
3544         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
3545         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
3546         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
3547         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
3548         Likewise.
3549         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
3550
3551 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
3552
3553         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
3554         get regression tester working again.
3555
3556 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
3557
3558         * insn-notes.def, reg-notes.def: New files.
3559         * rtl.h: Use them to define enum insn_note and enum reg_note.
3560         * rtl.c: Use them to define note_insn_name and reg_note_name.
3561         * Makefile.in (RTL_BASE_H): Update.
3562
3563         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
3564         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
3565
3566 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
3567
3568         * arm.c (arm_size_rtx_costs): New function.
3569         (arm_override_options): Use it if optimizing for space.
3570
3571 2004-08-18  Richard Henderson  <rth@redhat.com>
3572
3573         * emit-rtl.c (gen_const_mem): New.
3574         * rtl.h (gen_const_mem): Declare.
3575         * expr.c (do_tablejump): Use it.
3576         * varasm.c (force_const_mem): Likewise.
3577         * config/darwin.c (machopic_indirect_data_reference): Likewise.
3578         (machopic_legitimize_pic_address): Likewise.
3579         * config/arm/arm.c (legitimize_pic_address): Likewise.
3580         * config/i386/i386.c (legitimize_pic_address): Likewise.
3581         (legitimize_tls_address): Likewise.
3582         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
3583         * config/ia64/ia64.md (load_fptr): Likewise.
3584         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
3585         * config/pa/pa.c (legitimize_pic_address): Likewise.
3586         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
3587         (rs6000_emit_move): Likewise.
3588         * config/s390/s390.c (legitimize_pic_address): Likewise.
3589         (legitimize_tls_address): Likewise.
3590         * config/s390/s390.md (casesi): Likewise.
3591         * config/sh/sh.c (sh_reorg): Likewise.
3592         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
3593         * config/v850/v850.md (casesi): Likewise.
3594
3595         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
3596         * config/sh/sh.c (prepare_move_operands): Remove incorrect
3597         use of MEM_READONLY_P.
3598
3599 2004-08-18  Steven Bosscher  <stevenb@suse.de>
3600
3601         * Makefile.in (OBJS-common): Add postreload-gcse.c.
3602         Add new postreload-gcse.o.
3603         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
3604         (lookup_as_function, insert, rehash_using_reg, use_related_value,
3605         equiv_constant): Use SAFE_HASH instead of safe_hash.
3606         (exp_equiv_p): Export.  Add for_gcse argument when comparing
3607         for GCSE.
3608         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
3609         find_comparison_args, fold_rtx, cse_insn): Update callers.
3610         (hash_rtx): New function derived from old canon_hash and bits
3611         from gcse.c hash_expr_1.
3612         (canon_hash_string): Rename to hash_rtx_string.
3613         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
3614         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
3615         (cselib_lookup): Update this caller.
3616         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
3617         Make static.
3618         (hash_expr): Call hash_rtx.
3619         (ldst_entry): Likewise.
3620         (expr_equiv_p): Call exp_equiv_p.
3621         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
3622         reg_used_on_edge, reg_set_between_after_reload_p,
3623         reg_used_between_after_reload_p, get_avail_load_store_reg,
3624         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
3625         get_bb_avail_insn, hash_scan_set_after_reload,
3626         compute_hash_table_after_reload,
3627         eliminate_partially_redundant_loads, gcse_after_reload,
3628         get_bb_avail_insn, gcse_after_reload_main): Remove.
3629         * postreload-gcse.c: New file, reincarnating most of the above.
3630         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
3631         (gcse_after_reload_main): Update prototype.
3632         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
3633         * passes.c (rest_of_handle_gcse2): Use it.
3634
3635 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
3636
3637         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
3638         (pass_loop_done): Likewise.
3639
3640 2004-08-18  Andrew Pinski  <apinski@apple.com>
3641
3642         * config/rs6000/darwin.md: Delete the altivec patterns which are
3643         handled differently now.
3644         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
3645         (macho_correct_pic_di): Likewise.
3646         (call_indirect_nonlocal_darwin64): Likewise.
3647         Delete the save world/saveFP/saveVec patterns.
3648
3649         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
3650         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
3651         * config/rs6000/rs6000.md: Include darwin.md.
3652         (builtin_setjmp_receiver): Add DImode case.
3653         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
3654         Darwin bits.
3655
3656 2004-08-18  Matt Austern  <austern@apple.com>
3657
3658         Dead code stripping
3659         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
3660         * darwin.c (darwin_file_end): Mark file as potentially strippable.
3661
3662 2004-08-18  Richard Henderson  <rth@redhat.com>
3663
3664         * alias.c (readonly_fields_p): Remove.
3665         (objects_must_conflict_p): Don't call it.
3666         * tree.h (readonly_fields_p): Remove.
3667         * langhooks.h (struct lang_hooks): Remove honor_readonly.
3668         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
3669
3670 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
3671
3672         * tree-dfa.c (add_referenced_var): Only global variables are
3673         call-clobbered.
3674         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
3675         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
3676         all pointers dereferenced if the statement dereferences them.
3677         (create_name_tags): Do not create memory tags for pointers
3678         that have PT_ANYTHING set.
3679         Also check if PT_VARS is not empty before creating a name tag.
3680         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
3681         variables that share the same alias set with a pointer that
3682         may point anywhere.
3683         (add_may_alias): Add FIXME comment to remove clobbering
3684         aliased variables and tags.
3685         (replace_may_alias): Likewise.
3686         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
3687         (merge_pointed_to_info): If the original variable has not
3688         points-to information, call set_pt_anything.
3689         (add_pointed_to_var): Do not prevent adding a pointed-to
3690         variable if the pointers is PT_ANYTHING.
3691         If the variable is a global, set PT_GLOBAL_MEM.
3692         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
3693         pointer type only come in PTR+OFFSET flavours.
3694         Always call merge_pointed_to_info on PHI arguments that are
3695         SSA_NAMEs.
3696         (get_nmt_for): Mark call-clobbered tags whose pointer points
3697         to global memory.
3698         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
3699         values.
3700         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
3701         FLAGS.
3702         (add_stmt_operand): Abort if the caller tried to add a killing
3703         definition for a memory tag.
3704         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
3705         unnecessary checks.
3706
3707 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
3708
3709         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
3710         from call_used_regs.  Update call_really_used_regs.
3711         (CALL_REALLY_USED_REGISTERS): Define.
3712         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
3713         Replace call_used_regs with call_really_used_regs.
3714         (calc_live_regs, sh_media_register_for_return): Likewise.
3715         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
3716         * sh.md (return_media): Likewise.
3717
3718 2004-08-18  Andrew Pinski  <apinski@apple.com>
3719
3720         * config/darwin.c (machopic_legitimize_pic_address): Only set
3721         MEM_READONLY_P in the non TARGET_TOC case.
3722
3723 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
3724
3725         * rtl.def (NIL): Delete.
3726         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
3727         Tighten the syntax a little.
3728
3729         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
3730         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
3731         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
3732         * config/i386/predicates.md, config/m32r/m32r.h
3733         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
3734         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
3735         * config/sparc/sparc.h, doc/tm.texi:
3736         Replace all occurrences of NIL with UNKNOWN.
3737
3738 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
3739
3740         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
3741         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
3742         sequence inline.  Move drop_through_label code into this
3743         block, being the only place it is used.  Adjust comments.
3744
3745 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
3746
3747         * config/rs6000/altivec.md: Add new patterns for calls to
3748         save_world/rest_world functions.
3749
3750         * config/rs6000/rs6000-protos.h: (save_world_operation,
3751         restore_world_operation) new declarations.
3752
3753         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
3754         field added.
3755         (rs6000_stack_info): Set world_save_p field.
3756         (save_world_operation): New function.
3757         (restore_world_operation): New function.
3758         (compute_save_world_info): New function.
3759         (rs6000_stack_info): Call compute_save_world_info.
3760         (rs6000_emit_prologue): Check for world_save_p and generate
3761         pattern to call save_world for saving all non-volatile and
3762         special registers.
3763         (rs6000_emit_epilogue): Check for world_save_p and generate
3764         pattern to call rest_world to restore saved registers.
3765
3766         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
3767         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
3768         (rs6000_reg_names): New entries added for save_world_operation and
3769         restore_world_operation.
3770
3771 2004-08-18  Caroline Tice  <ctice@apple.com>
3772
3773         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
3774         "-freorder-blocks-and-partition" to the flags used in second
3775         stage of profiledbootstrap.
3776         * bb-reorder.c (push_to_next_round_p): Add new variable,
3777         next_round_is_last; set and use variable to make sure, when
3778         partitioning, that the last trace construction round consists
3779         of all (and only) cold basic blocks.
3780         (rotate_loop): Don't copy blocks that end in a section
3781         crossing jump.
3782         (copy_bb): Correctly initialize "partition" of duplicated bb.
3783         (add_unlikely_executed_notes): Add a comment.
3784         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
3785         to make sure, if function contains hot blocks, that the
3786         successors of ENTRY_BLOCK_PTR are hot; also, only look for
3787         crossing edges if the architecture supports named sections.
3788         (mark_bb_for_unlikely_executed_section): Modify to always
3789         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
3790         the basic block note insn.
3791         (fix_crossing_unconditional_branches): Remove extra space.
3792         (fix_edges_for_rarely_executed_code): Modify to only do
3793         partitioning work if the architecture supports named sections.
3794         (reorder_basic_blocks): Modify to only add
3795         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
3796         supports named sections.
3797         * c-common.c (handle_section_attribute): Initialize new global
3798         variable, user_defined_section_attribute, to true if user has
3799         specified one.
3800         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
3801         forward edges that cross section boundaries.
3802         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
3803         partitioning information if the architecture supports named
3804         sections.
3805         * cfgrtl.c (target.h): Add statement to include this.
3806         (rtl_split_block): Make sure newly created bb gets correct
3807         partition.
3808         (try_redirect_by_replacing_jump): Make sure redirection isn't
3809         attempting to cross section boundaries.
3810         (force_nonfallthru_and_redirect): Only do partition fix up if
3811         architecture supports named sections.
3812         (rtl_split_edge): Make sure newly created bb ends up in
3813         correct partition.
3814         (commit_one_edge_insertion): Remove code that incorrectly
3815         updated basic block partition; Make sure partition fix up only
3816         happens if architecture supports named sections and it's not
3817         already done.
3818         (rtl_verify_flow_info_1): Fix if-condition on test/error
3819         condition that fallthru edges are not allowed to cross section
3820         boundaries.
3821         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
3822         * final.c (final_scan_insn): Remove redundant test from if-statement;
3823         change calls to text_section into calls to function_section; add code
3824         to only to partitioning fix up if architecture supports named
3825         sections.
3826         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
3827         partition.
3828         (if_convert): Add targetm.have_named_sections to test.
3829         * output.h (unlikely_section_label): Extern declaration for new global
3830         variable.
3831         (unlikely_text_section_name): Likewise.
3832         * opts.c (decode_options): If both partitioning and DWARF debugging
3833         are turned on, issue a warning that this doesn't work, and change
3834         partitiong to basic block reordering (without hot/cold partitions).
3835         * passes.c (rest_of_handle_final): Re-set new global variable,
3836         user_defined_section_attribute, to false.
3837         (rest_of_compilation): Change options for calling partitioning
3838         function: Don't call if the user defined the section attribute, and
3839         don't call if DECL_ONE_ONLY is true for the current function.
3840         * predict.c (choose_function_section): Return immediately if we
3841         are doing hot/cold partitioning (i.e. let the basic block partitioning
3842         determine where the function belongs).
3843         * reg-stack.c (emit_swap_insn): Add condition to step over
3844         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
3845         * toplev.c (user_defined_section_attribute): New global variable.
3846         * toplev.h (user_defined_section_attribute): Extern declaration
3847         for new global variable.
3848         * varasm.c (unlikely_section_label): New global variable.
3849         (unlikely_text_section_name): New global variable.
3850         (unlikely_text_section): Add code to initialize
3851         unlikely_text_section_name if necessary; modify to use
3852         unlikely_text_section_name and unlikely_section_label; also to use
3853         named_section properly.
3854         (in_unlikely_text_section):  Modify to work correctly with
3855         named_section and to use unlikely_text_section_name.
3856         (named_section):  Add code to work properly with cold section.
3857         (function_section): Clean up if-statement.
3858         * config/darwin.c (darwin_asm_named_section): Return to original
3859         code, removing use of SECTION_FORMAT_STRING.
3860         * config/arm/pe.h (switch_to_section):  Add case for
3861         in_unlikely_executed_text to switch statement.
3862         * config/i386/cygming.h (switch_to_section): Likewise.
3863         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
3864         (SECTION_FORMAT_STRING): Likewise.
3865         * config/mcore/mcore.h (switch_to_section): Likewise.
3866         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
3867         (SECTION_FORMAT_STRING): Remove.
3868
3869 2004-08-18  Roger Sayle  <roger@eyesopen.com>
3870
3871         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
3872         -ffixed-reg safe, by preserving the meanings of zero and one.
3873         (CALL_USED_REGISTERS): Likewise.
3874         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
3875
3876 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3877
3878         * config/sh/sh.c (split_branches): Check the result of
3879         next_active_insn.
3880         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
3881         Call rtl_register_cfg_hooks.
3882
3883 2004-08-18  Richard Henderson  <rth@redhat.com>
3884
3885         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
3886         * alias.c (true_dependence): Update to match new semantics.
3887         (canon_true_dependence, write_dependence_p): Likewise.
3888         (anti_dependence, output_dependence): Update write_dependence_p args.
3889         (unchanging_anti_dependence): Remove.
3890         * calls.c (purge_mem_unchanging_flag): Remove.
3891         (fixup_tail_calls): Don't call it.
3892         (expand_call): Don't add unchanging memory to function usage.
3893         * expr.c (emit_block_move_via_libcall): Likewise.
3894         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
3895         (get_subtarget): Don't use RTX_UNCHANGING_P.
3896         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
3897         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
3898         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
3899         * cse.c (insert): Don't use RTX_UNCHANGING_P.
3900         (cse_insn, canon_hash): Use MEM_READONLY_P.
3901         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
3902         instead of RTX_UNCHANGING_P.
3903         * explow.c (maybe_set_unchanging): Remove.
3904         * expr.h (maybe_set_unchanging): Remove.
3905         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
3906         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
3907         (assign_parm_setup_reg, expand_function_start): Likewise.
3908         * integrate.c (copy_rtx_and_substitute): Likewise.
3909         * ra-rewrite.c (emit_colors): Likewise.
3910         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
3911         (fixup_match_1): Likewise.
3912         * reload1.c (reload, alter_reg): Likewise.
3913         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
3914         not RTX_UNCHANGING_P.
3915         (equiv_init_varies_p): Likewise.
3916         * loop-invariant.c (check_maybe_invariant): Likewise.
3917         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
3918         * loop.c (note_addr_stored): Likewise.
3919         (prescan_loop): Likewise. Don't check function usage for clobbered
3920         unchanging memory.
3921         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
3922         not RTX_UNCHANGING_P.