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