1 2004-09-07 Frank Ch. Eigler <fche@redhat.com>
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
7 (mf_varname_tree, mf_file_function_line_tree): Add some support
8 for column numbers if compiled with USE_MAPPED_LOCATION.
10 2004-09-07 Ziemowit Laski <zlaski@apple.com>
12 * c-decl.c (groktypename_in_parm_context): Remove function.
13 * c-tree.h (groktypename_in_parm_context): Remove prototype.
15 2004-09-07 Ziemowit Laski <zlaski@apple.com>
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
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
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().
59 2004-09-08 Alan Modra <amodra@bigpond.net.au>
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.
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.
93 2004-09-07 Jan Hubicka <jh@suse.cz>
95 * cse.c (fold_rtx): Avoid building of
96 (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
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.
103 2004-09-07 David Daney <ddaney@avtrex.com>
105 * config.gcc: Added support for --with-divide=[breaks|traps] for
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.
118 2004-09-07 Caroline Tice <ctice@apple.com>
120 * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
121 EDGE_CROSSING, to flags test case.
123 2004-09-07 Jan Hubicka <jh@suse.cz>
125 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
128 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
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
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.
186 2004-09-07 Jan Hubicka <jh@suse.cz>
188 * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
190 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
192 * builtins.c (fold_builtin_strchr): Use build_int_cst, not
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.
204 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
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.
239 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
241 * configure.ac (enable-checking): Add release option. Reorganize
243 * configure: Rebuilt.
244 * doc/install.texi (enable-checking): Amend documentation.
246 2004-09-06 H.J. Lu <hongjiu.lu@intel.com>
249 * Makefile.in (specs.ready): Depend on cc1$(exeext).
251 2004-09-06 James E Wilson <wilson@specifixinc.com>
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.
257 * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
259 2004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
267 2004-09-06 Jan Hubicka <jh@suse.cz>
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.
277 2004-09-06 Zack Weinberg <zack@codesourcery.com>
279 * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
280 unnecessary commands.
282 2004-09-06 Mohan Embar <gnustuff@thisiscool.com>
284 * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
285 (bitmap.o): Likewise.
287 2004-09-06 Paolo Bonzini <bonzini@gnu.org>
289 Unify the management of RTL and tree-level dump files.
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
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.
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.
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.
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):
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
370 * tree-pass.h (dump_file_name): New.
371 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
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
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
388 2004-09-05 Kazu Hirata <kazu@cs.umass.edu>
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.
399 2004-09-05 Kazu Hirata <kazu@cs.umass.edu>
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.
411 2004-09-05 Diego Novillo <dnovillo@redhat.com>
413 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
414 vectorizer is enabled.
416 2004-09-05 Andreas Jaeger <aj@suse.de>
418 * tree-if-conv.c: Spell check comments and clean up whitespace.
420 2004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
434 * gimplify.c (struct gimplify_ctx): Add into_ssa field.
435 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
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
449 * tree-pass.h (pass_iv_optimize): Declare.
450 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
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
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.
471 2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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
477 (check_function_sentinel, handle_sentinel_attribute): Likewise.
478 * doc/extend.texi: Update accordingly.
480 2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
482 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
484 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
486 * c-common.c (handle_sentinel_attribute, check_function_sentinel):
488 (c_common_attribute_table): Add `sentinel' attribute.
489 (check_function_arguments): Handle `sentinel' attribute.
490 * doc/extend.texi: Document `sentinel' attribute.
492 2004-09-04 H.J. Lu <hongjiu.lu@intel.com>
494 * configure: Regenerated.
496 2004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
498 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
500 * tree.c (save_expr): No longer TREE_READONLY.
502 2004-09-04 Jan Hubicka <jh@suse.cz>
504 * passes.c (rest_of_clean_state): Fix merge conflict made during
507 2004-09-04 Jan Hubicka <jh@suse.cz>
509 * passes.c (rest_of_clean_state): Decompose the instruction stream.
511 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
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.
532 2004-09-04 Jan Hubicka <jh@suse.cz>
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
540 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
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.
551 2004-09-04 Uros Bizjak <uros@kss-loka.si>
553 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
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
560 * optabs.c (init_optabs): Initialize rint_optab.
561 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
563 (btrunc_optab): Rename macro from trunc_optab.
564 (rint_optab): Define corresponding macro.
566 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
567 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
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.
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.
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.
611 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
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
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.
624 2004-09-03 Devang Patel <dpatel@apple.com>
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
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.
642 2004-09-03 H.J. Lu <hongjiu.lu@intel.com>
645 Makefile.in (LIB2ADDEHSTATIC): New.
646 (LIB2ADDEHSHARED): 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*.
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.
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.
671 * config/ia64/t-glibc (LIB2ADDEH): Updated.
672 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
674 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
676 * unwind-dw2-fde-glibc.c: Likewise.
677 * unwind-dw2.c: Likewise.
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.
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.
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.
694 * gcc.c (init_spec): Add -lunwind to -lgcc_s if
695 USE_LIBUNWIND_EXCEPTIONS is defined.
697 * mklibgcc.in: Support libunwind.
699 2004-09-03 H.J. Lu <hongjiu.lu@intel.com>
701 * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
704 2004-09-03 Richard Henderson <rth@redhat.com>
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.
722 2004-09-04 Jan Hubicka <jh@suse.cz>
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.
730 2004-09-03 James E Wilson <wilson@specifixinc.com>
732 * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
735 2004-09-03 Eric Botcazou <ebotcazou@libertysurf.fr>
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'
743 * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
745 (output_sibcall): Likewise.
747 2004-09-03 Jan Hubicka <jh@suse.cz>
749 * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
750 * tree-ssanames (init_ssanames): Likewise.
752 2004-09-03 Ziemowit Laski <zlaski@apple.com>
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.
769 2004-09-03 James E Wilson <wilson@specifixinc.com>
771 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
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
781 (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
783 2004-09-03 Daniel Jacobowitz <dan@debian.org>
785 * reload.c (find_reloads): Swap operand_loc pointers for
786 find_dummy_reload if we have swapped two operands.
788 2004-09-03 Hans-Peter Nilsson <hp@axis.com>
790 * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
791 to get the tablejump-insn before the jump-table label.
793 2004-09-03 Ziemowit Laski <zlaski@apple.com>
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.
814 2004-09-03 Steve Ellcey <sje@cup.hp.com>
816 * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
818 (ia64_function_value): Ditto.
820 2004-09-03 Jan Beulich <jbeulich@novell.com>
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.
836 * doc/install.texi: Document NKS threading model.
838 2004-09-03 Jan Beulich <jbeulich@novell.com>
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.
859 2004-09-03 Devang Patel <dpatel@apple.com>
861 * dwarf2out.c (gen_field_die). Equate decl number to die.
863 2004-09-03 Vladimir Makarov <vmakarov@redhat.com>
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.
870 2004-09-03 Andreas Schwab <schwab@suse.de>
872 * config/m68k/m68k.c (output_andsi3): Use -1 instead of
873 (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
876 2004-09-02 Jan Beulich <jbeulich@novell.com>
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.
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.
889 2004-09-02 Roman Zippel <zippel@linux-m68k.org>
891 * combine.c (try_combine): Delay modifying of insns which cannot
894 2004-09-02 Daniel Berlin <dberlin@dberlin.org>
896 * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
898 * gcc/tree-ssa-loop.c: Ditto
899 * gcc/tree-ssa-loop-ivcanon.c: Ditto
900 * gcc/doc/invoke.texi: Ditto.
902 2004-09-02 Ziemowit Laski <zlaski@apple.com>
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.
909 2004-09-02 David Edelsohn <edelsohn@gnu.org>
911 * config/rs6000/rs6000.c (expand_block_move): Use SImode and
912 HImode with STRICT_ALIGNMENT.
914 2004-09-02 Mark Mitchell <mark@codesourcery.com>
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.
921 2004-09-02 Roman Zippel <zippel@linux-m68k.org>
923 * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
925 2004-09-02 Eric Christopher <echristo@redhat.com>
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.
941 2004-09-02 Ziemowit Laski <zlaski@apple.com>
943 * c-decl.c (store_parm_decls_newstyle): Make externally visible.
944 * c-tree.h (store_parm_decls_newstyle): New prototype.
946 2004-09-02 Geoffrey Keating <geoffk@apple.com>
948 * config/rs6000/rs6000.c (expand_block_clear): Use vector
949 instructions if available.
950 (expand_block_move): Likewise.
952 2004-09-03 Jan Hubicka <jh@suse.cz>
954 * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
956 2004-09-02 Mark Mitchell <mark@codesourcery.com>
958 * config/arm/symbian.h (LIB_SPEC): Define to empty.
959 * config/arm/t-symbian (SHLIB_LC): Likewise.
961 2004-09-02 Paul Brook <paul@codesourcery.com>
963 * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
965 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
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
981 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
983 * config/mips/mips.md (*lea_high64): Change split condition to
984 flow2_completed. Add a peephole2 to generate a more parallel version.
986 2004-09-02 Jan Hubicka <jh@suse.cz>
988 * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
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.
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.
1014 2004-09-02 James E Wilson <wilson@specifixinc.com>
1016 * common.opt (ftrapping-math): Default to on.
1018 2004-09-02 Richard Earnshaw <rearnsha@arm.com>
1020 * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
1022 2004-09-02 Denis Chertykov <denisc@overta.ru>
1025 * config/avr/avr.md ("movmemhi"): Substitute match_dup to
1027 (*movmemqi_insn): Likewise.
1028 (*movmemhi): Likewise.
1029 (clrmemhi): Likewise.
1030 (*clrmemqi): Likewise.
1031 (*clrmemhi): Likewise.
1033 2004-09-02 Paul Brook <paul@codesourcery.com>
1035 * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
1036 default_use_cxa_atexit=yes.
1038 2004-09-02 Alan Modra <amodra@bigpond.net.au>
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
1046 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
1048 * toplev.c (process_options): Fix typo.
1050 2004-09-01 Richard Henderson <rth@redhat.com>
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
1061 2004-09-01 Dan Nicolaescu <dann@ics.uci.edu>
1063 * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
1064 * ggc.h (ggc_alloc_rtx): Delete.
1066 2004-09-01 Roger Sayle <roger@eyesopen.com>
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".
1083 2004-09-01 David Edelsohn <edelsohn@gnu.org>
1085 * config/rs6000/power4.md: Increase store latency to 12.
1086 * config/rs6000/power5.md: Same.
1088 2004-09-01 James E Wilson <wilson@specifixinc.com>
1091 * config/avr/avr.c (avr_unique_section): Delete prototype and
1093 (TARGET_ASM_UNIQUE_SECTION): Delete.
1095 2004-09-01 Ziemowit Laski <zlaski@apple.com>
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.
1110 2002-09-01 Fariborz Jahanian <fjahanian@apple.com>
1112 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
1115 2004-09-01 Wu Yongwei <adah@sh163.net>
1116 Danny Smith <dannysmith@users.sourceforge.net>
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.
1133 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1135 * tree-tailcall.c (find_tail_calls): Also fail is statement has
1138 * tree-ssa.c (propagate_into_addr): Properly test for LHR.
1140 * doc/c-tree.texi: Document new operands for ARRAY_REF and
1143 2004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
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
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
1164 * value-prof.c: Include ggc.h.
1165 (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
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
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
1183 * doc/invoke.texi (-fspeculative-prefetching): Document.
1185 2004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1187 PR rtl-optimization/16408
1188 * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
1190 2004-09-01 Richard Henderson <rth@redhat.com>
1192 * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
1193 (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
1195 2004-09-01 Jakub Jelinek <jakub@redhat.com>
1197 * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
1199 2004-09-01 Mike Stump <mrs@apple.com>
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.
1209 2004-09-01 Jakub Jelinek <jakub@redhat.com>
1211 * Makefile.in (bb-reorder.o): Add several dependencies.
1213 2004-09-01 Jakub Jelinek <jakub@redhat.com>
1215 * fold-const.c (operand_equal_p): Require equal sign also for
1216 FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
1218 2004-09-01 Richard Earnshaw <rearnsha@arm.com>
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.
1224 2004-09-01 J"orn Rennecke <joern.rennecke@superh.com>
1225 Nick Clifton <nickc@redhat.com>
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.
1231 2004-09-01 Richard Earnshaw <rearnsha@arm.com>
1233 * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
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.
1243 2004-09-01 Richard Earnshaw <rearnsha@arm.com>
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.
1251 2004-09-01 Ziemowit Laski <zlaski@apple.com>
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.
1266 2004-08-31 Mark Mitchell <mark@codesourcery.com>
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.
1275 2004-08-31 Stan Shebs <shebs@apple.com>
1277 * toplev.c (process_options): Ensure debug_hooks is initialized.
1279 2004-08-31 Mark Mitchell <mark@codesourcery.com>
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.
1287 2004-08-31 Kaz Kojima <kkojima@gcc.gnu.org>
1289 * config/sh/sh.c (output_branch): Check the insn length possibly
1290 in the delayed slot.
1292 2004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1294 * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
1296 (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
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.
1309 2004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1310 Jeff Law <law@redhat.com>
1312 * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
1315 2004-08-31 Mark Mitchell <mark@codesourcery.com>
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
1324 (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
1325 * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
1328 2004-08-31 Denis Chertykov <denisc@overta.ru>
1331 * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
1332 frame pointer register only in Pmode while reload in progress.
1334 2004-08-31 Stephane Carrez <stcarrez@nerim.fr>
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.
1340 2004-08-31 Matt Austern <austern@apple.com>
1342 * config/darwin.c (darwin_make_decl_one_only): Allocate section
1343 names once per compilation, instead of once per symbol.
1345 2004-08-31 Paolo Bonzini <bonzini@gnu.org>
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.
1362 * fixinc/*: Removed.
1364 2004-08-31 Joseph S. Myers <jsm@polyomino.org.uk>
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.
1372 2004-08-31 Richard Sandiford <rsandifo@redhat.com>
1374 * read-rtl.c: Disable RTL checking.
1375 (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
1377 2004-08-31 Richard Sandiford <rsandifo@redhat.com>
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.
1384 2004-08-30 Mark Mitchell <mark@codesourcery.com>
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.
1391 2004-08-30 Andrew Pinski <apinski@apple.com>
1394 s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
1395 * ChangeLog: Fix previous ChangeLog entry.
1398 * config.host (use_long_long_for_widest_fast_int): New, default is
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
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.
1419 2004-08-30 Steven Bosscher <stevenb@suse.de>
1421 * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
1424 2004-08-30 Geoffrey Keating <geoffk@apple.com>
1430 * c-decl.c (grokdeclarator): Produce error for 'static' on local
1431 function declaration.
1433 2004-08-30 Richard Henderson <rth@redhat.com>
1435 * expr.c (array_ref_element_size): Force aligned_size back to
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
1442 2004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
1444 * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
1447 2004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
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
1453 (c_push_function_context, c_pop_function_context): Save and
1456 2004-08-30 Richard Henderson <rth@redhat.com>
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.
1464 2004-08-30 Richard Henderson <rth@redhat.com>
1466 * expr.c (expand_expr_addr_expr): New.
1467 (expand_expr_real_1) <case ADDR_EXPR>: Use it.
1469 2004-08-30 Richard Sandiford <rsandifo@redhat.com>
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
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.
1496 2004-08-30 Richard Henderson <rth@redhat.com>
1498 * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
1499 assuming an ADDR_EXPR is non-null.
1501 2004-08-30 Jason Merrill <jason@redhat.com>
1503 * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
1505 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
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.
1532 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
1534 * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
1535 * gcov.c (abort): Remove undef.
1537 * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
1538 (struct tree_binfo): Remove primary field.
1540 2004-08-30 Paolo Bonzini <bonzini@gnu.org>
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.
1555 2004-08-30 Paolo Bonzini <bonzini@gnu.org>
1557 * configure.ac: Do not run fixincludes after stage1 during
1559 * configure: Regenerate.
1561 2004-08-30 Richard Earnshaw <rearnsha@arm.com>
1563 * sched-deps.c (get_condition): Partially revert previous, by never
1564 trying to extract the condition from a condjump.
1566 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
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.
1572 2004-08-30 Richard Sandiford <rsandifo@redhat.com>
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.
1580 2004-08-30 Diego Novillo <dnovillo@redhat.com>
1582 * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
1583 in COMPONENT_REF nodes.
1585 2004-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
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.
1596 2004-08-30 Richard Earnshaw <rearnsha@arm.com>
1598 * sched-deps.c (get_condition): Fix breakage in previous patch.
1600 2004-08-30 Paul Brook <paul@codesourcery.com>
1602 * doc/install.texi: Fix broken mpfr link.
1604 2004-08-29 David O'Brien <obrien@FreeBSD.org>
1606 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
1607 other FreeBSD platforms.
1609 2004-08-29 Richard Earnshaw <rearnsha@arm.com>
1611 * arm.h (REVERSE_CONDITION): Define.
1612 (REVERSIBLE_CC_MODE): All comparisons are now reversible.
1614 2004-08-29 Richard Earnshaw <rearnsha@arm.com>
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.
1624 2004-08-29 Richard Earnshaw <rearnsha@arm.com>
1626 * sched-deps.c (get_condition): Rewrite using jump support functions.
1627 Use reversed_comparison_code.
1628 (conditions_mutex_p): Use reversed_comparison_code.
1630 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
1632 * config/mips/mips.c (override_options): Disable hot/cold partitioning
1635 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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
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.
1655 2004-08-29 Mark Mitchell <mark@codesourcery.com>
1657 PR rtl-optimization/16590
1658 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
1660 2004-08-29 Diego Novillo <dnovillo@redhat.com>
1662 * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
1663 * tree-ssa-propagate.c: Fix documentation.
1665 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
1667 * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
1668 (mov[sd]fcc): Likewise.
1670 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
1672 * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
1674 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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
1682 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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
1694 (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
1695 (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
1697 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
1699 * config/mips/mips.c (mips_init_builtins): Simplify. Only create
1700 V2SF_type_node if it will be needed.
1702 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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.
1717 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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.
1729 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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.
1737 2004-08-29 Chao-ying Fu <fu@mips.com>
1738 James E Wilson <wilson@specifixinc.com>
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
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
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.
1793 2004-08-29 Diego Novillo <dnovillo@redhat.com>
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
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.
1805 2004-08-28 Andrew Pinski <apinski@apple.com>
1807 * tree-ssa-loop.c: Remove extra include of basic-block.h.
1809 2004-08-28 Ziemowit Laski <zlaski@apple.com>
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.
1822 2004-08-28 Nathan Sidwell <nathan@codesourcery.com>
1824 * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR
1825 even when not checking.
1827 2004-08-27 Jason Merrill <jason@redhat.com>
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.
1850 2004-08-27 David Edelsohn <edelsohn@gnu.org>
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.
1857 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
1859 * stor-layout.c (sizetype_set): Remove.
1860 (set_sizetype): Don't test or set it.
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.
1871 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
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.
1880 2004-08-26 Richard Sandiford <rsandifo@redhat.com>
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.
1888 2004-08-26 Richard Henderson <rth@redhat.com>
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
1897 (primary): Use fold_offsetof, not build_offsetof.
1899 2004-08-26 Richard Henderson <rth@redhat.com>
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.
1909 2004-08-26 Richard Henderson <rth@redhat.com>
1911 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
1914 2004-08-26 Joseph S. Myers <jsm@polyomino.org.uk>
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
1923 (diagnose_mismatched_decls): Handle externs with initializers at
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
1933 2004-08-26 Ziemowit Laski <zlaski@apple.com>
1935 * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
1937 2004-08-26 Daniel Berlin <dberlin@dberlin.org>
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.
1944 2004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1946 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
1947 TFmode as additional register mode cloberred by call.
1949 2004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1951 * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
1952 parallel pattern for library call returning DImode in
1955 2004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1957 * config/rs6000/rs6000.c (function_arg): Generate parallel
1958 pattern for more split args.
1960 2004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1962 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
1963 either gen_movdi_di_update or gen_movdi_si_update depending on
1965 * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
1966 to generate two versions.
1968 2004-08-26 Daniel Berlin <dberlin@dberlin.org>
1970 * Makefile.in (lambda-code.o): New.
1971 (lambda-trans.o): Ditto.
1972 (TREE_DATA_REF_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
1985 2004-08-26 Daniel Berlin <dberlin@dberlin.org>
1986 Sebastian Pop <pop@cri.ensmp.fr>
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
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.
2009 2004-08-26 Bob Wilson <bob.wilson@acm.org>
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.
2015 2004-08026 Richard Earnshaw <rearnsha@arm.com>
2018 * toplev.c (crash_signal): If we crashed while emitting
2019 a user asm, then die more gracefully.
2021 2004-08-26 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2024 * config/m32r.c (gen_compare): Use reg_or_int16_operand when
2025 checking for a valid constant, regardless of sign.
2027 2004-08-25 Richard Henderson <rth@redhat.com>
2030 * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
2031 if the constant satisfies add_operand.
2033 2004-08-25 Richard Henderson <rth@redhat.com>
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.
2040 2004-08-25 Richard B. Kreckel <richard.kreckel@framatome-anp.com>
2043 * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
2045 2004-08-25 Richard Henderson <rth@redhat.com>
2047 * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
2048 (TARGET_CANNOT_FORCE_CONST_MEM): New.
2050 2004-08-25 Andrew MacLeod <amacleod@redhat.com>
2052 * doc/tree-ssa.texi: Document new operand iterator.
2054 2004-08-26 Alan Modra <amodra@bigpond.net.au>
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
2061 2005-08-28 Paul Brook <paul@codesourcery.com>
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.
2067 2004-08-25 Richard Henderson <rth@redhat.com>
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.
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.
2079 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
2080 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
2082 2004-08-25 Richard Henderson <rth@redhat.com>
2084 * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
2085 set REAL_MODE_FORMAT for TFmode.
2087 2004-08-25 Ziemowit Laski <zlaski@apple.com>
2089 * c-decl.c (grokparm): New function.
2090 * c-tree.h (grokparm): New prototype.
2092 2004-08-25 Andrew MacLeod <amacleod@redhat.com>
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
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
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
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.
2149 2004-08-25 Adam Nemet <anemet@lnxw.com>
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.
2157 2004-08-25 Ziemowit Laski <zlaski@apple.com>
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.
2162 2004-08-25 Paolo Carlini <pcarlini@suse.de>
2164 * doc/install.texi: Document that libstdc++-v3 requires
2167 2004-08-25 Caroline Tice <ctice@apple.com>
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
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.
2186 2004-08-25 Richard Sandiford <rsandifo@redhat.com>
2188 * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
2189 (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix.
2191 2004-08-25 Richard Sandiford <rsandifo@redhat.com>
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.
2206 2004-08-24 Geoffrey Keating <geoffk@apple.com>
2208 * gimplify.c (lookup_tmp_var): Separate temporaries when not
2211 2004-08-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
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.
2246 2004-08-25 Steven Bosscher <stevenb@suse.de>
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.
2257 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
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):
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):
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):
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):
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):
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):
2345 * config/xtensa/xtensa.c (xtensa_va_start,
2346 xtensa_gimplify_va_arg_expr): Likewise.
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.
2363 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
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
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.
2382 2004-08-25 Paolo Bonzini <bonzini@gnu.org>
2384 * doc/install.texi: Document that libcpp does not require
2385 Automake any longer. Document that Automake 1.9.1 should
2388 2004-08-25 Zack Weinberg <zack@codesourcery.com>
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.
2399 2004-08-25 Zack Weinberg <zack@codesourcery.com>
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.
2405 2004-08-25 Alan Modra <amodra@bigpond.net.au>
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
2414 2004-08-24 Richard Henderson <rth@redhat.com>
2417 * config/i386/i386.c (legitimate_constant_p): Rework to not accept
2418 random codes within CONST.
2420 2004-08-24 James E Wilson <wilson@specifixinc.com>
2422 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
2423 -freorder-blocks-and-partition.
2425 2004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
2432 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
2434 * config/mips/predicates.md (small_data_pattern): Match prefetches.
2436 2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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.
2443 2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
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):
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):
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.
2495 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
2506 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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
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.
2520 2004-08-24 Richard Earnshaw <rearnsha@arm.com>
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
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.
2549 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
2556 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
2558 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
2561 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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].
2567 (tablejump): Use expand_binop to calculate address. Adjust names
2568 of internal patterns.
2569 (tablejump[sd]i): Renamed from tablejump_internal[12].
2571 (tablejump_mips16[12]): Delete.
2573 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
2581 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
2583 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
2584 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
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.
2593 2004-08-24 Zack Weinberg <zack@codesourcery.com>
2595 * rtl.def: Reorganize, placing all codes used only in machine
2596 descriptions at the end.
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.
2607 2004-08-24 Zack Weinberg <zack@codesourcery.com>
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.
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.
2625 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
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.
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.
2646 2004-08-24 Richard Henderson <rth@redhat.com>
2647 Andrew Pinski <apinski@apple.com>
2649 * gimplify.c (gimplify_array_ref_to_plus): Delete.
2650 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
2653 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
2654 ARRAY_REF also to get to the STRING_CST.
2656 2004-08-24 Paul Brook <paul@codesourcery.com>
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.
2664 2004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2667 * config/m32r.md (movsi_sda): Add SI mode specification to
2670 2004-08-24 Nick Clifton <nickc@redhat.com>
2672 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
2673 of seth_add3_operand.
2675 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2677 * Makefile.in (PROTO_OBJS): Add errors.o.
2678 * protoize.c (fancy_abort): Remove.
2679 * mips-tfile.c (fancy_abort): Add parameters.
2681 2004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
2683 * doc/trouble.texi (C++ misunderstandings): Fix example code.
2685 2004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
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.
2694 2004-08-23 James E Wilson <wilson@specifixinc.com>
2696 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
2699 2004-08-23 Mark Mitchell <mark@codesourcery.com>
2702 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
2704 2004-08-23 Diego Novillo <dnovillo@redhat.com>
2706 * cfg.c (check_bb_profile): Fix typos.
2707 * function.c (assign_parm_is_stack_parm): Likewise.
2708 * tree-nested.c: Likewise.
2710 2004-08-23 Daniel Jacobowitz <dan@debian.org>
2712 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
2714 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
2716 2004-08-23 Eric Christopher <echristo@redhat.com>
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.
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.
2744 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
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
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,
2777 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
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
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):
2795 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
2796 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
2797 build_distinct_type_copy.
2799 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2801 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
2804 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2806 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
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.
2812 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2814 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
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.
2822 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2824 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
2825 $31 store insns. Redefine using :GPR.
2827 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2834 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2843 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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
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.
2857 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2859 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
2862 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2871 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2873 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
2875 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2890 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2898 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2937 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2977 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2979 * read-rtl.c (read_rtx): Tidy use of format_ptr.
2981 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2989 2004-08-22 Andrew Pinski <apinski@apple.com>
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.
2997 2004-08-22 Richard Henderson <rth@redhat.com>
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.
3004 2004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
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).
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.
3018 2004-08-22 Richard Hendersion <rth@redhat.com>
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.
3025 2004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
3027 * fold-const.c (rtl_expr_nonnegative_p): Delete.
3028 * tree.h (rtl_expr_nonnegative_p): Remove.
3030 2004-08-22 Steven Bosscher <stevenb@suse.de>
3032 * config/i386/ppro.md (ppro_complex_insn): Add missing check
3033 for cpu==pentiumpro.
3035 * combine.c (struct reg_stat): Fix comment typo.
3037 2004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
3039 * c-tree.h (c_sizeof_nowarn): Remove.
3041 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
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):
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):
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
3057 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
3059 * c-decl.c (build_array_declarator, set_array_declarator_type,
3060 start_decl, grokdeclarator, grokparms): Change boolean parameters
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.
3066 2004-08-21 Mike Stump <mrs@apple.com>
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.
3075 2004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
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.
3086 2004-08-20 Mike Stump <mrs@apple.com>
3088 * config/darwin.c (machopic_indirect_data_reference): Mark
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.
3099 2004-08-21 Alan Modra <amodra@bigpond.net.au>
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
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.
3123 2004-08-20 Mark Mitchell <mark@codesourcery.com>
3125 * reload.c (find_reloads_address): Fix thinko in previous change.
3127 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
3130 2004-08-20 Jakub Jelinek <jakub@redhat.com>
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.
3136 2004-08-20 Mark Mitchell <mark@codesourcery.com>
3138 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
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
3144 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
3146 * config/arm/t-symbian: New file.
3148 2004-08-20 Andrew Pinski <apinski@apple.com>
3150 * regrename.c (kill_value_regno): ANSIfy.
3152 2004-08-20 Dale Johannesen <dalej@apple.com>
3154 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
3156 2004-08-20 Daniel Jacobowitz <dan@debian.org>
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.
3163 2004-08-20 Daniel Berlin <dberlin@dberlin.org>
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.
3170 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
3172 * fold-const.c (round_up, round_down): Use build_int_cst.
3173 Optimize common case.
3175 2004-08-20 Zack Weinberg <zack@codesourcery.com>
3176 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
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):
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.
3200 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
3202 * fold-const.c (int_const_binop): Don't generate non-overflowing
3203 size-types specially.
3204 (fold_convert_const): Likewise.
3206 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
3207 clear cache on copied sizetype.
3209 2004-08-20 Ben Elliston <bje@au.ibm.com>
3211 * configure.ac: Don't escape apostrophe in --enable-coverage help.
3212 * configure: Regenerate.
3214 2004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
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
3224 2004-08-20 Richard Sandiford <rsandifo@redhat.com>
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
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
3317 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
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.
3329 2004-08-20 Richard Earnshaw <rearnsha@arm.com>
3331 * postreload.c (reload_cse_move2add): Allow any condjump, but check
3332 that the implicit set isn't clobbered in the jump insn.
3334 2004-08-19 Mark Mitchell <mark@codesourcery.com>
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.
3341 2004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
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.
3352 * config/s390/s390.h (TARGET_OPTIONS): Added new options
3353 "warn-framesize", "warn-dynamicstack", "stack-size" and
3356 * doc/invoke.texi: Added documentation for the new options.
3358 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
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
3369 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>