OSDN Git Service

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