]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* c-common.c (lang_gimplify_stmt): Remove next_p argument.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
2363ef00 12004-06-15 Richard Henderson <rth@redhat.com>
2
3 * c-common.c (lang_gimplify_stmt): Remove next_p argument.
4 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
5 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
6 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
7 (finish_fname_decls, fname_decl): Use statement_lists.
8 (c_expand_expr_stmt): Don't set last_expr_type.
9 (c_type_hash): Fix indentation.
10 (c_safe_from_p): Don't follow TREE_CHAIN.
11 (c_tree_chain_matters_p): Remove.
12 * c-common.def (SCOPE_STMT): Remove.
13 (CLEANUP_STMT): Redefine to contain its own body.
14 * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
15 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
16 Add x_cur_stmt_list.
17 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
18 (cur_stmt_list): New.
19 (STATEMENT_LIST_STMT_EXPR): New.
20 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
21 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
22 (CLEANUP_BODY): New.
23 (CLEANUP_DECL): Move to operand 2.
24 (c_common_stmt_codes): Remove SCOPE_STMT.
25 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
26 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
27 (c_push_function_context, c_pop_function_context): Don't save it.
28 (finish_decl): Set TREE_USED on the decl for a cleanup.
29 Use push_cleanup.
30 (store_parm_decls): Use statement lists.
31 (finish_function): Remove compstmt rule workaround. Use statement
32 lists. Call finish_fname_decls after finalizing the body.
33 (c_begin_compound_stmt): Move to c-typeck.c.
34 * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
35 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
36 (c_genericize): Invoke them.
37 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
38 (c_build_bind_expr): Export.
39 (gimplify_block, gimplify_cleanup): Remove.
40 (gimplify_condition): Use gimplify_stmt.
41 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
42 (gimplify_if_stmt): Remove recursion hack.
43 (c_gimplify_expr): Remove STMT_EXPR handling.
44 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
45 (is_last_stmt_of_scope): Remove.
46 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
47 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
48 c_end_compound_stmt.
49 * c-objc-common.c (build_cdtor): Likewise.
50 * c-parse.in (primary): Use c_finish_stmt_expr.
51 (push_scope, pop_scope): Remove.
52 (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
53 (c99_block_end, compstmt): Use c_end_compound_stmt.
54 (c99_block_lineno_labeled_stmt): Likewise.
55 (compstmt_primary_start): Use c_begin_stmt_expr.
56 (simple_if, select_or_iter_stmt): Update calls to stmt builders.
57 (do_stmt_start): Fill in body directly.
58 (lineno_stmt): Avoid setting lineno on constants.
59 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
60 Remove SCOPE_STMT.
61 * c-semantics.c (begin_stmt_tree): Remove.
62 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
63 (add_stmt): Use statement lists.
64 (add_scope_stmt, finish_stmt_tree): Remove.
65 (push_cleanup): New.
66 * c-tree.h: Move some decls from c-common.h.
67 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
68 (do_case, c_finish_case): Likewise.
69 (c_finish_then): Take body for then as argument.
70 (c_finish_else): Similarly.
71 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
72 c_finish_for_stmt_incr, c_finish_for_stmt): New.
73 (c_begin_stmt_expr, c_finish_stmt_expr): New.
74 (c_begin_compound_stmt): Do scope management.
75 (c_end_compound_stmt): New.
76 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
77 * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
78 Look through exception handling constructs.
79 (gimplify_bind_expr): Accept temporary argument.
80 (gimplify_target_expr): Special case BIND_EXPR bodies.
81 (gimplify_expr): Handle fallback == fb_none like a statement.
82 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
83 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
84 * langhooks.h (tree_chain_matters_p): Remove.
85 * stub-objc.c (objc_clear_super_receiver): New.
86 * tree-gimple.h (voidify_wrapper_expr): Update decl.
87 (append_to_statement_list, append_to_statement_list_force): Move
88 to tree-iterator.h.
89 * tree-inline.c (expand_call_inline): Update call.
90 (clone_body): Use statement lists.
91 (walk_tree): Don't check tree_chain_matters_p.
92 (copy_tree_r): Likewise.
93 * tree-iterator.c (alloc_stmt_list): Clear lang bits.
94 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
95 * tree-iterator.h (append_to_statement_list,
96 append_to_statement_list_force): Moved from tree-gimple.h.
97 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
98 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
99 (objc_enter_block): Likewise.
100 (objc_exit_block): Use c_end_compound_stmt.
101 (objc_build_try_enter_fragment): Add #error and comment for
102 rewriting for OBJCPLUS.
103 (objc_build_extract_fragment, objc_build_try_epilogue,
104 objc_build_catch_stmt, objc_build_finally_prologue,
105 objc_build_finally_epilogue): Update for C statement builders.
106 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
107 Remove.
108
233c134a 1092004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
110
111 * df.c (df_reg_clobber_gen): Removed.
112 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
113 Make more effective for hard regs.
114 * ra-build.c (livethrough_conflicts_bb): Check contains_call.
115
3fe7c943 1162004-06-15 Alexandre Oliva <aoliva@redhat.com>
117
118 * c-pragma.h (c_lex_string_translate): Change type to int.
119 * c-parse.in: Change all assignments of c_lex_string_translate
120 to true and false to 1 and 0.
121 * c-lex.c (c_lex_string_translate): Likewise.
122 (lex_string): Convert string without translation in the -1
123 case.
124
1820c0c5 1252004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca>
126
127 * convert.h: Add include guards
128
889c15da 1292004-06-15 Daniel Berlin <dberlin@dberlin.org>
130
131 * tree-flow-inline.h: Document all functions.
132
28ca1bdf 1332004-06-15 Daniel Berlin <dberlin@dberlin.org>
134
135 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
136 * tree-dfa.c (create_stmt_ann): Ditto.
137 * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
138 * tree-inline.c (estimate_num_insns_1): Ditto.
139 * tree.c (tree_size): Ditto.
140 (make_node_stat): Ditto.
141 (tree_node_structure): Ditto.
142 (ephi_node_elt_check_failed): Remove.
143 (is_essa_node): Ditto.
144 * tree.def (EPHI_NODE): Ditto.
145 (EEXIT_NODE): Ditto.
146 (EUSE_NODE): Ditto.
147 (EKILL_NODE): Ditto.
148 * tree.h (EREF_NODE_CHECK): Remove.
149 (EPHI_NODE_ELT_CHECK): Ditto.
150 (struct tree_eref_common): Ditto.
151 (struct tree_euse_node): Ditto.
152 (struct ephi_arg_d): Ditto.
153 (struct tree_ephi_node): Ditto.
154 (ephi_node_elt_check_failed): Remove prototype.
155 (is_essa_node): Ditto.
156 (enum tree_node_structure_enum): Remove TS_E*_NODE.
157 (union tree_node): Remove E*_NODE uses.
158
8ad4c111 1592004-06-15 Jerry Quinn <jlquinn@optonline.net>
160
161 * alias.c (record_set, record_base_value, canon_rtx, get_addr,
162 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
163 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
164 Likewise.
165 * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
166 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
167 expand_builtin_strcmp, expand_builtin_strncmp,
168 expand_builtin_frame_address): Likewise.
169 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
170 insert_one_insn): Likewise.
171 * calls.c (prepare_call_address, precompute_register_parameters,
172 precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
173 * cfganal.c (flow_active_insn_p): Likewise.
174 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
175 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
176 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
177 make_extraction, recog_for_combine, gen_lowpart_for_combine,
178 simplify_comparison, record_dead_and_set_regs_1,
179 record_dead_and_set_regs, record_promoted_value,
180 check_promoted_subreg, get_last_value_validate, get_last_value,
181 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
182 unmentioned_reg_p_1): Likewise.
183 * conflict.c (mark_reg): Likewise.
184 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
185 mention_regs, insert_regs, lookup, lookup_for_remove, insert,
186 merge_equiv_classes, flush_hash_table, invalidate,
187 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
188 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
189 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
190 record_jump_cond, cse_insn, addr_affects_sp_p,
191 invalidate_from_clobbers, cse_process_notes, cse_around_loop,
192 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
193 cse_cc_succs, cse_condition_code_reg): Likewise.
194 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
195 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
196 cselib_record_set, cselib_record_sets): Likewise.
197 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
198 dbxout_block): Likewise.
199 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
200 * dojump.c (do_jump): Likewise.
201 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
202 is_based_loc, rtl_for_decl_location): Likewise.
203 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
204 set_decl_incoming_rtl, mark_user_reg): Likewise.
205 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
206 copy_to_suggested_reg, allocate_dynamic_stack_space,
207 probe_stack_range, hard_function_value): Likewise.
208 * expmed.c (store_bit_field, store_fixed_bit_field,
209 store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
210 extract_split_bit_field, expand_divmod, emit_store_flag_force):
211 Likewise.
212 * expr.c (convert_move, convert_modes,
213 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
214 use_group_regs, emit_move_insn, emit_move_insn_1,
215 compress_float_constant, push_block, emit_single_push_insn,
216 emit_push_insn, get_subtarget, expand_assignment, store_expr,
217 store_constructor, store_field, force_operand, safe_from_p,
218 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
219 Likewise.
220 * final.c (profile_function, final_scan_insn, alter_subreg,
221 get_mem_expr_from_op, output_asm_operand_names, output_operand,
222 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
223 * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
224 find_regno_partial, propagate_one_insn, init_propagate_block_info,
225 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
226 attempt_auto_inc, find_auto_inc, mark_used_regs,
227 count_or_remove_death_notes_bb): Likewise.
228 * function.c (find_temp_slot_from_address, update_temp_slot_address,
229 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
230 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
231 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
232 purge_single_hard_subreg_set, instantiate_decl,
233 instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
234 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
235 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
236 expand_function_start, diddle_return_value, clobber_return_register,
237 expand_function_end, keep_stack_depressed, handle_epilogue_set,
238 update_epilogue_consts): Likewise.
239 * genemit.c (gen_exp, gen_insn): Likewise.
240 * genrecog.c (make_insn_sequence): Likewise.
241 * global.c (global_conflicts, expand_preferences, mark_reg_store,
242 mark_reg_conflicts, set_preference, reg_becomes_live,
243 build_insn_chain, mark_reg_change): Likewise.
244 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
245 Likewise.
246 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
247 Likewise.
248 * integrate.c (copy_rtx_and_substitute, try_constants,
249 subst_constants, mark_stores, allocate_initial_values): Likewise.
250 * jump.c (reversed_comparison_code_parts, delete_prior_computation,
251 delete_computation, rtx_renumbered_equal_p, true_regnum,
252 reg_or_subregno): Likewise.
253 * lcm.c (reg_dies, reg_becomes_live): Likewise.
254 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
255 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
256 wipe_dead_reg, no_conflict_p): Likewise.
257 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
258 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
259 simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
260 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
261 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
262 find_single_use_in_loop, count_one_set, loop_bivs_init_find,
263 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
264 valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
265 loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
266 maybe_eliminate_biv_1, record_initial, update_reg_last_use,
267 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
268 try_swap_copy_prop): Likewise.
269 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
270 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
271 Likewise.
272 * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
273 reload_cse_simplify_operands, reload_combine,
274 reload_combine_note_store, reload_combine_note_use,
275 reload_cse_move2add, move2add_note_store): Likewise.
276 * print-rtl.c (print_rtx): Likewise.
277 * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
278 contains_pseudo, handle_asm_insn): Likewise.
279 * ra-debug.c (ra_print_rtx_object, dump_constraints,
280 dump_static_insn_cost): Likewise.
281 * ra-rewrite.c (slots_overlap_p, emit_colors,
282 remove_suspicious_death_notes): Likewise.
283 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
284 register_operand, scratch_operand, nonmemory_operand,
285 constrain_operands): Likewise.
286 * reg-stack (check_asm_stack_operands, remove_regno_note,
287 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
288 subst_asm_stack_regs): Likewise.
289 * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
290 record_address_regs, reg_scan_mark_refs): Likewise.
291 * regmove.c (discover_flags_reg, replacement_quality,
292 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
293 fixup_match_1): Likewise.
294 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
295 kill_set_value, copyprop_hardreg_forward_1): Likewise.
296 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
297 reload_inner_reg_of_subreg, can_reload_into, push_reload,
298 combine_reloads, find_dummy_reload, hard_reg_set_here_p,
299 operands_match_p, decompose, find_reloads, find_reloads_toplev,
300 find_reloads_address, subst_indexed_address, find_reloads_address_1,
301 find_reloads_subreg_address, find_replacement,
302 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
303 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
304 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
305 find_reg, delete_dead_insn, alter_reg, eliminate_regs,
306 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
307 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
308 emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
309 do_output_reload, emit_reload_insns, gen_reload,
310 delete_address_reloads_1, inc_for_reload): Likewise.
311 * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
312 update_reg_unused_notes, fill_slots_from_thread): Likewise.
313 * resource.c (update_live_status, mark_referenced_resources,
314 mark_set_resources, mark_target_live_regs): Likewise.
315 * rtlanal.c (nonzero_address_p, get_jump_table_offset,
316 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
317 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
318 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
319 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
320 parms_set, find_first_parameter_load, keep_with_call_p,
321 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
322 num_sign_bit_copies1): Likewise.
323 * rtlhooks.c (gen_lowpart_general): Likewise.
324 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
325 sched_analyze): Likewise.
326 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
327 Likewise.
328 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
329 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
330 simplify_binary_operation, simplify_const_relational_operation,
331 simplify_subreg): Likewise.
332 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
333 expand_end_stmt_expr, expand_return, expand_decl,
334 expand_anon_union_decl): Likewise.
335 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
336 find_splittable_regs, find_splittable_givs, find_common_reg_term,
337 loop_iterations): Likewise.
338 * var-tracking.c (variable_union, variable_part_different_p,
339 variable_different_p, count_uses, add_uses, add_stores,
340 compute_bb_dataflow, set_variable_part, delete_variable_part,
341 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
342 Likewise.
343 * varasm.c (assemble_variable): Likewise.
344
aad22f8b 3452004-06-15 Chris Demetriou <cgd@broadcom.com>
346
347 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
348 definition.
349 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
350 #undef and #if 0'd definition.
351
1e9a1a86 3522004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
353
354 * combine.c (distribute_notes): Comment typo fix.
355
83df06d0 3562004-06-15 Roger Sayle <roger@eyesopen.com>
357
358 * expmed.c (synth_mult): Mask bits of the multiplier to the
359 machine mode of the multiplication. Don't consider shifts
360 by more than (or equal to) the width of the operation's mode.
361
8be4b0ec 3622004-06-15 Paolo Bonzini <bonzini@gnu.org>
363
364 * doc/install.texi: Yet another update for autoconf
365 and automake versions.
366
d2010b04 3672004-06-15 Paolo Bonzini <bonzini@gnu.org>
368
369 * function.h (struct function): Remove cannot_inline field.
370 (current_function_cannot_inline): Remove.
371 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
372 Simplify conditionals to ignore warn_return_type.
373 * tree-optimize.c (tree_rest_of_compilation): Do not reset
374 DECL_DEFER_OUTPUT.
375 * objc/objc-act.c (build_module_descriptor, finish_method_def):
376 Do not set current_function_cannot_inline.
377
f3e1a727 3782004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
379
380 * cfglayout.c (fixup_reorder_chain): Handle case where the
381 destination of E_TAKEN is EXIT_BLOCK_PTR.
382
01e81601 3832004-06-15 Diego Novillo <dnovillo@redhat.com>
384
385 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
386
9b931277 3872004-06-15 Paolo Bonzini <bonzini@gnu.org>
388
389 * fold-const.c (operand_equal_p): Update comment.
390
6440ef45 3912004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
392
393 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
394 (INCOMING_RETURN_ADDR_RTX): Define.
395 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
396 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
397 __builtin_return_address(0).
398 (m32r_return_addr): Added for __builtin_return_address(0).
399 (m32r_reload_lr): Ditto.
400
a1460a40 401 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
402
5e0b798d 4032004-06-15 Paolo Bonzini <bonzini@gnu.org>
404
405 * doc/install.texi (Prerequisites): Update libbanshee,
406 fastjar, libcpp, libjava/libltdl entries to
407 automake 1.8.5.
408
13da126d 4092004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
410 Olivier Hainque <hainque@act-europe.fr>
411
412 * function.c (fixup_var_refs): Also adjust the start of sequence
413 after fixing up the insns.
414
f18faf8c 4152004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
416
417 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
418
31fed559 4192004-06-14 Benjamin Kosnik <bkoz@redhat.com>
420
421 * doc/install.texi (Prerequisites): Update libstdc++ entry to
422 automake 1.8.5.
423
8077aa79 4242004-06-14 Eric Christopher <echristo@redhat.com>
425
426 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
427 to -mtpf-trace (-mno-tpf-trace).
428 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
429 documentation.
430
7f712ecf 4312004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
432
433 * real.c: Fix bit count in head comment.
434
1ca50e58 4352004-06-14 Jeff Law <law@redhat.com>
436
437 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
438 PHIs where the destination or an argument is marked with
439 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
440
80f858b6 4412004-06-14 Jakub Jelinek <jakub@redhat.com>
442
443 PR middle-end/15945
444 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
445 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
446
4f5f8bf0 4472004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
448
449 * opts.sh (var_args): Fix regexp.
450
f84a6b47 4512004-06-14 Jakub Jelinek <jakub@redhat.com>
452
453 PR target/15178
454 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
455
ab569c0c 4562004-06-14 Paul Brook <paul@codesourcery.com>
457
458 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
459
2e9da478 4602004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
461
462 * Makefile.in (FLAGS_H): New.
463 (flags.h): Replace by FLAGS_H.
464 * c.opt: Document Var, VarExists, Init and Report attributes.
465 * common.opt: Fill the values of the attributes.
466 * diagnostic.c (flag_fatal_errors): Do not define.
467 * except.c (flag_non_call_exceptions): Do not define.
468 * flags.h: Include options.h. Remove declarations conflicting with
469 the automatically defined ones.
470 * opts.c: Remove automatically defined variables.
471 (handle_option): Perform default initialization.
472 (common_handle_option): Do not handle options covered by the
473 default initialization.
474 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
475 fields.
476 (CL_REPORT): New.
477 * opts.sh: Generate variable declarations, handle CL_REPORT.
478 * toplev.c: Remove automatically defined variables.
479 (f_options): Removed.
480 (print_switch_values): Use cl_options instead of f_options.
481 * toplev.h (version_flag): Declaration removed.
482
024f7ed1 4832004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
484
37411530 485 * config/sparc/sparc.h: Correct comment about availability of
486 little endian option.
487
024f7ed1 488 * config.gcc: Remove sparc64-*-aout*.
489 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
490 * config/sparc/sp64-aout.h: Remove.
491 * config/sparc/aout.h: Remove.
492
d93e0d9f 4932004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
494
495 * config/s390/s390.c: Include "tree-gimple.h".
496 (s390_gimplify_va_arg): New function.
497 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
498 (s390_va_arg): Remove.
499 * config/s390/s390-protos.h (s390_va_arg): Remove.
500 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
501
9bb8a4af 5022004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
503
504 * basic-block.h (could_fall_through): Declare.
505 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
506 Fail if the source already has a fallthrough edge to the exit
507 block pointer.
508 (could_fall_through): New function.
509 * cfgbuild.c (make_edges): Check if we already have a fallthrough
510 edge to the exit block pointer.
511 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
512 not called before reload has completed.
513 Handle special case of first block having a fall-through exit edge.
514 (cfg_layout_finalize): Don't call it before reload or if we have
515 rtl epilogues.
516 (fixup_reorder_chain): A fall through to the exit block does not
517 require the block to come last. Add sanity checks.
518 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
519 edges to the exit block.
520 * function.c (cfglayout.h): #include.
521 (thread_prologue_and_epilogue_insns): If we have neither return nor
522 epilogue, but a fall through to the exit block from mid-function,
523 force a non-fall-through exit.
524 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
525
8e69e3da 5262004-06-14 Alan Modra <amodra@bigpond.net.au>
527
528 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
529 for power5 and rs64a. Correct condition for default. Correct power3,
530 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
531
19595145 5322004-06-13 Steven Bosscher <stevenb@suse.de>
533
534 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
535 Revert previous change, don't use CALL_P.
536
df5d7812 5372004-06-13 Jason Merrill <jason@redhat.com>
538
539 * tree.h: Move std_gimplify_va_arg_expr protoype here.
540 * tree-gimple.h: From here.
541
b876c4f0 5422004-06-13 Daniel Berlin <dberlin@dberlin.org>
543
544 Fix PR tree-optimization/15979
545 Fix PR tree-optimization/15981
546 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
547 try to insert values undefined along some path.
548
edc0a75b 5492004-06-13 Daniel Berlin <dberlin@dberlin.org>
550
551 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
552 are available everywhere too.
553
419ec660 5542004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
555
556 * fold-const.c (fold_checksum_tree <case 't'>): Only
557 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
558 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
559 EXPR is an INTEGERAL_TYPE or a scalar float type.
560
a6774fc3 5612004-06-13 Diego Novillo <dnovillo@redhat.com>
562
563 * tree-sra.c (tree_sra): Update documentation.
564
3ed275a6 5652004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
566
567 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
568 function_types_compatible_p, type_lists_compatible_p): Remove
569 flags parameter.
570 * c-tree.h (comptypes): Likewise.
571 (COMPARE_STRICT): Remove.
572 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
573 callers changed.
574
14338e9a 5752004-06-13 Eric Christopher <echristo@redhat.com>
576
577 * c-decl.c (diagnose_mismatched_decls): Improve error message.
578 Remove unused code.
579 * c-typeck.c (comptypes): Add location in standard we're checking.
580
9c098241 5812004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
582
583 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
584 version 3.3.4.
585
e56afeb2 5862004-06-12 Roger Sayle <roger@eyesopen.com>
587
588 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
589 index by machine mode.
590 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
591 tables inside the loop over machine modes.
592 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
593 expand_divmod): Index shift*_cost by the appropriate machine mode.
594
de253666 5952004-06-12 Eric Christopher <echristo@redhat.com>
596
597 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
598 * config/s390/s390.md: Ditto.
599 * config/s390/s390.c: Ditto.
600 (s390_frame_info): Conditionalize frame and setup info on
601 TARGET_TPF_PROFILING.
602 (s390_arg_frame_offset): Ditto.
603
9bc9f15f 6042004-06-12 Roger Sayle <roger@eyesopen.com>
605
606 * fold-const.c (omit_two_operands): New function.
607 * tree.h (omit_two_operands): Prototype here.
608 * builtins.c (fold_builtin_unordered_cmp): New function to lower
609 C99 unordered comparison builtins to the appropriate tree nodes.
610 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
611 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
612 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
613 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
614 (simplify_builtin_memcmp, simplify_builtin_strncmp,
615 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
616 omit_two_operands function to build the required COMPOUND_EXPRs.
617
b9f02dbb 6182004-06-12 Steven Bosscher <stevenb@suse.de>,
619 Andreas Jaeger <aj@suse.de>
620
621 * gcse.c (record_set_info): Use predicates like REG_P.
622 (mems_conflict_for_gcse_p): Likewise.
623 (load_killed_in_block_p): Likewise.
624 (hash_expr_1): Likewise.
625 (insert_set_in_table): Likewise.
626 (gcse_constant_p): Likewise.
627 (hash_scan_set): Likewise.
628 (hash_scan_insn): Likewise.
629 (canon_list_insert): Likewise.
630 (record_last_mem_set_info): Likewise.
631 (record_last_set_info): Likewise.
632 (compute_hash_table_work): Likewise.
633 (mark_set): Likewise.
634 (mark_clobber): Likewise.
635 (mark_oprs_set): Likewise.
636 (compute_transp): Likewise.
637 (find_avail_set): Likewise.
638 (cprop_insn): Likewise.
639 (do_local_cprop): Likewise.
640 (cprop): Likewise.
641 (find_implicit_sets): Likewise.
642 (find_bypass_set): Likewise.
643 (bypass_conditional_jumps): Likewise.
644 (insert_insn_end_bb): Likewise.
645 (pre_insert_copy_insn): Likewise.
646 (compute_transpout): Likewise.
647 (next_ls_expr): Likewise.
648 (invalidate_any_buried_refs): Likewise.
649 (compute_ld_motion_mems): Likewise.
650 (reg_set_info): Likewise.
651 (reg_clear_last_set): Likewise.
652 (find_moveable_store): Likewise.
653 (compute_store_table): Likewise.
654 (find_loads): Likewise.
655 (store_killed_in_insn): Likewise.
656 (insert_insn_start_bb): Likewise.
657 (reg_set_between_after_reload_p): Likewise.
658 (reg_used_between_after_reload_p): Likewise.
659 (is_jump_table_basic_block): Likewise.
660 (gcse_after_reload): Likewise.
661 (hash_scan_set_after_reload): Likewise.
662 (compute_hash_table_after_reload): Likewise.
663
e75781d3 6642004-06-12 Steven Bosscher <stevenb@suse.de>
665
666 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
667 (INSN_P): Don't look at the rtx code class, just explicitly
668 check for one of the tree RTX_INSN codes.
669
15482a0d 6702004-06-11 Zack Weinberg <zack@codesourcery.com>
671
672 * c-typeck.c (default_function_array_conversion): Use
673 build_pointer_type not TYPE_POINTER_TO.
674
151899c5 6752004-06-11 Zack Weinberg <zack@codesourcery.com>
676
677 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
678 * configure, config.in: Regenerate.
679 * system.h: Unconditionally define bool as unsigned char,
680 BOOL_BITFIELD as unsigned int.
681 * domwalk.h: Use BOOL_BITFIELD.
682
83caac0d 6832004-06-12 Andreas Jaeger <aj@suse.de>
684
685 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
686 * libgcc-darwin.ver: Likewise.
687
9f00769c 6882004-06-12 Peter Jakubek <peter@laseranimation.com>
689
690 * reload.c (find_reloads): Force reload for pseudo registers on big
691 endian machines.
692
7cd909bf 6932004-06-11 Steven Bosscher <stevenb@suse.de>
694
695 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
696 Don't try to mark anything control dependent on the entry or
697 exit blocks.
698
6992004-06-11 Daniel Berlin <dberlin@dberlin.org>
83caac0d 700
7cd909bf 701 Fix Bug 15899
702 Fix Bug 15460
703 * tree.h (SSA_NAME_VALUE): New macro.
704 (struct tree_ssa_name): Add value_handle member.
705 * tree-ssa-pre.c: Replaced.
706 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
707 (struct cst_ann_d): New.
708 (struct expr_ann_d): New.
709 (union tree_ann_d): Add cst_ann, expr_ann.
710 * tree-dfa.c (create_cst_ann): New function.
711 (create_expr_ann): Ditto.
712 * tree-flow-inline.h (cst_ann): New function.
713 (expr_ann): Ditto.
714 (get_cst_ann): Ditto.
715 (get_expr_ann): Ditto..
716
ebd5cf7c 7172004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
718
6b27baea 719 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
720 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
721 _U_Qfcmp library function.
722 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
723 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
724
ebd5cf7c 725 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
726 unspec used for loading address from DLT.
727 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
728 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
729 Don't use short code sequence when loading the address of a nonlocal
730 label.
731 (nonlocal_goto): New expander.
732 (indirect_goto): New jump pattern for nonlocal gotos.
733 (short_jump): Remove extra whitespace.
734 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
735 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
736 pattern.
737
49931967 7382004-06-11 Roger Sayle <roger@eyesopen.com>
739
740 * expmed.c (synth_mult): Add an additional MODE argument for the
741 machine mode of the multiplication. Update recursive calls. Use
742 mode instead of word_mode for determining operation costs.
743 (choose_mult_variant): Update calls to synth_mult with "mode".
744
7d4e83b1 7452004-06-11 Richard Henderson <rth@redhat.com>
746
747 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
748 and makes_aliased_stores.
749
8872fb8d 7502004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
751
752 * doc/install.text (--enable-shared): Fix typo.
753
c7b3f103 7542004-06-11 Richard Henderson <rth@redhat.com>
755
756 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
757 argument. Use internal post for call to gimplify_expr. Tidy
758 rounded type size computation.
759 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
760 get_initialized_tmp_var.
761
fbf0976a 7622004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
763
c7b3f103 764 * doc/install.texi (--enable-shared): Update libobjc's shared library
765 status. Remove reference to libf2c.
fbf0976a 766
3864ad30 7672004-06-11 Jason Merrill <jason@redhat.com>
768
769 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
770 * config/i386/i386.c (ix86_va_arg): Remove.
771 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
772 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
773 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
774 * config/alpha/alpha.c (alpha_va_arg): Remove.
775 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
776 * config/sparc/sparc.c (sparc_va_arg): Remove.
777
778 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
779 assignment might throw.
780 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
781 expressions.
782
177ffb18 7832004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
784
0171a3f4 785 PR 15886:
177ffb18 786 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
787
29605454 7882004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
789
790 * doc/install.texi (Prerequisites): Update documentation of
791 required versions of autoconf and automake. Remove mention of
792 libf2c.
793
86747063 7942004-06-11 Jason Merrill <jason@redhat.com>
795
796 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
797 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
798
57e8d3cf 7992004-06-11 Jerry Quinn <jlquinn@optonline.net>
800
801 * typeclass.h: Add GPL plus exception license. Add include
802 guard.
803
d949e324 8042004-06-10 Jason Merrill <jason@redhat.com>
805
806 * gimplify.c (gimplify_modify_expr): Don't force a temporary
807 of an aggregate_value_p type.
808
bd1ec513 8092004-06-10 Jeff Law <law@redhat.com>
810
811 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
812 code when we are in gimple form.
813
c211d998 8142004-06-10 Diego Novillo <dnovillo@redhat.com>
815
816 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
817 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
818 (highest_ssa_version): Remove.
819 * tree-outof-ssa.c (new_temp_expr_table): Replace
820 highest_ssa_version with num_ssa_names.
821 (dump_replaceable_exprs): Likewise.
822 (rewrite_vars_out_of_ssa): Likewise.
823 * tree-ssa-ccp.c (initialize): Likewise
824 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
825 * tree-ssa-dce.c (tree_dce_init): Likewise.
826 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
827 * tree-ssa-live.c (create_ssa_var_map): Likewise.
828 (dump_var_map): Likewise.
829 * tree-ssa.c (verify_ssa): Likewise.
830 (kill_redundant_phi_nodes): Likewise.
831 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
832 * tree-ssanames.c: Include tree-flow.h
833 (ssa_names): New varray.
834 (init_ssa_names): Initialize ssa_names.
835 Reserve the first slot of the ssa_names table.
836 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
837 Assign version numbers using num_ssa_names.
838
a3823e47 8392004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
840
841 * doc/sourcebuild.texi (Front End): Add details of more
842 installation documentation required.
843
2cf24776 8442004-06-10 Brian Booth <bbooth@redhat.com>
845
846 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
847 of V_MAY_DEF and V_MUST_DEF.
848 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
849 num_vdefs to num_v_may_defs.
850 (compute_immediate_uses_for_stmt): Rename occurences of vdef
851 to v_may_def.
852 (redirect_immediate_uses): Ditto.
853 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
854 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
855 Also add code to sum up the number of v_must_defs.
856 (vdefs_disappeared_p): Replace with...
857 (v_may_defs_disappeared_p): This.
858 (v_must_defs_disappeared_p): New function.
859 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
860 Also add code to mark new variables found in V_MUST_DEFs for
861 renameing.
862 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
863 vdef_ops to v_may_def_ops.
864 (get_vdef_ops): Replace with...
865 (get_v_may_def_ops): This.
866 * tree-flow-inline.h (get_vdef_ops): Replace with...
867 (get_v_may_def_ops): This.
868 (get_v_must_def_ops): New function.
869 (get_vdef_result_ptr): Replace with...
870 (get_v_may_def_result_ptr): This.
871 (get_vdef_op_ptr): Ditto with...
872 (get_v_may_def_op_ptr); This.
873 (get_v_must_def_op_ptr): New function.
874 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
875 to v_may_def. Also add code to mark statements with
876 V_MUST_DEFs as definition sites.
83caac0d 877 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
2cf24776 878 add code to register new V_MUST_DEFs made by the statement.
879 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
83caac0d 880 (check_replaceable): Rename occurences of vdef to v_may_def. Also
2cf24776 881 add check for V_MUST_DEFs.
882 (find_replaceable_in_bb): Ditto.
883 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
884 to v_may_def. Also add code to dump V_MUST_DEFs.
885 * tree-sra.c (mark_all_vdefs): Replace with...
886 (mark_all_v_may_defs): This.
887 (mark_all_v_must_defs): New function.
888 (create_scalar_copies): Replace call to mark_all_vdefs with
889 calls to mark_all_v_may_defs and mark_all_v_must_defs.
83caac0d 890 (scalarize_structures): Rename occurences of vdef to v_may_def.
2cf24776 891 Also add a check for V_MUST_DEFs.
892 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
893 * tree-ssa-alias.c (global_var): Update comment.
894 (compute_may_aliases): Ditto.
895 (compute_points_to_and_addr_escape): Rename occurences of vdef
83caac0d 896 to v_may_def. Also add code to mark variables in V_MUST_DEF
2cf24776 897 operands as being written to.
898 (group_aliases): Update comment.
899 (maybe_create_global_var): Ditto.
900 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
901 Also add a check for V_MUST_DEFs on GIMPLE registers.
902 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
903 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
83caac0d 904 to v_may_def. Also add code to mark all V_MUST_DEF operands
2cf24776 905 VARYING.
906 (initialize): Ditto.
907 (set_rhs): Rename occurences of vdef to v_may_def. Also add
908 code to update SSA_NAMEs in V_MUST_DEFs.
909 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
910 to v_may_def.
83caac0d 911 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
2cf24776 912 occurences of vdef to v_may_def. Also add code to mark statements
913 with V_MUST_DEFs as necessary.
914 (propagate_necessity): Rename occurences of vdef to v_may_def.
83caac0d 915 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
2cf24776 916 occurences of vdef to v_may_def. Also add code to mark operands
917 in V_MUST_DEFs for renaming.
918 (eliminate_redundant_computations): Rename occurences of vdef
919 to v_may_def.
920 (record_equivalences_from_stmt): Rename occurences of vdef
921 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
922 (optimize_stmt): Remove unnesessary variable vdefs. Update
923 comment.
924 (register_definitions_for_stmt): Rename occurences of vdef
925 to v_may_def. Also add code to register definitions made with
926 V_MUST_DEFs.
927 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
928 (fix_stmt_v_may_defs): This.
929 (fix_phi_uses): Rename occurences of vdef to v_may_def.
930 (dse_optimize_stmt): Ditto.
931 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
932 to v_may_def. Also add code to mark V_MUST_DEF operands as being
933 used in virtual operators.
83caac0d 934 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
2cf24776 935 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
936 renaming.
83caac0d 937 * tree-ssa-operands.c (opf_kill_def): New flag for killing
2cf24776 938 definitions.
939 (build_vdefs): Renamed to...
940 (build_v_may_defs): This.
941 (build_v_must_defs): New variable.
942 (voperands_d): Add v_must_def_ops and replace vdef_ops with
943 v_may_def_ops.
944 (append_vdef): Replace with...
945 (append_v_may_def): This.
946 (append_v_must_def): New function.
947 (NUM_FREE): Increment for V_MUST_DEF
948 (optype_freelist): Increment its size for V_MUST_DEF
949 (allocate_vdef_optype): Replace with...
950 (allocate_v_may_def_optype): This.
951 (allocate_v_must_def_optype): New function.
952 (free_vdefs): Replace with...
953 (free_v_may_defs): This.
954 (free_v_must_defs): New function.
955 (remove_vdefs): Replace with...
956 (remove_v_may_defs): This.
957 (remove_v_must_defs): New function.
958 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
959 add code to initialize build_v_must_defs.
960 (finalize_ssa_vdefs): Replace with...
961 (finalize_ssa_v_may_defs): This.
962 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
963 (finalize_ssa_v_must_defs): New function.
964 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
965 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
966 (verify_start_operands): Rename occurences of vdef to v_may_def.
967 Also add check for build_v_must_defs.
968 (get_stmt_operands): Rename occurences of vdef to v_may_def.
969 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
970 killing definitions.
971 (get_expr_operands): Update comment and use opf_kill_def for
972 killing definitions.
973 (add_stmt_operand): Replace code that appends VDEFs with code
974 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
975 otherwise.
976 (add_call_clobber_ops): Update comments.
977 * tree-ssa-operands.h (vdef_optype_d): Replace with...
978 (v_may_def_optype_d): This.
979 (v_must_def_optype_d): New structure.
980 (VDEF_OPS): Replace with...
981 (V_MAY_DEF_OPS): This.
982 (STMT_VDEF_OPS): Same with...
983 (STMT_V_MAY_DEF_OPS): This.
984 (NUM_VDEFS): And...
985 (NUM_V_MAY_DEFS): This.
986 (VDEF_RESULT_PTR): As well as...
987 (V_MAY_DEF_RESULT_PTR): This.
988 (VDEF_RESULT): Same goes for...
989 (V_MAY_DEF_RESULT): This.
990 (VDEF_OP_PTR): And...
991 (V_MAY_DEF_OP_PTR): This.
992 (VDEF_OP): And...
993 (V_MAY_DEF_OP): This.
994 (V_MUST_DEF_OPS): New macro.
995 (STMT_V_MUST_DEF_OPS): Ditto.
996 (NUM_V_MUST_DEFS): Ditto.
997 (V_MUST_DEF_OP_PTR): Ditto.
998 (V_MUST_DEF_OP): Ditto.
999 (remove_vdefs): Replace signature with...
1000 (remove_v_may_defs): This.
1001 (remove_v_must_defs): New function signature.
1002 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1003 with calls to remove_v_may_defs and remove_v_must_defs.
1004 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1005 Also add code that marks left occurences of operands in V_MUST_DEFs.
83caac0d 1006 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
2cf24776 1007 to v_may_def. Also add check for V_MUST_DEFs.
1008 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1009
deeb83d6 10102004-06-10 Vladimir Makarov <vmakarov@redhat.com>
1011
1012 PR target/15653
1013 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1014 insn.
1015
b962deb3 10162004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1017
1018 PR web/15263
1019 * doc/install.texi: Remove superfluous linebreak.
1020
36d3581d 10212004-06-10 Roger Sayle <roger@eyesopen.com>
1022
1023 * builtins.c (expand_builtin): Fall back to library function call for
1024 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1025 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1026 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1027 IMAGPART_EXPR respectively.
1028
51dade95 10292004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
1030
1031 * sh.c (dump_table): New argument start. Changed caller.
1032 (fixup_mova): New function.
1033 (find_barrier): Use it.
1034 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
1035 If the label a mova refers to is above the mova itself, change
1036 the mova into a load.
1037 * sh.md (*casesi_worker): Rename to:
1038 (casesi_worker_1).
1039 (casesi_worker_2): New insn.
1040
e0eca1fa 10412004-06-10 Jason Merrill <jason@redhat.com>
1042
83caac0d 1043 * target.h (struct gcc_target): Change gimplify_va_arg_expr
e0eca1fa 1044 hook signature.
1045 * tree-gimple.h: Adjust.
1046 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1047 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1048 Use fold_convert.
1049 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1050 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1051 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
1052 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
1053 (gimplify_va_arg_expr): Return GS_ERROR in error case.
1054 Gimplify valist rather than calling stabilize_va_list.
1055
79f51373 10562004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1057
1058 * Makefile.in (df.o): Remove fibheap dependency.
1059 * df.h: Do not include sbitmap.h.
1060 (struct ref): New field "data".
1061 (DF_REF_DATA): New accessor macro.
1062 (struct df): Field "dom" removed.
1063 (df_analyze_subcfg): New function.
1064 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1065 (transfer_function): ... new type.
1066 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1067 (iterative_dataflow): ... new function.
1068 (enum set_representation, struct dataflow): New.
1069 * df.c: Do not include fibheap.h.
1070
1071 (df_reg_def_chain_clean, df_reg_use_chain_clean,
1072 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1073 prune_to_subcfg, df_bb_modify): New functions.
1074 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1075 df_refs_update, df_reg_table_realloc, df_ref_create,
1076 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1077 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1078 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
83caac0d 1079
79f51373 1080 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1081 (df_rd_transfer_function, df_ru_transfer_function,
1082 df_lr_transfer_function): Type of bitmaps changed to void *.
1083 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1084 (hybrid_search): ... new function.
1085 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1086 (iterative_dataflow): ... new function. Avoid use of fibheaps for
1087 a worklist. Do not process basic blocks unnecessarily.
1088
d1aade50 10892004-06-10 Roger Sayle <roger@eyesopen.com>
1090
1091 * fold-const.c (fold_abs_const): Make extern.
1092 * tree.h (fold_abs_const): Prototype here.
1093 * builtins.c (fold_builtin_fabs): New function to transform
1094 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1095 (fold_builtin_abs): New function to transform abs, labs, llabs
1096 and imaxabs builtins into ABS_EXPR tree nodes.
1097 (expand_builtin): Fall back to a function call for abs, labs,
1098 llabs and imaxabs builtins that survive constant folding.
1099 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1100 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1101
5b041af5 11022004-06-10 Jakub Jelinek <jakub@redhat.com>
1103
1104 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1105 leaf function without unwind info at RP 0.
1106
e256d445 11072004-06-10 Jakub Jelinek <jakub@redhat.com>
1108
1109 PR c++/14791
1110 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1111 (fileptr_type_node): Define.
1112 * tree.c (build_common_tree_nodes_2): Initialize
1113 fileptr_type_node to ptr_type_node.
1114 * c-common.c (c_common_nodes_and_builtins): For C++, make
1115 fileptr_type_node a distinct type copy.
1116 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1117 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1118 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1119 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1120 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1121 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1122 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1123 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1124 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1125 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1126 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1127 the above *FILEPTR* types instead of *PTR*.
1128
a74a6206 11292004-06-09 Daniel Berlin <dberlin@dberlin.org>
1130
83caac0d 1131 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
a74a6206 1132 match.
1133
c183306c 11342004-06-09 Roger Sayle <roger@eyesopen.com>
1135
1136 * fold-const.c (fold_not_const): New function.
1137 (fold) <ABS_EXPR>: Don't bother testing wins.
1138 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1139 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1140
8a0097e8 11412004-06-09 Richard Henderson <rth@redhat.com>
83caac0d 1142
e256d445 1143 PR middle-end/15228
1144 * function.c (assign_parms): Always set_mem_align with the computed
1145 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
8a0097e8 1146
6108f5dd 11472004-06-09 Richard Henderson <rth@redhat.com>
1148
1149 PR opt/15108
1150 * tree-tailcall.c (find_tail_calls): Don't check early for
1151 tail_recursion failure.
1152
786d45db 11532004-06-09 Diego Novillo <dnovillo@redhat.com>
1154
1155 Move SSA_NAME annotations into tree_ssa_name.
1156
1157 * tree-dfa.c (create_ssa_name_ann): Remove.
1158 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1159 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1160 (struct ssa_name_ann_d): Remove.
1161 (union tree_ann_d): Update.
1162 (ssa_name_ann_t): Remove.
1163 * tree-ssa-alias.c: (get_ptr_info): New local function.
1164 Replace references to ssa_name_ann_t with struct ptr_info_def.
1165 * tree-ssa-operands.c (get_expr_operands): Likewise.
1166 * tree.h (SSA_NAME_PTR_INFO): Define.
1167 (struct ptr_info_def): Declare.
1168 (struct tree_ssa_name): Add field 'ptr_info'.
1169
788f229c 11702004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
1171
7f26fdb5 1172 * config/i386/winnt.c (i386_pe_output_labelref): Correct
788f229c 1173 misplaced ')'.
1174
57204c4c 11752004-06-09 Steven Bosscher <stevenb@suse.de>
1176
1177 * config/i386/k6.md: Rewrite using the DFA model.
1178 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1179 cost of load-operation insns for the K6.
1180 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1181 (ia32_multipass_dfa_lookahead): Likewise.
1182
de8f9b94 11832004-06-09 Richard Henderson <rth@redhat.com>
1184
1185 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1186 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1187
1808d147 11882004-06-09 Richard Henderson <rth@redhat.com>
1189
1190 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1191
c39ed964 11922004-06-09 Geoffrey Keating <geoffk@apple.com>
1193
1194 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1195 (CPP_ID_DATA_H): New.
1196 (gtype-desc.o): Update dependencies.
1197 (GTFILES): Use CPP_ID_DATA_H.
1198
4a6a3ec7 11992004-06-09 Mark Mitchell <mark@codesourcery.com>
1200
1201 Revert:
1202 PR c++/15815
1203 2004-06-07 Mark Mitchell <mark@codesourcery.com>
1204 * doc/extend.texi: Deprecate #pragma interface and #pragma
1205 implementation.
1206
5b9dc694 12072004-06-09 David S. Miller <davem@nuts.davemloft.net>
1208
1209 * config/sparc/sparc.h (MOVE_RATIO): New definition.
1210
815540dd 12112004-06-09 Richard Henderson <rth@redhat.com>
1212
1213 * basic-block.h (struct edge_def): Add goto_locus.
1214 * tree-cfg.c (make_goto_expr_edges): Set it.
1215 (disband_implicit_edges): Use it.
1216 * tree-pretty-print.c (dump_implicit_edges): Print it.
1217
c69606c9 12182004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
1219
1220 * h8300.md (ldm_h8300s_4): Fix condition for expander.
1221
fcdd3ab3 12222004-06-08 Jason Merrill <jason@redhat.com>
1223
1224 Gimplify VA_ARG_EXPR into simpler forms.
1225 * target.h: Add gimplify_va_arg_expr hook.
1226 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1227 * fold-const.c (build_fold_addr_expr)
1228 (build_fold_addr_expr_with_type): Move from gimplify.c.
1229 * tree.h: Declare them.
1230 * gimplify.c (gimplify_and_add): New fn.
1231 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1232 (gimplify_array_ref_to_plus, gimplify_modify_expr)
1233 (gimplify_expr): Use build_fold_*.
1234 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1235 don't know how to gimplify it.
1236 * builtins.c (std_gimplify_va_arg_expr): New fn.
1237 (dummy_object): New static fn.
1238 (gimplify_va_arg_expr): New fn.
1239 (stabilize_va_list): Use build_fold_*.
1240 * tree-gimple.h: Declare new fns.
1241 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1242 (ix86_gimplify_va_arg): New fn.
f6bf08d6 1243 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
fcdd3ab3 1244 (ia64_gimplify_va_arg): New fn.
f6bf08d6 1245 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
fcdd3ab3 1246 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
fcdd3ab3 1247 * alias.c (get_varargs_alias_set): Just return 0 for now.
83caac0d 1248
fcdd3ab3 1249 * c-objc-common.c (c_tree_printer): Improve handling of %T.
1250
ccdd72c8 12512004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
1252
1253 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1254 of convert.
1255 * tree-inline.c (setup_one_parameter): Likewise.
1256 * tree-sra.c (csc_build_component_ref): Likewise.
1257 * tree-ssa-ccp.c (ccp_fold): Likewise.
1258 * tree-ssa-copy.c (cprop_operand): Likewise.
1259 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1260 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1261
865b3698 12622004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
1263
1264 PR rtl-optimization/15521:
1265 * sched-int.h (in_post_call_group_p): Change type to enum.
1266 * sched-deps.c (sched_analyze_insn):
1267 (sched_analyze): When in_post_call_group_p is post_call_initial,
1268 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1269 and also reset in_post_call_group_p to post_call.
1270 (sched_analyze): When the previous basic block ended in a CALL_INSN,
1271 initialize in_post_call_group_p as post_call_initial.
1272 (init_deps): initialize in_post_call_group_p to not_post_call.
83caac0d 1273
8ed81477 12742004-06-09 Arnaud Charlet <charlet@act-europe.fr>
1275
1276 PR ada/6637
1277 * doc/install.texi: List ada, libada as options to --enable-shared
1278
599a3eac 12792004-06-09 Paolo Bonzini <bonzini@gnu.org>
1280
1281 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1282 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1283 config.in entries.
1284 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1285 if hard links are not available.
1286 * configure: Regenerate.
1287 * config.in: Regenerate.
1288
0acc9e9d 12892004-06-08 Per Bothner <per@bothner.com>
1290
1291 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
1292
5babc3bf 12932004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1294
1295 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1296 Correct formatting.
1297
d92fb1c6 12982004-06-08 James E Wilson <wilson@specifixinc.com>
1299
1300 PR target/15790
1301 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1302
8d4b8f86 13032004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
1304
1305 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1306 POINTER_TYPE and INTEGER_TYPE.
1307
07cba988 13082004-06-08 Bernardo Innocenti <bernie@develer.com>
1309
1310 * modulo-sched.c: Compile only when INSN_SCHEDULING is
1311 defined.
1312
85882635 13132004-06-08 Jeff Law <law@redhat.com>
1314
57204c4c 1315 * doc/contrib.texi: Add entries for Stefan Olsson and
1316 Ola Ronnerup.
85882635 1317
2f8c3981 13182004-06-08 DJ Delorie <dj@redhat.com>
1319
1320 * toplev.c (floor_log2_wide): Replace loop with faster bit
1321 operations.
1322 (exact_log2_wide): Define in terms of the above.
1323 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1324 available.
1325
442ab835 13262004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
1327
1328 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1329 Make sure that we are in INDIRECT mode when getting the
1330 stub name.
1331
1549466f 13322004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
1333
1334 * h8300.md (extendqisi2_h8300): Add constraints.
1335 (ldm_h8300s_4_normal): Fix typo.
1336
6c6a0f2f 13372004-06-08 Richard Henderson <rth@redhat.com>
1338
57204c4c 1339 * gimple-low.c (struct lower_data): Replace the_return_label and
1340 one_return_stmt with return_statements.
1341 (lower_function_body): Process the entire list of return_statements.
83caac0d 1342 (lower_return_expr): Check source value before unifying return_exprs.
57204c4c 1343 * gimplify.c (gimplify_return_expr): Force the use of a temporary
1344 for !aggregate_value_p.
1345 * tree-gimple.c: Update RETURN_EXPR grammer.
6c6a0f2f 1346
b19b612c 13472004-06-08 Vladimir Makarov <vmakarov@redhat.com>
1348
1349 PR target/15598
1350 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1351
f7718f65 13522004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1353
1354 PR rtl-optimization/15717
1355 * config/i386/i386.c (legitimate_constant_p): Do not allow
1356 x - symbol_ref.
1357
0dc063f8 13582004-06-08 Alexandre Oliva <aoliva@redhat.com>
1359
1360 * gimplify.c (copy_if_shared_r): Revert:
1361 2004-05-21 Richard Henderson <rth@redhat.com>
1362 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1363
3415798f 13642004-06-07 Roger Sayle <roger@eyesopen.com>
1365
1366 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1367 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
1368 (init_expmed): Initialize these cost arrays as appropriate.
1369 (store_bit_field, extract_bit_field): Correct whitespace.
1370 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1371 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1372 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1373 word_mode or compute_mode as appropriate.
1374
0afbf153 13752004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
1376
1377 PR target/15783
1378 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1379 parameter. Enumerate the registers inside the PARALLEL.
1380 (function_arg): Adjust call to function_arg_union_value.
1381 (function_value): Likewise.
1382
1383 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1384
467214fd 13852004-06-07 Roger Sayle <roger@eyesopen.com>
1386
1387 * real.c (real_copysign): New function to implement libm's copysign.
1388 * real.h (real_copysign): Prototype here.
1389 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1390 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
1391 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1392 fold_builtin_isdigit): Add function prototypes.
1393 (fold_builtin_copysign): New function to fold copysign, copysignf
1394 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
1395 constant arguments at compile-time using real_copysign. Fold
1396 copysign(X,Y) as fabs(X) if Y is always non-negative.
1397 (fold_builtin_1): Correct minor whitespace/style issues. Call
1398 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1399
29f35f64 14002004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
1401
1402 * tree.c (iterative_hash_expr): Use real_hash.
1403
125a69b9 14042004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
1405
1406 PR c/14765
1407 * c-parse.in (compstmt_primary_start): Set last_expr_type to
1408 NULL_TREE.
1409
85e17605 14102004-06-07 Mark Mitchell <mark@codesourcery.com>
1411
1412 PR c++/15815
1413 * doc/extend.texi: Deprecate #pragma interface and #pragma
1414 implementation.
1415
dd89483e 14162004-06-07 Alexandre Oliva <aoliva@redhat.com>
1417
1418 PR middle-end/15666
1419 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1420 builtin decl as well.
1421
16cb78b3 14222004-06-07 Roger Sayle <roger@eyesopen.com>
1423
1424 PR c/14649
1425 * c-typeck.c (require_constant_value, require_constant_elements):
1426 Move declarations to the top of the file.
1427 (build_function_call): If we require a constant value, fold with
1428 fold_initializer. If the result is a constant, and the function
1429 wasn't called using __builtin_foo, issue a pedantic warning.
1430 (build_unary_op): If we require a constant value, fold tree with
1431 fold_initializer.
1432 (build_binary_op): Use require_constant_value to determine whether
1433 to call fold or fold_initializer.
1434
22e30d4e 14352004-06-07 Richard Henderson <rth@redhat.com>
1436
1437 * gimple-low.c (struct lower_data): Add the_return_label and
1438 one_return_stmt.
1439 (lower_function_body): Initialize and use them.
1440 (lower_return_expr): New.
1441 (lower_stmt): Call it.
1442 * gimplify.c (gimplify_return_expr): Force the argument to be either
1443 null or a result_decl.
1444 * tree-gimple.c: Update gimple grammer to match.
1445 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1446 coalescing of result_decls.
1447
a43cd257 14482004-06-07 Richard Henderson <rth@redhat.com>
1449
1450 PR rtl-opt/15193
1451 * expmed.c (extract_bit_field): Fix vector_extract return.
1452
1453 * config/i386/i386.md (negv4sf2): New pattern.
1454
3ad0e8cc 14552004-06-07 Mark Mitchell <mark@codesourcery.com>
1456
1457 PR c++/15337
0f1de9e0 1458 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
3ad0e8cc 1459 message.
1460
ddbf2dcc 14612004-06-06 Paolo Bonzini <bonzini@gnu.org>
1462
1463 * config.in: Regenerate.
1464
eb3b7946 14652004-06-06 Steven Bosscher <stevenb@suse.de>
1466
1467 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1468 SWITCH_LABELS are always sorted.
1469
d930bc7c 14702004-06-06 Steven Bosscher <stevenb@suse.de>
1471
1472 * hooks.c (hook_int_void_1): New generic hook.
1473 * hooks.h (hook_int_void_1): Add prototype.
1474 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1475 Define to hook_int_void_1.
1476 * config/c4x/c4x.md: Replace dummies for the old pipeline model
1477 with dummies for the new one.
1478
32d8eb78 14792004-06-06 Roger Sayle <roger@eyesopen.com>
1480
1481 * tree.h (lvalue_or_else): Delete function prototype.
1482 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
1483
d6cea54f 14842004-06-06 Stephane Carrez <stcarrez@nerim.fr>
1485
1486 PR target/14542
1487 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1488 a live change of a register after peephole replacement.
1489
1ea7fa60 14902004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
1491
1492 PR c/13519
1493 * c-typeck.c (composite_type, common_pointer_type): New functions.
1494 (common_type): Split parts into composite_type and
1495 common_pointer_type. Ensure that arithmetic operations return
1496 unqualified types without attributes. Don't make composite type
1497 of signed enum and compatible integer be unsigned.
1498 (build_conditional_expr, build_binary_op): Use
1499 common_pointer_type.
1500 * c-decl.c (merge_decls): Use composite_type.
1501 * c-tree.h (composite_type): Declare.
1502
e7917d1d 15032004-06-06 Stephane Carrez <stcarrez@nerim.fr>
1504
1505 PR target/14457
1506 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1507 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1508 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1509 (inhibit_libc): Must define.
1510 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1511 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1512 ("xorhi3"): Likewise.
1513
e5afa947 15142004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
1515
1516 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1517 always_inline pass.
1518
2039bedf 15192004-06-05 David S. Miller <davem@nuts.davemloft.net>
1520
1521 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1522 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1523
2fd48995 15242004-06-05 Bernardo Innocenti <bernie@develer.com>
1525
1526 * regclass.c (init_reg_sets): Check for missing registers in target
1527 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1528
3eb3f293 15292004-06-05 Zack Weinberg <zack@codesourcery.com>
1530
1531 * Makefile.in (MKDEPS_H): New shorthand.
1532 (c-opts.o): Update dependencies.
1533 * c-opts.c: Include mkdeps.h.
1534 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1535 not cpp_add_dependency_target.
1536
c76694be 15372004-06-05 Steven Bosscher <stevenb@suse.de>
1538
1539 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1540 * config/v850/v850.md: Convert to DFA scheduler description.
1541
0240a609 15422004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
a1306a9d 1543
1544 PR fortran/15478
1545 * doc/install.texi: Document GMP as prerequisite. Document
1546 --with-gmp and --with-gmp-dir configure options.
1547 * fortran/gfortran.texi: Remove section "Compiling and testing",
3eb3f293 1548 remove TOC reference to it.
a1306a9d 1549
79277589 15502004-06-05 Graham Stott <graham.stott@btinternet.com>
1551
1552 * combine.c(simplify_shift_const): Check shift amount is a
1553 CONST_INT.
1554
62b4d90e 15552004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
1556
79277589 1557 * toplev.c (init_asm_output): Add explicit 'b' to mode when
3eb3f293 1558 opening asm_out_file.
79277589 1559 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1560 reading asm_out_file. Replace fflush after reading asm_out_file
1561 with fseek.
1562 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
3eb3f293 1563 default and add to HOST_HOOKS_INITIALIZER.
79277589 1564 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1565 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
3eb3f293 1566 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
79277589 1567 to set mmi.offset padding.
1568 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1569 $(srcdir)/config/i386/winnt.c.
1570 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1571 (i[34567]86-*-uwin*): Likewise.
1572 *i[34567]86-*-interix3*): Likewise.
1573 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1574 * config/i386/host-mingw32.c: New file.
1575 * config/i386/x-mingw32: Add rule for host-mingw32.o.
1576 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1577 (extern_head): Likewise.
1578 (struct export_list) Likewise.
1579 (export_head): Likewise.
1580 (i386_pe_record_external_function): Use ggc_alloc.
1581 (i386_pe_record_exported_symbol): Likewise.
1582 Include "gt-winnt.h" at end.
1583 * doc/hostconfig.texi: Document
62b4d90e 1584 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1585
3cdc65fb 15862004-06-04 Bernardo Innocenti <bernie@develer.com>
1587
1588 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1589 Rename 68000 and 68k to m68k for consistency in comments. Remove
1590 trailing whitespace before EOLs and before TABs.
1591 (MAX_CODE_ALIGN): Remove unused macro.
1592 (CALL_USED_REGISTERS): Reformat and add comments.
1593
3e3f98b8 15942004-06-04 Frank Ch. Eigler <fche@redhat.com>
1595
1596 * gcc.c (MFLIB_SPEC): Remove library references, to require users
1597 to enumerate -lmudflap* and dependencies when linking.
1598
458e2bb2 15992004-06-04 Paolo Bonzini <bonzini@gnu.org>
1600
1601 PR target/15822
1602 * dojump.c (do_jump): Fix uninitialized variable tcode1.
1603
03031b7c 16042004-06-04 Jerry Quinn <jlquinn@optonline.net>
1605
1606 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1607 * genconditions.c (write_header): Back out removal of reload.h.
1608
6bad7ca7 16092004-06-04 Jan Hubicka <jh@suse.cz>
1610
1611 Re-apply hopefully fixed patch:
1612 * i386.md (UNSPECV_EH_RETURN): Kill.
1613 (eh_return): Use jump_insn.
1614 (eh_return_si, eh_return_di): Change pattern to jump instruction.
1615
53f8294f 16162004-06-04 Jeff Law <law@redhat.com>
1617
1618 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1619
bf6102ae 16202004-06-04 Steven Bosscher <stevenb@suse.de>
1621
1622 * except.c (for_each_eh_region): New function.
1623 * except.h (for_each_eh_region): Add a prototype for it.
1624 * tree-cfg.c (update_eh_labels): New function, callback for
1625 for_each_eh_region.
1626 (label_for_bb): Make global static, unfortunately.
1627 (cleanup_dead_labels): Also update label references for
1628 exception regions.
1629
9659da90 16302004-06-03 Chris Demetriou <cgd@broadcom.com>
1631
1632 * config/mips/mips.c (struct irix_section_align_entry): Fix
1633 GTY marker.
1634
9cca97f6 16352004-06-03 Geoffrey Keating <geoffk@apple.com>
1636
1637 * toplev.c (check_global_declarations): Don't ask for
1638 DECL_ASSEMBLER_NAME unless the function really is declared
1639 static and not defined.
1640
9bb1c6fd 16412004-06-03 Matt Austern <austern@apple.com>
1642
1643 PR c++/15428
1644 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1645 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1646 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1647 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
3eb3f293 1648 documentation to reflect the new macro name and to clarify its
9bb1c6fd 1649 meaning.
3eb3f293 1650
bf6102ae 16512004-06-03 Steven Bosscher <stevenb@suse.de>
11c50bf2 1652
1653 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1654
f9226418 16552004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
1656
1657 * config/darwin.c (machopic_indirect_data_reference): Copy
1658 the SYMBOL_REF_DECL from the original RTX for the new
1659 non-lazy pointer RTX.
1660
11c50bf2 16612004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
af225e7d 1662
1663 * tree.h: Remove include of version.h
1664 * c-cppbuiltin.c: Include version.h
1665 * diagnostic.c: Include version.h
1666 * dwarf2out.c: Include version.h
1667 * toplev.c: Include version.h
1668 * vmsdbgout.c: Include version.h
1669 * Makefile.in: Remove dependency on version.h from TREE_H, and
1670 add dependencies to required .o targets
1671
bcf3c70d 16722004-06-03 Jerry Quinn <jlquinn@optonline.net>
1673
1674 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1675 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1676 (TARGET_H): Add insn-modes.h.
1677 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1678 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1679 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1680 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1681 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1682 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1683 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1684 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1685 CFGLAYOUT_H.
1686 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1687 Replace ra.h with RA_H.
1688 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1689 insn-recog.o): Replace resource.h with RESOURCE_H.
1690 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1691 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
1692 with SCHED_INT_H.
1693 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1694 ra-rewrite.o): Replace df.h with DF_H.
1695 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1696 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1697 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1698 (insn-conditions.o): Remove unused reload.h.
1699 * cfglayout.h: Add include guard. Include basic-block.h.
1700 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
1701 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1702 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
1703 basic-block.h.
1704 * genconditions.c: Remove reload.h.
1705 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
1706 hard-reg-set.h, insn-modes.h.
1707 * resource.h: Add include guard. Include hard-reg-set.h.
1708 * sched-int.h: Add include guard. Include insn-attr.h,
1709 basic-block.h, rtl.h.
1710 * target.h: Add include guard. Include insn-modes.h.
1711 * tree-ssa-live.h: Include partition.h.
1712
01406fc0 17132004-06-03 Daniel Berlin <dberlin@dberlin.org>
1714 Kenneth Zadeck <zadeck@naturalbridge.com>
1715
1716 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1717 (add_var_to_ssa_edges_worklist): Add value argument.
1718 Update callers.
1719 Use new worklist.
1720 (process_ssa_edge_worklist): New function.
3eb3f293 1721 (tree_ssa_ccp): Move worklist processing core to
01406fc0 1722 process_ssa_edge_worklist, and just call that for the two worklists.
1723
17242004-06-03 Steven Bosscher <stevenb@suse.de>
fbac255a 1725
1726 * basic-block.c (tail_recursion_label_list): Don't declare.
1727 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
1728 accordingly.
1729 * cfgbuild.c (find_label_refs): Remove.
1730 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1731 * cfgcleanup.c (tail_recursion_label_p): Remove.
1732 (merge_blocks_move): Do not check for tail recursion.
1733 (try_optimize_cfg): Likewise.
1734 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1735 * cfgrtl.c (tail_recursion_label_list): Remove.
1736 * except.c (remove_unreachable_regions): Don't handle
1737 CALL_PLACEHOLDER insns.
1738 (convert_from_eh_region_ranges_1, can_throw_internal,
1739 can_throw_external): Likewise.
1740 * function.c (free_after_compilation): Don't clear
1741 x_tail_recursion_label.
1742 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1743 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1744 (reorder_blocks_1): Likewise.
1745 * function.h (struct function): Remove x_tail_recursion_label
1746 member. Don't define tail_recursion_label.
1747 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1748 * print-rtl.c (print_rtx): Likewise.
1749 * rtl.def (CALL_PLACEHOLDER): Remove.
1750 * rtl.h (sibcall_use_t): Remove enum.
1751 (optimize_sibling_and_tail_recursive_calls,
1752 replace_call_placeholder): Remove function prototypes.
1753 * stmt.c (tail_recursion_args): Remove.
1754 (optimize_tail_recursion): Remove.
1755 (expand_return): Don't check for possible tail recursion.
1756 * tree.h (optimize_tail_recursion): Remove prototype.
1757
3c47257f 17582004-06-02 Jan Hubicka <jh@suse.cz>
1759
1760 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
1761 return_stmt.
1762
8c6c48fc 17632004-06-02 Jason Merrill <jason@redhat.com>
1764
1765 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1766 Do include c-parse.in.
1767
a5d9b222 17682004-06-02 Eric Christopher <echristo@redhat.com>
1769
1770 * c-typeck.c (common_type): Don't lose type qualifiers
1771 when creating new variants.
1772
cb7c1603 17732004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
1774
1775 PR tree-optimization/14042
1776 PR tree-optimization/14729
1777 PR tree-optimization/14736
a66b1d06 1778 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1779 Check the type which the pointer points to
cb7c1603 1780 instead of the pointer types.
1781
43c77eaa 17822004-06-02 Kazu Hirata <kazu@cs.umass.edu>
1783
1784 PR tree-optimization/15738.
1785 * builtins.c (fold_builtin_strchr): Transform
1786 strrchr (s, '\0') to strchr (s, '\0').
1787
f7df294a 17882004-06-02 Steven Bosscher <stevenb@suse.de>
1789
1790 * i386.c (ix86_adjust_cost): Don't increase the cost for
1791 load+operation for PROCESSOR_PENTIUMPRO, it is already
1792 modelled in the DFA description
1793
4c74e6d9 17942004-06-01 Jerry Quinn <jlquinn@optonline.net>
1795
1796 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1797 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1798 (ALIAS_H, EMIT_RTL_H): New.
1799 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1800 (cfgcleanup.o): Add EMIT_RTL_H.
1801 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1802 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1803 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1804 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1805 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
1806 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1807 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1808 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1809 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1810 set_mem_size): Move to emit-rtl.h.
1811 * emit-rtl.h: New.
1812 * alias.h: New.
1813
8738a64a 18142004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
1815
1816 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1817 Call fixup_memory_subreg only if the MEM is equal to 'var'.
1818 Adjust recursive calls to self.
1819 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1820
43bf5d72 18212004-06-01 Richard Henderson <rth@redhat.com>
1822 Andrew Pinski <pinskia@physics.uc.edu>
1823
1824 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1825 (primary): Handle offsetof. Add error productions for faux functions.
1826 Move component_ref objc checking to build_component_ref.
1827 (reswords): Add offsetof.
1828 (rid_to_yy): Add offsetof.
1829 * c-tree.h (build_offsetof): Declare.
1830 * c-common.h (objc_is_public): Declare.
1831 * c-typeck.c (build_component_ref): Check objc_is_public.
1832 (build_offsetof): New.
1833 * stub-objc.c (objc_is_public): New.
1834 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1835 from is_public.
1836 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1837 * doc/extend.texi (Offsetof): Move from C++ section to C section
1838 and rewrite for __builtin_offsetof.
1839
5e0e9723 18402004-06-01 Peter Barada <peter@the-baradas.com>
f7df294a 1841 Peter Jakubek <peter@laseranimation.com>
5e0e9723 1842
1843 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
1844 a scratch to perform an add to memory.
1845
1b8e3153 18462004-06-01 Bernardo Innocenti <bernie@develer.com>
1847
1848 PR target/14018
1849 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1850 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1851 m68k_align_funcs): Remove.
1852 (override_options): Remove code to handle -malign-* options.
1853 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1854 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1855 (m68k_align_loops_string, m68k_align_jumps_string,
1856 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1857 m68k_align_funcs): Remove definitions.
1858
77b982e0 18592004-06-01 Paul Eggert <eggert@cs.ucla.edu>
1860
1861 PR target/15626
1862 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1863 by the Sun linker in conjunction with the Sun assembler.
1864 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1865
1b8e3153 18662004-06-01 Jeff Law <law@redhat.com>
7d1e918b 1867
f7df294a 1868 * stmt.c (expand_decl): Be more selective about calling
1869 mark_reg_pointer.
7d1e918b 1870
2bd21a29 18712004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
1872
83caac0d 1873 PR objc/7993
2bd21a29 1874 * objc-act.c (is_private): Do not emit the 'instance variable %s
1875 is declared private' error.
1876 (is_public): Emit the error after calling is_private.
1877 (lookup_objc_ivar): If the instance variable is private, return 0
1878 - the instance variable is invisible here.
1879
7a20f1a0 18802004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
1881
1882 * doc/invoke.texi (-static-libgcc): Explicitly mention
1883 non-GNU linkers.
1884
c6f905fc 18852004-06-01 Bernardo Innocenti <bernie@develer.com>
1886
1887 PR target/12968
1888 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1889
69f34ce2 18902004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
1891
1892 PR c/15749
1893 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1894 misuses of structures with flexible array members if
1895 in_system_header.
1896
f9417558 18972004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1898
1899 PR target/15693
1900 * config/sparc/sparc.c (compare_operand): New predicate.
1901 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1902 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
1903 operand is a ZERO_EXTRACT and the second operand is not zero,
1904 force the former to a register.
1905 (cmpdi expander): Likewise.
1906
8ca71ef2 19072004-05-31 Geoffrey Keating <geoffk@apple.com>
1908
1909 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1910 looks at.
1911 * alias.c (alias_invariant_size): Make alias_invariant_size
1912 static, fix GTY marker.
1913
de3b9a39 19142004-05-31 Kazu Hirata <kazu@cs.umass.edu>
1915
1916 PR tree-optimization/15743.
1917 * builtins.c (fold_builtin_1): Fold index() and rindex().
1918
7cc00cbd 19192004-05-31 Roger Sayle <roger@eyesopen.com>
1920
1921 PR middle-end/15069
1922 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1923 into "X < 0" (where C is the signbit) if X's type is a full mode.
1924
29d2bfe5 19252004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1926
1927 * pa.md: Disable the peephole2 patterns that generate indexed
1928 floating-point stores when indexing is disabled.
1929
f97c44fd 19302004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
1931
1932 * c-pretty-print.c (pp_c_left_bracket): Make a function.
1933 (pp_c_right_bracket): Likewise.
1934 (pp_c_star): Likewise.
1935 (pp_c_ampersand): Define.
1936 * c-pretty-print.h (pp_c_left_bracket): Declare.
1937 (pp_c_right_bracket): Likewise.
1938 (pp_c_star): Likewise.
1939 (pp_c_ampersand): Likewise.
1940
17712798 19412004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1942
1943 * config/sol2.h (__enable_execute_stack): ANSIfy function
1944 definition.
1945
6bfc819a 19462004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
1947
1948 * c-incpath.c (add_path): Canonicalize paths to use '/' if
1949 HAVE_DOS_BASED_FILESYSTEM.
1950
b787f5e5 19512004-05-31 Steven Bosscher <stevenb@suse.de>
1952
1953 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1954 Only look at case labels if the immediate dominator is also
1955 the only predecessor. Don't look for more case labels if the
1956 first seen is a case range.
1957
e739f726 19582004-05-31 Kazu Hirata <kazu@cs.umass.edu>
1959
1960 * builtins.c: Add a prototype for fold_builtin_strchr().
1961
8b0f9265 19622004-05-31 Paolo Bonzini <bonzini@gnu.org>
1963
1964 Revert this patch:
1965 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
1966
1967 * combine.c (gen_binary): Remove.
1968 (known_cond, simplify_shift_const
1969 find_split_point, combine_simplify_rtx,
1970 simplify_if_then_else, simplify_set,
1971 simplify_logical, expand_field_assignment,
1972 extract_left_shift, force_to_mode,
1973 if_then_else_cond, apply_distributive_law,
1974 simplify_and_const_int, simplify_shift_const,
1975 gen_lowpart_for_combine, simplify_comparison,
1976 reversed_comparison): Replace with
1977 simplify_gen_binary, simplify_gen_relational or
1978 distribute_and_simplify_rtx.
1979 (distribute_and_simplify_rtx): New function.
1980
f3c9071d 19812004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1982
1983 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1984 when generating PIC code.
1985
05f9ea78 19862004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
1987
1988 * c-decl.c (c_expand_body_1): Remove and fold back into ...
1989 (c_expand_body): here.
1990 (c_expand_decl): Move to ...
1991 * c-common.c (c_expand_decl): Here and remove check for nested
1992 functions.
1993 * c-common.h (c_expand_decl): Add prototype.
1994 * c-tree.h (c_expand_decl): Remove.
1995
20783f07 19962004-05-30 Roger Sayle <roger@eyesopen.com>
1997
1998 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1999 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2000 fold_mathfn_compare, fold_inf_compare, fold,
2001 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2002 Use constant_boolean_node where appropriate. Don't bother using
2003 fold_convert on the second argument to omit_one_operand.
2004
f870f16d 20052004-05-30 Roger Sayle <roger@eyesopen.com>
2006
2007 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2008 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2009 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
2010 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2011 Add missing (but documented) tree nodes to the index.
2012
57f5fba9 20132004-05-30 Steven Bosscher <stevenb@suse.de>
2014
2015 PR tree-optimization/14819
2016 * builtins.c (fold_builtin_strchr): New.
2017 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2018 with fold_builtin_strchr().
2019
0bed3869 20202004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2021
2022 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2023 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2024 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2025 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2026 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2027 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2028 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2029 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2030 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2031 formatting.
2032
da41aa8e 20332004-05-30 Steven Bosscher <stevenb@suse.de>
2034
2035 * gimplify.c (sort_case_labels): New. Split out from...
2036 (gimplify_switch_expr): ...here. Use it.
2037 * tree-eh.c (lower_try_finally_switch): Sort the labels of
2038 the SWITCH_EXPR created here before leaving the function.
2039 * tree.c (sort_case_labels): Add prototype.
2040
2dcc623a 20412004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2042
2043 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2044 of BOOLEAN_TYPE.
2045
365db11e 20462004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2047
2048 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2049 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2050 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2051 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2052 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2053 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2054 comment typos. Follow spelling conventions.
2055
8ed01400 20562004-05-29 Geoffrey Keating <geoffk@apple.com>
2057
2058 * gengtype-yacc.y: Add NESTED_PTR token.
2059 (option): Record `nested_ptr' option.
2060 * gengtype-lex.l: Handle `nested_ptr' keyword.
2061 * gengtype.c (walk_type): Process `nested_ptr' option.
2062 * gengtype.h (struct nested_ptr_data): New.
2063 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2064 * stringpool.c (struct string_pool_data): Make 'entries' point to
2065 ht_identifier instead of tree.
2066 (gt_pch_save_stringpool): Don't adjust pointers.
2067 (gt_pch_restore_stringpool): Call ht_load.
2068
20d111f2 20692004-05-29 Jason Merrill <jason@redhat.com>
2070
2071 * gimplify.c (gimplify_expr): Don't build a statement list
2072 if no gimplification was necessary.
2073
c936ffc6 20742004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2075
2076 * pretty-print.c (pp_base_format_text): Support %< instead of %`
2077 and %> as well as %'.
2078 * c-format.c: Use %< and %>.
2079 (gcc_diag_char_table, gcc_cdiag_char_table,
2080 gcc_cxxdiag_char_table): Update.
2081
3ac2c7b8 20822004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2083
2084 * c-typeck.c (common_type): Correct comment.
2085
23391c74 20862004-05-29 Peter Barada <peter@the-baradas.com>
2087
c3f7507d 2088 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2089 * config/m68k/m68k.c (const_method): Likewise.
2090 * config/m68k/m68k.c (const_int_cost): Likewise.
2091 * config/m68k/m68k.c (const_int_cost): Likewise.
2092 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2093
20942004-05-29 Peter Barada <peter@the-baradas.com>
2095
2096 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
23391c74 2097 addressing.
2098 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2099 movsi,movhi,movqi insn patterns.
2100
0c361cc4 21012005-05-28 Andrew Pinski <pinskia@physics.uc.edu>
2102
972e98dd 2103 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2104
0c361cc4 2105 PR target/15720
2106 * config/darwin.c (machopic_indirect_call_target): Copy
2107 the SYMBOL_REF_DECL from the original RTX for the new
2108 stub RTX.
2109
847203c6 21102004-05-28 DJ Delorie <dj@redhat.com>
2111
2112 * stor-layout.c (place_field): Revert erroneous commit.
2113
189e242d 21142004-05-28 Ziemowit Laski <zlaski@apple.com>
2115
2116 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2117 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2118 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2119 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2120 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2121 vec_ste): Remove type checks for integral parameters and literals
2122 from '..._args_eq' macros.
2123
9cd7308a 21242004-05-28 Aldy Hernandez <aldyh@redhat.com>
2125
2126 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2127
5fc7fa69 21282004-05-28 Aldy Hernandez <aldyh@redhat.com>
2129
2130 * testsuite/g++.dg/charset/function.cc: New.
2131
2132 * testsuite/gcc.dg/charset/function.c: New.
2133
2134 * c-decl.c (c_make_fname_decl): Free return value from
2135 fname_as_string.
2136
2137 * cp/decl.c (cp_make_fname_decl): Free return value from
2138 fname_as_string.
2139
2140 * c-common.c (fname_as_string): Translate if necessary.
2141
5b916b55 21422004-05-28 Geoffrey Keating <geoffk@apple.com>
2143
2144 * stringpool.c: Add comments to PCH saving/restoring routines.
2145
4cc4451b 21462004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
2147
810160c9 2148 * c-common.c (c_estimate_num_insns_1): Kill.
2149 (c_estimate_num_insns): Kill.
2150 * c-common.h (c_estimate_num_insns): Kill.
2151
2152 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2153 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2154 Remove comment about not checking for
2155 _POSIX_PRIORITY_SCHEDULING.
2156 * gthr-posix.c: Likewise.
4cc4451b 2157
318a728f 21582004-05-28 Paolo Bonzini <bonzini@gnu.org>
2159 Roger Sayle <roger@eyesopen.com>
2160
2161 PR rtl-optimization/15649
2162 Add LTGT_EXPR and improve pretty-printing of unordered
2163 comparisons.
2164 * c-common.c (c_common_truthvalue_conversion):
2165 Handle LTGT_EXPR.
2166 * c-typeck.c (build_binary_op): Likewise.
2167 * dojump.c (do_jump): Likewise.
2168 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2169 * predict.c (tree_predict_by_opcode): Likewise.
2170 * real.c (real_compare): Likewise.
2171 * tree-cfg.c (verify_expr): Likewise.
2172 * tree-inline.c (estimate_num_insns_1): Likewise.
2173 * tree-pretty-print.c (dump_generic_node): Likewise.
2174 Handle ORDERED_EXPR, UNORDERED_EXPR.
2175 (op_symbol): Print unordered comparisons differently
2176 than ordered ones.
2177 * tree.def (LTGT_EXPR): New '<' tree code.
2178 * doc/c-tree.texi (Expressions): Document floating-point
2179 comparison nodes.
2180
2181 Fold comparisons between floating point values.
2182 * fold-const.c (enum comparison_code): New, from
2183 #define'd constants. Define compcodes for unordered
2184 comparisons and for invalid transformations.
2185 (invert_tree_comparison): Add "honor_nans" parameter.
2186 (fold_truthop): Revamp to work on floating-point types too.
2187 (comparison_to_compcode): Support unordered comparisons.
2188 Use new enum comparison_code.
2189 (compcode_to_comparison): Likewise.
2190 (combine_compcodes): New function.
2191 (invert_truthvalue): Let invert_tree_comparison decide
2192 whether it is valid to fold the comparison. Fold ORDERED
2193 and UNORDERED even if flag_unsafe_math_optimizations is off,
2194 and the remaining even if flag_unsafe_math_optimizations
2195 is off but we are under -fno-trapping-math.
2196 (fold_relational_const): Integer modes do not honor NaNs.
2bd21a29 2197
cdf460bd 21982004-05-28 Paul Brook <paul@codesourcery.com>
2199
2200 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2201
ef5bbe67 22022004-05-28 Paul Brook <paul@codesourcery.com>
2203
2204 * config/arm/arm.c (thumb_force_lr_save): New function.
2205 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2206 thumb_output_function_prologue): Use it.
2207 (thumb_expand_prologue): Set lr_save_eliminated.
2208
5cc1e34e 22092004-05-28 Richard Sandiford <rsandifo@redhat.com>
2210
2211 * config/mips/mips.md (extendsidi2): Tie the source and destination
2212 of the register alternative. Split it into nothing.
2213
67c5e2a9 22142004-05-28 Richard Sandiford <rsandifo@redhat.com>
2215
2216 * rtl.h (skip_consecutive_labels): Declare.
2217 * emit-rtl.c (skip_consecutive_labels): New function.
2218 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2219 * jump.c (follow_jumps): Say what null return values mean.
2220
b32ed978 22212004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2222
2223 PR target/13250
2224 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2225
cd134b72 22262004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
2227
2228 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2229 libgcc-std.ver.
2230 * config/sh/libgcc-std.ver: New file.
2231
a1f8465b 22322004-05-27 Bryce McKinlay <mckinlay@redhat.com>
2233
2234 * except.c: Revert change of 2004-05-26.
2235 * config/i386/i386.md: Revert change of 2004-05-27.
2236
4e7212d1 22372004-05-27 Bryce McKinlay <mckinlay@redhat.com>
2238
2239 * configure.ac: Remove --enable-tree-browser option.
2240 Define TREEBROWSER when ac_tree_checking is defined.
2241 * configure: Rebuilt.
2242
5c0c8e54 22432004-05-27 Olivier Hainque <hainque@act-europe.fr>
2244
2245 * expr.c (store_constructor): Restore sanity check on
2246 the size of the type before clearing.
2247
918de276 22482004-05-27 Jan Hubicka <jh@suse.cz>
2249
2250 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
2251
8b0f9265 22522004-05-27 Paolo Bonzini <bonzini@gnu.org>
fb874aed 2253
2254 * combine.c (gen_binary): Remove.
2255 (known_cond, simplify_shift_const
2256 find_split_point, combine_simplify_rtx,
2257 simplify_if_then_else, simplify_set,
2258 simplify_logical, expand_field_assignment,
2259 extract_left_shift, force_to_mode,
2260 if_then_else_cond, apply_distributive_law,
2261 simplify_and_const_int, simplify_shift_const,
2262 gen_lowpart_for_combine, simplify_comparison,
2263 reversed_comparison): Replace with
2264 simplify_gen_binary, simplify_gen_relational or
2265 distribute_and_simplify_rtx.
2266 (distribute_and_simplify_rtx): New function.
2267 * simplify-rtx.c (simplify_binary_operation):
2268 Use nonzero_bits to simplify ANDs where we are
2269 turning off bits already known to be off in OP0.
2270
ebf4467d 22712004-05-27 Alan Modra <amodra@bigpond.net.au>
2272
2273 PR target/14478
2274 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2275
765f486d 22762004-05-27 Josef Zlomek <zlomekj@suse.cz>
2277
2278 PR middle-end/14084
2279 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2280 to size of decl.
2281
f35283ba 22822004-05-26 Aldy Hernandez <aldyh@redhat.com>
2283
2284 PR/14924
2285 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2286
6d5a6036 22872004-05-26 Roger Sayle <roger@eyesopen.com>
2288
2289 * tree.h: Fix comment typo.
2290
b624a250 22912004-05-27 Steven Bosscher <stevenb@suse.de>
2292
2293 * gimplify.c (compare_case_labels): New function.
2294 (gimplify_switch_expr): Sort case labels, and make sure the
2295 last label in the label vector is the default case.
2296 * tree-cfg.c (group_case_labels): New function.
2297 (build_tree_cfg): Cleanup redundant labels and group case labels
2298 before creating edges.
2299 (cleanup_dead_labels): Handle GOTO_EXPRs.
2300 (find_case_label_for_value): Use a binary search to find the
2301 case label for the given value.
2302 * tree-gimple.c: Mention that labels are sorted, and that the
2303 last label must be the default.
2304
902c164d 23052004-05-27 Jan Hubicka <jh@suse.cz>
2306
2307 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2308
2a842a6c 23092004-05-27 Jan Hubicka <jh@suse.cz>
2310
2311 * i386.md (UNSPECV_EH_RETURN): Kill.
2312 (eh_return): Use jump_insn.
2313 (eh_return_si, eh_return_di): Change pattern to jump instruction.
2314
68ebfd2c 23152004-05-26 Jan Hubicka <jh@suse.cz>
2316
2317 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
2318 not loop optimizing.
68ebfd2c 2319
391436f3 23202004-05-26 Jan Hubicka <jh@suse.cz>
2321
2322 * except.c (can_throw_internal): Notice RESX instructions.
2323
3e29f5cd 23242004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
2325
2326 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2327 of the two sizes to assemble_integer.
2328
20fa5f76 23292004-05-25 Paul Brook <paul@codesourcery.com>
2330
2331 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2332 pointless #ifdef.
2333
741b7726 23342004-04-25 Paolo Bonzini <bonzini@gnu.org>
2335
2336 * Makefile.in (top_builddir): Define to .
2337
58220290 23382004-05-25 Alexandre Oliva <aoliva@redhat.com>
2339
2340 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2341 top-level detects, except when in-tree ld is being cross-built.
2342 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
2343 then AS only if target is host.
2344 * configure: Rebuilt.
2345
1f5186f8 23462004-05-25 Vladimir Makarov <vmakarov@redhat.com>
2347
2348 * global.c (global_alloc): Call make_accurate_live_analysis.
2349 (record_one_conflict): Remove dead code.
2350 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2351 (bb_info): New structure.
2352 (BB_INFO, BB_INFO_BY_INDEX): New macros.
2353 (allocate_bb_info, free_bb_info, mark_reg_change,
2354 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2355 modify_bb_reg_pav, calculate_reg_pav,
2356 make_accurate_live_analysis): New functions.
2bd21a29 2357
0fde16b4 23582004-05-25 Devang Patel <dpatel@apple.com>
2359
2360 * alias.c (init_alias_analysis): Use ggc_calloc instead of
2361 xrealloc.
2362 (end_alias_analysis): Use ggc_free instead fo free.
2bd21a29 2363
312c8fb6 23642004-05-25 Andrew Pinski <pinskia@physics.uc.edu>
2365
2366 PR target/15546
2367 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2368 as needed to be outputted.
2369
41101c0d 23702004-05-25 Jan Hubicka <jh@suse.cz>
2371
2372 * builtins.def (__builtin_expect): Mark the function as const&nothrow.
2373
406a73e7 23742004-05-25 Ayal Zaks <zaks@il.ibm.com>
2375 Mostafa Hagog <mustafa@il.ibm.com>
2376
2377 * Makefile.in (modulo-sched.o, ddg.o): New.
2378 * ddg.h, ddg.c, modulo-sched.c: New files.
2379 * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2380 internals to "dupicate_insn".
2381 (duplicate_insn): New function.
2382 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2383 declarations.
2384 * common.opt (fmodulo-sched): New flag.
2385 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2386 Remove static and forward declaration.
2387 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2388 functions.
2389 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2390 df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2391 declarations.
2392 * flags.h (flag_modulo_sched): New flag.
2393 * opts.c (common_handle_option): Handle modulo-sched flag.
2394 * params.def (max-sms-loop-number, sms-max-ii-factor,
2395 sms-dfa-history, sms-loop-average-count-threshold): New
2396 parameters.
2397 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2398 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2399 parameters.
2400 * passes.c ("sms", "sms-vcg"): New dumps.
2401 (rest_of_handle_sched): Call sms_schedule.
2402 * rtl.h (sms_schedule): New declaration.
2403 * timevar.def (TV_SMS): New.
2404 * toplev.c (flag_modulo_sched): Initialize.
2405 (f_options): Handle -fmodulo-sched option.
2406 * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2407 * docs/passes.texi: Document new SMS pass.
2408
d263732c 24092004-05-25 Paolo Bonzini <bonzini@gnu.org>
2410
2411 * Makefile.in (OBJS): Add rtlhooks.o.
2412 (rtlanal.o): Depend on function.h.
2413 (cse.o): Depend on rtlhooks-def.h.
2414 (combine.o): Depend on rtlhooks-def.h.
2415 (rtlhooks.o): New rule.
2416 * combine.c: Include rtlhooks-def.h.
2417 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2418 num_sign_bit_copies, cached_num_sign_bit_copies,
2419 num_sign_bit_copies1): Move most of the code to rtlanal.c.
2420 (reg_nonzero_bits_for_combine,
2421 reg_num_sign_bit_copies_for_combine): New functions holding
2422 the remnants of the above.
2423 (combine_rtl_hooks): New.
2424 (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2425 * cse.c: Include rtlhooks-def.h.
2426 (cse_rtl_hooks): New.
2427 (cse_main): Set rtl_hooks instead of gen_lowpart.
2428 * emit-rtl.c (gen_lowpart): Remove.
2429 (gen_lowpart_general): Move to rtlhooks.c.
2430 * rtl.h (nonzero_bits, num_sign_bit_copies,
2431 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2432 (gen_lowpart_general): Remove.
2433 (gen_lowpart): Temporarily redefine as a macro.
2434 * rtlanal.c: Include function.h.
2435 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2436 num_sign_bit_copies, cached_num_sign_bit_copies,
2437 num_sign_bit_copies1): New, from combine.c.
2bd21a29 2438 * rtlhooks.c: New file.
fceabe86 2439 * rtlhooks-def.h: New file.
d263732c 2440
25715f21 24412004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com>
2442
2443 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2444 to support 32-bit -mint8 mode.
2445
2446 * doc/invoke.texi (-mint8): Added documentation for the -mint8
2bd21a29 2447 option in the AVR architecture.
25715f21 2448
4f94fdf1 24492004-05-24 Mike Stump <mrs@apple.com>
2450
2451 * doc/install.texi: Document that dejagnu 1.4.4 is required.
2452
89e7e005 24532004-05-24 Joseph S. Myers <jsm@polyomino.org.uk>
2454
2455 * intl.h (open_quote, close_quote): New.
2456 * intl.c (open_quote, close_quote): New.
2457 (gcc_init_libintl): Set them.
2458 * pretty-print.c: Include "intl.h".
2459 (pp_base_format_text): Support 'q' format flag and %` and %'
2460 formats. Use ' instead of ` in comments.
2461 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2462 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2463 foramt_types_orig): Describe these new formats.
2464 (decode_format_attr, check_function_format,
2465 check_format_info_main): Use these new formats.
2466 (status_warning): Use ATTRIBUTE_GCC_DIAG.
2467 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2468 check these formats to 3.5.
2469
3824453e 24702004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2471
2472 * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2473 (BACKEND): Reflect this.
2474 (LIBDEPS): Move CPPLIB before LIBIBERTY.
2475 (LIBS): Likewise.
2476
9ff0637e 24772004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
2478
2479 PR tree-optimization/14197
2480 * builtins.c: Include "tree-gimple.h"
2bd21a29 2481 (readonly_data_expr): Use get_base_address. Make sure to call
9ff0637e 2482 decl_readonly_section only on trees it can handle.
2483 * tree-gimple.c (get_base_address): Accept STRING_CST and
2484 CONSTRUCTOR expressions.
2485 * Makefile.in: Update dependencies.
2486
d856c8a6 24872004-05-23 Paolo Bonzini <bonzini@gnu.org>
2488
2489 Move libcpp to the toplevel.
2490 * Makefile.in: Remove references to libcpp files,
2491 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
2492 and change hashtable.h to that.
2493 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2494 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2495 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2496 * configure: Regenerate.
2497 * config.in: Regenerate.
2498 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2499 * cppcharset.c: Removed.
2500 * cpperror.c: Removed.
2501 * cppexp.c: Removed.
2502 * cppfiles.c: Removed.
2503 * cpphash.c: Removed.
2504 * cpphash.h: Removed.
2505 * cppinit.c: Removed.
2506 * cpplex.c: Removed.
2507 * cpplib.c: Removed.
2508 * cpplib.h: Removed.
2509 * cppmacro.c: Removed.
2510 * cpppch.c: Removed.
2511 * cpptrad.c: Removed.
2512 * cppucnid.h: Removed.
2513 * cppucnid.pl: Removed.
2514 * cppucnid.tab: Removed.
2515 * hashtable.c: Removed.
2516 * hashtable.h: Removed.
2517 * line-map.c: Removed.
2518 * line-map.h: Removed.
2519 * mkdeps.c: Removed.
2520 * mkdeps.h: Removed.
2521 * stringpool.h: Include symtab.h instead of hashtable.h.
2522 * tree.h: Include symtab.h instead of hashtable.h.
2523 * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2524
42bbc7e6 25252004-05-23 Paolo Bonzini <bonzini@gnu.org>
2526
2527 * gcc.c (struct prefix_list): Add forward declaration.
2528 (do_spec_path): New function, extracted from...
2529 (do_spec_1) <'D'>: ... here. Drop support for
2530 SPACE_AFTER_L_OPTION.
2531 (do_spec_1) <'I'>: Use do_spec_path.
2532 (process_command): Do not store the 'include' suffix
2533 in include_prefixes.
2534 * system.h: Poison SPACE_AFTER_L_OPTION.
2535
f4d47aeb 25362002-05-23 Roger Sayle <roger@eyesopen.com>
2537
2538 * fold-const.c (non_lvalue): Explicitly list the tree codes that
2539 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2540
ac17414b 25412004-05-23 Joseph S. Myers <jsm@polyomino.org.uk>
2542
2543 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2544 Update based on printed manual. Enable setting of offsets for
2545 FSFPRINT and move it to gcc-common.texi.
2546 * doc/gcc.texi: Update FSF printing details.
2547 * doc/gccint.texi: Remove FSF printing details.
2548
b21711eb 25492004-05-23 Andrew Pinski <pinskia@physics.uc.edu>
2550
2551 * config/rs6000/t-rs6000: Remove the disabling -Werror.
2552
05abc81b 25532004-05-22 Roger Sayle <roger@eyesopen.com>
2554
2555 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2556 expand_builtin_strrchr, expand_builtin_strpbrk,
2557 expand_builtin_mempcpy, expand_builtin_memcmp,
2558 expand_builtin_strcmp, expand_builtin_strncmp,
2559 expand_builtin_strcat, std_expand_builtin_va_start,
2560 std_expand_builtin_va_arg, expand_builtin_va_copy,
2561 expand_builtin_signbit, fold_builtin_cabs,
2562 fold_builtin_logarithm, fold_builtin_mempcpy,
2563 fold_builtin_signbit, fold_builtin_isascii,
2564 fold_builtin_toascii, fold_builtin_isdigit,
2565 fold_builtin_1, build_function_call_expr,
2566 simplify_builtin_strchr, simplify_builtin_strrchr,
2567 simplify_builtin_strpbrk, simplify_builtin_strncpy,
2568 simplify_builtin_memcmp, simplify_builtin_strcmp,
2569 simplify_builtin_strncmp, simplify_builtin_strncat,
2570 simplify_builtin_strspn, simplify_builtin_strcspn,
2571 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2572 to build with calls to build2, build3 or omit_one_operand.
2573
07090b27 25742004-05-22 Richard Sandiford <rsandifo@redhat.com>
2575
9f5b2f1c 2576 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
07090b27 2577 section when generating EABI code.
2578
b6c9b305 25792004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
2580
2581 PR 15546
2582 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2583 Call mark_decl_referenced on the SYMBOL_REF_DECL.
2584
e1232ce2 25852004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
2586
2587 * c-common.c (c_common_truthvalue_conversion): Handle
2588 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2589 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2590 i.e. set the type to truthvalue_type_node and return.
2591
25922004-05-22 Zack Weinberg <zack@codesourcery.com>
2593
2594 * tree.h (struct tree_decl): Add possibly_inlined bit.
2595 (DECL_POSSIBLY_INLINED): New accessor macro.
2596 * cgraph.h: Remove declaration of cgraph_inline_hash.
2597 * cgraph.c: Remove definition of cgraph_inline_hash.
2598 (hash_node): Revert to hashing DECL_UID.
2599 (eq_node): Take two pointers to cgraph_node structures.
2600 Compare DECL_UIDs.
2601 (cgraph_remove_node): Pass the node directly to htab_find_slot.
2602 (cgraph_varpool_hash_node): Rename hash_varpool_node;
2603 hash on DECL_UID.
2604 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2605 pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2606 (cgraph_node): Allocate a temporary node on the stack, fill in
2607 its DECL field, and pass that to htab_find_slot.
2608 (cgraph_varpool_node): Likewise.
2609 (cgraph_function_possibly_inlined_p): If global info is ready,
2610 return the DECL_POSSIBLY_INLINED bit.
2611 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2612 instead of mucking with cgraph_inline_hash.
2613
0fff7a9b 26142004-05-22 Joseph S. Myers <jsm@polyomino.org.uk>
2615
2616 * doc/contrib.texi: Add g77 contributors.
2617
c71e72dd 26182004-05-22 Richard Sandiford <rsandifo@redhat.com>
2619
2620 * calls.c (initialize_argument_information): Forbid sibcalls if a
2621 callee-copied argument is stored in the current function's frame.
2622
b10f2374 26232004-05-22 Eric Christopher <echristo@redhat.com>
2624
2625 * fix-header.c (read_scan_file): Update for add_path change.
2626
06fd18c9 26272004-05-22 Ben Elliston <bje@au.ibm.com>
2628
2629 * c.opt (Wmissing-include-dirs): New.
2630 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2631 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2632 OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2633 * c-incpath.h (add_path): Add fourth (bool) argument.
2634 * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2635 (add_standard_paths): Likewise.
2636 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2637 is used and the directory was user-supplied via -I.
2638 (add_path): Set p->user_supplied_p. Remove duplicated code by
2639 using add_cpp_dir_path ().
2640 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2641 (struct cpp_dir): Add user_supplied_p.
2642 * doc/invoke.texi (Warning Options): Document new option.
2643
9d14ee5b 26442004-05-21 Ulrich Weigand <uweigand@de.ibm.com>
2645
2646 * fold-const.c (fold_read_from_constant_string): Convert result to
2647 requested type.
2648
fa44b632 26492004-05-21 Richard Henderson <rth@redhat.com>
2650
2651 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2652 (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2653 Don't mark VA_ARG_EXPRs volatile here.
2654 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2655
e8c5dd3c 26562004-05-21 Richard Henderson <rth@redhat.com>
2657
2658 * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2659 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2660
c0c67e38 26612004-05-21 Roger Sayle <roger@eyesopen.com>
2662
2663 * fold-const.c (fold, fold_relational_hi_lo,
2664 nondestructive_fold_binary_to_constant,
2665 fold_read_from_constant_string): Use fold_convert instead of convert.
2666 * builtins.c (simplify_builtin, simplify_builtin_strstr,
2667 simplify_builtin_strchr, simplify_builtin_strrchr,
2668 simplify_builtin_strpbrk): Use fold_convert instead of convert.
2669
4f7c08fb 26702004-05-21 Diego Novillo <dnovillo@redhat.com>
2671
2672 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2673 is NULL.
2674
8afdc344 26752004-05-21 Jakub Jelinek <jakub@redhat.com>
2676
2677 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2678 override sparc.h definition.
2679
fd96eeef 26802004-05-20 Roger Sayle <roger@eyesopen.com>
2681
2682 * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2683 get_unwidened, get_narrower): Replace build with build2.
2684 * fold-const.c (negate_expr, associate_trees, size_binop,
2685 fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2686 pedantic_omit_one_operand, distribute_bit_expr,
2687 make_bit_field_ref, optimize_bit_field_compare,
2688 decode_field_reference, range_binop, make_range,
2689 build_range_check, fold_range_test, fold_truthop,
b10f2374 2690 optimize_minmax_comparison, extract_muldiv_1,
fd96eeef 2691 fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2692 fold_inf_compare, fold_single_bit_test, fold,
2693 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2694 Likewise replace build with either build2 or build3.
2695
074e46ba 26962004-05-20 Ian Lance Taylor <ian@wasabisystems.com>
2697
2698 * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2699 * calls.c (prepare_call_address): Don't test
2700 NO_RECURSIVE_FUNCTION_CSE.
2701 * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2702 * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2703 * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2704 * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2705 * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2706 * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2707 * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2708 * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2709 * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2710 * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2711 * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2712 * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2713 Likewise.
2714 * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2715 * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2716 * doc/tm.texi (Costs): Remove documentation for
2717 NO_RECURSIVE_FUNCTION_CSE.
2718
c0d45e55 27192004-05-20 Paul Brook <paul@codesourcery.com>
2720
2721 * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2722 * unwind-dw2.c (extract_cie_info): Ditto.
2723 (_Unwind_FrameState): Change retaddr_column to word type.
2724
f2b83d13 27252004-05-20 Roger Sayle <roger@eyesopen.com>
2726
2727 PR middle-end/3074
2728 * fold-const.c (strip_compound_expr): Delete function.
2729 (count_cond): Delete function.
2730 (fold_binary_op_with_conditional_arg): Only perform transformations
2731 "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2732 when a is constant. This greatly simplifies this routine.
2733
2734 * tree.c (saved_expr_p): Delete function.
2735 * tree.h (saved_expr_p): Delete function prototype.
2736
17279001 27372004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
2738
2739 * common.opt (ftree-loop-optimize): Remove.
2740
50088060 27412004-05-20 Daniel Jacobowitz <dan@debian.org>
2742
2743 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2744 (NM_FOR_TARGET): Use := and $(shell).
2745 (mainversion): Remove unused variable.
2746
a85234d1 27472004-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2748
2749 * reorg.c (delete_from_delay_slot): If we have a barrier after the
2750 sequence containing the insn to be deleted, always reemit it.
2751
3efaa21f 27522004-05-20 Richard Henderson <rth@redhat.com>
2753
2754 PR 15454
2755 * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2756 * function.c (expand_function_start): Expand static_chain_decl by hand.
2757 * gimplify.c (create_tmp_var_name): Export.
2758 * tree-gimple.h (create_tmp_var_name): Declare.
2759
8a95d8fa 27602004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
2761
2762 * rs6000.c (print_operand) <case 'z'>: Call
2763 mark_decl_referenced before assemble_name.
2764
71db195c 27652004-05-20 Zack Weinberg <zack@codesourcery.com>
2766
2767 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2768 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2769 (cgraph_varpool_node): Hash on the pointer to the decl, not
2770 the DECL_UID. Fixes 64-bit bootstrap failure.
2771
f8d7bf2f 27722004-05-20 Richard Earnshaw <rearnsha@arm.com>
2773
2774 * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2775 we don't earlyclobber operands used in the second insn.
2776
277b9e04 27772004-05-20 Steven Bosscher <stevenb@suse.de>
2778
2779 * tree-mudflap.c: Formatting fixes.
2780
2bc9fc53 27812004-05-20 J"orn Rennecke <joern.rennecke@superh.com>
2782
2783 * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2784 * gengtype.c (open_base_files): Include reload.h in ifiles.
2785 * reload.h (reg_equiv_memory_loc_varray): Declare.
2786 * reload1.c (reg_equiv_memory_loc_varray): New variable.
2787 (init_reload): Initialize it.
2788 (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2789 reg_equiv_memory_loc_varray to size 0.
2790 * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2791 growing reg_equiv_memory_loc_varray to the desired size.
2792 * passes.c (rest_of_handle_old_regalloc): Likewise.
2793 * reload.c: Amend comment on calling init_reload.
2794
495b0fa4 27952004-05-20 Nick Clifton <nickc@redhat.com>
2796
2797 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2798 with 'TRAMP' in the body of the macro definition.
2799
0a5425ff 28002004-05-19 H.J. Lu <hongjiu.lu@intel.com>
2801
2802 PR target/15383
2803 * config/ia64/ia64.c (ia64_expand_compare): Don't check
2804 TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2805 cmptf_libfunc isn't set.
2806 (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2807 conventions.
2808 (ia64_sysv4_init_libfuncs): New.
2809
2810 * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2811 ia64_sysv4_init_libfuncs.
2812
0cf3a1b4 28132004-05-20 Falk Hueffner <falk@debian.org>
2814
2815 PR other/15526
2816 * libgcc2.c (__mulvsi3): Fix overflow test.
2817
bdb6259c 28182004-05-19 Andrew Pinski <pinskia@physics.uc.edu>
2819
61e2434b 2820 PR c/14171
62ec6441 2821 * reg-stack.c (nan): Rename to ...
2822 (not_a_num): Here.
2823 (reg_to_stack): Rename nan to not_a_num.
2824 (subst_stack_regs_pat): Likewise.
2825 (convert_regs_entry): Likewise.
2826 (convert_regs_1): Likewise.
2827
bdb6259c 2828 * tree-cfg.c (find_case_label_for_value): Replace call to
2829 simple_cst_equal with tree_int_cst_equal.
2830
50737d20 28312004-05-19 Jeff Law <law@redhat.com>
2832
ce898113 2833 * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2834 If the operand is for a use, then strip away the SSA_NAME, do not
2835 strip away the SSA_NAME for a set. Never call release_ssa_name.
2836 (mark_def_sites): Appropriately pass additional argument to
2837 prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
2838 then set the VDEF_RESULT to the VDEF_OP.
2839 (set_def_block): Strip away any SSA_NAME to get to the real
2840 underlying variable.
2841
50737d20 2842 * tree-ssa-phiopt.c (value_replacement): Handle the case where
2843 the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2844 BB directly.
2845
a6629703 28462004-05-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2847
2848 PR c++/15463
2849 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on
2850 result of inverse.
2851
2852 PR rtl-optimization/15274
2853 * loop-iv.c (determine_max_iter, shorten_into_mode,
2854 iv_number_of_iterations): Handle constants correctly.
2855 * rtl.h (get_mode_bounds): Declaration changed.
2856 * stor-layout.c (get_mode_bounds): Return a constant suitable for
2857 the target mode.
2858
2859 PR rtl-optimization/14692
2860 * loop-unswitch.c (may_unswitch_on): Try folding the result.
2861 (unswitch_single_loop): Work correctly when may_unswitch_on
2862 returns a folded constant.
2863
2864 * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2865 * simplify-rtx.c (simplify_const_relational_operation): Optimize
2866 comparisons with mode bounds.
2867
2868 * function.c (struct temp_slot): Add new field prev.
2869 (free_after_compilation, init_temp_slots): Free new fields.
2870 (cut_slot_from_list, insert_slot_to_list,
2871 temp_slots_at_level, max_slot_level, move_slot_to_level,
2872 make_slot_available): New functions.
2873 (assign_stack_temp_for_type, combine_temp_slots,
2874 find_temp_slot_from_address, preserve_temp_slots,
2875 preserve_rtl_expr_result, free_temp_slots,
2876 free_temps_for_rtl_expr, pop_temp_slots): Work with
2877 the new structure of lists.
2878 (mark_all_temps_used): Removed.
2879 * function.h (struct function): Field x_temp_slots
2880 replaced by x_used_temp_slots and x_avail_temp_slots.
2881 (temp_slots): Replaced by ...
2882 (used_temp_slots, avail_temp_slots): New.
2883 * tree.h (mark_all_temps_used): Declaration removed.
2884
2885 * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2886 simplify_using_assignment): Take the expression out of
2887 the expr_list wrapper.
2888
2889 * loop-iv.c (iv_number_of_iterations): Improve clasification of
2890 infinite loops.
2891
12057c3c 28922004-05-19 Roger Sayle <roger@eyesopen.com>
2893
2894 * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2895 costs should be based on code size when optimizing for size.
2896
d814dbe9 28972004-05-19 Paolo Bonzini <bonzini@gnu.org>
2898
2899 * fold-const.c: Remove non-printable character 160.
2900
c01f5f28 29012004-05-19 Nick Clifton <nickc@redhat.com>
2902
6f4d597c 2903 * doc/invoke.texi (ARM Options): Fix typo.
2904 Remove descrption of -mshort-load-bytes and
2905 -mno-short-load-bytes.
2906
c01f5f28 2907 * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2908 missing parenthesis.
2909 * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2910 * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2911
03192665 29122004-05-19 Steven Bosscher <stevenb@suse.de>
2913
2914 * expr.c (store_constructor): Build loop start and end by hand
2915 instead of via loop functions from stmt.c.
2916 (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2917 Remove the code to expand them.
2918
2919 * stmt.c (loop_stack): Remove this and everything related.
2920 (struct nesting, enum nesting_desc): Update.
2921 (expand_fixup): Likewise.
2922 (expand_loop_start, expand_start_loop_continue_elsewhere,
2923 expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2924 expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2925 expand_exit_loop_if_false, expand_exit_loop_top_cond,
2926 expand_exit_something): Remove.
2927 * tree.h: Remove prototypes.
2928
ef1074f7 29292004-05-18 Mike Stump <mrs@apple.com>
2930 Devang Patel <dpatel@apple.com>
2931
2932 * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2933 if this label is for eh.
2934 * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2935 * config/darwin.c (darwin_emit_unwind_label): Likewise.
2936 * dwarf2out.c (output_call_frame_info): Likewise.
2937 * output.h (default_emit_unwind_label): Likewise.
2938 * target.h (unwind_label): Likewise.
2939 * varasm.c (default_emit_unwind_label): Likewise.
2940
2941 * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2942 DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2943 DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2944 DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2945 DEBUG_RANGES_SECTION): Define.
2946
4490a821 29472004-05-18 Zack Weinberg <zack@codesourcery.com>
2948
2949 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2950 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2951 (cgraph_varpool_node):
2952 Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2953 (cgraph_function_possibly_inlined_p): Use the decl itself for
2954 the key, not DECL_ASSEMBLER_NAME.
2955 (change_decl_assembler_name): No need to muck with the hash tables.
2956 (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2957 Delete.
2958 * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2959 for the key, not DECL_ASSEMBLER_NAME.
2960 * cgraph.h: Remove prototypes of deleted functions.
2961 * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2962 (mark_decl_referenced): New function.
2963 * tree.h: Prototype mark_decl_referenced.
2964 * final.c (output_addr_const) <case SYMBOL_REF>: Call
2965 mark_decl_referenced before assemble_name.
2966 * c-decl.c (finish_decl): Use mark_decl_referenced.
2967
0beac6fc 29682004-05-18 Andrew Pinski <pinskia@physics.uc.edu>
2969 Jeff Law <law@redhat.com>
2970
70512b93 2971 * tree-ssa-phiopt.c (abs_replacement): New function.
2972 (empty_block_p): New function extracted from...
2973 (candidate_bb_for_phi_optimization): Break out empty block test.
2974 (conditional_replacement): Use empty_block_p.
2975 (value_replacement): Similarly.
2976
0beac6fc 2977 * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2978 * tree-ssa-phiopt.c: Include flags.h.
2979 (conditional_replacement): Remove argument names from prototype.
2980 Minor formatting and comment fixes.
2981 (tree_ssa_phiopt): If conditional_replacement returns false, then
2982 call value_replacement.
2983 (value_replacement): New function.
2984
2ab0a163 29852004-05-18 Jeff Law <law@redhat.com>
2986
902929aa 2987 * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2988 from conditional_replacement.
2989 (candidate_bb_for_phi_optimization): Similarly.
2990 (conditional_replacement): Use replace_phi_with_stmt and
2991 candidate_bb_for_phi_optimization.
2992
2ab0a163 2993 * tree-ssa-phiopt.c: Fix various formatting issues.
2994
7746964e 29952004-05-18 Steven Bosscher <stevenb@suse.de>
2996
2997 * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2998 s390_expand_cmpmem): Do not use expand_start_loop and
2999 expand_end_loop, instead build the loop manually.
3000
fb7735bd 30012004-05-18 Alan Modra <amodra@bigpond.net.au>
3002
3003 * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3004 (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3005
6e9a4371 30062004-05-17 Jeff Law <law@redhat.com>
3007
3008 * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3009 * flags.h (flag_delete_null_pointer_checks): Here.
3010 * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3011 * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3012 (add_phi_arg, remove_phi_arg_num): Similarly.
3013 * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3014 property into PHI nodes.
3015 * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3016 (record_equivalences_from_phis): If all PHI arguments are known to be
3017 nonzero, then the result must be nonzero as well.
269e0962 3018 (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3019 (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
6e9a4371 3020 appropriately. Walk the USE-DEF chains and propagate nonzero property
3021 as appropriate.
3022 * tree.h (PHI_ARG_NONZERO): Define.
3023 (phi_arg_d): Add nonzero flag.
3024
49fbf4b9 30252004-05-17 Zack Weinberg <zack@codesourcery.com>
3026
3027 * f: Entire directory removed
3028
3029 * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3030 (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3031 (g77_integer_type_node, g77_uinteger_type_node)
3032 (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3033 * c-common.c (c_common_nodes_and_builtins): Do not initialize
3034 the above set of variables.
3035
3036 * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3037 * doc/invoke.texi, doc/standards.texi: Remove cross-references
3038 to g77 manual.
3039
7f94ca93 30402004-05-17 Steven Bosscher <stevenb@suse.de>
3041
075417bf 3042 PR tree-optimization/15438
7f94ca93 3043 * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3044 attributed functions as pure or const.
3045
34b9d7fd 30462004-05-17 Frank Ch. Eigler <fche@redhat.com>
3047
3048 * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3049 from source code with errors.
3050
933798ae 30512004-05-17 Ranjit Mathew <rmathew@hotmail.com>
3052
3053 Enable tree browser for all front ends.
3054 * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3055 (BACKEND): ...to here.
3056
9d582021 30572004-05-17 Jan Hubicka <jh@suse.cz>
3058
3059 * i386.c (construct_container): Do not produce BLKmode registers.
3060 (classify_argument): Properly compute alignment of complex types.
3061
fe99f5cb 30622004-05-17 H.J. Lu <hongjiu.lu@intel.com>
3063
3064 PR target/15084
3065 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3066 and renamed to movdi_insv_1_rex64.
3067 (insv): Support SImode for 32bit and DImode for 64bit.
3068
a9d86d5d 30692004-05-17 Richard Sandiford <rsandifo@redhat.com>
3070
3071 * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3072 (TARGET_SWITCHES): Remove debugg.
3073 * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3074 TARGET_64BIT.
3075 (subdi3): Replace the define_expand with a define_insn, the latter
3076 renamed from subdi3_internal_3.
3077 (negdi2): Likewise negdi2_internal_2.
3078 (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3079 (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3080 and associated define_splits.
3081 (adddi3_internal): Renamed from adddi3_internal_3.
3082 (ashldi3_internal): Likewise ashldi3_internal4.
3083 (ashrdi3_internal): Likewise ashrdi3_internal4.
3084 (lshrdi3_internal): Likewise lshrdi3_internal4.
3085
7c7a9a99 30862004-05-17 Richard Sandiford <rsandifo@redhat.com>
3087
3088 * optabs.c (expand_unop): Try implementing negation using subtraction
3089 from zero.
3090
c658423a 30912004-05-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3092
3093 * pa.md: Fix typo from last change. Remove DFmode move to and from
3094 SAR register.
3095
f4462328 30962004-05-16 Richard Earnshaw <rearnsha@arm.com>
3097
3098 PR target/10982
3099 * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3100 (ne_zeroextractsi_shifted): New pattern.
3101 (ite_ne_zeroextractsi): New pattern.
3102 (ite_ne_zeroextractsi_shifted): New pattern.
3103
5135beeb 31042004-05-15 Steven Bosscher <stevenb@suse.de>
3105
3106 * c-gimplify.c (c_genericize):
3107 Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3108 * c-parse.in <expr_no_commas>: Likewise.
3109 <if_prefix>: Likewise.
3110 <select_or_iter_stmt>: Likewise.
3111 * expr.c (expand_var, expand_expr_real_1): Likewise.
3112 * expr.h (expand_expr): Make it a static inline function.
3113 Move prototype for expand_expr_real up before this.
3114 * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3115 Likewise.
3116 * gimplify.c (gimple_boolify, gimplify_addr_expr,
3117 gimplify_asm_expr, gimplify_expr): Likewise.
3118 * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3119 dump_function_to_file): Likewise.
3120 * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3121 * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3122 * tree-into-ssa.c (dump_tree_ssa): Likewise.
3123 * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3124 Likewise.
3125 * tree-optimize.c (execute_one_pass): Likewise.
3126 * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3127 * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3128
3129 * objc/objc-act.c (objc_build_try_enter_fragment,
3130 objc_build_try_epilogue, objc_build_catch_stmt,
3131 objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3132 with lang_hooks.foo ().
3133
d35544bd 31342004-05-15 Roger Sayle <roger@eyesopen.com>
3135
3136 * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3137 that simplify_builtin doesn't destructively modify its argument.
3138
e5b9b7d1 31392004-05-15 Richard Earnshaw <reanrsha@arm.com>
3140
49fbf4b9 3141 * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
e5b9b7d1 3142 implementations for ARM and Thumb.
3143 * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3144
3d098602 31452004-05-15 Thomas Quinot <quinot@act-europe.fr>
3146
3147 * prefix.c (update_path): Replace PREFIX with KEY only
3148 when it matches a full directory name in PATH.
3149
c1a66faf 31502004-05-15 Richard Earnshaw <reanrsha@arm.com>
3151
3152 * arm.h (TARGET_APCS_32): Delete.
3153 (TARGET_MMU_TRAPS): Delete.
3154 (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never
3155 define __APCS_26__.
3156 (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3157 (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3158 (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3159 (prog_mode_type): Delete.
3160 (PROMOTE_MODE): Always promote unsigned for HImode.
3161 (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3162 (MASK_RETURN_ADDR): Simplify.
3163 * arm.c (arm_prgmode): Delete.
3164 (arm_override_options, arm_gen_rotated_half_load): Simplify.
3165 (print_multi_reg, output_return_instruction): Simplify.
3166 (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3167 (arm_return_addr): Simplify.
3168 * arm.md (prog_mode): Delete.
3169 (conds): Simplify.
3170 (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3171 (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3172 (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3173 (loadhi_shiftpredec): Delete.
3174 (peephole for post-increment on HImode load): Delete.
3175 * arm/crtn.asm: (FUNC_END): Simplify.
3176 * arm/lib1funcs.asm: Remove APCS-26 return macros.
3177 * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
49fbf4b9 3178 * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
c1a66faf 3179 * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3180 MULTILIB_DEFAULTS as required.
3181 * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3182 * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3183 variables as required.
3184 * doc/invoke.texi (ARM Options): Remove obsolete flags.
3185
faabc444 31862004-05-15 Alan Modra <amodra@bigpond.net.au>
3187
3188 * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3189 UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg
3190 count to 8 to handle n_reg > 2.
3191
97ef626f 31922004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
3193
3194 * doc/extend.texi: Update WG14 URL.
3195
61317220 31962004-05-15 Steven Bosscher <stevenb@suse.de>
3197
3198 * basic-block.h (life_analysis, delete_noop_moves):
3199 Update prototypes.
3200 * bt-load.c (branch_target_load_optimize): Don't take the
3201 insns stream as an argument. Update the life_analysis calls.
3202 * combine.c (combine_instructions): Update delete_noop_moves
3203 calls.
3204 * flow.c (notice_stack_pointer_modification): Don't take the
3205 insns stream as an argument. Work on the flow graph.
3206 (life_analysis): Likewise.
3207 (delete_noop_moves): Likewise.
3208 * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3209 (rest_of_handle_life): Update life_analysis call.
3210 (rest_of_compilation): Likewise, and also update
3211 branch_target_load_optimize call.
3212 * ra.c (reg_alloc): Update life_analysis call.
3213 * reg-stack.c (reg_to_stack): Likewise. Also, don't take
3214 the insns stream as an argument.
3215 * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3216 call.
3217 * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3218 prototypes.
3219 * value-profile.c (branch_prob): Update life_analysis call.
3220 * web.c (web_main): Work on the CFG, not on the insns stream.
3221
3222 * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3223 * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3224 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3225
448748a4 32262004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
3227
3228 PR c/15444
3229 * c-format.c (avoid_dollar_number): New function.
3230 (check_format_info_main): Call avoid_dollar_number when operand
3231 numbers might occur but has_operand_number == 0.
3232
372575c7 32332004-05-14 Richard Earnshaw <rearnsha@arm.com>
3234
3235 * arm.md (all peephole2 patterns): Use predicates that validate
3236 register classes as appropriate.
3237
cefc957d 32382004-05-14 Steven Bosscher <stevenb@suse.de>
3239
3240 PR opt/14472
3241 * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3242 ignore type conversions that do not inhibit tail calling.
3243 (find_tail_calls): Likewise.
3244
9fb994de 32452004-05-14 Jeff Law <law@redhat.com>
3246
86484e7f 3247 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3248 bother marking bypassed virtuals for out-of-ssa. Instead merge
61317220 3249 bypassed virtuals into vars_to_rename just before into-ssa pass.
86484e7f 3250
9fb994de 3251 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3252 so that it picks up more opportunities to eliminate ABS expressions
3253 or turn them into negations.
3254
0ca684f3 32552004-05-14 Steven Bosscher <stevenb@suse.de>
3256
3257 * passes.c (rest_of_handle_null_pointer): Remove.
3258 (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3259 (rest_of_compilation): Likewise.
3260 * rtl.h (delete_null_pointer_checks): Remove prototype.
3261 * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3262 Remove declarations.
3263 (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3264 compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3265 free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3266 expr_reaches_here_p, computing_insn, def_reaches_here_p,
3267 can_disregard_other_sets, handle_avail_expr, classic_gcse,
3268 one_classic_gcse_pass, invalidate_nonnull_info,
3269 delete_null_pointer_checks_1, delete_null_pointer_checks,
3270 expr_reached_here_p_work): Remove.
3271 (gcse_main): Do not perform classic GCSE when optimizing for size.
3272 (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3273 are never used.
3274
ae5a4794 32752004-05-14 Andrew Pinski <pinskia@physics.uc.edu>
3276
3277 PR optimization/14466
3278 * tree-complex.c (make_temp): Remove.
3279 (gimplify_val): Replace make_temp with make_rename_temp
3280 and add NULL as the second argument.
3281 (expand_complex_div_wide): Likewise.
3282 * tree-dfa.c (make_rename_temp): New function.
3283 * tree-flow.h (make_rename_temp): Declare.
3284 * tree-sra.c (make_temp): Remove.
3285 (lookup_scalar): Replace make_temp with make_rename_temp.
3286 (create_scalar_copies): Likewise.
3287 * tree-ssa-phiopt.c (conditional_replacement): When we
3288 get non gimple create a temporary variable to hold the
3289 casted expression.
3290
25ba5be6 32912004-05-14 Paul Brook <paul@codesourcery.com>
3292
3293 * stor-layout.c (update_alignment_for_field): Use
3294 targetm.align_anon_bitfield.
3295 * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3296 (TARGET_INITIALIZER): Use it.
3297 * target.h (struct gcc_target): Add align_anon_bitfield.
3298 * config/arm/arm.c (arm_align_anon_bitfield): New function.
3299 (TARGET_ALIGN_ANON_BITFIELD): Define.
3300 * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3301
1acf0298 33022004-05-13 Zack Weinberg <zack@codesourcery.com>
3303
3304 * tree.def (documentation): Remove mention of class 'b'.
3305 (BLOCK): Now in class 'x'.
3306 * c-common.c (verify_tree): Remove case 'b'.
3307 * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3308 * calls.c (calls_function_1): Control cannot get past the switch
3309 when exp is a BLOCK.
3310 * print-tree.c (print_node): Move code for class 'b' to the class
3311 'c'/'x' switch, as case BLOCK.
3312 * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3313 (unsafe_for_reeval, substitute_placeholder_in_expr)
3314 (stabilize_reference_1): Remove case 'b'.
3315 * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3316 of something being 'b' to tests for TREE_CODE of something being
3317 BLOCK.
3318 * tree-ssa-operands.c (get_expr_operands): Likewise.
3319
88bce636 33202004-05-13 Diego Novillo <dnovillo@redhat.com>
3321
3322 * tree-gimple.c: Rename from tree-simple.c.
3323 * tree-gimple.h: Rename from tree-simple.h.
3324 * c-gimplify.c: Rename from c-simplify.c
3325 * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3326 langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3327 tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3328 tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3329 tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3330 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3331 tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3332 Update.
3333
8f20ca1e 33342004-05-14 Ranjit Mathew <rmathew@hotmail.com>
3335
3336 * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3337
de69ffe4 33382004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
3339
232542d2 3340 * tree-ssa.c (delete_tree_ssa): XFREE
3341 bitmaps allocated with BITMAP_XMALLOC.
3342
85b28a38 3343 * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3344 idfs_cache at the end of the function.
3345
3346 * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
44b96f68 3347 at the end of the function.
3348
423e7698 3349 * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3350 el at the end of the function.
3351
55bef5ec 3352 * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3353 bitmaps allocated with BITMAP_XMALLOC.
3354
75a73da7 3355 * loop-unswitch.c (unswitch_single_loop): Free bbs at
3356 the end.
3357
c1b26572 3358 * final.c (shorten_branches): Free uid_shuid before
3359 reallocating it.
3360
de69ffe4 3361 * bb-reoder.c (connect_traces): Free cold_traces at the end.
3362
f5c8cff5 33632004-05-13 Jeff Law <law@redhat.com>
3364
7e0c7e2e 3365 * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3366 variables. Simplify slightly by using USE_OP/DEF_OP instead
3367 of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3368
6d7b5f39 3369 * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3370 rather than iterating through the blocks testing each bit in
3371 livein to initialize the worklist.
3372 (mark_def_sites): Remove useless checks of KILLS for virtual
3373 operands.
3374
f5c8cff5 3375 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3376 new parameters for the statement and variable worklist as well
3377 as a bitmap of interesting SSA_NAMEs. Walk over the statement
3378 worklist recording interesting variables in the variable worklist
3379 and bitmap. Handle casts between integral and boolean types.
3380 (substitute_single_use_vars): Accept new parameters for the statement
3381 and variable worklist. When a substitution is made add a new
3382 entry to the statement worklist. Handle casts between integral
3383 and boolean types.
3384 (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3385 worklists to children. Iterate until the statement worklist
3386 is empty.
3387
f07af32f 33882004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
3389
bb7d15b6 3390 * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3391 the end of the block.
3392
eb0803a1 3393 * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3394 with BITMAP_XMALLOC.
3395
331ed8d0 3396 * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3397 with BITMAP_XMALLOC.
3398
a8ddfbad 3399 * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3400 Free nonzero_vars at the end of the function.
3401
f07af32f 3402 * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3403 need to generate code instead of a NOP_EXPR.
3404
955caa4b 34052004-05-13 Ian Lance Taylor <ian@wasabisystems.com>
3406
3407 * gcc.c (default_compilers): Fill out initializers for new Fortran
3408 entries.
3409
887e50b9 34102004-05-13 Paul Brook <paul@codesourcery.com>
3411
3412 * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3413
7faec15f 34142004-05-13 Paul Brook <paul@codesourcery.com>
3415
3416 * config/arm/arm.c (arm_default_short_enums): New function.
3417 (TARGET_DEFAULT_SHORT_ENUMS): Define.
3418
4ee9c684 34192004-05-13 Diego Novillo <dnovillo@redhat.com>
3420
3421 Merge from tree-ssa-20020619-branch.
3422
3423 * Makefile.in (reload1.o-warn): Add.
3424 (tree-alias-ander.o-warn): Add.
3425 (GMPLIBS): Define.
3426 (GMPINC): Define.
3427 (BANSHEELIB): Define.
3428 (BANSHEEINC): Define.
3429 (TREE_DUMP_H): Define.
3430 (TREE_SIMPLE_H): Define.
3431 (TREE_FLOW_H): Define.
3432 (LIBDEPS): Add BANSHEELIB.
3433 (INCLUDES): Add BANSHEEINC and GMPINC.
3434 (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3435 c-mudflap.o and c-pretty-print.o.
3436 (C_OBJS): Remove c-pretty-print.o.
3437 (OBJS-common): Remove sibcall.o.
3438 Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3439 tree-ssa.o, tree-optimize.o, tree-simple.o,
3440 tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3441 tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3442 tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3443 tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3444 tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3445 tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3446 tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3447 tree-tailcall.o, gimple-low.o, tree-iterator.o,
3448 tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3449 tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3450 tree-profile.o.
3451 (OBJC-archive): Add tree-nomudflap.o.
3452 (cc1): Add dependency on @TREEBROWSER@.
3453 (c-decl.o): Add dependency on TREE_DUMP_H.
3454 (c-dump.o): Likewise.
3455 (c-common.o): Add dependency on tree-iterator.h
3456 (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3457 (gtype-desc.o): Add dependency on TREE_FLOW_H.
3458 (tree.o): Add dependency on tree-iterator.h,
3459 BASIC_BLOCK_H and TREE_FLOW_H.
3460 (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3461 (langhooks.o): Add dependency on TREE_SIMPLE_H.
3462 (tree-alias-type.o, tree-alias-ander.o,
3463 tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3464 tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3465 tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3466 tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3467 domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3468 tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3469 tree-nested.o, tree-iterator.o, tree-dfa.o,
3470 tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3471 tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3472 gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3473 tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3474 tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3475 tree-sra.o, tree-complex.o, tree-profile.o,
3476 rtl-profile.o): New rules.
3477 (function.o): Add dependency on basic-block.h
3478 (expr.o): Add dependency on tree-iterator.h.
3479 (sibcall.o): Remove.
3480 (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3481 (cfg.o): Add dependency on TIMEVAR_H.
3482 (cfghooks.o): Add dependency on TREE_FLOW_H.
3483 (reg-stack.o): Add dependency on basic-block.h.
3484 (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3485 c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3486 tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3487 tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3488 tree-alias-type.h, tree-alias-common.h,
3489 tree-alias-type.c, tree-alias-common.c,
3490 tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3491 rtl-profile.c and tree-nested.c.
3492 (gt-tree-alias-common.h, gt-tree-mudflap.h,
3493 gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3494 gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3495 gt-tree-cfg.h, gt-tree-nested.h): New rules.
3496 (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3497 * basic-block.h: Include predict.h
3498 (struct edge_def): Add GTY marker.
3499 Change field 'insns' to be a union of tree and rtx.
3500 (EDGE_TRUE_VALUE): Define.
3501 (EDGE_FALSE_VALUE): Define.
3502 (EDGE_EXECUTABLE): Define.
3503 (struct bb_ann_d): Forward declare.
3504 (struct basic_block_def): Add GTY marker.
3505 Remove fields head_tree and end_tree.
3506 Add fields stmt_list, rbi and tree_annotations.
3507 (struct reorder_block_def): Define.
3508 (basic_block_info): Add GTY marker.
3509 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3510 variables instead of macros.
3511 (flow_call_edges_add): Remove declaration.
3512 (make_eh_edge): Remove declaration.
3513 (brief_dump_cfg, find_edge, tree_predicted_by_p,
3514 rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3515 predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3516 cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3517 alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3518 (try_redirect_by_replacing_jump): Modfiy return type to
3519 edge instead of bool.
3520 * bb-reorder.c (copy_bb): Call duplicate_block
3521 instead of cfg_layout_duplicate_bb.
3522 (copy_bb_p): Call can_duplicate_block_p instead of
3523 cfg_layout_can_duplicate_bb_p.
3524 * bitmap.c (bitmap_first_set_bit): Abort if word
3525 wasn't found.
3526 (bitmap_last_set_bit): Likewise.
3527 * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3528 (DEF_FUNCTION_TYPE_3): Add.
3529 * builtins.c (c_strlen): Make extern.
3530 (builtin_save_expr): New.
3531 (expand_builtin_nonlocal_goto): New.
3532 (expand_builtin_constant_p): Remove.
3533 (expand_builtin_mathfn): Call builtin_save_expr instead
3534 of save_expr.
3535 (expand_builtin_mathfn_2): Likewise.
3536 (expand_builtin_strcmp): Likewise.
3537 (expand_builtin_strncmp): Likewise.
3538 (expand_builtin_strcat): Likewise.
3539 (fold_builtin_cabs): Likewise.
3540 (expand_builtin_alloca): Don't trigger if -fmudflap is
3541 given.
3542 (build_string_literal): Set TREE_INVARIANT on new node.
3543 (expand_builtin_profile_fun): New.
3544 (round_trampoline_addr): New.
3545 (expand_builtin_init_trampoline): New.
3546 (expand_builtin_adjust_trampoline): New.
3547 (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3548 <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3549 <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3550 BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3551 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3552 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3553 Handle.
3554 (fold_builtin_expect): New.
3555 (fold_builtin_isascii): Don't return non-constant results
3556 in GIMPLE form.
3557 (fold_builtin_isdigit): Likewise.
3558 (fold_builtin_1): New.
3559 (fold_builtin): Call it.
3560 (build_function_call_expr): Update call to build a new
3561 CALL_EXPR.
3562 (purge_builtin_constant_p): Remove.
3563 (simplify_builtin, simplify_builtin_memcmp,
3564 simplify_builtin_strcmp, simplify_builtin_strncmp,
3565 simplify_builtin_strpbrk, simplify_builtin_strstr,
3566 simplify_builtin_strchr, simplify_builtin_strrchr,
3567 simplify_builtin_strcat, simplify_builtin_strncat,
3568 simplify_builtin_strspn, simplify_builtin_strcspn,
3569 simplify_builtin_next_arg, simplify_builtin_va_start,
3570 simplify_builtin_sprintf): New.
3571 * builtins.def (BUILT_IN_STACK_ALLOC,
3572 BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3573 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3574 BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3575 BUILT_IN_PROFILE_FUNC_EXIT): Define.
3576 * c-common.c: Include tree-iterator.h and hashtab.h.
3577 (lang_statement_code_p): Declare.
3578 (lang_gimplify_stmt): Declare.
3579 (fix_string_type): Set TREE_INVARIANT for value.
3580 (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3581 (c_type_hash): New.
3582 (c_common_get_alias_set): Handle multiple type nodes
3583 referring to "the same" type, currently for C90 only.
3584 (c_add_case_label): Use create_artificial_label.
3585 (finish_label_address_expr): Don't set TREE_CONSTANT on
3586 result.
3587 (c_expand_expr): Don't handle STMT_EXPR.
3588 (handle_alias_attribute): Marke aliased variables to be
3589 TREE_STATIC.
3590 (handle_nonnull_attribute): Initialize arg_num.
3591 (check_function_nonnull): Likewise.
3592 (c_walk_subtrees): New.
3593 (c_estimate_num_insns_1): Don't handle
3594 EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3595 (c_decl_uninit_1): Remove.
3596 (c_decl_uninit): Remove.
3597 (c_warn_unused_result): New.
3598 * c-common.def (ASM_STMT): Change number of operands
3599 to 4.
3600 (FILE_STMT): Remove.
3601 * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3602 Remove.
3603 (lang_gimplify_stmt): Add.
3604 (expand_stmt): Remove.
3605 (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3606 ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3607 ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3608 FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3609 ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3610 (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3611 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3612 genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3613 genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3614 genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3615 genrtl_compound_stmt, genrtl_asm_stmt,
3616 genrtl_cleanup_stmt, c_decl_uninit): Remove.
3617 (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3618 c_tree_chain_matters_p, c_warn_unused_result,
3619 c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3620 Declare.
3621 * c-convert.c (convert): Make convert work when
3622 converting to compatible types across translation unit.
3623 * c-decl.c: Include langhooks.h, tree-mudflap.h,
3624 tree-simple.h, diagnostic.h and tree-dump.h
3625 (merge_decls): Initialize oldtype to NULL.
3626 (finish_decl): Use DECL_HARD_REGISTER instead of
3627 DECL_C_HARD_REGISTER.
3628 (check_bitfield_type_and_width): Check for null
3629 lang_type_specific when check the precision of an enum.
3630 (grokdeclarator): Immediately layout an ARRAY_TYPE used
3631 in a pointer-to-array declarator.
3632 (finish_struct): Clear allocated struct lang_type.
3633 (finish_enum): Set enum_min and enum_max. Set
3634 TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3635 not to the enumerators.
3636 (set_decl_nonlocal): New.
3637 (store_parm_decls): Use it via walk_tree.
3638 (c_finalize): New.
3639 (finish_function): When !targetm.have_ctors_dtors,
3640 record static constructors and destructors here...
3641 (c_expand_body_1): ... not here.
3642 (c_expand_decl): Rename from c_expand_decl_stmt.
3643 Handle all C-specific expansion semantics.
3644 * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3645 STMT_LINENO.
3646 * c-format.c (handle_format_arg_attribute): Initialize
3647 format_num.
3648 * c-lang.c: Include tree-inline.h
3649 (LANG_HOOKS_EXPAND_DECL,
3650 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3651 LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3652 LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3653 LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3654 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3655 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3656 (c_types_compatible_p): New.
3657 * c-mudflap.c: New file.
3658 * c-objc-common.c: Include tree-mudflap.h
3659 (start_cdtor, finish_cdtor): Collapse
3660 together into
3661 (build_cdtor): ...here. Update to construct a complete tree
3662 for the function. No need to call push_scope, pop_scope, or
3663 clear_last_expr, or set current_function_cannot_inline.
3664 (c_missing_noreturn_ok_p): Change prototype to return
3665 bool.
3666 (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3667 * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3668 opts.c.
3669 (c_common_post_options): Don't ever use rtl inlining.
3670 * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3671 * c-pragma.c (handle_pragma_redefine_extname): Define
3672 always.
3673 (init_pragma): Activate #pragma redefine_extname for mudflap.
3674 * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3675 (pp_c_initializer): Accept any type CONSTRUCTOR.
3676 (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3677 COMPLEX_TYPE.
3678 (decl_name_str): New local function.
3679 (pp_c_direct_declarator): Call it.
3680 (pp_c_primary_expression): Call it.
3681 (pp_c_id_expression): Call it.
3682 (pp_c_statement): Call it.
3683 (print_c_tree): Create new pp object.
3684 * c-pretty-print.h (pp_c_tree_decl_identifier,
3685 print_c_tree): Declare.
3686 * c-semantics.c: Include langhooks.h
3687 (lang_expand_stmt, lang_expand_decl_stmt,
3688 find_reachable_label_1, find_reachable_label,
3689 expand_unreachable_if_stmt, expand_unreachable_stmt,
3690 genrtl_do_stmt_1): Remove.
3691 (begin_stmt_tree): Don't check for changed filename.
3692 Call annotate_with_locus.
3693 (finish_stmt_tree): Don't set line for end of function.
3694 (build_stmt): Don't check type nodes for
3695 side effects.
3696 (build_stmt): Set TREE_SIDE_EFFECTS.
3697 Set EXPR_LOCUS instead of STMT_LINENO.
3698 (lang_expand_stmt, lang_expand_decl_stmt,
3699 expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3700 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3701 genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3702 genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3703 genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3704 genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3705 genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3706 find_reachable_label_1, expand_unreachable_if_stmt,
3707 expand_unreachable_stmt): Remove.
3708 (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3709 * c-simplify.c: New file.
3710 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3711 (struct lang_type): Add fields enum_min and enum_max.
3712 (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3713 (c_expand_decl, c_missing_noreturn_ok_p,
3714 c_types_compatible_p): Declare.
3715 * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3716 compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3717 (default_function_array_conversion): Rely on build to
3718 set TREE_CONSTANT.
3719 (parser_build_binary_op, pointer_diff): Likewise.
3720 (build_unary_op, build_binary_op): Likewise.
3721 (build_array_ref):
3722 (build_external_ref): Set TREE_INVARIANT.
3723 (build_c_cast, pop_init_level): Likewise.
3724 (process_init_element): Use ASM_VOLATILE_P.
3725 (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3726 (c_finish_case): Call c_do_switch_warnings.
3727 * c.opt (fdump-): Remove.
3728 * calls.c (try_to_integrate): Remove.
3729 (prepare_call_address): Replace fndecl arg with a
3730 precomputed static chain value.
3731 (emit_call_1): New argument for full call expr.
3732 (flags_from_decl_or_type): Call special_function_p.
3733 (initialize_argument_information): Add argument
3734 may_tailcall.
3735 (purge_reg_equiv_notes): New.
3736 (expand_call): Do not try to expand calls inline.
3737 (fixup_tail_calls): New.
3738 * cfg.c: Include timevar.h and ggc.h.
3739 (bb_pool, edge_pool): Remove.
3740 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3741 (entry_exit_blocks): Remove.
3742 (rbi_pool): Declare.
3743 (init_flow): Do not create pools.
3744 Allocate entry/exit block.
3745 (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3746 (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3747 (unlink_block): Clear b->prev_bb and b->next_bb.
3748 (compact_blocks): Clear all slots of BASIC_BLOCK array.
3749 (dump_flow_info): Work on trees too.
3750 (dump_cfg_bb_info): New.
3751 (brief_dump_cfg): New.
3752 * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3753 (find_edge): New.
3754 * cfgbuild.c (rtl_make_eh_edge): Rename from
3755 make_eh_edge. Update all users.
3756 (find_basic_blocks): Don't call VARRAY_FREE on
3757 basic_block_info.
3758 * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3759 and newpos2.
3760 (delete_unreachable_blocks): Return changed status.
3761 (merge_seq_blocks): New.
3762 * cfghooks.c: Include tree-flow.h
3763 (tree_register_cfg_hooks, ir_type): New.
3764 (redirect_edge_and_branch): Change return type to edge.
3765 (predict_edge, predicted_by_p, can_duplicate_block_p,
3766 duplicate_block, block_ends_with_call_p,
3767 block_ends_with_condjump_p, flow_call_edges_add): New.
3768 * cfghooks.h (redirect_edge_and_branch): Change return
3769 type to edge.
3770 (predict_edge, predicted_by_p, can_duplicate_block_p,
3771 duplicate_block, block_ends_with_call_p,
3772 block_ends_with_condjump_p, flow_call_edges_add): Declare.
3773 (redirect_edge_and_branch): Change return type to edge.
3774 (struct cfg_hooks): Add fields block_ends_with_call_p,
3775 block_ends_with_condjump_p, flow_call_edges_add,
3776 predict_edge, predicted_by_p, can_duplicate_block_p and
3777 duplicate_block.
3778 (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3779 * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3780 (fixup_reorder_chain): Use initialize_bb_rbi.
3781 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3782 (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3783 (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3784 (insn_locators_initialize): Use new info about blocks.
3785 * cfglayout.h (typedef struct reorder_block_def): Moved to
3786 basic_block.h.
3787 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3788 removed.
3789 * cfgloop.c: Include tree.h and tree-flow.h.
3790 * cfgloop.h (create_loop_notes): Declare.
3791 * cfgloopmanip.c (create_loop_notes): New.
3792 * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3793 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3794 and duplicate_block fields.
3795 (create_basic_block_structure): Don't look at
3796 RTX_INTEGRATED_P.
3797 (rtl_block_ends_with_call_p): New.
3798 (rtl_block_ends_with_condjump_p): New.
3799 (need_fake_edge_p): Moved from cfganal.c.
3800 (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3801 (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3802 rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3803 (cfg_layout_rtl_cfg_hooks): Ditto.
3804 * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3805 functions to be reachable.
3806 * cgraphunit.c (decide_is_function_needed):
3807 * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3808 inline functions don't need to be output.
3809 (cgraph_assemble_pending_functions): Don't do anything
3810 special for nested functions.
3811 (cgraph_mark_functions_to_output): Likewise.
3812 (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3813 (cgraph_analyze_function): Use estimate_num_insns.
3814 (cgraph_mark_functions_to_output): Likewise.
3815 (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3816 (cgraph_expand_function): Allow functions to not be
3817 emitted.
3818 (cgraph_remove_unreachable_nodes):
3819 (cgraph_recursive_inlining_p): Simplify.
3820 (lookup_recursive_calls,
3821 cgraph_decide_recursive_inlining): New.
3822 (cgraph_decide_inlining_*): Update calls of
3823 cgraph_mark_inline.
3824 * combine.c (get_pos_from_mask): Always set *plen.
3825 * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3826 ftree-based-profiling, ftree-ccp, ftree-ch,
3827 ftree-combine-temps, ftree-copyrename, ftree-dce,
3828 ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3829 ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3830 ftree-lrs): Add.
3831 * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3832 Undefine.
3833 * configure.ac: Add --enable-tree-browser option.
3834 Add --with-libbanshee option.
3835 Add GMPLIBS and GMPINC.
3836 * configure: Regenerate.
3837 * coverage.c (tree_ctr_tables): New.
3838 (coverage_counter_alloc): Use it.
3839 (build_ctr_info_value): Ditto.
3840 (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref.
3841 (tree_coverage_counter_ref): New.
3842 * coverage.h (coverage_counter_ref): Remove declaration.
3843 (rtl_coverage_counter_ref): Declare.
3844 (tree_coverage_counter_ref): Declare.
3845 * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3846 (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3847 * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3848 (struct cse_basic_block_data): Rename enum values to not
3849 conflict with profile.h; update all uses.
3850 * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3851 in comments.
3852 * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3853 * diagnostic.h (debug_output_buffer, dump_generic_node,
3854 print_generic_stmt, print_generic_stmt_indented,
3855 print_generic_expr, print_generic_decl,
3856 debug_generic_expr, debug_generic_stmt, debug_c_tree):
3857 Declare.
3858 * dominance.c: Cache immediate dominators.
3859 * domwalk.c: New file.
3860 * domwalk.h: New file.
3861 * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3862 (gen_subprogram_die): Generate a DIE for a named
3863 return value.
3864 (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3865 (add_location_or_const_value_attribute): Likewise.
3866 (add_bound_info): Likewise.
3867 (gen_decl_die): Likewise.
3868 * emit-rtl.c (maybe_set_first_label_num): New.
3869 (copy_most_rtx): Don't copy the integrated flag.
3870 Copy the new return_val flag.
3871 * et-forest.c (MAX_NODES): Define.
3872 (record_path_before_1): Abort if len is greater than
3873 MAX_NODES.
3874 * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3875 gen_eh_region_catch, gen_eh_region_allowed,
3876 gen_eh_region_must_not_throw, get_eh_region_number,
3877 get_eh_region_may_contain_throw, get_eh_region_tree_label,
3878 set_eh_region_tree_label, expand_resx_expr): New.
3879 (expand_eh_region_start, expand_start_catch): Use them.
3880 (expand_end_catch): Tidy.
3881 (note_eh_region_may_contain_throw): Take region argument.
3882 (note_current_region_may_contain_throw): New.
3883 (get_exception_filter): Export.
3884 (collect_eh_region_array): Export.
3885 (remove_unreachable_regions): Check ERT_TRY based on reachability
3886 of catches, not reachability of continue_label. Never remove
3887 ERT_MUST_NOT_THROW regions.
3888 (collect_rtl_labels_from_trees): New.
3889 (convert_from_eh_region_ranges): Use it.
3890 (connect_post_landing_pads): Handle dying cleanups.
3891 (struct reachable_info): Add callback data.
3892 (add_reachable_handler): Invoke the callback.
3893 (foreach_reachable_handler): New.
3894 (reachable_handlers): Use it.
3895 (arh_to_landing_pad, arh_to_label): New.
3896 (can_throw_internal_1): Split out from can_throw_internal.
3897 (can_throw_external_1): Similarly.
3898 * except.h: Update.
3899 * explow.c (emit_stack_save): Remove savearea mode check.
3900 (update_nonlocal_goto_save_area): New.
3901 (allocate_dynamic_stack_space): Use it.
3902 (probe_stack_range): Never emit loop notes.
3903 * expmed.c (extract_fixed_bit_field): Always propagate the
3904 target for the shift if it is a REG.
3905 * expr.c: Include tree-iterator.h
3906 (is_zeros_p): Remove.
3907 (categorize_ctor_elements_1, categorize_ctor_elements): New.
3908 (count_type_elements): New.
3909 (mostly_zeros_p): Use them.
3910 (expr_wfl_stack): Remove.
3911 (convert_move): Do nothing if to and from are the same.
3912 (emit_block_move_via_loop): Don't emit LOOP notes.
3913 (emit_move_insn): Don't handle CONSTANT_P_RTX.
3914 (emit_move_insn_1): Don't generate inline warnings.
3915 (expand_vars, expand_var): Split from ...
3916 (expand_expr_1): ... here.
3917 (expand_expr_real, expand_expr_real_1): Use new macros
3918 EXPR_LOCATION and EXPR_HAS_LOCATION.
3919 * expr.h (simplify_builtin_fputs,
3920 simplify_builtin_strcpy, simplify_builtin_strncpy,
3921 expand_var, fixup_tail_calls,
3922 update_nonlocal_goto_save_area): Declare.
3923 (lookup_static_chain, expand_inline_function,
3924 mark_seen_cases): Remove.
3925 (prepare_call_address): Change type of 2nd argument to
3926 rtx.
3927 * final.c (profile_function): Update static chain test.
3928 (final): Don't look at RTX_INTEGRATED_P.
3929 * flags.h (flag_mudflap, flag_mudflap_threads,
3930 flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3931 flag_tree_dce, flag_tree_combine_temps,
3932 flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3933 flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3934 flag_tree_points_to): Declare.
3935 (enum pta_type): Declare.
3936 * flow.c (lang_missing_noreturn_ok_p): Remove.
3937 (check_function_return_warnings): Remove.
3938 (update_life_info): Update comments.
3939 (free_basic_block_vars): Don't call VARRAY_FREE for
3940 basic_block_info.
3941 (regno_uninitialized): Remove.
3942 * fold-const.c (int_const_binop): Make extern.
3943 (non_lvalue): Rely on build to set TREE_CONSTANT.
3944 (operand_equal_p): Replace only_const argument with
3945 flags. Allow pure functions if OEP_PURE_SAME.
3946 (fold): Use OEP_ONLY_CONST.
3947 (invert_truthvalue) <NOP_EXPR> Break if argument is of
3948 boolean type.
3949 (fold_relational_hi_lo,
3950 nondestructive_fold_binary_to_constant,
3951 nondestructive_fold_unary_to_constant,
3952 fold_read_from_constant_string): New.
3953 * function.c (struct function): Remove calls_constant_p.
3954 (current_function_calls_constant_p): Remove.
3955 (inline_function_decl): Remove.
3956 (put_var_into_stack): Don't use it.
3957 (fix_lexical_addr): Likewise.
3958 (inline_function_decl): Remove extern declaration.
3959 (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3960 (trampolines_created): Move to varasm.c.
3961 (free_after_compilation): Update for removed fields.
3962 (allocate_struct_function): Likewise.
3963 (delete_handlers, lookup_static_chain): Remove.
3964 (fix_lexical_addr): Don't consider non-local variable refs.
3965 (trampoline_address): Remove.
3966 (round_trampoline_addr): Move to builtins.c.
3967 (adjust_trampoline_addr): Remove.
3968 (expand_function_start): Update for changes to static chain
3969 and nonlocal goto handling.
3970 (initial_trampoline): Move to varasm.c.
3971 (expand_function_end): Don't build trampolines or kill
3972 unreferenced nonlocal goto labels.
3973 (free_after_compilation): Don't set it.
3974 (expand_function_end): Likewise.
3975 (setjmp_vars_warning): Rename from
3976 uninitialized_vars_warning, remove uninitialized vars warning.
3977 (uninitialized_vars_warning): Remove old comment
3978 and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3979 and do not call the langhook.
3980 (expand_function_start, expand_function_end): Don't do
3981 function instrumentation here.
3982 (clear_block_marks): Rename from reorder_blocks_0, export.
3983 (blocks_nreverse): Export.
3984 (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3985 of rtl.
3986 (reset_block_changes, record_block_change, finalize_block_changes,
3987 check_block_change, free_block_changes): New functions.
3988 (assign_parms): Setting of current_function_stdarg
3989 moved ...
3990 (allocate_struct_function): ... here.
3991 * function.h (struct function): Remove x_nonlocal_labels,
3992 x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3993 x_context_display, x_trampoline_list, needs_context.
3994 Add static_chain_decl, nonlocal_goto_save_area.
3995 (struct function): Remove x_clobber_return_insn.
3996 Add tail_call_emit field, last_label_uid,
3997 unexpanded_var_list, dont_emit_block_notes,
3998 ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3999 (clear_block_marks): Declare.
4000 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4001 (mfwrap_spec, mflib_spec): Declare.
4002 (cpp_unique_options, cc1_options): Ditto.
4003 (default_compilers): Add .F and .f90.
4004 (static_specs): Add mfwrap and mflib.
4005 * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4006 CONSTANT_RTX_P.
4007 (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4008 Update to match insns field in struct edge_def.
4009 * gdbinit.in (pgs, pge): Define.
4010 * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4011 instead of the integrated flag.
4012 * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4013 * gengtype-yacc.y (bitfieldlen): Add empty action.
4014 (struct_fields): Accept unnamed bitfields.
4015 (bitfieldlen): Split from ...
4016 (bitfieldopt): ... here.
4017 * gengtype.c (ifiles): Add tree-alias-type.h and
4018 tree-flow.h.
4019 * genrecog.c (validate_pattern): Do not handle
4020 CONSTANT_P_RTX.
4021 * gimple-low.c: New file.
4022 * gimplify.c: New file.
4023 * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4024 (restore_line_notes): Do not set RTX_INTEGRATED_P.
4025 * ifcvt.c (dead_or_predicable): Initialize local variable
4026 'earliest'.
4027 * input.h (expr_wfl_stack): Remove.
4028 * integrate.c (INTEGRATE_THRESHOLD): Remove.
4029 (setup_initial_hard_reg_value_integration): Likewise.
4030 (initialize_for_inline): Likewise.
4031 (note_modified_parmregs): Likewise.
4032 (integrate_parm_decls): Likewise.
4033 (process_reg_param): Likewise.
4034 (save_parm_insns): Likewise.
4035 (copy_insn_list): Likewise.
4036 (copy_insn_notes): Likewise.
4037 (compare_blocks): Likewise.
4038 (find_block): Likewise.
4039 (inlining): Likewise.
4040 (function_cannot_inline_p): Likewise.
4041 (parmdecl_map): Likewise.
4042 (in_nonparam_insns): Likewise.
4043 (save_for_inline): Likewise.
4044 (FIXED_BASE_PLUS): Likewise.
4045 (expand_inline_function): Likewise.
4046 (copy_rtx_and_substitute): Don't look at map->integrating,
4047 map->inline_target, and inlining, since we are never copying
4048 for integrating.
4049 Don't abort on RTX_INTEGRATED_P.
4050 (old_fun): Remove.
4051 (output_inline_function): Remove.
4052 * integrate.h (struct inline_map): Remove fields integrating,
4053 block_map, leaf_reg_map, inline_target, and local_return_label.
4054 * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4055 copy_loop_headers, never_reached_warning): Removed.
4056 (any_uncondjump_p): Reject nonlocal goto.
4057 * langhooks-def.h (lhd_types_compatible_p,
4058 lhd_expand_decl, lhd_gimplify_expr): Declare.
4059 (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4060 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4061 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4062 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4063 LANG_HOOKS_GIMPLIFY_EXPR,
4064 LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4065 LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4066 LANG_HOOKS_GIMPLIFY_EXPR,
4067 LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4068 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4069 LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4070 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4071 LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4072 LANG_HOOKS_DECL_UNINIT,
4073 LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4074 * langhooks.c: Include tree-simple.h.
4075 (lhd_expand_decl): New.
4076 (lhd_types_compatible_p): New.
4077 (lhd_decl_uninit): Remove.
4078 (lhd_gimplify_expr): New.
4079 * langhooks.h (struct lang_hooks_for_rtl_expansion):
4080 Remove.
4081 (struct lang_hooks_for_functions): Add field
4082 missing_noreturn_ok_p.
4083 (struct lang_hooks): Add field expand_decl,
4084 types_compatible_p, gimplify_expr and
4085 gimple_before_inlining.
4086 Remove fields decl_uninit and rtl_expand
4087 * opts.c (decode_options): Set flag_tree_ccp,
4088 flag_tree_dce, flag_tree_dom, flag_tree_dse,
4089 flag_tree_pre, flag_tree_ter,
4090 flag_tree_live_range_split, flag_tree_sra,
4091 flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4092 (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4093 OPT_fmudflapth, OPT_fmudflapir,
4094 OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4095 OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4096 OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4097 OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4098 OPT_ftree_points_to_ and OPT_ftree_pre.
4099 * output.h (regno_uninitialized, find_basic_blocks,
4100 cleanup_cfg, delete_unreachable_blocks,
4101 check_function_return_warnings): Remove.
4102 * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4103 PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4104 PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4105 PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4106 PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4107 * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4108 Define.
4109 * passes.c (rest_of_decl_compilation):
4110 (rest_of_handle_sibling_calls): Remove.
4111 (rest_of_handle_inlining): Remove.
4112 (rest_of_handle_gcse): Do not run
4113 purge_builtin_constant_p.
4114 (rest_of_compilation): Update.
4115 Do not call copy_loop_headers.
4116 Do rtl-based profiling only when
4117 !flag_tree_based_profiling. Register rtl-based profiling
4118 hooks.
4119 * predict.c: Include tree-flow.h, ggc.h, tree-dump.h
4120 (predicted_by_p): Rename to ...
4121 (rtl_predicted_by_p): .. this one; make global
4122 (tree_predicted_by_p): New.
4123 (dump_prediction): Add FILE argument.
4124 (predict_edge): Rename to ...
4125 (rtl_predict_edge): .. this one.
4126 (tree_predict_edge): New.
4127 (combine_predictions_for_insn): Update calls of predict_edge.
4128 (predict_loops): Break out from ...
4129 (estimate_probability): ... here; update comments; move updating
4130 of unknown probabilities from ...
4131 (estimate_bb_frequencies): ... here.
4132 (combine_predictions_for_bb): New.
4133 (tree_predict_by_opcode): New.
4134 (tree_estimate_probability): New.
4135 * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4136 PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4137 * predict.h: Add include guard.
4138 (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4139 * pretty-print.c (pp_write_text_to_stream): Make extern.
4140 * pretty-print.h (pp_write_text_to_stream): Declare.
4141 * print-rtl.c (print_rtx): Don't print the integrated flag.
4142 Print the return_val flag.
4143 * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4144 of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4145 Remove support for EXPR_WITH_FILE_LOCATION nodes.
4146 (print_node): Print TREE_INVARIANT and TREE_VISITED.
4147 * profile.c: Include cfghooks.h, tree-flow.h.
4148 (profile_hooks): New.
4149 (profile_dump_file): New.
4150 (instrument_edges): Use hooks instead of RTL-specific code.
4151 (instrument_values): Ditto.
4152 (get_exec_counts): Ditto.
4153 (compute_branch_probabilities): Ditto.
4154 (compute_value_histograms): Ditto.
4155 (branch_prob): Ditto.
4156 (find_spanning_tree): Ditto.
4157 (end_branch_prob): Ditto.
4158 (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4159 (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4160 (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4161 (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4162 (tree_register_profile_hooks): New.
4163 (rtl_register_profile_hooks): New.
4164 * ra-rewrite.c (rewrite_program): Clear variable info.
4165 * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4166 * regs.h: Add include guards.
4167 * reload.c (decompose): Clear val using memset.
4168 * rtl.def (CONSTANT_P_RTX): Remove.
4169 * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4170 (copy_loop_headers): Remove.
4171 (struct rtx_def): Replace the integrated flag with the
4172 return_val flag.
4173 (maybe_set_first_label_num): Declare.
4174 (init_branch_prob): Move declaration to value-prof.h.
4175 (end_branch_prob): Ditto.
4176 (branch_prob): Ditto.
4177 (never_reached_warning): Don't declare it.
4178 * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4179 (hoist_insn_to_edge): Update to match field insns in
4180 struct edge_def.
4181 * sbitmap.c (sbitmap_realloc): New.
4182 * sbitmap.h (sbitmap_realloc): Declare.
4183 * sibcall.c: Remove file.
4184 * simplify-rtx.c (simplify_rtx): Do not handle
4185 CONSTANT_P_RTX.
4186 * stmt.c (parse_output_constraint): Don't warn for read-write
1acf0298 4187 memory operand.
4ee9c684 4188 (tail_recursion_args): Use types_compatible_p langhook.
4189 (force_label_rtx): Don't look at inline_function_decl.
4190 (label_rtx): Set LABEL_PRESERVE_P appropriately.
4191 (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4192 (declare_nonlocal_label): Remove.
4193 (expand_goto): Don't handle nonlocal gotos.
4194 (expand_nl_handler_label): Remove.
4195 (expand_nl_goto_receivers): Remove.
4196 (expand_end_bindings): Don't expand_nl_goto_receivers. Use
4197 update_nonlocal_goto_save_area.
4198 (expand_expr_stmt_value): Check TREE_NO_WARNING.
4199 (warn_if_unused_value): Likewise.
4200 (expand_start_loop, expand_loop_continue_here,
4201 expand_end_loop): Don't create loop notes.
4202 (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4203 mark_seen_cases, check_for_full_enumeration_handling): Remove.
4204 (expand_end_case_type): Don't do warn_switch handling.
4205 (pushcase, pushcase_range) Update add_case_node calls.
4206 (add_case_node): Add dont_expand_label argument.
4207 (same_case_target_p): Don't search rtl.
4208 (expand_start_bindings_and_block, expand_end_bindings):
4209 Don't emit block notes when dont_emit_block_notes.
4210 (using_eh_for_cleanups_p): Export.
4211 (expand_return): Allow any typed rhs.
4212 (expand_stack_alloc): New.
4213 (expand_stack_save, expand_stack_restore): New.
4214 (containing_blocks_have_cleanups_or_stack_level): New
4215 function.
4216 (asm_op_is_mem_input): New fn.
4217 (expand_asm_expr): New fn.
4218 (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4219 nodes.
4220 * stor-layout.c (layout_type): Just return if type is
4221 error_mark_node.
4222 (update_alignment_for_field): Export.
4223 (variable_size): We don't care about global_bindings_p if
4224 the frontend doesn't want a list of the expressions.
4225 * system.h: Poison INTEGRATE_THRESHOLD.
4226 * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4227 TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4228 TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4229 TV_TREE_SSA_OTHER, TV_TREE_OPS,
4230 TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4231 TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4232 TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4233 TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4234 TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4235 TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4236 TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4237 TV_CONTROL_DEPENDENCES): Define.
4238 * toplev.c: Include tree-alias-common.h
4239 (current_file_decl, flag_mudflap, flag_mudflap_threads,
4240 flag_mudflap_ignore_reads, flag_tree_based_profiling,
4241 flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4242 flag_tree_dce, flag_tree_ch, flag_tree_sra,
4243 flag_tree_combine_temps, flag_tree_ter,
4244 flag_tree_live_range_split, flag_tree_dom,
4245 flag_tree_copyrename, flag_tree_dse): Declare.
4246 (f_options): Add tree-based-profiling, tree-gvn,
4247 tree-pre, tree-ccp, tree-dce,
4248 tree-dominator-opts, tree-copyrename, tree-dse,
4249 tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4250 (wrapup_global_declarations): Don't output nested inlined functions.
4251 (general_init): Call init_tree_optimization_passes.
4252 (process_options): Sorry for -ftree-based-profiling plus
4253 -ftest-coverage or -fprofile-values.
4254 * toplev.h (init_tree_optimization_passes,
4255 flag_tree_based_profiling): Declare.
4256 * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4257 * tree-alias-ander.c: New file.
4258 * tree-alias-ander.h: New file.
4259 * tree-alias-common.c: New file.
4260 * tree-alias-common.h: New file.
4261 * tree-alias-type.c: New file.
4262 * tree-alias-type.h: New file.
4263 * tree-browser.c: New file.
4264 * tree-browser.def: New file.
4265 * tree-cfg.c: New file.
4266 * tree-complex.c: New file.
4267 * tree-dfa.c: New file.
4268 * tree-dump.c (dump_enable_all): New.
4269 (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4270 (dump_node): Remove const from field suffix and swtch.
4271 (dump_files): Add null entry, .generic, .nested, .vcg,
4272 .xml and a match-all entry.
4273 (extra_dump_files, extra_dump_files_in_use,
4274 extra_dump_files_alloced): Declare
4275 (dump_option_value_info): Add raw, details, stats,
4276 blocks, vops, lineno, uid and all.
4277 (dump_register): New.
4278 (get_dump_file_info): New.
4279 (dump_begin): Call it.
4280 Do nothing for TDI_none.
4281 (dump_begin): Include phase number in dump filename.
4282 (dump_enable_all): New.
4283 (dump_switch_p_1): Split out from dump_switch_p.
4284 (dump_switch_p): Handle extra_dump_files.
4285 Start our scan at TDI_none + 1.
4286 If -fdump-tree-all was given, call dump_enable_all.
4287 * tree-dump.h: Include splay-tree.h.
4288 (dump_function, dump_function_to_file, dump_register):
4289 Declare.
4290 * tree-eh.c: New file.
4291 * tree-flow-inline.h: New file.
4292 * tree-flow.h: New file.
4293 * tree-inline.c: Re-write to handle inlining on GIMPLE.
4294 * tree-inline.h (walk_tree,
4295 walk_tree_without_duplicates): Move to tree.h.
4296 (estimate_num_insns): Declare.
4297 * tree-into-ssa.c: New file.
4298 * tree-iterator.c: New file.
4299 * tree-iterator.h: New file.
4300 * tree-mudflap.c: New file.
4301 * tree-mudflap.h: New file.
4302 * tree-nested.c: New file.
4303 * tree-nomudflap.c: New file.
4304 * tree-nrv.c: New file.
4305 * tree-optimize.c (dump_flags, vars_to_rename,
4306 in_gimple_form, all_passes, pass_gimple,
4307 pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4308 (execute_gimple, execute_rebuild_bind,
4309 gate_all_optimizations, execute_del_cfg,
4310 register_one_dump_file, register_dump_files, dup_pass_1,
4311 init_tree_optimization_passes, execute_todo,
4312 execute_one_pass, execute_pass_list): New.
4313 (clear_decl_rtl): Remove.
4314 (tree_rest_of_compilation): Update to use tree
4315 optimizers.
4316 * tree-outof-ssa.c: New file.
4317 * tree-pass.h: New file.
4318 * tree-phinodes.c: New file.
4319 * tree-pretty-print.c: New file.
4320 * tree-profile.c: New file.
4321 * tree-simple.c: New file.
4322 * tree-simple.h: New file.
4323 * tree-sra.c: New file.
4324 * tree-ssa-alias.c: New file.
4325 * tree-ssa-ccp.c: New file.
4326 * tree-ssa-copy.c: New file.
4327 * tree-ssa-copyrename.c: New file.
4328 * tree-ssa-dce.c: New file.
4329 * tree-ssa-dom.c: New file.
4330 * tree-ssa-dse.c: New file.
4331 * tree-ssa-forwprop.c: New file.
4332 * tree-ssa-live.c: New file.
4333 * tree-ssa-live.h: New file.
4334 * tree-ssa-loop.c: New file.
4335 * tree-ssa-operands.c: New file.
4336 * tree-ssa-operands.h: New file.
4337 * tree-ssa-phiopt.c: New file.
4338 * tree-ssa-pre.c: New file.
4339 * tree-ssa.c: New file.
4340 * tree-ssanames.c: New file.
4341 * tree-tailcall.c: New file.
4342 * tree.c: Include tree-iterator.h, basic-block.h and
4343 tree-flow.h.
4344 (tree_node_kind): Add phi_nodes and ssa names.
4345 (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4346 EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4347 (make_node_stat): Handle PHI_NODE and SSA_NAME.
4348 <'c'> Set TREE_INVARIANT.
4349 (copy_node_stat): Abort if trying to copy a
4350 STATEMENT_LIST.
4351 Clear TREE_VISITED.
4352 Clear annotation field.
4353 (build_constructor): Copy TREE_INVARIANT from vals.
4354 Don't clear TREE_CONSTANT.
4355 (expr_first, expr_last, expr_length): Remove.
4356 (staticp): Pass unknown component references to the language.
4357 (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4358 (skip_simple_arithmetic): Likewise.
4359 (stabilize_reference_1): Likewise.
4360 (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4361 EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4362 STATEMENT_LIST.
4363 (lhd_unsave_expr_now): Remove.
4364 (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4365 (recompute_tree_invarant_for_addr_expr): New.
4366 (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4367 Call recompute_tree_invarant_for_addr_expr.
4368 Set TREE_INVARIANT accordingly.
4369 (build2_stat): Don't handle CALL_EXPR.
4370 (build3_stat): Don't call build2_stat for CALL_EXPRs.
4371 (build_expr_wfl): Remove.
4372 (annotate_with_file_line, annotate_with_locus): New.
4373 (simple_cst_equal): Call simple_cst_list_equal to compare
4374 CONSTRUCTOR_ELTS pointers.
4375 (iterative_hash_expr): Don't hash types associated
4376 with conversions. Instead hash on the signedness of the
4377 toplevel object and the operand of the conversion.
4378 (dump_tree_statistics): Call ssanames_print_statistics
4379 and phinodes_print_statistics.
4380 (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4381 add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4382 needs_to_live_in_memory): New.
4383 (initializer_zerop): Handle VECTOR_CST. Don't check
4384 AGGREGATE_TYPE_P for CONSTRUCTOR.
4385 * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4386 SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4387 PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4388 (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4389 (CALL_EXPR): Add another operand.
4390 (EXPR_WITH_FILE_LOCATION): Remove.
4391 (SWITCH_EXPR): Add another operand.
4392 * tree.h: Update various comments.
4393 (union tree_ann_d): Forward declare.
4394 (struct tree_common): Add fields nowarning_flag,
4395 invariant_flag and visited.
4396 (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4397 PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4398 EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4399 STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4400 TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4401 IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4402 EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4403 EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4404 CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4405 BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4406 ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4407 ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4408 COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4409 CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4410 EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4411 SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4412 SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4413 PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4414 PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4415 EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4416 EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4417 EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4418 EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4419 EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4420 EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4421 EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4422 EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4423 EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4424 EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4425 TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4426 DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4427 DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4428 STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4429 TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4430 TDF_UID,): Define.
4431 (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4432 EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4433 EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4434 EXPR_WFL_SET_LINECOL): Remove.
4435 (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4436 make_phi_node, init_phinodes, fini_phinodes,
4437 release_phi_node, phinodes_print_statistics,
4438 init_ssanames, fini_ssanames, make_ssa_name,
4439 release_ssa_name, ssanames_print_statistics,
4440 annotate_with_file_line, build_empty_stmt,
4441 annotate_with_locus, expr_only, categorize_ctor_elements,
4442 count_type_elements, add_var_to_bind_expr, is_essa_node,
4443 expand_stack_alloc, expand_stack_save,
4444 expand_stack_restore, add_case_node, operand_equal_p,
4445 nondestructive_fold_unary_to_constant,
4446 nondestructive_fold_binary_to_constant,
4447 fold_read_from_constant_string, int_const_binop,
4448 strip_float_extensions, simplify_builtin, c_strlen,
4449 recompute_tree_invarant_for_addr_expr,
4450 needs_to_live_in_memory, make_vector,
4451 setjmp_vars_warning, update_alignment_for_field,
4452 expand_asm_expr, asm_op_is_mem_input,
4453 containing_blocks_have_cleanups_or_stack_level,
4454 create_artificial_label, gimplify_function_tree,
4455 get_name, unshare_expr, walk_tree,
4456 walk_tree_without_duplicates, in_gimple_form): Declare.
4457 (struct tree_exp): Add fields locus and block.
4458 (struct tree_ssa_name, struct edge_def, struct
4459 tree_phi_node, struct tree_eref_common, struct
4460 tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4461 union alias_var_def, struct tree_statement_list_node,
4462 struct tree_statement_list, enum operand_equal_flag): Declare.
4463 (enum tree_node_structure_enum): Add TS_SSA_NAME,
4464 TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4465 TS_STATEMENT_LIST.
4466 (union tree_node): Add fields ssa_name, phi, eref, ephi,
4467 euse and stmt_list.
4468 (function_cannot_inline_p, uninitialized_vars_warning,
4469 save_for_inline, output_inline_function, all_cases_count,
4470 check_for_full_enumeration_handling,
4471 declare_nonlocal_label): Remove.
4472 (enum tree_dump_index): Add TDI_none, TDI_tu,
4473 TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4474 * unroll.c (unroll_loop): Don't clear map->inline_target.
4475 * unwind-sjlj.c (uw_install_context): Make a proper static inline
4476 function.
4477 * value-prof.c (value_prof_hooks): New.
4478 (find_values_to_profile): Rename to rtl_find_values_to_profile.
4479 Move rtl-specific bits in from branch_prob.
4480 (value_profile_transformations): Rename to
4481 rtl_value_profile_transformations.
4482 (struct value_prof_hooks): New.
4483 (rtl_value_prof_hooks): New.
4484 (rtl_register_value_prof_hooks): New.
4485 (tree_find_values_to_profile): New stub.
4486 (tree_value_profile_transformations): New stub.
4487 (tree_value_prof_hooks): New stub.
4488 (tree_register_value_prof_hooks): New stub.
4489 (find_values_to_profile): New.
4490 (value_profile_transformations): New.
4491 * value-prof.h: Add multiple inclusion guard.
4492 (struct histogram_value): Change rtx fields to void *.
4493 (rtl_register_value_prof_hooks): New declaration.
4494 (tree_register_value_prof_hooks): New declaration.
4495 (find_values_to_profile): New declaration.
4496 (free_profiled_values): New declaration.
4497 (value_profile_transformations): New declaration.
4498 (struct profile_hooks): New declaration.
4499 (init_branch_prob): Declaration moved from rtl.h.
4500 (branch_prob): Declaration moved from rtl.h.
4501 (end_branch_prob): Declaration mooved from rtl.h.
4502 (tree_register_profile_hooks): New declaration.
4503 (rtl_register_profile_hooks): New declaration.
4504 (tree_profile_hooks): New declaration.
4505 (rtl_profile_hooks): New declaration.
4506 * varasm.c: Include tree-mudflap.h.
4507 (TRAMPOLINE_ALIGNMENT): Remove.
4508 (make_decl_rtl): Call mudflap_enqueue_decl.
4509 (assemble_static_space):
4510 (assemble_trampoline_template): Set and return
4511 TRAMPOLINE_ALIGNMENT.
4512 * varray.c (element): Add GENERIC_PTR_NOGC entry.
4513 Add entry for 'tree *'.
4514 Add entry for struct edge_def *.
4515 (varray_copy): New.
4516 * varray.h (enum varray_data_enum): Add
4517 VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4518 VARRAY_DATA_TREE_PTR.
4519 (union varray_data_tag): Corresponding changes.
4520 (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4521 VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4522 VARRAY_EDGE, VARRAY_TREE_PTR,
4523 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4524 VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4525 VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4526
4527 * config/*/*: Various updates for changed macros, tree
4528 codes, etc. Check ChangeLog.tree-ssa.
4529
4530 * doc/cfg.texi: New file.
4531 * doc/tree-ssa.texi: New file.
4532 * doc/c-tree.texi: Document new codes.
4533 * doc/gccint.texi: Include new files.
4534 * doc/install.texi: Document new features.
4535 * doc/invoke.texi: Document new switches.
4536 * doc/passes.texi: Document new passes.
4537 * doc/rtl.texi: Update changed RTL codes.
4538 * doc/sourcebuild.texi: Update build instructions.
4539 * doc/standards.texi: Document Fortran changes.
4540 * doc/tm.texi: Update.
4541
acac6d5d 45422004-05-12 Paolo Bonzini <bonzini@gnu.org>
4543
4544 Replace several arrays with a struct of arrays.
1acf0298 4545 * combine.c (struct reg_stat): New.
4546 (init_reg_last_arrays): Renamed to...
4547 (init_reg_last): ...this. Callers adjusted.
4548 (reg_stat): New.
4549 (combine_instructions): Allocate it and use it.
4550 (reg_last_death, reg_last_set, reg_last_set_value,
4551 reg_last_set_label, reg_last_set_table_tick,
4552 reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4553 reg_last_set_mode, reg_last_set_nonzero_bits,
4554 reg_last_set_sign_bit_copies): Replace throughout
4555 with items of reg_stat.
acac6d5d 4556
99f803d9 45572004-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
4558
4559 PR optimization/15100
4560 * combine.c (distribute_notes): Don't create a dangling
4561 REG_LIBCALL/REG_RETVAL note.
4562
68bd0d0d 45632004-05-11 Aldy Hernandez <aldyh@redhat.com>
4564
4565 * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4566
4567 * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4568 negv2si2.
4569
5629e21d 45702004-05-11 Aldy Hernandez <aldyh@redhat.com>
4571
4572 * doc/md.texi (Standard Names): Fix typo in vec_init description.
4573
b8f03392 45742004-05-11 Geoffrey Keating <geoffk@apple.com>
4575
4576 * doc/gty.texi (GTY Options): Clarify example.
4577
5ee5b31d 45782004-05-11 Fariborz Jahanian <fjahanian@apple.com>
4579
4580 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4581 Add const qualifier to altivec vector type if one is needed.
4582
5bf3fee3 45832004-05-11 Paul Brook <paul@codesourcery.com>
4584
4585 * flags.h (flag_short_enums): Update comment.
4586 * opts.c (decode_options): Set flag_short_enums to 2.
4587 * toplev.c (flag_short_enums): Update comment.
4588 (process_options): Call default_short_enums target hook.
4589
23ff29a1 45902004-05-11 Andrew Pinski <pinskia@gcc.gnu.org>
4591
4592 PR target/14063
4593 * config/rs6000/altivec.md (altivec_dssall):
4594 Change to unspec_volatile.
4595 (altivec_dss): Likewise.
4596
46cc1ca7 45972004-05-10 Aldy Hernandez <aldyh@redhat.com>
4598
4599 * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4600 vnor.
4601 ("one_cmplv8hi2"): Same.
4602 ("one_cmplv4si2"): Same.
4603
66209063 46042004-05-10 Kaz Kojima <kkojima@gcc.gnu.org>
4605
4606 PR target/15130
4607 * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4608 * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4609 into account. Compute the correct number of general registers
4610 for the return value. Generate a special push/pop sequence when
4611 failing to get a temporary register for non SHmedia epilogue.
4612 (sh_expand_epilogue): Add an argument to show whether it's for
4613 sibcall or not. Set the 3rd argument of output_stack_adjust to
4614 -1 if needed.
4615 (sh_need_epilogue): Call sh_expand_epilogue with 0.
4616 * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4617 with 1.
4618 (epilogue): Call sh_expand_epilogue with 0.
4619
5c0dc02c 46202004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
4621
4622 * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4623 goto a cleanup label. After the cleanup, free the allocated memory.
4624
18d2ab27 46252004-05-10 Ziemowit Laski <zlaski@apple.com>
4626
4627 * config/rs6000/altivec.h (vec_sld): Add overloads for
4628 argument/return types of 'vector bool int', 'vector bool short'
4629 and 'vector bool char'.
4630
e40d1c7f 46312004-05-10 Zack Weinberg <zack@codesourcery.com>
4632
4633 * c-decl.c (store_parm_decls_newstyle): Correct test for a
4634 nested function.
4635
3a7ca9df 46362004-05-10 Richard Sandiford <rsandifo@redhat.com>
4637
4638 * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4639 treating missing ones as "".
4640 * config/mips/mips.md: Remove constraints from match_operands and
4641 match_scratches if they appear in define_expands (except reload*),
4642 define_peephole2s, define_splits or attribute specifications.
4643 * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4644 constraint strings.
4645
6dba043d 46462004-05-10 Alan Modra <amodra@bigpond.net.au>
4647
4648 * config/rs6000/rs6000.c (function_arg_boundary): Always align
4649 AltiVec vectors.
4650 (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4651 vectors by refererence. Align the same for TARGET_64BIT to a 16
4652 byte boundary. Remove useless code. Add function comment.
4653 (function_arg): Similarly. Move gpr rs6000_mixed_function_arg
4654 call to where it belongs.
4655 (function_arg_partial_nregs): Return true for all TARGET_32BIT
4656 -mabi=no-altivec AltiVec vectors. Fix debug output.
4657 (rs6000_va_arg): Adjust for AltiVec change.
4658
50459f30 46592004-05-10 Paul Brook <paul@codesourcery.com>
4660
4661 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4662 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4663 (TARGET_DOUBLEWORD_ALIGN): Use it.
4664 (WCHAR_TYPE): Define.
4665 (WCHAR_SIZE_TYPE): Define.
4666 (SIZE_TYPE): Define.
4667
19d2405c 46682004-05-10 Alan Modra <amodra@bigpond.net.au>
4669
4670 * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4671 when size is 8 bytes.
4672 (function_arg_advance): Account for stack space used by AltiVec
e40d1c7f 4673 args when -mabi=altivec. Simplify alignment calculations. For
19d2405c 4674 ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4675 (function_arg): Similarly.
4676 (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4677 not AltiVec ABI.
4678 (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change.
4679 Correct alignment, and align before testing reg count. Remove
4680 TREE_THIS_VOLATILE from reg. Don't emit unused labels.
4681 (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4682 TARGET_FPRS here..
4683 (rs6000_function_value): .. not here before call.
4684
3c5c1821 46852004-05-09 Aldy Hernandez <aldyh@redhat.com>
4686
4687 * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4688
4d714d55 46892004-05-09 Zack Weinberg <zack@codesourcery.com>
4690
4691 PR 15007
4692 * c-decl.c (current_file_decl): Rename to all_translation_units,
4693 adjust comment.
4694 (pop_scope): If popping file_scope, construct a
4695 TRANSLATION_UNIT_DECL and make it the context of all the
4696 symbols in the scope.
4697 (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4698 (pushdecl): Clarify comment. Do not set DECL_CONTEXT of
4699 anything to current_file_decl.
4700 (pushdecl_top_level): Likewise.
4701 (store_parm_decls_newstyle): Adjust check for nested function.
19d2405c 4702 (c_write_global_declarations): Update for renamed variable.
4703
1c192023 47042004-05-09 Aldy Hernandez <aldyh@redhat.com>
4705
4706 * config/rs6000/rs6000-protos.h
4707 (rs6000_conditional_register_usage): Protoize.
4708
4709 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4710
4711 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4712 function.
4713
270029e0 47142004-05-08 Roger Sayle <roger@eyesopen.com>
4715
4716 * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4717 where op is a comparison operator and C1 and C2 are integer constants
4718 into a range check.
4719 (fold): Call fold_div_compare.
4720
06ccbfc1 47212004-05-08 Eric Botcazou <ebotcazou@libertysurf.fr>
4722
4723 * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4724 problems with earlier versions of the GNU compiler.
4725
1aad6057 47262004-05-07 Aldy Hernandez <aldyh@redhat.com>
4727
4728 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4729 Declare.
4730
4731 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4732 (rs6000_hard_regno_mode_ok): New.
4733 (rs6000_init_hard_regno_mode_ok): New.
4734 (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4735
4736 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4737 result.
4738
718a2160 47392004-05-07 Ziemowit Laski <zlaski@apple.com>
4740
4741 * config/rs6000/altivec.h (vector, pixel, bool): Do not
4742 define as macros #ifdef __APPLE_ALTIVEC__.
4743
47442004-05-07 Fariborz Jahanian <fjahanian@apple.com>
4745
5b55053a 4746 * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4747 Generate appropriate parallels for vector arguments
4748 passed to vararg functions. (function_arg): make the call
4749 to rs6000_mixed_function_arg for vector args as needed.
4d714d55 4750
a12555e9 47512004-05-07 Richard Sandiford <rsandifo@redhat.com>
4752
4753 * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4754 EABI_FLOAT_VARARGS_P.
4755
0e45acd8 47562004-05-07 Richard Sandiford <rsandifo@redhat.com>
4757
4758 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4759 * config/mips/mips.c (override_options): Disable branch likely
4760 instructions if TUNE_MIPS5500.
4761
5af0aa86 47622004-05-07 Richard Sandiford <rsandifo@redhat.com>
4763
4764 * config/mips/mips.c (override_options): Allow the hi and lo registers
4765 to store any integral mode, not just MODE_INTs.
4766
cea3564f 47672004-05-07 Paul Brook <paul@codesourcery.com>
4768
4769 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4770 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4771 (TARGET_DOUBLEWORD_ALIGN): Use it.
4772 (WCHAR_TYPE): Define.
4773 (WCHAR_SIZE_TYPE): Define.
4774 (SIZE_TYPE): Define.
4775
9f94d446 47762004-05-07 Uros Bizjak <uros@kss-loka.si>
4777
4778 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4779 testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4780
7caa482e 47812004-05-07 Andrew Pinski <pinskia@physics.uc.edu>
4782
4783 * loop-doloop.c (doloop_valid_p): Make sure that body
4784 gets freed.
4785
954084b8 47862004-05-07 Eric Botcazou <ebotcazou@act-europe.fr>
4787
4788 * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4789 declaration.
4790 * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4791 (sparc_skip_caller_unimp): New global variable.
4792 (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4793 Use it instead of SKIP_CALLERS_UNIMP_P.
4794 * config/sparc/sparc.md (call expander): Add sanity check.
4795 (call_address_struct_value_sp32): Re-sync with expander.
4796 (call_symbolic_struct_value_sp32): Likewise.
4797 (return peepholes): Use 'sparc_skip_caller_unimp' instead
4798 of custom predicate.
4799
49a1b345 48002004-05-07 Eric Botcazou <ebotcazou@libertysurf.fr>
4801
4802 PR c++/14962
4803 * c-pragma.c (handle_pragma_redefine_extname): Only change
4804 the assembler name of FUNCTION_DECLs and VAR_DECLs.
4805
f474cd93 48062004-05-07 Uros Bizjak <uros@kss-loka.si>
4807
4808 * optabs.h (enum optab_index): Add new OTI_log1p.
4809 (log1p_optab): Define corresponding macro.
4810 * optabs.c (init_optabs): Initialize log1p_optab.
4811 * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4812 patterns.
4813 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4814 using log1p_optab.
4815 (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4816 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4817
4818 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4819
4820 * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4821 * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4822 Prototype here.
4823 * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4824 x87's fyl2xp1 instruction.
4825 (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4826 (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4827 (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4828 log1p and log1pl built-ins as inline x87 intrinsics.
4829
fb4fe02d 48302004-05-07 Loren James Rittle <ljrittle@acm.org>
4831
c2a07865 4832 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
fb4fe02d 4833 * config/arm/freebsd.h: Likewise.
4834 * config/ia64/freebsd.h: Likewise.
4835 * config/sparc/freebsd.h: Likewise.
4836
f17979aa 48372004-05-07 Hans-Peter Nilsson <hp@axis.com>
4838
4839 PR optimization/15296
4840 * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4841 getting last consecutive label at a branch.
4842 (relax_delay_slots): Similar, near top of loop.
4843
cc2266f0 48442004-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4845
4846 PR target/15202
4847 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4848 register to general register.
4849
2a06769c 48502004-05-07 Alan Modra <amodra@bigpond.net.au>
4851
4852 * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4853 TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4854 * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4855 (STACK_BOUNDARY): Delete.
4856
37c54eae 48572004-05-06 Stuart Hastings <stuart@apple.com>
9f94d446 4858
37c54eae 4859 * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4860 mistakenly clobbered by 1.423.
2a06769c 4861
66e8e04f 48622004-05-06 Richard Sandiford <rsandifo@redhat.com>
4863
4864 * doc/invoke.texi: Document -mvr4130-align.
4865 * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4866 (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4867 (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4868 (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4869 * config/mips/mips.md: Include sched-int.h.
4870 (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4871 (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4872 (override_options): Enable -mvr4130-align at -O3 and above.
4873 (mips_sim_insn): New variable.
4874 (mips_sim): New structure.
4875 (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4876 (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4877 (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4878 (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4879 (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4880 (mips_reorg): Call vr4130_align_insns.
4881 (vr4130_last_insn): New variable.
4882 (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4883 (vr4130_swap_insns_p, vr4130_reorder): New functions.
4884 (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4885 (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4886 (mips_use_dfa_pipeline_interface): Return true for the same.
4887 * config/mips/4130.md: New file.
4888 * config/mips/mips.md: Include it. Add a peephole2 to convert
4889 "mult;mflo" into "mtlo;macc".
4890 (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4891 target of maccs.
4892 (*msac_using_macc): New pattern.
4893
5d497028 48942004-05-06 Richard Sandiford <rsandifo@redhat.com>
4895
4896 * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4897 (ir_vr55_hilo): Split into...
4898 (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4899 (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4900 (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles.
4901 Add various multiplication bypasses.
4902 * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4903 multiplication.
4904
bc596cab 49052004-05-06 Uros Bizjak <uros@kss-loka.si>
4906
4907 * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4908 attribute to "XF".
4909
80ed5c06 49102004-05-05 Uros Bizjak <uros@kss-loka.si>
4911
4912 * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
bc596cab 4913 (fmod_optab, drem_optab): Define corresponding macros.
80ed5c06 4914 * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4915 * genopinit.c (optabs): Implement fmod_optab and drem_optab
4916 using fmod?f3 and drem?f3 patterns.
4917 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4918 using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4919 (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4920 BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4921 flag_unsafe_math_optimizations is set.
4922
4923 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4924 UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4925
4926 * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4927 * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4928 Prototype here.
4929 * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4930 UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4931 fprem and fprem1 instructions.
4932 (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4933 Rename insn definition to x86_fnstsw_1.
4934 (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4935 x87 instructions.
4936 (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4937 and fmodl built-ins as inline x87 intrinsics.
4938 (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4939 and dreml built-ins as inline x87 intrinsics.
4940
b7f56370 49412004-05-05 Roger Sayle <roger@eyesopen.com>
4942
4943 * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4944
17b1d822 49452004-05-05 Ian Lance Taylor <ian@wasabisystems.com>
4946
4947 PR driver/9822
4948 * doc/invoke.texi (Spec Files): Remove documentation of %c.
4949
4c821364 49502004-05-05 Chris Demetriou <cgd@broadcom.com>
4951
4952 * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4953 representation.
4954
a8a3b539 49552004-05-06 Paul Brook <paul@codesourcery.com>
4956
4957 * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4958 (arm_coproc_mem_operand): ... To this.
4959 * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4960 (arm_legitimate_index_p): Ditto.
4961 (vfp_mem_operand): Rename ...
4962 (arm_coproc_mem_operand): ... To this. Handle writeback modes.
4963 (vfp_secondary_reload_class): Use it.
4964 (output_move_double): Use doubleword load/store instructions.
4965 (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4966 * config/arm/arm.h (TARGET_LDRD): Define.
4967 (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4968 * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4969 New splitter for invalid doubleword loads.
4970 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4971 * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4972 * doc/md.texi: Document Uy constraint.
4973
b33eaee0 49742004-05-05 Jan Hubicka <jh@suse.cz>
4975
4976 PR opt/14980
4977 * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4978 inline clones.
4979
762e0956 49802004-05-05 H.J. Lu <hongjiu.lu@intel.com>
4981
4982 PR target/15290
4983 * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4984 instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4985
d6c39c7a 49862004-05-05 Mike Stump <mrs@apple.com>
4987
4988 * config/darwin-c.c (add_framework): Copy the directory name as it
4989 can be freed later. Also, ensure we always allocate enough room
4990 for the cached framework information.
4991 (find_subframework_header): Keep track of the directory where the
4992 subframework header was found.
4993 (framework_construct_pathname): Speed up by not trying to re-add a
4994 framework.
4995 * cppfiles.c (search_path_exhausted): Arrange for the missing
4996 header callback to be able to set the directory where the header
4997 was found.
4998 (cpp_get_dir): Add.
4999 * cpplib.h (missing_header_cb): Add a parameter.
5000 (cpp_get_dir): Add.
5001
50022004-05-03 Mike Stump <mrs@apple.com>
a55b2364 5003
5004 * doc/invoke.texi (Directory Options): Document -iquote.
5005 * doc/cpp.texi: Likewise.
5006 * doc/cppopts.texi: Likewise.
5007 * c-opts.c (c_common_missing_argument): Add -iquote processing.
5008 (c_common_handle_option): Likewise.
5009 * c.opt (iquote): Add.
5010 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5011 * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5012
5013 * c-opts.c (case OPT_I): Deprecate -I- support.
5014 * doc/invoke.texi: Likewise.
5015 * doc/cpp.texi: Likewise.
5016 * doc/cppopts.texi: Likewise.
5017
e086b176 50182004-05-05 Steven Bosscher <stevenb@suse.de>
5019
5020 * basic-block.h (free_basic_block_vars): Update prototype.
5021 * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5022 argument.
5023 (life_analysis): Update call.
5024 * ifcvt.c (if_convert): Likewise.
5025 * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5026 * passes.c (rest_of_handle_final): Likewise.
5027 (rest_of_compilation): Likewise.
5028 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5029
5030 * emit-rtl.c (next_real_insn): Use INSN_P.
5031 (prev_real_insn): Likewise.
5032
b72580db 50332004-05-05 Eric Christopher <echristo@redhat.com>
5034
5035 * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5036 representation.
5037
d87564aa 50382004-05-05 Paolo Bonzini <bonzini@gnu.org>
5039
5040 * config/rs6000/rs6000.c (build_opaque_vector_type):
5041 New function.
5042 (rs6000_init_builtins): Use it.
5043
4c7cc014 50442004-05-04 Bernard Giroud <bgiroud2@free.fr>
5045
5046 * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5047 (func_table): Change type from char ** to vms_func_ref.
5048 (write_rtnbeg): Update to reflect func_table change. Use
5049 fde->funcdef_number instead of rtnnum in output.
5050 (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5051
8b4b9810 50522004-05-04 Paolo Bonzini <bonzini@gnu.org>
5053 Richard Henderson <rth@redhat.com>
5054
5055 PR target/14899
5056
5057 * c-common.c (vector_types_convertible_p): New function.
5058 * c-typeck.c (comptypes): Recurse on vector types.
5059 (convert_for_assignment): Use vector_types_convertible_p.
5060 (digest_init): Use vector_types_convertible_p to check
5061 validness of constant vector initializers; otherwise treat
5062 them as scalars.
5063 * tree.c (make_or_reuse_type): New.
5064 (build_common_tree_nodes): Use it.
5065 * cp/call.c (standard_conversion): Likewise.
5066 * cp/typeck.c (comptypes): Recurse on vector types.
5067 (convert_for_assignment): Use vector_types_convertible_p.
8b4b9810 5068
32578125 50692004-05-04 Chris Demetriou <cgd@broadcom.com>
5070
5071 * config/mips/mips.c (override_options): Default to no
5072 generation of branch-likely operations when tuning for
5073 CPUs where they tend to have a negative performance impact
5074 (e.g., SB-1).
5075
a6645eae 50762004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5077
5078 * expr.c (store_constructor_field): Don't call store_constructor
5079 if bitsize is not a multiple of a byte.
5080
9318b368 50812004-05-04 Richard Sandiford <rsandifo@redhat.com>
5082
5083 * reload1.c (inherit_piecemeal_p): New function.
5084 (emit_reload_insns): When reloading a group of hard registers, use
5085 inherit_piecemeal_p to decide whether the values of individual hard
5086 registers can be inherited.
5087
b6e97f67 50882004-05-04 H.J. Lu <hongjiu.lu@intel.com>
5089
5090 * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5091 * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5092 * config/t-linux (LIB2ADDEHDEP): Likewise.
5093
5ba0fdd9 50942004-05-04 Paul Brook <paul@codesourcery.com>
5095
5096 * config/arm/crti.asm: Push an even number of registers.
5097 * config/arm/crtn.asm: And restore them. Load via sp.
5098
5a7d3c0b 50992004-05-04 Paolo Bonzini <bonzini@gnu.org>
5100
5101 * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5102 Collect overhead information.
5103 (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL
5104 parameter and pass it through.
5105 (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add
5106 MEM_STAT_DECL parameter and pass it through.
5107 (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add
5108 MEM_STAT_DECL parameter and pass it through.
5109
2859c78f 51102004-05-03 Aldy Hernandez <aldyh@redhat.com>
5111
5112 * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5113
5114 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5115
5116 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5117 rs6000_hard_regno_nregs.
5118
346fecd5 51192004-05-03 Eric Christopher <echristo@redhat.com>
5120
5121 * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5122 prologue insn instead of setting up call.
5123 (s390_emit_epilogue): Ditto.
5124 * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5125 (define_constants): Add numbers for above patterns.
5126
f588eb9f 51272004-05-03 Eric Christopher <echristo@redhat.com>
5128
5129 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5130 * config/s390/s390.c (s390_conditional_register_usage): ...here.
5131 * config/s390/s390-protos.h: Prototype.
5132
016dde50 51332004-05-03 Joe Buck <jbuck@welsh-buck.org>
5134
5135 * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5136 assignment.
5137
60a3b251 51382004-05-03 Eric Christopher <echristo@redhat.com>
5139
5140 * config/mips/mips.md: Fix branch length attribute definition.
5141
15092b28 51422004-05-03 Aldy Hernandez <aldyh@redhat.com>
5143
5144 * config.gcc: Remove --enable-altivec support.
5145
5146 * config/rs6000/altivec-defs.h: Remove.
5147
7a9fa137 51482004-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5149
5150 * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5151 * fixinc/fixincl.x: Regenerate.
5152
e3dd855f 51532004-05-03 Uros Bizjak <uros@kss-loka.si>
5154
5155 * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5156 definition.
5157 (log?f2, log10?f2, log2?f2): Reimplement expanders with
5158 float_truncate insn.
5159 (*fxtractsf3, *fxtractdf3): Remove insn definition.
5160 (logb?f2): Reimplement expanders with float_truncate insn.
5161
cdcf9499 51622004-05-03 Graham Stott <graham.stott@btinternet.com>
5163
5164 PR 14718
5165 * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5166 force_type_die for CONST_DECL.
5167
e086b176 51682004-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
5169 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
282d771c 5170
5171 * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5172 tm-dwarf2.h to tm_file.
5173 (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5174 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5175 (ASM_DEBUG_SPEC): Delete.
5176
a6b4eed2 51772004-05-03 Uros Bizjak <uros@kss-loka.si>
5178
5179 * optabs.h (enum optab_index): Add new OTI_expm1.
5180 (expm1_optab): Define corresponding macro.
5181 * optabs.c (init_optabs): Initialize expm1_optab.
5182 * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5183 patterns.
5184 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5185 using expm1_optab.
5186 (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5187 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5188
5189 * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5190 to implement expm1, expm1f and expm1l built-ins as inline x87
5191 intrinsics.
5192
459df996 51932004-05-02 Alexandre Oliva <aoliva@redhat.com>
5194
5195 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
5196 * config/frv/frv.md (*return_true, *return_false): New patterns.
5197
0d001c34 51982004-05-02 Kazu Hirata <kazu@cs.umass.edu>
5199
5200 * rtl.h (PHI_NODE_P): Remove.
5201
c20b6803 52022004-05-02 Eric Botcazou <ebotcazou@act-europe.fr>
5203
5204 PR middle-end/14988
5205 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5206 when passed -2 as 'align'.
5207 (put_var_into_stack): Use 'bool' as the type for the three local
5208 predicates. Adjust calls to put_reg_into_stack.
5209 When passed a CONCAT, instruct put_reg_into_stack to use
5210 a consecutive stack slot for the second part.
5211 (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5212 'consecutive_p' parameter. Turn the three predicates into 'bool'
5213 parameters. Retrieve the register mode from 'reg'.
5214 When consecutive_p is true, instruct assign_stack_local_1 to use
5215 BITS_PER_UNIT alignment.
5216 (put_addressof_into_stack): Use 'bool' as the type for the two
5217 local predicates. Adjust call to put_reg_into_stack.
5218
50c90ea2 52192004-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5220
5221 * fold-const.c (fold_convert_const, fold): Add missing
5222 FIX_ROUND_EXPR case.
5223
05036ed0 52242004-05-02 Alexandre Oliva <aoliva@redhat.com>
5225
25bed967 5226 * configure.ac (FLEX, BISON): Only use tools from the build tree
5227 if build equals host.
5228 * configure: Rebuilt.
5229
d9b1ff5b 5230 * config/frv/frv-protos.h (frv_expand_epilogue,
5231 frv_expand_fdpic_call): Add bool argument.
5232 * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5233 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5234 (frv_expand_epilogue): Use new argument to decide whether to emit
5235 return instruction or copy the return address to LR.
5236 (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5237 sibcalls.
5238 (sibcall_operand): New.
5239 * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5240 PLUS nor LABEL_REF. Add sibcall_operand.
5241 * config/frv/frv.md (call, call_value): Pass false to
5242 frv_expand_fdpic_call.
5243 (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5244 (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5245 sibcall_value_internal, sibcall_value_fdpicdi): New.
5246 (return_unsigned_true, return_unsigned_false): New.
5247 (epilogue): Adjust call to frv_expand_epilogue.
5248 (sibcall_epilogue): New.
5249
05036ed0 5250 * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5251 (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5252 before redefining them.
5253
9ed65c7f 52542004-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5255
5256 * builtins.c (fold_fixed_mathfn): New function.
5257 (fold_builtin_lround, fold_builtin): Use it.
5258
0f22bc50 52592004-05-01 Jakub Jelinek <jakub@redhat.com>
5260
5261 * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5262 also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5263
1ed7854c 52642004-05-01 Kazu Hirata <kazu@cs.umass.edu>
5265
5266 * config/cris/cris.h: Revert my "fix comment typos" patch.
5267
92a94cc3 52682004-05-01 Richard Sandiford <rsandifo@redhat.com>
5269
4016b732 5270 * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
92a94cc3 5271
6399d209 52722004-05-01 Falk Hueffner <falk@debian.org>
5273
5274 * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5275 builtin_insll): Disallow 0 as first input operand.
5276
be8c6d9c 52772004-05-01 Falk Hueffner <falk@debian.org>
5278
5279 * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5280
79b865f2 52812004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
60a3b251 5282
79b865f2 5283 PR middle-end/15054
60a3b251 5284 * expr.c (expand_expr_real): Do not call preserve_temp_slots
79b865f2 5285 on a TARGET_EXPR temp.
5286 * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5287 TARGET_EXPR temp slots.
5288
32e9936c 52892004-05-01 Paolo Bonzini <bonzini@gnu.org>
5290
5291 * simplify-rtx.c (simplify_ternary_operation): When
5292 converting an IF_THEN_ELSE to a relational op, return
5293 correct mode.
5294
34f17811 52952004-04-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5296
5297 * builtins.c (fold_builtin_round): Fix comment typo.
5298 (fold_builtin_lround): New function.
5299 (fold_builtin): Use it.
5300
54b4ab99 53012004-04-20 Andrew Pinski <pinskia@physics.uc.edu>
5302
5303 PR target/11608
5304 * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5305 more like the one in config/dbxelf.h.
5306
49be8259 53072004-04-30 Zack Weinberg <zack@codesourcery.com>
5308
5309 * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5310 and adjust definition accordingly.
5311 (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5312 (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5313 * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5314 VECTOR_TYPE.
5315
316e17ae 53162004-04-30 Jason Merrill <jason@redhat.com>
5317
5318 PR c++/14587
5319 * config/i386/winnt.c (associated_type): Look for attributes on
5320 the TYPE_MAIN_VARIANT of *this.
5321 * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5322 apply the attributes to the variants.
5323
1cfd705e 53242004-04-30 Paul Brook <paul@codesourcery.com>
5325
5326 * config.gcc: Simplify arm --with-{cpu,tune} test.
5327 * config/arm/arm-cores.def: Document whitespace restrictions.
5328
af1e1452 53292004-04-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5330
5331 PR other/1963
5332 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5333
abca134b 53342004-04-30 Brian Ford <ford@vss.fsi.com>
e086b176 5335 DJ Delorie <dj@redhat.com>
5336
5337 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5338 (DWARF2_DEBUGGING_INFO): Define to enable.
5339 (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5340 DWARF2.
5341 * configure.ac (Target-specific assembler checks)
5342 <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5343 relocs.
5344 * configure: Regenerate.
5345 * config.in: Likewise.
5346
5347 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5348 (ASM_OUPUT_DWARF_OFFSET): Define.
abca134b 5349
7346ca58 53502004-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
5351
5352 * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5353 (s390_emit_call): New function prototype added.
5354 (s390_tls_get_offset): Function removed.
5355 * config/s390/s390.c (s390_function_ok_for_sibcall,
5356 s390_call_saved_register_used_p): New functions.
5357 (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5358 (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5359 (s390_emit_tls_call_insn): New function.
5360 (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5361 emit_call_insn.
5362 (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
49be8259 5363 (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
7346ca58 5364 added.
49be8259 5365 * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
7346ca58 5366 register number used to hold the target address for sibcalls.
5367 * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5368 New expanders.
49be8259 5369 ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
7346ca58 5370 "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
49be8259 5371 ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
7346ca58 5372 Expanders removed.
5373 ("call", "call_value"): Call s390_emit_call to emit the call patterns.
49be8259 5374 ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
7346ca58 5375 "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5376 ("epilogue"): Changed the call to s390_emit_epilogue to use the
5377 new parameter.
5378
7bd28bba 53792004-04-30 Kazu Hirata <kazu@cs.umass.edu>
5380
5381 * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5382 cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5383 reg-stack.c, varasm.c, config/alpha/ev4.md,
5384 config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5385 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5386 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5387 config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5388 config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5389 config/ia64/itanium2.md, config/ip2k/ip2k.c,
5390 config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5391 config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5392 comment typos.
5393
e65e4284 53942004-04-30 Paul Brook <paul@codesourcery.com>
5395
4cb5ddd5 5396 * config.gcc: Default ep9312 to hard-float.
e65e4284 5397 * config/arm/arm-cores.def: Add ARCH field.
5398 * config/arm/arm.c (FL_FOR_ARCH*): Define.
5399 (arm_arch_cirrus): New variable.
5400 (all_cores): Set and use arch.
5401 (all_architectures): Ditto.
5402 (arm_arch_name): New variable.
5403 (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5404 Set and use arm_arch_cirrus.
5405 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5406 (enum processor_type): Update ARM_CORE define.
5407 (enum target_cpus): Add. Replaces TARGET_CPU_* defines.
5408 (CPP_SPEC): Remove %(cpp_cpu_arch).
5409 (CPP_ARCH_DEFAULT_SPEC): Remove.
5410 (CPP_CPU_ARCH_SPEC): Remove.
5411 (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5412 (FPUTYPE_DEFAULT): Don't define here.
5413
b0345ee6 54142004-04-30 J"orn Rennecke <joern.rennecke@superh.com>
5415
5416 * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5417 updates too.
5418
9c291064 54192004-04-30 Paul Brook <paul@codesourcery.com>
5420
5421 * arm.c (arm_needs_doubleword_align): Use mode alignment.
5422
b9767e1c 54232004-04-30 Paolo Bonzini <bonzini@gnu.org>
5424
5425 * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5426 vec_sububs.
5427 [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5428 duplicates.
5429
fafd00c9 54302004-04-30 Uros Bizjak <uros@kss-loka.si>
5431
9c291064 5432 * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5433 atan2?f3 expanders.
fafd00c9 5434
f5f12868 54352004-04-29 Nick Clifton <nickc@redhat.com>
5436
5437 Bug 14093
5438 * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5439 * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5440 Delete static from definition.
5441 * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5442
da79e103 54432004-04-30 Uros Bizjak <uros@kss-loka.si>
5444
9c291064 5445 * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5446 UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5447 <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5448 <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
da79e103 5449
295acf4f 54502004-04-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
5451
5452 * commom.opt (Wfatal-errors): Add it.
5453 * diagnostic.c (flag_fatal_errors): Define it.
5454 (diagnostic_action_after_output): Check for flag_fatal_errors.
5455 * flags.h (flag_fatal_errors): Declare it.
5456 * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5457 * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5458
5024a4f8 54592004-04-30 Josef Zlomek <zlomekj@suse.cz>
5460
5461 * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5462 blocks which have kill flag set.
5463
b452b31a 54642004-04-29 Ben Elliston <bje@au.ibm.com>
5465
5466 * configure.ac (--with-as): Abort if user-supplied assembler
5467 cannot be executed.
5468 (--with-ld): Likewise for the linker.
5469 * configure: Regenerate.
5470
34787dd1 54712004-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5472
5473 * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5474 isn't NULL before using it.
5475
f53edb9d 54762004-04-29 Richard Sandiford <rsandifo@redhat.com>
5477
5478 PR target/15189
5479 * config/mips/mips.md (load_df_low): Use default length.
5480 (load_df_high, store_df_high): Likewise.
5481
31cd4ca7 54822004-04-29 Kazu Hirata <kazu@cs.umass.edu>
5483
5484 * config/mips/mips.md, config/mips/sb1.md,
5485 config/rs6000/rs6000.c: Fix comment typos.
5486
9c9bad97 54872004-04-29 Kazu Hirata <kazu@cs.umass.edu>
5488
5489 * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5490 Fix comment typos.
5491
767efd18 54922004-04-29 Douglas B Rupp <rupp@gnat.com>
5493
5494 * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5495 (delete_if_ordinary): Use above macro.
5496 * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5497 Update copyright.
5498 * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5499
51acdf76 55002004-04-29 Richard Earnshaw <rearnsha@arm.com>
5501
5502 * c-decl.c (get_parm_info): Use the correct tag keywords when
5503 warning about type declarations in prototypes.
5504
70ac928b 55052004-04-29 Paul Brook <paul@codesourcery.com>
5506
5507 * config.gcc: Pull list of cores from arm-cores.def.
5508
ac503e50 55092004-04-29 Paolo Bonzini <bonzini@gnu.org>
5510
5511 * combine.c (combine_simplify_rtx): Adjust call to use
5512 simplify_relational_operation. Do not use SELECT_CC_MODE
5513 when a comparison already has a MODE_CC mode.
b9767e1c 5514
55152004-04-29 Paolo Bonzini <bonzini@gnu.org>
5516
ac503e50 5517 (simplify_set): simplify_relational_operation may now
5518 return another relational expression.
5519 * cse.c (fold_rtx): simplify_relational_operation now
5520 takes of computing the comparison mode.
5521 * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5522 remove dead code.
5523 (do_compare_rtx_and_jump): Likewise.
5524 * integrate.c (subst_constants): simplify_relational_operation
5525 may now return another relational expression.
5526 * simplify-rtx.c (simplify_gen_relational): Move most code to
5527 the new simplify_relational_operation and
5528 simplify_relational_operation_1 functions.
5529 (simplify_relational_operation): Rewritten.
5530 (simplify_relational_operation_1): New function.
5531 (simplify_ternary_operation): simplify_relational_operation
5532 may now return another relational expression.
49be8259 5533 (simplify_rtx): Remove unnecessary temp variable.
ac503e50 5534
0bfbd311 55352004-04-29 Uros Bizjak <uros@kss-loka.si>
5536
70ac928b 5537 * reg-stack.c (swap_to_top): New function.
5538 (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5539 swap_to_top().
5540 (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
49be8259 5541 (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
70ac928b 5542 UNSPEC_FSCALE_EXP.
0bfbd311 5543
70ac928b 5544 * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5545 (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5546 (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5547 x87's fscale insn.
5548 (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5549 (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5550 patterns.
0bfbd311 5551
841b0dee 55522004-04-28 Serge Belyshev <1319@bot.ru>
5553
5554 PR 14944
5555 * coverage.c (read_counts_file): Fix usage of warning () call.
5556 * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5557
d8cf602e 55582004-04-28 Ben Elliston <bje@au.ibm.com>
5559
5560 * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5561 options with "-" in the option index.
5562 (SPARC Options): Likewise.
5563 (M32R/D Options): Likewise.
5564
f6777f80 55652004-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5566
5567 * convert.c (convert_to_integer): Convert (long)round -> lround,
5568 etc.
5569
d8b4593e 55702004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
5571
5572 * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5573 Return false if we do not have fp register.
5574 (addrs_ok_for_quad_peep): Rename to ...
5575 (mems_ok_for_quad_peep): this.
5576 Add check for volatile memory.
5577 * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5578 Rename to ...
5579 (mems_ok_for_quad_peep): this.
5580 * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5581 to peephole2's.
5582 (lfq_power2): New instruction.
5583 (stfq_power2): Likewise.
5584
b69eb0ff 55852004-04-28 Jan Hubicka <jh@suse.cz>
5586
5587 PR c/15004
5588 * function.c (do_warn_unused_parameter): Break out form ...
5589 (expand_function_end): ... here; warn only when not using cgraphunit.
5590 * function.h (do_warn_unused_parameter): Declare.
5591 * cgraphunit.c: Include function.h.
5592 (cgraph_finalize_function): Do unused parameter warning.
5593 * Makefile.in (cgraphunit.o): Depend on function.h
5594
50ef8532 55952004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
5596
5597 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5598 calling install-info on $(DESTDIR)$(infodir)/dir already being
5599 present.
5600
3122a117 56012004-04-28 Paul Brook <paul@codesourcery.com>
5602
5603 * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5604
c9ba4055 56052004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
5606
49be8259 5607 * gcse.c (find_moveable_store): Do not accept store insns with
c9ba4055 5608 REG_EH_REGION note.
5609
7752d341 56102004-04-28 Paul Brook <paul@codesourcery.com>
5611
5612 * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5613 * function.c (assign_temp): Ditto.
5614 * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5615
978d3329 56162004-04-28 Paul Brook <paul@codesourcery.com>
5617
5618 * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5619
d8879905 56202004-04-28 Josef Zlomek <zlomekj@suse.cz>
5621
5622 * var-tracking.c (variable_different_p): Add a parameter
5623 compare_current_location, compare current location of variable parts
5624 if it is true.
5625 (dataflow_set_different_1): Pass compare_current_location == false.
5626 (dataflow_set_different_2): Pass compare_current_location == false.
5627 (emit_notes_for_differences_1): Pass compare_current_location == true.
5628
a6a7195f 56292004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
5630
5631 * config/s390/s390.md ("casesi"): Mark jump table access as
5632 non-trapping and unchanging.
5633
7f3ca0ce 56342004-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5635
5636 PR debug/14829
5637 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all
5638 callers.
5639 (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5640 number for indexing hard_regno_nregs array.
49be8259 5641
0a80d498 56422004-04-27 Geoffrey Keating <geoffk@apple.com>
5643
5644 * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5645 * config/darwin-crt2.c: Only have contents on __ppc__.
5646
a92261c7 56472004-04-27 Bob Wilson <bob.wilson@acm.org>
5648
5649 * config/xtensa/xtensa.c (call_insn_operand): Check
5650 SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5651 * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5652 * config/xtensa/xtensa.md (call, call_value): Likewise.
5653
402de9fb 56542004-04-27 Wu Yongwei <adah@sh163.net>
5655
5656 * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5657 (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5658 (__gthread_mutex_init_function): Replace CreateMutex with
5659 initialization of custom mutex using CreateSemaphore.
5660 (__gthread_mutex_lock): Use InterlockedIncrement.
5661 (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5662 (__gthread_mutex_unlock): Use InterlockedDecrement and
5663 ReleaseSemaphore to unlock
5664 * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5665 __gthread_mutex_lock, __gthread_mutex_trylock,
5666 __gthread_mutex_unlock): Adjust to match inline versions in
5667 gthr-win32.h.
5668
72f1246c 56692004-04-27 Paul Brook <paul@codesourcery.com>
5670
5671 * config/arm/arm.c (arm_promote_prototypes): New function.
5672 (TARGET_PROMOTE_PROTOTYPES): Use it.
5673
5238a73a 56742004-04-27 Paul Brook <paul@codesourcery.com>
5675
5676 * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5677
04b0d94a 56782004-04-26 Bernard Giroud <bgiroud@free.fr>
5679
5680 * config/alpha.c (alpha_end_function): For OpenVMS gas,
5681 correctly output .pdesc directive before .end.
5682
9499064a 56832004-04-26 James E Wilson <wilson@specifixinc.com>
5684
5685 Bug 14927
5686 * config/ia64/ia64.md (movxf): New local op0. Handle case where
5687 operands[0] is a SUBREG. Handle case where operands[1] is a GR reg.
5688
6942761b 56892004-04-26 Zack Weinberg <zack@codesourcery.com>
5690
5691 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5692 * config/pa/pa-hpux10.h: Likewise.
5693 * config/pa/pa-hpux11.h: Likewise.
5694
bea0cb42 56952004-04-26 Geoffrey Keating <geoffk@apple.com>
5696
5697 * doc/invoke.texi (Overall Options): Document default for -o
5698 for PCH files.
5699
843d08a9 57002004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5701
5702 * builtins.c (expand_builtin_update_setjmp_buf): New function.
5703 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5704 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5705
7d647a20 57062004-04-26 Paul Brook <paul@codesourcery.com>
5707
5708 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5709
69130f53 57102004-04-26 Paul Brook <paul@codesourcery.com>
5711
5712 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5713
a1ebe36a 57142004-04-25 Roger Sayle <roger@eyesopen.com>
5715
5716 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5717 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and
5718 X % -1 as 0.
5719
9056f714 57202004-04-26 Hans-Peter Nilsson <hp@bitrange.com>
5721
5722 PR bootstrap/15141
5723 * except.c (connect_post_landing_pads): Delete insns after the
5724 barrier when generating a unwind_resume_libfunc call.
5725
f0ac718c 57262004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5727
5728 PR/c++ 15119
5729 * tree.c (substitute_placeholder_in_expr, case 4): New case,
5730 for TARGET_EXPR.
5731
57322004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
ccc14161 5733
5734 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5735 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5736 inhibit_libc is defined.
5737
1a5fa45d 57382004-04-25 Richard Sandiford <rsandifo@redhat.com>
5739
5740 * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5741 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5742 * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5743 (TARGET_SCHED_VARIABLE_ISSUE): Define.
5744 (mips_adjust_cost): Move later in file, next to other sched hooks.
5745 (mips_macc_chains_last_hilo): New variable.
5746 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5747 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5748 * config/mips/mips.md (may_clobber_hilo): New attribute.
5749
85df6fdf 57502004-04-24 Roger Sayle <roger@eyesopen.com>
5751 Bruce Korb <bkorb@gnu.org>
5752
5753 * fixinc/inclhack.def (aix_syswait_2): New fix.
5754 * fixinc/fixincl.x: Regenerate.
5755 * fixinc/tests/base/sys/wait.h: Update for new test.
5756
40bed498 57572004-04-24 Alan Modra <amodra@bigpond.net.au>
5758
5759 PR target/14960
5760 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5761 to non_fixed_size, and leave out fixed_size from the sum.
5762 (generate_set_vrsave): Correct clobbers.
5763 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5764 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5765 (rs6000_libcall_value): Likewise.
5766 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5767 (FUNCTION_ARG_REGNO_P): Likewise.
5768
cb2511ae 57692004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
5770
5771 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5772 is a CONST_INT.
5773 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5774 with NARROW_OP1 instead of OP1.
5775
91b6c440 57762004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
5777
5778 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5779 and __s390x__ hosts.
5780
73673831 57812004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5782
5783 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5784 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5785 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5786 BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5787 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5788 * builtins.c (expand_builtin_fork_or_exec): New.
5789 (expand_builtin): Call it.
5790 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5791 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5792 * c-common.c (PID_TYPE): New macro.
5793 (c_common_nodes_and_builtins): Initialize pid_type_node.
5794 * calls.c (special_function_p): Do not handle fork and exec.
5795 (expand_call): Do not handle ECF_FORK_OR_EXEC.
5796 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5797 __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5798 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5799 __gcov_execv, __gcov_execvp, __gcov_execve): New.
5800 * tree.h (enum tree_index): Add TI_PID_TYPE.
5801 (pid_type_node): New macro.
5802 (ECF_FORK_OR_EXEC): Removed.
5803
82233aad 58042004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr>
5805
5806 PR optimization/13985
5807 * cfgloopmanip.c (fix_loop_placements): New prototype.
5808 Call fix_bb_placements on the preheader of loops that have
5809 been reparented.
5810 (remove_path): Adjust call to fix_loop_placements.
5811
196771fa 58122004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
5813
5814 * config/darwin7.h: New file.
5815 * config.gcc (*-*-darwin*): Add darwin7.h if the
5816 version is greater than 6.
5817 * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5818 (MATH_LIBRARY): Wrap in ifdefs.
5819
9d63835d 58202004-04-23 Daniel Jacobowitz <drow@mvista.com>
5821
5822 * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5823 loading iWMMXt registers with a frame pointer. Use post-increment
5824 without a frame pointer.
5825 (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5826
c010d9a7 58272004-04-23 Paolo Bonzini <bonzini@gnu.org>
5828
5829 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5830 mode" rather than "-funit-at-a-time" since -O2 enables it
5831 without requiring -f* options. Refer to -fprofile-generate and
5832 -fprofile-use correctly. Move -funit-at-a-time among options
5833 enabled by -O. Add information about unit-at-a-time caveats.
5834
dbddc569 58352004-04-22 Per Bothner <per@bothner.com>
5836
5837 * line-map.h (struct line_maps): New field highest_line.
5838 (linemap_position_for_column): Make non-inline function.
5839 (LINEMAP_POSITION_FOR_COLUMN): New macro.
5840 * line-map.c (linemap_init): Clear highest_line field.
5841 (linemap_add): Set highest_line field.
5842 (linemap_line_start): Minor optimization - use highest_line field.
5843 Reduce maximum column hint to 10000. Update highest_line field.
5844 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
5845 * cpphash.h (struct cpp_reader): Remove line field - instead use
5846 line_table->highest_line.
5847 (saved_line): Remove unused field.
5848 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
5849 Use line_table's highest_line field instead of cpp_reader's line.
5850 * cpplib.c (start_directive): Likewise use highest_line field.
5851 (do_line, do_linemarker): Likewise just use newest map.
5852 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
5853 * cpperror.c (cpp_error): Likewise use highest_line field.
5854 * cppfiles.c (open_file_failed: Likewise.
5855 (cpp_make_system_header): Likewise use newest map and highest_line.
5856 * cppinit.c (cpp_create_reader): Don't initialize removed field.
5857 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5858 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5859 _cpp_lex_direct): Likewise use highest_line.
5860 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
5861 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
5862 and use newest map.
5863 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
5864 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
5865 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
5866
be4e8b82 58672004-04-23 Alan Modra <amodra@bigpond.net.au>
5868
e8098a9c 5869 PR bootstrap/14992
be4e8b82 5870 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5871 * config/linux.h (USE_LD_AS_NEEDED): Define.
5872 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5873 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5874 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5875 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5876 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5877 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5878 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5879
30696602 58802004-04-22 Per Bothner <per@bothner.com>
5881
5882 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
5883 Fixes PR preprocessor/15067.
5884
45ca7da2 58852004-04-23 Andreas Schwab <schwab@suse.de>
5886
5887 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5888 avoid aliasing warning.
5889
d04f7eb9 58902004-04-22 Jan Hubicka <jh@suse.cz>
727b9178 5891 Mostafa Hagog <mustafa@il.ibm.com>
d04f7eb9 5892
5893 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5894 * cfgloopanal.c (expected_loop_iterations): Change the return value
5895
af13c278 58962004-04-22 Jakub Jelinek <jakub@redhat.com>
5897
5898 * cselib.h (struct elt_loc_list): Remove canon_loc field.
5899 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5900 (cselib_invalidate_mem): Remove all canon_loc and canon_x
5901 traces.
5902
17de3cb1 59032004-04-22 Josef Zlomek <zlomekj@suse.cz>
5904
5905 Revert
5906 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
5907
5908 * var-tracking.c (variable_part_different_p): Variable parts
5909 differ when the most recent locations differ.
5910
364dfbc0 59112004-04-22 Richard Sandiford <rsandifo@redhat.com>
5912
5913 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5914 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5915 (embedded_pic_offset): Delete.
5916 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
5917 MASK_* constants.
5918 (TARGET_EMBEDDED_PIC): Delete.
5919 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5920 (ASM_SPEC): Remove -membedded-pic.
5921 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5922 (ASM_OUTPUT_CASE_LABEL): Likewise.
5923 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5924 * config/mips/windiss.h (ASM_SPEC): Likewise.
5925 * config/mips/mips.c (struct machine_function): Remove
5926 embedded_pic_fnaddr_rtx.
5927 (TARGET_ENCODE_SECTION_INFO): Remove override.
5928 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5929 (override_options): Remove -membedded-pic handling.
5930 (print_operand): Remove handling of '%S'.
5931 (mips_select_section: Remove -membedded-pic handling.
5932 (mips_encode_section_info): Delete.
5933 (mips_output_conditional_branch): Remove mention of -membedded-pic.
5934 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5935 -membedded-pic handling.
5936 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5937
d2354205 59382004-04-22 Alan Modra <amodra@bigpond.net.au>
5939
5940 * var-tracking.c (frame_base_decl): Remove useless GTY.
5941
cfdbeacf 59422004-04-21 Aldy Hernandez <aldyh@redhat.com>
5943
5944 * config/rs6000/rs6000.c (rs6000_override_options): Error when
5945 user wants altivec and e500 instructions.
5946
46978c1c 59472004-04-21 H.J. Lu <hongjiu.lu@intel.com>
5948
5949 PR target/14813
5950 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5951 in .init_array section to ...
5952 * config/ia64/crtbegin.asm: Here.
5953
5954 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5955 and hidden if HAVE_INITFINI_ARRAY is defined.
5956
00472e92 59572004-04-21 James E Wilson <wilson@specifixinc.com>
5958
b462e756 5959 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5960 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5961 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5962 (fp_register_operand, lo_operand): New.
5963 (mips_rtx_costs): Add TUNE_SB1 support.
5964 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
5965 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5966 (mips_multipass_dfa_lookahead): New.
5967 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5968 TUNE_SB1): New.
5969 (TARGET_SWITCHES): Add -mfp-exceptions support.
5970 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5971 (BRANCH_COST): Fix whitespace.
5972 * config/mips/mips.md: Include sb1.md.
5973 * config/mips/sb1.md: New file.
5974 * doc/invoke.texi: Document -mfp-exceptions.
5975
00472e92 5976 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
5977 comment.
5978 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5979 (fixincl.o-warn): Delete.
5980
345da44b 59812004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
5982
5983 * config/rs6000/rs6000 (print_operand) ['z']:
5984 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5985
0b15b0cb 59862004-04-21 Daniel Jacobowitz <drow@mvista.com>
5987
5988 * config.gcc: Support --with-arch=iwmmxt for ARM.
5989
b4dcfd48 59902004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5991
5992 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5993 in two more places; remove unneeded force_reg
5994
54ec2a40 59952004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
5996
5997 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5998 for TARGET_MACHO.
5999 (print_operand): For TARGET_MACHO check to see if we need a stub
6000 and output one if we need it.
c7c9d0ca 6001
6002 PR debug/15033
6003 * dwarf2out.c (rtl_for_decl_location): Check for NULL
6004 rtl.
6005
f73be2c0 60062004-04-20 James E Wilson <wilson@specifixinc.com>
6007
6008 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6009 (vall_value_gp): Likewise.
6010
13906b02 60112004-04-20 DJ Delorie <dj@redhat.com>
6942761b 6012
13906b02 6013 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6014 variables stored in word registers, then in memory.
6015
dcbcd678 60162004-04-20 Eric Christopher <echristo@redhat.com>
6017
6018 * cp/parser.c (cp_parser_declaration): Move translate
6019 up before tokens are lexed.
6020
8de2f465 60212004-04-20 Uros Bizjak <uros@kss-loka.si>
6022
6023 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6024 (asin_optab, acos_optab): Define corresponding macros.
6025 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6026 * genopinit.c (optabs): Implement asin_optab and acos_optab
6027 using asin?f2 and acos?f2 patterns.
6028 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6029 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6030 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6031 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6032
6033 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6034 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6035 acos, acosf and acosl built-ins as inline x87 intrinsics.
6036
0bb91b60 60372004-04-20 Paul Brook <paul@codesourcery.com>
6038
6039 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6040
558ba71f 60412004-04-20 Paul Brook <paul@codesourcery.com>
6042
6043 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6044
1ddc6392 60452004-04-20 Paolo Bonzini <bonzini@gnu.org>
6046
6047 Revert part of 2004-04-17 change that moved -frename-registers
6048 to -O1. -frename-registers is buggy.
6049
6050 * toplev.c (flag_rename_registers): Initialize to 0.
6051 * doc/invoke.texi (Optimize options): Move -frename-registers
6052 to "Not triggered by any -O level" section. Adjust commentary
6053 accordingly.
dcbcd678 6054
82233aad 60552004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
5cf09555 6056
6057 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6058
e2bf3544 60592004-04-20 Richard Sandiford <rsandifo@redhat.com>
6060
6061 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6062 for mflo and mfhi instructions.
6063 (mips_output_move): Remove mflo and mfhi handling.
6064 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6065 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6066 Likewise various define_peephole2s.
6067 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6068 alternatives.
6069 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6070 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6071 (mfhilo_di, mfhilo_si): New patterns.
6072
5cd49451 60732004-04-20 Josef Zlomek <zlomekj@suse.cz>
6074
6075 * function.c (assign_parms): Force
6076 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6077
0cbdc1d8 60782004-04-20 Josef Zlomek <zlomekj@suse.cz>
6079
6080 * var-tracking.c (variable_part_different_p): Variable parts differ
6081 when the most recent locations differ.
6082
26a6b397 60832004-04-19 James E Wilson <wilson@specifixinc.com>
6084
6085 * rtl.h (reg_set_last): Delete declaration.
6086 * rtlanal.c (reg_set_last): Delete.
6087
d7aeca92 60882004-04-19 Roger Sayle <roger@eyesopen.com>
6089
6090 * fold-const.c (fold_convert): Make function extern/public.
6091 * tree.h (fold_convert): Prototype here.
6092 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6093 expand_builtin_strrchr, expand_builtin_strpbrk,
6094 expand_builtin_mempcpy, expand_builtin_bcopy,
6095 expand_builtin_bzero, expand_builtin_memcmp,
6096 expand_builtin_strcmp, expand_builtin_strncmp,
6097 stabilize_va_list, expand_builtin_sprintf,
6098 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6099 fold_builtin_exponent, fold_builtin_mempcpy,
6100 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6101 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6102 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6103
7db6fb5c 61042004-04-19 Aldy Hernandez <aldyh@redhat.com>
6105
6942761b 6106 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6107 (move_from_CR_gt_bit): New.
6108 (cceq_ior_compare): Name previously unnamed pattern. Disable for
6109 E500.
6110 (cceq_rev_compare): Name previously unnamed pattern. Allow for
6111 E500.
6112
6113 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6114 (tstsfeq_gpr): Same.
6115 (cmpsfgt_gpr): Same.
6116 (tstsfgt_gpr): Same.
6117 (cmpsflt_gpr): Same.
6118 (tstsflt_gpr): Same.
6119 (e500_cceq_ior_compare): New.
6120 (e500_flip_gt_bit): New.
6121
6122 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6123 (print_operand): Add 'c' and 'D'.
6124 (rs6000_generate_compare): Rewrite to generate correct rtl.
6125 (rs6000_emit_sCOND): Handle E500.
6126 (output_cbranch): Adjust for changes in rs6000_generate_compare.
6127 (output_e500_flip_gt_bit): New.
6128
6129 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6130 Protoize.
7db6fb5c 6131
004cc9ee 61322004-04-19 Eric Christopher <echristo@redhat.com>
6133
6134 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6135
723bbc48 61362004-04-19 David Edelsohn <edelsohn@gnu.org>
6137
6138 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6139 fix information.
004cc9ee 6140
7ca87a21 61412004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6142
6143 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6144 download URL.
6145
36530340 61462004-04-19 Daniel Jacobowitz <drow@mvista.com>
6147
6148 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6149 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
6150
a3d80b23 61512004-04-19 Andrew PInski <pinskia@physics.uc.edu>
6152
7d99bd73 6153 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6154 (fold_builtin): Update caller to match.
6155
a3d80b23 6156 PR bootstrap/15009
6157 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6158
6159 PR bootstrap/14999
6160 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6161
bff61684 61622004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6163
f2848721 6164 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6165
bff61684 6166 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6167 (expand_mult_highpart_optab): Likewise.
6168 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6169
311139e8 61702004-04-19 Paul Brook <paul@codesourcery.com>
6171
6172 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6173 floatunssisf2, floatunssidf2): New patterns.
6174
a703c8a1 61752004-04-18 Mark Mitchell <mark@codesourcery.com>
6176
8953859b 6177 PR other/14918
6178 * doc/invoke.texi (-fprofile-generate): Document requirement to
6179 use -fprofile-generate when linking.
6180
a703c8a1 6181 * doc/extend.texi (Strong Using): Warn users against using this
6182 feature.
6183
ce2c89d1 61842004-04-18 Richard Sandiford <rsandifo@redhat.com>
6185
6186 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6187 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6188 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6189 * config/mips/mips.c (struct mips16_constant): Renamed from struct
6190 constant. Propogate change throughout file.
6191 (struct machine_function): Remove insns_len.
6192 (mips_string_length, mips16_strings, string_constants): Delete.
6193 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6194 when generating mips16 code. Remove special mips16 treatment of
6195 string constants.
6196 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6197 to have the form LABEL+CONSTANT.
6198 (mips_symbolic_address_p): Fix comment.
6199 (m16_usym8_4, m16_usym5_4): Delete.
6200 (mips_output_function_epilogue): Remove mips16 string handling.
6201 (mips_output_mi_thunk): Call mips16_lay_out_constants.
6202 (mips_select_section, mips_encode_section_info): Remove mips16
6203 string handling.
6204 (struct mips16_constant_pool): New.
6205 (add_constant): Take a mips16_constant_pool structure. Keep pool
6206 sorted into order of ascending mode size. Keep track of the highest
6207 possible start address, taking padding and the masking of the base PC
6208 value into account.
6209 (dump_constants_1): New function, split out from dump_constants.
6210 Handle vector constants. Use gen_consttable_{int,float} rather than
6211 separate functions for each mode.
6212 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
6213 rather than separate functions for each alignment.
6214 (mips_find_symbol): Delete.
6215 (mips16_insn_length): New function, split out from
6216 mips16_lay_out_constants.
6217 (mips16_rewrite_pool_refs): New function.
6218 (mips16_lay_out_constants): Rework. Remove string handling.
6219 Always create an inline constant pool.
6220 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6221 (UNSPEC_ALIGN): New constants.
6222 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6223 (UNSPEC_ALIGN_[248]): Delete.
6224 (consttable_int, consttable_float, align): New patterns.
6225 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6226
080da987 62272004-04-17 Aldy Hernandez <aldyh@redhat.com>
6228
6229 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6230 __unn_args_eq.
6231
ec451ede 62322004-04-17 Alan Modra <amodra@bigpond.net.au>
6233
6234 PR target/14715
6235 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6236 with STARTING_FRAME_OFFSET.
6237
47bac44b 62382004-04-17 Richard Sandiford <rsandifo@redhat.com>
6239
6240 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6241 * config/mips/mips.c (macc_msac_operand): New function.
6242 * config/mips/mips.md (*msac): Move after *macc.
6243 (*msac2): New. Generalize macc-related peepholes so that they apply
6244 to msac too.
6245
ad469377 62462004-04-17 Paolo Bonzini <bonzini@gnu.org>
6247
6248 * opts.c (decode_options): Do not enable flag_rename_registers
6249 and flag_web at -O3.
6250 * toplev.c (flag_rename_registers): Initialize
6251 flag_rename_registers and flag_web to
6252 AUTODETECT_FLAG_VAR_TRACKING.
6253 (default_debug_hooks): New global.
6254 (process_options): Initialize default_debug_hooks. Warn if
6255 -fvar-tracking specified but not supported by the current
6256 debug format. Do not run var tracking at -O0 or if not
6257 supported by the current debug format, even if
6258 -fvar-tracking was given. If -fno-rename-registers
6259 is not specified, always run register renaming if var
6260 tracking is supported by the default debugging information
6261 format for the target, and we are at -O1 or higher; similarly
6262 for -fweb, but only at -O2 or higher.
6263 * doc/invoke.texi (Optimize Options): Document this.
6264
11a4b5d2 62652004-04-17 Richard Sandiford <rsandifo@redhat.com>
6266
6267 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6268 * configure: Regenerate.
6269
0c76b21e 62702004-04-17 Richard Sandiford <rsandifo@redhat.com>
6271
6272 * gcc.c (used_arg): Check whether an option has been removed.
6273
1b5a05b0 62742004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6275
6276 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6277 debugging on Solaris 7 and up.
6278
5e5601e9 62792004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6280
6281 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6282 IRIX 5 port.
6283 Remove -save-temps workaround, handled automatically.
6284 Require GNU binutils 2.15 for debugging.
6285 Remove SGI make warnings since GNU make is now required.
6286 (Specific, mips-sgi-irix6): Some markup fixes.
6287 Describe MIPSpro C problems and workarounds.
6288 Mention working O32 ABI support.
6289 Recommend GNU as 2.15 for O32 with debugging.
6290 Remove description of fixed structure pass/return bug.
6291
84a5a099 62922004-04-16 DJ Delorie <dj@redhat.com>
6293
6294 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6295 TYPE_FIELDS.
6296 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6297
ce782e06 62982004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6299
99d098e7 6300 * pa.md: Remove unnecessary declarations for asm_out_file.
6301
adacc29a 6302 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6303 SAR register. Fix comment.
6304 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6305 (%cr11).
6306
ce782e06 6307 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6308
13a46000 63092004-04-16 Nick Clifton <nickc@redhat.com>
6310
6311 * config/arm/arm.c (arm_override_options): Revert previous patch.
6312 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6313 be safely built.
6314
6440ef45 63152004-04-16 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
d6b2e5a0 6316
6317 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6318 bug.
6319 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6320 TARGET_DEFAULT): Changed. Ditto.
6321 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6322 TARGET_ENDIAN_DEFAULT): Added. Ditto.
6323 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6324 (TARGET_ENDIAN_DEFAULT): Added.
6325
9494845e 63262004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6327
6328 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6329 ATTR_CONST_NOTHROW_LIST.
6330
ec23d012 63312004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6332
6333 PR/middle-end 14915
6334 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6335 BITS_BIG_ENDIAN.
6336
2985dd16 63372004-04-15 Pat Haugen <pthaugen@us.ibm.com>
6338
6339 * ra-debug.c (ra_print_rtx): Add break's to case legs.
6340
dd75256b 63412004-04-14 James E Wilson <wilson@specifixinc.com>
6342
6343 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6344
a08c0dcf 63452004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
6346
6347 * libada-mk.in: New file.
6348 * configure.ac: Create libada-mk from libada-mk.in.
6349 * configure: Regenerate.
6350
4efbc641 63512004-04-14 Uros Bizjak <uros@kss-loka.si>
6352
6353 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6354 (logb_optab, ilogb_optab): Define corresponding macros.
6355 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6356 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6357 using logb?f2 and ilogb?i2 patterns.
6358 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6359 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6360 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6361 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6362
6363 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6364 and UNSPEC_XTRACT_EXP.
6365
6366 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6367 patterns to implement fxtract x87 instruction.
6368 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6369 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6370 intrinsics.
6371 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6372 x87's fxtract insn.
6373
ed58cafb 63742004-04-14 Eric Christopher <echristo@redhat.com>
6375
6376 * config/mips/t-elf: Enable multilibs by default.
6377
fa3d0339 63782004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
6379
6380 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6381 previous fix to check HAVE_return at runtime too.
6382
d746b29b 63832004-04-14 Nick Clifton <nickc@redhat.com>
6384
6385 * config/arm/arm.c (arm_override_options): If the user has not
6386 specified an ABI, then default to AAPCS for the iWMMXt processor.
6387 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6388 * config/arm/t-xscale-coff: Likewise.
6389
df1cf42e 63902004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6391
6392 * builtins.c (fold_builtin_isdigit): New.
6393 (fold_builtin): Handle BUILT_IN_ISDIGIT.
6394 * defaults.h: Add TARGET_DIGIT0 and sort.
6395 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6396
0da0dbfa 63972004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6398
6399 * builtins.c (fold_builtin_cabs, fold_builtin): Use
6400 `mathfn_built_in' to determine the new builtin.
6401 * fold-const.c (fold): Likewise.
6402
3f43a60d 64032004-04-14 Richard Sandiford <rsandifo@redhat.com>
6404
6405 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6406 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6407 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6408 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6409 (ASM_SPEC): Update accordingly.
6410 * config/mips/mips.c: Update after above renaming.
6411 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6412 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6413
75d034d9 64142004-04-13 James E Wilson <wilson@specifixinc.com>
6415
6416 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6417 increment errorcount and return false instead of true.
6418
616d4baf 64192004-04-13 Uros Bizjak <uros@kss-loka.si>:
6420
6421 * optabs.c (expand_twoval_unop): Reorder function arguments.
6422 * builtins.c (expand_builtin_mathfn_3): Update calls to
6423 expand_twoval_unop.
6424
6425 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6426 and UNSPEC_TAN_TAN. Add missing comment.
6427
6428 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6429 patterns to implement fptan x87 instruction.
6430 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6431 and tanl built-ins as inline x87 intrinsics. Define corresponding
6432 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6433 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6434 x87's fptan insn.
6435
692222b0 64362004-03-13 Richard Henderson <rth@redhat.com>
6437
6438 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6439 for LABEL_REFs.
6440
adbc048a 6441 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6442 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6443 * doc/invoke.texi: Update to match.
6444
a7ebcfd8 6445 * varasm.c (unlikely_text_section): Use assemble_align instead of
6446 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
6447 correct alignment argument.
6448
ac8edb96 64492004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
6450
6451 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6452 after setting reg_last_reload_reg for optional output reloads.
6453
4e623ed2 64542004-04-12 Fariborz Jahanian <fjahanian@apple.com>
6455
6456 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6457 Definition of these two macros are corrected by adding
6458 matchine right paren.
6459
cfb805a0 64602004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
6461
6462 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6463
49c99025 64642004-04-12 Roger Sayle <roger@eyesopen.com>
6465
6466 * config/i386/i386.c (output_387_reg_move): New function.
6467 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6468 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6469 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6470 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6471 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6472
ab7083b0 64732004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6474
6475 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6476 TYPE_DECL.
6477 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6478 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6479 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6480 Use skip_simple_arithmetic to find SAVE_EXPR.
6481 (force_type_save_exprs, force_type_save_exprs_1): New functions.
6482 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6483 Properly chain multiple pointers.
6484 (copy_tree_r): Copy a TYPE_DECL.
6485 * tree.c (variably_modified_type_p): Add some missing tests and
6486 make some other minor changes.
6487 * tree.h (force_type_save_exprs): New declaration.
6488
90fc95ee 64892004-04-12 Roger Sayle <roger@eyesopen.com>
6490
6491 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6492 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
6493 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
6494 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
6495 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
6496 x%-1 into 0 (or x&0 if x has side-effects).
6497
abeddb91 64982004-04-11 Aldy Hernandez <aldyh@redhat.com>
6499
6500 * config/rs6000/rs6000.md: Document why a pattern is not
6501 available.
6502
6503 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6504 of floats on the E500.
6505 (branch_positive_comparison_operator): Do not allow NE even on the
6506 E500.
6507
8068572e 65082004-04-11 Aldy Hernandez <aldyh@redhat.com>
6509
6510 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6511 in_text_unlikely_section to in_unlikely_text_section.
6512
a6661800 65132004-04-11 Roger Sayle <roger@eyesopen.com>
6514
6515 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
6516 calling convention to allow a NULL_TREE to be returned. Factor
6517 sanity checks from callers, return NULL_TREE when appropriate.
6518 (fold): Handle COMPOUND_EXPR operands of binary expressions
6519 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
6520 whether a op (b,c) can be rewritten as (b, a op c). Simplify
6521 calls to fold_binary_op_with_conditional_arg.
6522
e8759ef6 65232004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6524
6525 * config/mips/iris5.h (current_section_flags): Add
6526 in_unlikely_executed_text and default case.
6527
38c95e2f 65282004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
6529
6530 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6531 failure on solaris. Place ifdef HAVE_return around gen_ret call.
6532 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6533 HAVE_return and place it around the place where it is needed.
6534
9bfbd4c4 65352004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
6536
6537 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6538 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6539 and NORMAL_TEXT_SECTION_NAME.
6540 (unlikely_text_section): Check targetm.have_named_sections
6541 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6542 instead of SECTION_FORMAT_STRING.
6543 * config/mips/iris5.h (current_section_name): Add
6544 in_unlikely_executed_text case and move the abort into the switch.
6545 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6546 (NORMAL_TEXT_SECTION_NAME): Remove.
6547 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6548 (SECTION_FORMAT_STRING): Remove.
6549 * defaults.h (SECTION_FORMAT_STRING): Remove.
6550 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6551 (SECTION_FORMAT_STRING): Remove.
6552
2b87f966 65532004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
6554
6555 * c-typeck.c (common_type): Prefer long long to long when same
6556 precision.
6557
ce1695da 65582004-04-09 Zack Weinberg <zack@codesourcery.com>
6559
6560 PR 14887
6561 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6562 mode argument.
6563 * config/ia64/ia64.c (ia64_hpux_file_end): Check
6564 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6565
502bc734 65662004-04-09 Roger Sayle <roger@eyesopen.com>
6567
6568 * simplify-rtx.c (mode_signbit_p): New function to check whether
6569 an RTX is an immediate constant that represents the most significant
6570 bit of a given machine mode.
6571 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6572 C is the sign bit.
6573 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6574 when C2 is the sign bit.
6575 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6576 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6577 sign bit.
6578
96b9f485 65792004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6580
6581 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6582 TYPE_MODE.
6583
71bda45d 65842004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
6585
6586 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6587 of TREE_READONLY for types.
6588
4f18499c 65892004-04-09 Caroline Tice <ctice@apple.com>
6590
ce1695da 6591 * basic-block.h (struct edge_def): Add new field, crossing_edge.
4f18499c 6592 (struct basic_block_def): Add new field, partition.
6593 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
6594 definitions.
ce1695da 6595 (partition_hot_cold_basic_blocks): Add extern function
4f18499c 6596 declaration.
ce1695da 6597 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
4f18499c 6598 include statements.
6599 (N_ROUNDS): Increase the maximum number of rounds by 1.
6600 (branch_threshold): Add array value for new round.
6601 (exec_threshold): Add array value for new round.
6602 (push_to_next_round_p): New function.
6603 (add_unlikely_executed_notes): New function.
6604 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6605 (mark_bb_for_unlikely_executed_section): New function.
6606 (add_labels_and_missing_jumps): New function.
6607 (add_reg_crossing_jump_notes): New function.
6608 (fix_up_fall_thru_edges): New function.
6609 (find_jump_block): New function.
6610 (fix_crossing_conditional_branches): New function.
6611 (fix_crossing_unconditional_branches): New function.
6612 (fix_edges_for_rarely_executed_code): New function.
6613 (partition_hot_cold_basic_blocks): New function.
6614 (find_traces): Add an extra round for partitioning hot/cold
6615 basic blocks.
6616 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
6617 and only cold blocks, into the last (extra) round of collecting traces.
ce1695da 6618 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
4f18499c 6619 over crossing edges.
ce1695da 6620 (bb_to_key): Add code to correctly identify cold blocks when
4f18499c 6621 doing partitioning.
6622 (connect_traces): Modify to connect all the non-cold traces first, then
6623 go back and connect up all the cold traces.
6624 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
6625 * cfg.c (entry_exit_blocks): Add initialization for partition field in
6626 entry and exit blocks.
ce1695da 6627 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
4f18499c 6628 if we are doing hot/cold partitioning.
6629 * cfgcleanup.c (cfglayout.h): Add new include statement.
ce1695da 6630 (try_simplify_condjump): Modify to not attempt on blocks with jumps
4f18499c 6631 that cross section boundaries.
6632 (try_forward_edges): Likewise.
6633 (merge_blocks_move_predecessor_nojumps): Likewise.
6634 (merge_blocks_move_successor_nojumps): Likewise.
6635 (merge_blocks_move): Likewise.
6636 (try_crossjump_to_edge): Modify to not attempt after we have done
6637 the block partitioning.
6638 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6639 cross section boundaries.
6640 (try_optimize_cfg): Likewise.
6641 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6642 jumps that cross section boundaries.
ce1695da 6643 * cfglayout.c (flags.h): Add new include statement.
4f18499c 6644 (update_unlikely_executed_notes): New function.
ce1695da 6645 (fixup_reorder_chain): Add code so when a new jumping basic block is
6646 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
4f18499c 6647 updated appropriately.
6648 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
6649 introduced by this optimization.
ce1695da 6650 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
6651 extern function declaration.
4f18499c 6652 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6653 list of notes that can be deleted.
6654 (create_basic_block_structure): Add initialization for partition field.
6655 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
6656 section boundaries.
6657 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
6658 cross section boundaries.
6659 (commit_one_edge_insertion): Add code so newly created basic block
ce1695da 6660 ends up in correct (hot or cold) section. Modify to disallow
4f18499c 6661 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6662 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
6663 crosses section boundaries.
6664 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6665 cross section boundaries.
6666 (force_nonfallthru_and_redirect): Modify to make sure new basic block
6667 ends up in correct section, with correct notes attached.
ce1695da 6668 * common.opt (freorder-blocks-and-partition): Add new flag for this
6669 optimization.
6670 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
6671 the end of functions are written into the correct (hot or cold)
6672 section.
4f18499c 6673 (dbx_source_file): Add code so writing debug file information
6674 doesn't incorrectly change sections.
ce1695da 6675 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
4f18499c 6676 in partitioning hot/cold basic blocks into separate sections.
ce1695da 6677 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
4f18499c 6678 section partitioning.
6679 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6680 conditional branches can span all of memory.
6681 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6682 unconditional branches can span all of memory.
ce1695da 6683 * final.c (scan_ahead_for_unlikely_executed_note): New function.
6684 (final_scan_insn): Add code to check for NOTE instruction indicating
6685 whether basic block belongs in hot or cold section, and to make sure
6686 the current basic block is being written to the appropriate section.
6687 Also added code to ensure that jump table basic blocks end up in the
6688 correct section.
6689 * flags.h (flag_reorder_blocks_and_partition): New flag.
4f18499c 6690 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
6691 one of the branches has a jump that crosses between sections.
6692 (find_if_case_2): Likewise.
ce1695da 6693 (ifcvt): Modify to not attempt to mark loop exit edges after
4f18499c 6694 hot/cold partitioning has occurred.
ce1695da 6695 * opts.c (decode_options): Code to handle new flag,
6696 flag_reorder_blocks_and_partition; also to turn it off if
4f18499c 6697 flag_exceptions is on.
ce1695da 6698 (common_handle_option): Code to handle new flag,
6699 flag_reorder_blocks_and_partition.
6700 * output.h (unlikely_text_section): New extern function declaration.
4f18499c 6701 (in_unlikely_text_section): New extern function declaration.
ce1695da 6702 * passes.c (rest_of_handle_stack_regs): Add
6703 flag_reorder_blocks_and_partition as an 'or' condition for calling
4f18499c 6704 reorder_basic_blocks.
ce1695da 6705 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
4f18499c 6706 as an 'or' condition for calling reorder_basic_blocks.
6707 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
ce1695da 6708 * print-rtl.c (print_rtx): Add code for handling new note,
6709 NOTE_INSN_UNLIKELY_EXECUTED_CODE
6710 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
4f18499c 6711 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6712 cross between section boundaries.
ce1695da 6713 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
6714 indicating the basic block containing it belongs in the cold section.
4f18499c 6715 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6716 between hot and cold sections.
ce1695da 6717 * toplev.c (flag_reorder_blocks_and_partition): Add code to
6718 initialize this flag, and to tie it to the command-line option
6719 freorder-blocks-and-partition.
6720 * varasm.c (cfglayout.h): Add new include statement.
6721 (unlikely_section_label_printed): New global variable, used for
6722 determining when to output section name labels for cold sections.
4f18499c 6723 (in_section): Add in_unlikely_executed_text to enum data structure.
6724 (text_section): Modify code to use SECTION_FORMAT_STRING and
6725 NORMAL_TEXT_SECTION_NAME macros.
6726 (unlikely_text_section): New function.
6727 (in_unlikely_text_section): New function.
ce1695da 6728 (function_section): Add code to make sure beginning of function is
6729 written into correct section (hot or cold).
6730 (assemble_start_function): Add code to make sure stuff is written to
6731 the correct section.
6732 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
6733 to an if statement that was checking 'in_text_section'.
6734 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
6735 condition to an if statement that was checking 'in_text_section'.
6736 (default_section_type_flags_1): Add check: if in cold section
6737 flags = SECTION_CODE.
4f18499c 6738 * config/darwin.c (darwin_asm_named_section): Modify to use
6739 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
ce1695da 6740 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
4f18499c 6741 specifically for the i386.
6742 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
ce1695da 6743 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
4f18499c 6744 text string to something more informative.
6745 (NORMAL_TEXT_SECTION_NAME): Add new definition.
6746 (SECTION_FORMAT_STRING): Add new definition.
ce1695da 6747 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
6748 '!in_unlikely_text_section' as an 'and' condition to an if statement
6749 that was already checking '!in_text_section'.
6750 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6751 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6752 sure these are properly defined for linux on ppc.
6753 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
6754 for this new flag.
4f18499c 6755 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
6756 reg_note.
ce1695da 6757 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6758 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
4f18499c 6759 these new macros.
6760
887a58de 67612004-04-08 Roger Sayle <roger@eyesopen.com>
6762
6763 * function.c (gen_mem_addressof): When changing the RTX from a REG
6764 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6765
89205def 67662004-04-08 Roger Sayle <roger@eyesopen.com>
6767
6768 PR target/14888
6769 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6770 truncxfdf2_noop): Provide dummy "fmov" implementations.
6771
db4eb7c2 67722004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
6773
f0fad829 6774 * gcc.c (default_compilers): Add missing initializers.
6775
db4eb7c2 6776 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6777 Return 1 if file was successfully mapped.
6778
aa4a0945 67792004-04-08 Geoffrey Keating <geoffk@apple.com>
6780
a08be054 6781 PR pch/13419
6782 PR pch/14137
6783 Radar #: 3315288
6784 * doc/invoke.texi (Precompiled Headers): Suggest -o
6785 to put an output file in a particular place. Be more detailed
6786 about which options affect PCH validity and which options
6787 might not work.
6788 * c-pch.c (pch_matching): New.
6789 (MATCH_SIZE): New.
6790 (struct c_pch_validity): New field 'match'.
6791 (pch_init): Handle pch_matching.
6792 (c_common_valid_pch): Check pch_matching.
6793
aa4a0945 6794 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6795
299f8a85 67962004-04-08 Mark Mitchell <mark@codesourcery.com>
6797
6798 * doc/invoke.texi (Precompiled Headers): Warn about known
6799 problems.
6800
5c0b8490 68012004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
6802
6803 PR c++/14808
6804 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6805 to 1 if ASM_OUTPUT_DEF is defined.
6806 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6807 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6808 Set to non-zero iff not a one_only decl.
6809
81b8b258 68102004-04-08 Paul Brook <paul@codesourcery.com>
6811
6812 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6813
19347327 68142004-04-08 Paul Brook <paul@codesourcery.com>
6815
6816 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6817 PROMOTE_FOR_CALL_ONLY.
6818 * config/arm/arm-protos.h (arm_function_value): Declare.
6819 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6820 (TARGET_PROMOTE_PROTOTYPES): Return false.
6821 (arm_function_value): New function.
6822 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6823 (FUNCTION_VALUE): Call arm_function_value.
6824 * config/cris/cris.h (PROMOTE_MODE): Rename ...
6825 (PROMOTE_FUNCTION_MODE): ... to this.
6826 (PROMOTE_FOR_CALL_ONLY): Remove.
6827 * config/mmix/mmix.h: Likewise.
6828 * config/s390/s390.h: Likewise.
6829 * config/sparc/sparc.h: Likewise.
6830 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6831 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6832 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6833 (PROMOTE_FOR_CALL_ONLY): Remove.
6834
2440d8dd 68352004-04-08 Joel Sherrill <joel@oarcorp.com>
6836
6837 PR ada/14538
6838 * ada/5rosinte.adb: Remove fake mprotect() body.
6839 * ada/5rosinte.ads: Add SA_SIGINFO.
6840 * ada/5rtpopsp.adb: Rewrite to use new interface.
6841 * ada/init.c: Reorder so the simple single OS conditional __rtems__
6842 is tested before more complex ones which mix UNIX and embedded
6843 systems in the conditional.
6844
59fb70e4 68452004-04-08 Joel Sherrill <joel@oarcorp.com>
6846
6847 PR ada/14665
6848 * ada/osint.adb (Find_Program_Name): Rework to properly handle
6849 filenames which end in .exe or have versioning suffixes like VMS.
6850
2f4fae92 68512004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
6852
6eda2064 6853 PR target/10129
2f4fae92 6854 * config/darwin.c (darwin_encode_section_info): When the decl has
6855 a DECL_INITIAL, it is only defined also when it is not a common.
6856
d49367d4 68572004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6858
6859 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6860 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6861
479a430e 68622004-04-07 H.J. Lu <hongjiu.lu@intel.com>
6863
6864 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6865 global register variables.
6866
e68aa18b 68672004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
6868
6869 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6870 rpc_xdr_lvalue_cast_b): New fixes.
6871 * fixinc/fixincl.x: Regenerate.
6872 * fixinc/tests/base/rpc/xdr.h: Add new tests.
6873
54c508dc 68742004-04-07 David Edelsohn <edelsohn@gnu.org>
6875
6876 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6877 to power4 and power5 entries.
6878
34585765 68792004-04-06 Geoffrey Keating <geoffk@apple.com>
6880
6881 * c-common.h (pending_lang_change): Mark for PCH.
6882
e40d30f5 68832004-04-07 Caroline Tice <ctice@apple.com>
6884
6885 * gcc.c (main): Move 'break' in main loops (on an error)
6886 to wait until error processing has occurred.
ce1695da 6887
334c8279 68882004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
6889
6890 * config.gcc: Stop changing enable_threads midstream.
6891 Replace uses of enable_threads_flag with enable_threads.
6892 * configure.ac: Replace uses of enable_threads_flag with
6893 enable_threads. Improve autoconf quotation in one place.
6894 * configure: Regenerate.
6895
6b43bae4 68962004-04-06 Uros Bizjak <uros@kss-loka.si>
6897
6898 * builtins.c: Implement support for sincos function.
6899 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6900 BUILT_IN_COS{,F,L}.
6901 (expand_builtin_mathfn_3): New function.
6902 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6903 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6904 flag_unsafe_math_optimization is set.
6905
6906 * optabs.h (enum optab_index): Add new OTI_sincos.
6907 (sincos_optab): Define corresponding macro.
6908
6909 * optabs.c (init_optabs): Initialize sincos_optab.
6910 (expand_twoval_unop): New function.
6911
6912 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6913 patterns.
6914
6915 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6916 and UNSPEC_SINCOS_SIN.
6917
6918 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6919 sincosxf3): New patterns to implement sincos, sincosf and sincosl
6920 built-ins as inline x87 intrinsics. Define splits for
6921 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6922 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6923 sincos patterns.
6924 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6925 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6926
616d4baf 6927 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6928 x87's fsincos insn.
6b43bae4 6929
1e3ce12d 69302004-04-06 Devang Patel <dpatel@apple.com>
6931
6932 PR 14467
6933 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
ce1695da 6934
91e4e7df 69352004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6936
6937 * doc/install.texi: Update HP-UX 11 installation procedure.
6938
7fb9b354 69392004-04-06 Paul Brook <paul@codesourcery.com>
6940
6941 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6942
8cdd3257 69432004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
6944
6945 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6946 when the TLS address is generated by a function call.
6947 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6948 (tls_local_dynamic): Likewise.
6949
78bc7634 69502004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
6951
6952 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6953 and TYPE_VOLATILE.
6954
dc1dd09b 69552004-04-05 Caroline Tice <ctice@apple.com>
6956
7fb9b354 6957 * gcc.c (combine_flag): New global variable, for new driver option.
dc1dd09b 6958 (struct compiler): Add two new fields, to be used when
6959 combining multiple input files in a single pass (IMA).
ce1695da 6960 (default_compilers): Add values for the new fields to all
6961 compiler entries. Modify the "@c" compiler entry for doing IMA
dc1dd09b 6962 properly with "-save-temps" and the "combine" flag.
6963 (option_map): Add new driver option, "--combine", to tell driver
6964 to pass multiple input files to compiler at one time.
6965 (have_o_argbuf_index): New global variable.
6966 (store_arg): Modify to assign value to have_o_argbuf_index.
6967 (struct infile): Add three new fields, to help with IMA.
6968 (display_help): Add help for new "combine" option.
6969 (process_command): Remove local variable have_o; add code to check
6970 for new "combine" option; remove assignment to combine_inputs.
6971 (do_spec_1): Modify to deal with IMA better.
6972 (main): Make variable 'lang_n_infiles' local to entire function
ce1695da 6973 rather than to a single block. Use flag combine_flag to
6974 determine whether to do IMA or not; Modify loop initializing
dc1dd09b 6975 infiles to deal properly with linker files.
6976 Add code for doing preprocessing in presence of
6977 IMA with "-save-temps" flag. Modify "main" loop to handle
6978 multiple input files, in multiple languages, with or without
6979 preprocessing, gracefully.
6980 * toplev.c (set_src_pwd): Modify to not complain if attempting to
6981 re-set it to same directory it's previously been set to (avoid
ce1695da 6982 irritating, meaningless warning messages when doing IMA with
dc1dd09b 6983 save-temps).
6984 * doc/invoke.texi: Add "-combine" to list of Overall Options;
6985 remove documentation about IMA that is no longer accurate; Add
6986 documentation explaining what "-combine" does.
6987 * ada/lang-specs.h: Add initialization values for new fields in
6988 "struct compiler".
6989 * cp/lang-specs.h: Likewise.
6990 * f/lang-specs.h: Likewise.
6991 * java/lang-specs.h: Likewise.
6992 * objc/lang-specs.h: Likewise.
6993 * treelang/lang-specs.h: Likewise.
6994
5e016e74 69952004-04-05 David Edelsohn
6996
6997 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6998 symbol handling.
6999
ac8a72de 70002004-04-05 Jakub Jelinek <jakub@redhat.com>
5e016e74 7001 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
ac8a72de 7002
7003 PR optimization/13424 (hppa), bootstrap/14462, c/14828
7004 * pa.md: Use replace_equiv_address to retain the attributes of the
7005 memory operands used in the split and peephole2 patterns for optimizing
7006 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7007
66d12a6c 70082004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7009
7010 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7011 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7012 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7013 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7014 PARM_DECL.
7015 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7016 for a type.
7017 * print-tree.c (print_node): Properly handle side-effects, readonly,
7018 and constant flags.
7019 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7020 and TREE_CONSTANT if not a type.
7021 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7022 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7023 (NON_TYPE_CHECK): New macro.
7024 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7025
96080688 70262004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
7027
7028 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7029 to DWARF2_DEBUG unconditionally.
7030 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7031
e08c7853 70322004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
7033 Nathanael Nerode <neroden@gcc.gnu.org>
7034
7035 PR target/14548
7036 * config.host: Set the shell variable host_can_use_collect2.
7037 Set it to yes by default, and to no for alpha*-dec-*vms*,
7038 i[34567]86-*-mingw32*, and powerpc-*-beos*.
7039 * configure.ac: Set and substitute the shell variable collect2.
7040 Give an error if use_collect2 is yes and host_can_use_collect2 is
7041 no.
7042 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
7043 uses. Initialize to @collect2@.
7044 (STAGESTUFF): Remove $(USE_COLLECT2).
7045 * config/alpha/x-vms (USE_COLLECT2): Don't set.
7046 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7047 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7048 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7049 * configure: Regenerate.
7050
2e746e59 70512004-04-04 Roger Sayle <roger@eyesopen.com>
7052
7053 * simplify-rtx.c (simplify_binary_operation): Constant fold
7054 DIV, MOD, UDIV and UMOD using div_and_round_double.
7055
1b256570 70562004-04-04 Mark Mitchell <mark@codesourcery.com>
7057
7058 PR c++/14804
7059 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7060 RECORD_TYPEs.
7061
a4a8a44a 70622004-04-04 Mark Mitchell <mark@codesourcery.com>
7063
7064 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7065 documentation.
937d3254 7066
6bf33fa9 70672004-04-04 Roger Sayle <roger@eyesopen.com>
7068
7069 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7070 updating the REG_EQUAL note on an insn's libcall_insn.
7071
98ccd331 70722004-04-04 Roger Sayle <roger@eyesopen.com>
7073
7074 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7075
38e9cdc3 70762004-04-03 Roger Sayle <roger@eyesopen.com>
7077
7078 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7079 with reorder_operands_p.
7080
a23481b7 70812004-04-03 Jan Hubicka <jh@suse.cz>
7082
7083 * md.texi (vec_set, vec_extract, vec_init): Document.
7084
8ba44f35 70852004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
7086
7087 * opts.c (decode_options): Do function inlining with very small
7088 max-inline-insns-* parameters when optimizing for size.
7089
0fda5f41 70902004-04-02 Vladimir Makarov <vmakarov@redhat.com>
7091
7092 * config/i386/i386.h (TARGET_NOCONA): New macro.
7093 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7094 (processor_type): Add PROCESSOR_NOCONA.
ce1695da 7095
0fda5f41 7096 * config/i386/i386.md (cpu): Add nocona to the attribute values.
7097
7098 * config/i386/i386.c (nocona_cost): New variable.
7099 (m_NOCONA): New macro.
7100 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7101 x86_branch_hints, x86_use_sahf, x86_single_stringop,
7102 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7103 x86_integer_DFmode_moves, x86_partial_reg_dependency,
7104 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7105 x86_decompose_lea, x86_arch_always_fancy_math_387,
7106 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7107 x86_ext_80387_constants, x86_four_jump_limit):
7108 (override_options): Add nocona_cost to processor_target_table.
7109 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7110 (incdec_operand): Prevent inc/dec generation for Nocona too.
7111 (ix86_issue_rate): Add PROCESSOR_NOCONA.
ce1695da 7112
b2a24b6f 71132004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
7114
7115 * rtlanal.c (find_reg_note): Manually
7116 unswitch the loop.
7117
96f57e36 71182004-04-01 Mark Mitchell <mark@codesourcery.com>
7119
7120 * genemit.c (gen_split): Change prototype of generated code.
7121 * genrecog.c (write_action): Adjust prototype for and calls to
7122 gen_split_*.
7123 * gensupport.c (struct queue_elem): Add split field.
7124 (queue_pattern): Return a value. Clear the split field.
7125 (process_rtx): Maintain an association between an insn and the
7126 split generated from it for a define_insn_and_split.
7127 (process_one_cond_exec): Generate a new split for a
7128 define_insn_and_split.
7129 * config/arm/arm-protos.h (arm_split_constant): Add insn
7130 parameter.
7131 (emit_constant_insn): New function.
7132 (arm_gen_constant): Use it.
7133 * config/arm/arm.md: Adjust calls to arm_split_constant.
7134
b0cdf642 71352004-04-02 Jan Hubicka <jh@suse.cz>
7136
7137 * cgraph.c: Add overall comment.
7138 (cgraph_inline_hash): New global variable.
7139 (cgraph_create_node): Break out from ...
7140 (cgraph_node): ... here.
7141 (cgraph_edge): New function.
7142 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7143 (cgraph_remove_edge): Accept edge, intead of source and destination.
7144 (cgraph_redirect_edge_callee): New.
7145 (cgraph_remove_node): Update all new datastructures.
7146 (cgraph_record_call, cgraph_remove_call): Kill.
7147 (dump_cgraph_node): Break out from ... ; dump new datastructures.
7148 (dump_cgraph): ... here.
7149 (cgraph_function_possibly_inlined_p): Use new hashtable.
7150 (cgraph_clone_edge, cgraph_clone_node): New.
7151 * cgraph.h: Include hashtab.h
7152 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7153 fields, add inlined_to pointer.
7154 (cgraph_node): Add pointer to next_clone.
7155 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7156 (cgraph_remove_call, cgraph_record_call): Kill.
7157 (cgraph_inline_hash): Declare.
7158 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7159 cgraph_redirect_edge_callee): Declare.
7160 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7161 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7162 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7163 * cgraphunit.c: Add overall comment.
7164 (cgraph_optimize_function): Kill.
7165 (cgraph_assemble_pending_functions): Do not assemble inline clones.
7166 (cgraph_finalize_function): Update call of cgraph_remove_node
7167 (record_call_1): Record call sites.
7168 (cgraph_create_edges): Accept node instead of decl argument.
7169 (error_found): New static variable.
7170 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7171 (cgraph_analyze_function): Update for new datastructures.
7172 (cgraph_finalize_compilation_unit): Plug memory leak.
7173 (cgraph_optimize_function): Kill.
7174 (cgraph_expand_function): Do not use cgraph_optimize_function.
7175 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7176 cgraph_inlined_callees): Kill.
7177 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7178 clones.
7179 (estimate_growth): Simplify.
7180 (cgraph_clone_inlined_nodes): New function.
7181 (cgraph_mark_inline_edge): Re-implement.
7182 (cgraph_mark_inline): Likewise.
7183 (cgraph_check_inline_limits): Simplify.
7184 (cgraph_recursive_inlining_p): New.
7185 (update_callee_keys): Break out from ...
7186 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7187 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7188 Likewise.
7189 (cgraph_expand_all_functions): Remove inline clones from the ordered
7190 list.
7191 (cgraph_preserve_function_body_p): New predicate.
7192 (cgraph_optimize): Verify cgraph.
7193 * function.h (struct function): Add fields saved_tree/saved_args.
7194 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7195 * toplev.c (rest_of_compilation): Do not free cfun.
7196 * tree-inline.c: Include function.h
7197 (struct inline_data): Add saving_p field; replace decl/current_decl by
7198 node/current_node.
7199 (insert_decl_map): New function.
7200 (copy_body_r): Handle saving; update cgraph datastructure.
7201 (copy_body): Handle recursive inlining.
7202 (initialize_inlined_parameters): Likewise.
7203 (expand_call_inline): Propagate node attributes; update cgraph.
7204 (optimize_inline_calls): Verify that datastructure still match.
7205 (save_body): New function.
7206 * tree-inline.h (save_body): New.
7207 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7208 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7209 * langhooks.c (lang_hooks): Add update_decl_after_saving.
7210
8a13ea0a 72112004-04-01 Serge Belyshev <1319@bot.ru>
7212
ce1695da 7213 PR target/14702
7214 * config/i386/i386.md: fix source operand constraints in
7215 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
8a13ea0a 7216
c4b03c0f 72172004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
7218
7219 * fold-const.c (folda): Preserve types of comparisons.
7220
c8fe098d 72212004-04-01 Richard Henderson <rth@redhat.com>
7222
7223 * toplev.c (backend_init): Move init_optimization_passes call ...
7224 (lang_dependent_init): ... here.
7225
6a40149e 72262004-04-01 Alan Modra <amodra@bigpond.net.au>
7227 Jakub Jelinek <jakub@redhat.com>
7228
7229 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7230 -lgcc --as-needed -lgcc_s --no-as-needed by default.
7231 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7232 * configure: Rebuilt.
7233 * config.in: Rebuilt.
7234 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7235 (stage2-start, stage3-start, stage4-start): Likewise.
7236 (stageprofile-start, stagefeedback-start): Likewise.
7237
233a3ba7 72382004-04-01 Jakub Jelinek <jakub@redhat.com>
7239
7240 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7241 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7242 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7243 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7244 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7245 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7246 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7247 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7248 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7249 * config/sparc/t-linux: Removed.
7250
9ab9151d 72512004-04-01 Jakub Jelinek <jakub@redhat.com>
7252
7253 PR c++/14755
7254 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7255 "bitfld++ == const" to "++bitfld == const + incr" transformations.
7256
86ae60fd 72572004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7258
7259 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7260 * stor-layout.c (layout_decl): Likewise.
7261 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7262 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7263 * print-tree.c (print_node): Handle various used of unsigned_flag.
7264 * tree.def (BIT_FIELD_REF): Update comment.
7265 * tree.h (TREE_UNSIGNED): Deleted.
7266 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7267
78a8ed03 72682004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7269
7270 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7271 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7272 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7273 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7274 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7275 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7276 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7277 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7278 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7279 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7280 REAL_TYPE, not INTEGER_TYPE.
7281 (layout_type, case VECTOR_TYPE): Simplify code.
7282 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7283 * tree.h: Update comments.
7284 (STRIP_NOPS): Use TYPE_UNSIGNED.
7285 (TYPE_UNSIGNED): New macro.
7286 (TYPE_TRAP_SIGNED): Remove now redundant check.
7287 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7288
2d57fb65 72892004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7290
7291 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7292
72932004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
390b6370 7294
7295 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7296 Add darwin-fpsave.asm, darwin-vecsave.asm,
7297 and darwin-world.asm.
7298 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7299 as the asm files contain altivec instructions.
7300 * config/rs6000/darwin-fpsave.asm: New file.
7301 * config/rs6000/darwin-vecsave.asm: New file.
7302 * config/rs6000/darwin-world.asm: New file.
7303
804d7df8 73042004-03-31 Zack Weinberg <zack@codesourcery.com>
7305
7306 * gengtype-yacc.y (option, stringseq): Add missing
7307 terminating semicolon.
7308
7693853f 73092004-03-30 David Edelsohn <edelsohn@gnu.org>
7310
7311 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7312 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7313 tls_dtprel_ha_32, tls_dtprel_ha_64,
7314 tls_dtprel_lo_32, tls_dtprel_lo_64,
7315 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7316 tls_tprel_ha_32, tls_tprel_ha_64,
7317 tls_tprel_lo_32, tls_tprel_lo_64,
7318 tls_got_tprel_32, tls_got_tprel_64,
7319 tls_tls_32, tls_tls_64): Replace register_operand with
7320 gpc_reg_operand.
7321
73222004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
7323
7324 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7325 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7326 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7327 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7328 *ctrdi_internal6): Replace register_operand with
7329 nonimmediate_operand.
7330
edbb2b78 73312004-03-29 Fariborz Jahanian <fjahanian@apple.com>
7332
804d7df8 7333 * fold-const.c (fold): Reassociate multiply expression
7334 with an adjacent non-multiply expression to use
7335 architecture's multiply-add instruction.
edbb2b78 7336
7035b2ab 73372004-03-30 Zack Weinberg <zack@codesourcery.com>
7338
7339 * gengtype.c (create_option): New function.
7340 * gengtype.h: Prototype it.
7341 * gengtype-yacc.y (stringseq): New rule.
7342 (option): Use create_option. Add new bare ID production. Use
7343 stringseq, not STRING directly.
7344
7345 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7346 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7347 * varray.h, config/alpha/alpha.c:
7348 Use new shorter form of GTY markers.
7349
7350 * doc/gty.texi: Rewrite.
7351
97505ac3 73522004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
7353
7354 * config/darwin.c (machopic_function_base_name):
7355 Remove current_name and getting the name of the
7356 current function.
7357
911ed8af 73582004-03-30 Nick Clifton <nickc@redhat.com>
7359
7360 * config/arm/arm.md (thumb_jump): Reduce the backward branch
7361 range, and increase the forward branch range, to allow for
7362 the fact that the PC will be off by 4.
7363
43146b0b 73642004-03-30 Alan Modra <amodra@bigpond.net.au>
7365
7366 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7367
56bc4a55 73682004-03-30 Hartmut Penner <hpenner@de.ibm.com>
7369
7035b2ab 7370 * config/rs6000/rs6000.c (output_vec_const_move):
7371 Find all cases of EASY_VECTOR_15_ADD_SELF.
7372 (easy_vector_constant_add_self): Accept
7373 all vector constant loadable by vsplt* and vadd*.
56bc4a55 7374 (easy_vector_same): Use easy_vector_splat_const.
7375 (easy_vector_const): Use easy_vector_splat_const.
7035b2ab 7376 (easy_vector_splat_const): New function.
56bc4a55 7377 (gen_easy_vector_constant_add_self): New function.
7035b2ab 7378
56bc4a55 7379 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7380 New prototype.
7381
7035b2ab 7382 * config/rs6000/altivec.md (movv4si splitter): Change to
56bc4a55 7383 emit move insn with halfed vector constant.
7384 (*movv8hi splitter): Likewise.
7385 (*movv16qi splitter): Likewise.
7035b2ab 7386
cb93b85a 73872004-03-30 Hartmut Penner <hpenner@de.ibm.com>
7388
7035b2ab 7389 PR 11591
7390 * config/rs6000/rs6000.c (rs6000_legitimate_address):
cb93b85a 7391 Allow any offset to argument pointer in no-strict case.
7392
390ccd37 73932004-03-30 Jan Hubicka <jh@suse.cz>
7394
7395 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7396 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7397 dump file in non-unit-at-a-time mode.
7398
55ce47f8 73992004-03-29 Hans-Peter Nilsson <hp@axis.com>
7400
7401 * config/cris/cris.h: Correct #ifdef to test for
7402 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7403 HAVE_AS_MUL_BUG_ABORT_OPTION.
7404
dcf3d62e 74052004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7406
7407 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7408 the address inside the old RTL.
7409
56533c31 74102004-03-28 Zack Weinberg <zack@codesourcery.com>
7411
7412 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7413 (struct c_binding, struct c_scope): Add chain_next
7414 attributes to GTY markers.
7415 (struct lang_identifier, struct lang_tree_node): Define
7416 here...
7417 * c-tree.h: ... not here. No longer need to declare struct
7418 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7419 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7420 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7421
7422 PR 14734, 11944
7423 * c-decl.c (get_parm_info): If error_mark_node is encountered
7424 in the bindings chain, unbind and discard it; don't abort.
7425
0fbcf4aa 74262004-03-28 Olga Golovonevsky <olga@il.ibm.com>
56533c31 7427 Dorit Naishlos <dorit@il.ibm.com>
0fbcf4aa 7428
56533c31 7429 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7430 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
0fbcf4aa 7431
5b8aafe1 74322004-03-28 Stephane Carrez <stcarrez@nerim.fr>
7433
7434 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7435
7436 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7437 (m68hc11_attribute_table): New attribute "page0" to mark a global
7438 variable as being allocated from within page0 section.
7439 (m68hc11_encode_label): New function.
7440 (m68hc11_strip_name_encoding): New function.
7441 (m68hc11_page0_symbol_p): New function.
7442 (m68hc11_indirect_p): Accept global variables marked in page0.
7443 (m68hc11_encode_section_info): Lookup "page0" attribute.
7444
7445 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7446 represents access to page0 variables.
7447
7448 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7449 ("*logicalsi3_silshl16_zext"): Likewise.
7450 ("*ashldi3_const32"): Likewise.
7451 (peephole2 ashift): Likewise.
7452
7746224a 74532004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
7454
7455 * c-tree.h (C_DECL_REGISTER): New.
7456 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7457 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7458 (build_array_ref, c_mark_addressable): Set and use it.
7459 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7460 Allow structures with volatile fields to be declared register.
7461 Don't check TREE_ADDRESSABLE before warning about taking address
7462 of register.
7463 * c-decl.c (finish_decl): Don't allow structures with volatile
7464 fields to be placed in named register.
7465 * doc/trouble.texi: Remove reference to structures with volatile
7466 fields in registers.
7467
dc8def52 74682004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
7469
7470 * function.c (thread_prologue_and_epilogue): Move
7471 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7472 before the epilogue.
7473
8f46af08 74742004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
7475
7476 * expr.c (store_constructor): Use gen_int_mode to correctly
7477 sign-extend CONST_INT value.
7478
4617d9b5 74792004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7480
7481 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7482 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
7483 * doc/extend.texi: Likewise.
7484
c00833ad 74852004-03-26 Diego Novillo <dnovillo@redhat.com>
7486
7487 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7488 with TYPE_ORIG_SIZE_TYPE.
7489
bb8f04af 74902004-03-25 Aldy Hernandez <aldyh@redhat.com>
56533c31 7491
7492 PR 14219
7493 * c-typeck.c (build_binary_op): Do not allow comparisons of
7494 vectors.
bb8f04af 7495
765940d4 74962004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
7497
7498 * config.gcc: Remove sparc-tti-*.
7499 * config/sparc/pbd.h: Delete.
7500
7501 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7502 * config/sparc/aout.h: Likewise.
7503
7504 * config/sparc/sparc.h: Remove if 0'd code.
7505 * config/sparc/sparc.md (call): Remove if 0'd code.
7506 (call_value): Likewise.
7507 (nonlocal_goto): Likewise.
7508 (unimp_insn): Delete.
7509
76c22522 75102004-03-25 Roger Sayle <roger@eyesopen.com>
7511
7512 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7513 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7514
36e0475c 75152004-03-25 Richard Henderson <rth@redhat.com>
7516
7517 PR 11527
56533c31 7518 * c-typeck.c (pop_init_level): Emit pending init elements earlier
7519 rather than later.
36e0475c 7520
87d17932 75212004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7522
7523 * builtins.c (fold_builtin): Fix error in last change.
7524
879c0fd2 75252004-03-25 Richard Sandiford <rsandifo@redhat.com>
7526
7527 * config/mips/mips.h: Formatting fix.
7528
054f84e6 75292004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7530
7531 * builtins.def: Add ctype builtins.
7532 * doc/extend.texi: Likewise.
7533
3bc5c41b 75342004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7535
7536 * builtins.c (fold_builtin): Add new builtin optimizations for
7537 sqrt and/or cbrt.
7538 * fold-const.c (fold): Likewise.
7539
bc889630 75402004-03-25 David Edelsohn <edelsohn@gnu.org>
7541
7542 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7543 (rs6000_sched_groups): New variable.
7544 (processor_target_table): Add power5.
7545 (rs6000_override_options): Set rs6000_sched_insert_nops,
7546 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7547 from rs6000_sched_groups.
7548 (output_cbranch): Use rs6000_always_hint.
7549 (rs6000_variable_issue): Use rs6000_sched_groups.
7550 (rs6000_adjust_cost): Add CPU_POWER5.
7551 (is_microcoded_insn): Use rs6000_sched_groups.
7552 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7553 Return 2 for POWER5 cracked instructions.
7554 (is_cracked_insn): Use rs6000_sched_groups.
7555 (is_branch_slot_insn): Use rs6000_sched_groups.
7556 (rs6000_issue_rate): Add CPU_POWER5.
7557 (rs6000_sched_finish): Use rs6000_sched_groups.
7558 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7559 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7560 (DEFAULT_SCHED_COSTLY_DEP): Delete.
7561 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7562 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7563 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7564 * config/rs6000/power5.md: New file.
7565 * doc/invoke.texi: Add power5 option.
7566
af6ed417 75672004-03-25 Kazu Hirata <kazu@cs.umass.edu>
7568
7569 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7570 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7571 * doc/invoke.texi: Fix a typo.
7572
84e90d04 75732004-03-25 Kazu Hirata <kazu@cs.umass.edu>
7574
7575 PR optimization/9707.
7576 * stmt.c (emit_case_nodes): Emit equality comparisons instead
7577 of recursing if both children are single-valued cases with no
7578 children.
7579
7b78e739 75802004-03-25 Paul Brook <paul@codesourcery.com>
7581
7582 * config/arm/arm.c (vfp_print_multi): Remove.
7583 (arm_output_fldmx): New function.
7584 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7585 (arm_expand_prologue): Update to match.
7586 (arm_get_vfp_saved_size): New Function.
7587 (arm_get_frame_offsets): Use it.
7588 (arm_output_epilogue): Use new functions.
7589
12cb06ad 75902004-03-24 Richard Henderson <rth@redhat.com>
7591
7592 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7593 (reg_known_value, reg_known_value_size): Likewise; make static.
7594 (reg_known_equiv_p): Make static.
7595 (clear_reg_alias_info): Update for new indexing.
7596 (get_reg_known_value, set_reg_known_value): New.
7597 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7598 (canon_rtx): Use them.
7599 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
7600 Don't play queer offsetting games with reg_known_value and
7601 reg_known_equiv_p.
7602 (end_alias_analysis): Free reg_known_value with gc.
7603 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7604 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7605 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7606 functions instead.
7607
292fdb55 76082004-03-24 Kazu Hirata <kazu@cs.umass.edu>
7609
7610 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7611 config/i386/mmintrin.h: Update copyright.
7612
c0c5068d 76132004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7614
7615 * configure.ac: Add --enable-werror-always (for top level bootstrap
7616 support).
7617 * configure: Regenerate.
7618
beed1ffc 76192004-03-24 Ziemowit Laski <zlaski@apple.com>
7620
7621 * objc/objc-act.c (objc_comptypes): Treat comparisons
7622 between 'Class' and '<class> *' as explicitly invalid.
7623
36b782b2 76242004-03-24 David Edelsohn <edelsohn@gnu.org>
7625
61317220 7626 * doc/invoke.texi (-frename-registers): Add enabled at -O3.
36b782b2 7627 (-fprofile-values): Add enabled with profile-{generate,use}.
7628 (-fvpt): Same.
7629 (-ftracer): Add enabled with profile-use.
7630 (-funit-at-a-time): Add enabled at -O2,-O3.
7631 (-funroll-loops): Add enabled with profile-use.
7632 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
7633 (max-gcse-passes): Mention default.
7634 (max-cse-path-length): Mention default.
7635
c70828fb 76362004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7637
7638 * Makefile.in (STRICT2_WARN): Reorder.
7639 * configure.ac: Check for -Wold-style-definition, and use it
7640 in strict1_warn if it's available.
7641 * configure: Regnerate.
7642
f9273c43 76432004-03-24 Paul Brook <paul@nowt.org>
7644
7645 * config.gcc <arm>: Add --with-abi=
7646 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7647 thumb_far_jump_used): Remove prototypes.
7648 (arm_needs_doubleword_align): Add prototype.
7649 (thumb_compute_initial_elimination_offset): Ditto.
7650 * config/arm/arm.c (arm_get_frame_offsets): New function.
7651 (use_return_insn, output_return_instruction, arm_output_epilogue,
7652 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7653 arm_expand_prologue, thumb_expand_epilogue): Use it.
7654 (arm_abi, target_abi_name, all_arm_abis): New variables.
7655 (arm_override_options): Set them. Set structure padding for AAPCS.
7656 (arm_return_in_memory): Update ABI check.
7657 (arm_init_cumulative_args): Initialize can_split.
7658 (arm_needs_doubleword_align): New function.
7659 (arm_function_arg): Don't split args after pushing to stack. Handle
7660 doubleword/even reg alignment.
7661 (arm_va_arg): Handle all doubleword aligned args.
7662 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7663 on ABI, not CPU.
7664 (arm_compute_save_reg0_reg12_mask): Fix comment.
7665 (thumb_get_frame_size, thumb_get_frame_size): Remove.
7666 (thumb_jump_far_used_p): Remove superfluous argument. Return save
7667 value for alignment.
7668 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7669 to match.
7670 (thumb_compute_initial_elimination_offset): New function.
7671 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
7672 unneccessary rounding.
7673 * config/arm/arm.h (target_abi_name): Declare.
7674 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7675 arm_abi_type, ARM_DEFAULT_ABI): Define.
7676 (ARM_FLAG_ATPCS): Remove.
7677 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7678 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7679 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7680 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7681 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7682 Contitionalize on ABI, not CPU.
7683 (struct arm_stack_offsets): Define.
7684 (struct machine_function): Add stack_offsets. Remove frame_size.
7685 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7686 pushed.
7687 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7688 doubleword alignment.
7689 (THUMB_INITIAL_ELIMINATION_OFFSET,
7690 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7691 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7692 * config/arm/arm.md (align_8): Enable for all targets.
7693 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7694 (ARM_DEFAULT_ABI): Define.
7695 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7696 -mstructure-size-boundary.
7697
1f59d204 76982004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7699
7700 * configure.ac: Check for -Wno-variadic-macros; don't use
7701 -pedantic (in stage 1 or a simple 'make all') unless it's available,
7702 and if it's available, use it. Also, clean up check for
7703 -Wno-long-long.
7704 * configure: Regenerate.
7705
c75c7e03 77062004-03-24 Richard Sandiford <rsandifo@redhat.com>
7707
7708 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7709 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7710 (MULTILIB_DEFAULTS): Use it.
7711 (MIPS_CPU_STRING_DEFAULT): Remove.
7712 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7713 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
7714 EABI64 -mlong32 the default ABI. Enforce the default architecture.
7715 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7931b22f 7716 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
c75c7e03 7717 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7718 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
7719 accordingly.
7720
a3fba2ab 77212004-03-24 DJ Delorie <dj@redhat.com>
7722 Richard Sandiford <rsandifo@redhat.com>
7723
7724 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7725 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7726 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7727 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7728 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7729 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7730 if TARGET_FIX_VR4122.
7731 * config/mips/mips.md (define_attr length): Account for nops inserted
7732 after macc and dmult when using -mfix-vr4122-bugs.
7733 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7734 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7735 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
7736 * config/mips/vr4122-div.S: New file.
7737 * doc/invoke.texi: Document -mfix-vr4122-bugs.
7738
bff47c96 77392004-03-24 Richard Sandiford <rsandifo@redhat.com>
7740
7741 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7742 (TARGET_MIPS4130): New macro.
7743 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7744 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7745 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7746 with PROCESSOR_R4130.
7747 * config/mips/mips.md (define_attr cpu): Add r4130.
7748 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7749
0725ee23 77502004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
7751 Richard Sandiford <rsandifo@redhat.com>
7752
7753 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7754
6e1efa85 77552004-03-24 Alexandre Oliva <aoliva@redhat.com>
7756
7757 PR preprocessor/14438
7758 * cpplib.c (do_pragma): Remove line_change call after pragma
7759 handler.
7760
c1f4dba6 77612004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
7762
7763 * doc/extend.texi (ARM Built-in Functions): Replace with correct
7764 declarations.
7765
994db390 77662004-03-23 Roger Sayle <roger@eyesopen.com>
7767
7768 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7769 if flag_unsafe_math_optimizations.
7770 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7771 and TARGET_80387 expand using truncdfsf2_noop pattern.
7772 (truncxfsf2): Likewise using truncxfsf2_noop.
7773 (truncxfdf2): Likewise using truncxfdf2_noop.
7774 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7775
333715c2 77762004-03-23 Ziemowit Laski <zlaski@apple.com>
7777
7778 * hooks.c (hook_constcharptr_tree_null): New hook.
7779 * hooks.h (hook_constcharptr_tree_null): New prototype.
7780 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7781 * target.h (mangle_fundamental_type): New target hook.
7782 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7783 target hook at rs6000_mangle_fundamental_type.
7784 (rs6000_mangle_fundamental_type): New function.
7785 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7786
393b349a 77872004-03-23 Zack Weinberg <zack@codesourcery.com>
7788
bca692fd 7789 PR 12267, 12391, 12560, 13129, 14114, 14133
393b349a 7790 * c-tree.h: Forward declare struct c_binding. Declare
7791 c_override_bindings_to_false. Update prototypes.
7792 (struct lang_identifier): Update comments. Change fields to be
7793 struct c_binding *.
7794 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7795 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7796 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7797 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7798 * c-common.h: Update prototypes.
7799 * c-decl.c (struct c_scope): Update commentary. Remove names,
7800 names_last, parms, parms_last, tags, and shadowed fields. Add
7801 bindings and depth fields.
7802 (scope_freelist): Move to more appropriate location.
7803 (c_print_identifier): Update for changes to struct lang_identifier.
7804 (objc_mark_locals_volatile): Update for new bindings structures.
7805 (global_bindings_p): Honor c_override_global_bindings_to_false.
7806 (pushlevel): Rename to push_scope; take no arguments; use the
7807 scope_freelist; initialize scope->depth and check for overflow.
7808 (poplevel): Rename to pop_scope; totally rewritten for new bindings
7809 structures.
7810 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7811 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
7812 Improve some commentary. Adjust handling of forward parm decls.
7813 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7814 Preserve C_DECL_IN_EXTERNAL_SCOPE.
7815 (warn_if_shadowing): Correct indentation. Improve diagnostics.
7816 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
7817 decls. Rewrite for new bindings structures. Improve commentary.
7818 Eliminate the copy_node call.
7819 (implicit_decl_warning): Use the "diag" idiom (as seen in
7820 locate_old_decl) to reduce code duplication; call locate_old_decl
7821 if appropriate. Relocate to remove need for forward declaration.
7822 (implicitly_declare): Adjust for new bindings structures. Kludge
7823 around Objective-C not-really-builtin functions.
7824 (undeclared_variable): Improve diagnostics. If current_function_decl
7825 is nonnull but current_function_scope is null, use current_scope.
7826 Use bind.
7827 (lookup_tag): Adjust for new bindings structures. Kludge around
7828 Objective-C's tag declarations that wind up in the external scope.
7829 (lookup_name): Adjust for new bindings structures. Kludge around
7830 c-common.c's pseudo-typedefs that wind up in the external scope.
7831 (lookup_name_current_level): Rename lookup_name_in_scope; take a
7832 second argument indicating the scope to examine; rewrite for
7833 new bindings structures.
7834 (c_init_decl_processing): Adjust for renamed functions. Do not
7835 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7836 First scope pushed is the external scope, not the global scope.
7837 (builtin_function): Use bind, not pushdecl. Adjust other bits
7838 for new data structures. Keep track of builtins that should be
7839 made visible automatically.
7840 (start_decl): Adjust diagnostics. Remove unnecessary call to
7841 expand_decl.
7842 (grokparms): Return 0 if arg_types is error_mark_node.
7843 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7844 reversed sense. Rewrite for new bindings structures. Do not
7845 leave any decls in the scope, to prevent pop_scope from doing
7846 contradictory things with them.
7847 (finish_struct, finish_enum): Remove redundant diagnostics.
7848 (build_enumerator): Don't cascade diagnostics for error_mark_node.
7849 Mark location where -pedantic changes the meaning of the program.
7850 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7851 parameter decls into the function's scope structure using bind.
7852 Warn here about function definitions in the wrong style.
7853 Adjust diagnostics.
7854 (store_parm_decls): Correct the determination of whether a
7855 function was defined with a prototype.
7856 (c_write_global_declarations): Operate on all file decls and on
7857 the external scope. Split body of the loop to...
7858 (c_write_global_declarations_1): ... this new function, to avoid
7859 code duplication.
7860 (truly_local_externals, first_builtin_decl, last_builtin_decl)
7861 (make_scope, pop_scope, in_parm_level_p, set_block)
7862 (any_external_decl, record_external_decl, bind_label, getdecls)
7863 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7864 (c_reset_state): Delete.
7865 (visible_builtins, c_override_global_bindings_to_false)
7866 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7867 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7868 (external_scope, binding_freelist, bind, free_binding_and_advance)
7869 (push_file_scope, pop_file_scope): New.
7870 (pushtag, pushdecl_top_level, lookup_label, declare_label)
7871 (define_label, c_make_fname_decl, finish_decl)
7872 (mark_forward_parm_decls, build_compound_literal)
7873 (grokdeclarator, start_function, check_for_loop_decls)
7874 (identifier_global_value, record_builtin_type): Minor adjustments
7875 for new bindings structures. Improve diagnostics and commentary.
7876 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7877 pushlevel/poplevel respectively.
7878 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7879 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7880 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
7881 correct loop over multiple translation units; call fatal_error if
7882 requested to compile more than one file at once. (This disables
7883 IMA temporarily - an up-front error being preferable to a crash.)
7884 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7885 (all actions): Adjust calls to pushlevel/poplevel.
7886 (parsing_iso_function_signature): Delete.
7887 (extdef_1): Fold into extdef.
7888 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
7889 warn here about function definitions in the wrong style.
7890 (after_tyle_declarator, parm_declarator_starttypename)
7891 (parm_declarator_nostarttypename, notype_declarator): Remove
7892 commented-out productions.
7893 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7894 an empty TREE_LIST node. Adjust calls to get_parm_info.
7895 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7896 to suppress -Wold-style-definition after this error.
7897 (c_parse_file): Don't clear the binding stack or call
7898 finish_fname_decls here. Correct comment.
7899 * c-typeck.c (same_translation_unit_p): Export.
7900 (common_type): Use c_override_global_bindings_to_false, not
7901 pushlevel/poplevel/declare_parm_level.
7902 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7903 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7904 and LANG_HOOKS_GETDECLS with do-nothing stubs.
7905 * objc/objc-lang.c: Likewise.
7906 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7907 get_parm_info.
7908 (OBJC_VOID_AT_END): Delete; replace all uses
7909 with void_list_node.
7910 (generate_forward_declaration_to_string_table): Delete.
7911 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7912
7913 * coverage.c (create_coverage): Don't pushdecl anything.
7914 * langhooks.c (lhd_clear_binding_stack): Call
7915 lang_hooks.decls.poplevel, not poplevel.
7916 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7917 circular list rather than going into an infinite loop.
7918
209fb753 79192004-03-23 Olivier Hainque <hainque@act-europe.fr>
7920
393b349a 7921 * optabs.c (expand_binop): When synthesizing double word rotates
7922 from single word shifts, use a new register target if the provided
7923 target is not a REG already.
209fb753 7924
b24423db 79252004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7926
7927 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7928 * c-common.c (handle_mode_attribute): Add extra arg to
7929 build_pointer_type_for_mode and build_reference_type_for_mode.
7930 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7931 for INTEGER_CST.
7932 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7933 Chain pointers via TYPE_NEXT_PTR_TO.
7934 (build_reference_type_for_mode): Similarly.
7935 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7936 and build_reference_type_for_mode.
7937 (tree_check4_failed): New function.
7938 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7939 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7940 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7941 Add check.
7942
44c9fd6a 79432004-03-23 Roger Sayle <roger@eyesopen.com>
7944
7945 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7946 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
7947 when both A and B are nonnegative.
7948 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7949 nonzero.
7950
2e858060 79512004-03-23 Kazu Hirata <kazu@cs.umass.edu>
7952
7953 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7954 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7955
8e3a484e 79562004-03-23 Kazu Hirata <kazu@cs.umass.edu>
7957
7958 PR optimization/14669
7959 * fold-const.c (fold): Only unwiden integer comparisons for equality
7960 and inequality operators, or when the signedness doesn't change.
7961
9876fa2b 79622004-03-23 Jakub Jelinek <jakub@redhat.com>
7963
7964 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7965 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7966 * config/sparc/t-linux: New file.
7967
69dbb666 79682004-03-23 Richard Sandiford <rsandifo@redhat.com>
7969
7970 * gcse.c (can_assign_to_reg_p): New function, split out from...
7971 (want_to_gcse_p): ...here.
7972 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7973 the rhs of a store.
7974
68ea59b1 79752004-03-22 Diego Novillo <dnovillo@redhat.com>
7976
7977 * c-typeck.c (same_translation_unit_p): Fix pasto.
7978
4c50e1f4 79792004-03-22 David Edelsohn <edelsohn@gnu.org>
7980
7981 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7982 (PARAM_MAX_SCHED_REGION_INSNS): New.
7983 * sched-rgn.c: Include params.h
7984 (MAX_RGN_BLOCKS): Delete.
7985 (MAX_RGN_INSNS): Delete.
7986 (too_large): Return bool. Convert to PARAM_VALUE.
37e2bef3 7987 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
4c50e1f4 7988 * doc/invoke.texi (param): Document max-sched-region-blocks and
7989 max-sched-region-insns.
7990
62351b00 79912004-03-22 Joel Brobecker <brobecker@gnat.com>
7992
7993 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7994 for base types.
7995
fd45b48c 79962004-03-22 Joel Brobecker <brobecker@gnat.com>
7997
7998 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7999 change.
8000
206d8357 80012004-03-22 Jakub Jelinek <jakub@redhat.com>
8002
8003 PR c/14069
8004 * c-decl.c (finish_struct): Change type of incorrect flexible array
8005 field into error_mark_node.
8006
ee83d225 80072004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
8008
90ce0bcb 8009 PR target/14580
ee83d225 8010 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8011 who are not local for Darwin PIC.
8012
a3906cad 80132004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
8014
8015 * regrename.c (regrename_optimize): Set regs_ever_live for all
8016 registers introduced as replacement.
8017
c0d93299 80182004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
8019
8020 PR middle-end/14470
8021 * expr.c (mark_queue): New function.
8022 (emit_insns_enqueued_after_mark): New function replacing
8023 emit_queue. Clear the body of emitted queued insns.
8024 (emit_queue): Call emit_insns_enqueued_after_mark.
8025 (store_expr): Mark the increment queue on entry. Emit
8026 only the incrementations queued when expanding the source.
8027
034b0f6e 80282004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
8029
8030 * configure.ac: Allow --disable-coverage-flags (for the future benefit
8031 of top level bootstrap, and consistency). Reindent.
8032 * configure: Regenerate.
8033
4acc30e5 80342004-03-21 Kazu Hirata <kazu@cs.umass.edu>
8035
8036 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8037 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8038 unnecessary casts.
8039
cf47969f 80402004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
8041
8042 PR target/14291
8043 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8044 __MINGW32__.
8045
14efd247 80462004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8047
8048 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8049 to nonimmediate_operand.
8050 ("*doloop_di"): Likewise.
8051
9d96125b 80522004-03-21 Alexandre Oliva <aoliva@redhat.com>
8053
8054 * real.h (struct real_value): Use the same type for all
8055 bitfields. Rename exp to uexp.
8056 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8057 Adjust all uses of exp...
8058 * builtins.c: ... here, ...
8059 * emit-rtl.c: ... here, and ...
8060 * real.c: ... and here.
8061
69cb846f 80622004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
8063
8064 * pretty-print.c (pp_base_maybe_space): New function.
8065 * pretty-print.h (pp_base_maybe_space): Declare.
8066 (pp_maybe_space): New macro.
8067
401fe9a1 80682004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8069
8070 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8071
e4fedb10 80722004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8073
8074 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8075 of using register multiplication cost.
8076 (expand_mult): Adapt choose_mult_variant call.
8077 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8078 of MODE; pass appropriate cost bound. Adjust result when
8079 performing signed multiplication by a negative constant.
8080 Don't use intermediate modes larger than word_mode.
8081
55f9d7dc 80822004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8083
8084 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8085 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8086 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8087 * explow.c (expr_size): Likewise.
8088 * expr.h (placeholder_list, find_placeholder): Deleted.
8089 * expr.c (store_constructor): Likewise.
8090 (get_inner_reference): Likewise. Also don't call find_placeholder.
8091 (placeholder_list, find_placeholder): Deleted.
8092 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8093 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8094 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8095 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8096 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8097 Likewise.
8098 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8099 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8100 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8101 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8102 Clean up by using first_rtl_op.
8103 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8104 (substitute_placeholder_in_expr): New function.
8105 * tree.def (WITH_RECORD_EXPR): Deleted.
8106 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8107 (substitute_placeholder_in_expr): New.
8108
c4c17cb1 81092004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
8110
8111 * dojump.c (prefer_and_bit_test): Fix which part of
8112 the and_test is replaced.
8113
149f5e18 81142004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
8115
8116 * frontends.texi: Add missing line.
8117
9b83a715 81182004-03-21 Zack Weinberg <zack@codesourcery.com>
393b349a 8119 Chris Devers <cdevers@pobox.com>
8120 Joseph S. Myers <jsm@polyomino.org.uk>
9b83a715 8121
8122 * doc/frontends.texi: Rewrite.
8123 * doc/gcc.texi: Update last modification date.
8124
7e8ca71d 81252004-03-21 Josef Zlomek <zlomekj@suse.cz>
8126
8127 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8128 message before redirecting the edge.
8129
8d350e69 81302004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8131
8132 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8133 flag.
8134 * explow.c (force_not_mem): Set REG_POINTER flag according to
8135 MEM_POINTER one.
8136 * rtl.h (MEM_POINTER): New macro.
8137 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8138 for MEM_POINTER.
8139
8f1e01cb 81402004-03-20 Roger Sayle <roger@eyesopen.com>
8141
8142 PR target/13889
8143 * cse.c (fold_rtx): Avoid substituting constants into unary
bade5616 8144 conversion operations.
8f1e01cb 8145
dc3c829a 81462004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8147
8148 * fold-const.c (fold): Replace "expr" with "t".
8149
dba94932 81502004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
8151
8152 PR c/12373
8153 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8154 DECL_ORIGINAL_TYPE if there isn't one.
8155
041207ec 81562004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8157
8158 * fold-const.c (fold): Replace "final_type" with "type".
8159 Remove variable "final_type".
8160
2b03eaaf 81612004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8162
8163 * fold-const.c (fold): Constify "type".
8164 Replace "TREE_TYPE (t)" with "type".
8165
6fb33aa0 81662004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8167
8168 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8169 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8170 via (*targetm.foo) () with targetm.foo ().
8171
8bc0afb1 81722004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
8173
8174 PR other/14630
8175 * doc/install.texi: Add info directory category and entry.
8176
53f78329 81772004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8178
8179 * fold-const.c (fold): Replace "t" with "tem" where it is used
8180 as a temporary variable. Remove "orig_t" and all of its uses.
8181
ad46984d 81822004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8183
8184 * fold-const.c (fold): Remove variable "invert".
8185 Move the handling of relational expressions that can be folded
8186 to a constant ...
8187 (fold_relational_const): ... here.
8188 (tree_expr_nonzero_p): New.
8189
cbda0e11 81902004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
8191
8192 PR c/14635
8193 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8194 DEF_GCC_BUILTIN.
8195
d9e19419 81962004-03-20 Richard Sandiford <rsandifo@redhat.com>
8197
8198 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8199 (GTFILES): Add $(srcdir)/dojump.h.
8200 (gt-dojump.h): New dependency.
8201 * dojump.c (and_reg, and_test, shift_test): New static variables.
8202 (prefer_and_bit_test): New function.
8203 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8204
3927afe0 82052004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8206
8207 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8208 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8209 reorg.c, tree.h: Fix comment typos.
8210
883b2e73 82112004-03-19 Kazu Hirata <kazu@cs.umass.edu>
8212
8213 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8214 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8215 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8216 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8217 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8218 vmsdbgout.c: Replace calls via (*targetm.foo) () with
8219 targetm.foo ().
8220
cce398ee 82212004-03-19 Ziemowit Laski <zlaski@apple.com>
8222
8223 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8224 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8225 always_inline attribute.
8226 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8227 Treat expansion as completed even if literal argument is
8228 invalid (so that other expansions are not tried in vain).
8229
d0764c9e 82302004-03-19 Kazu Hirata <kazu@cs.umass.edu>
8231
8232 * loop-doloop.c (add_test): Replace GEN_INT (0) with
8233 const0_rtx.
8234
5221d284 82352004-03-19 Kazu Hirata <kazu@cs.umass.edu>
8236
8237 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8238 ...
8239 (fold_abs_const): ... here.
8240
7559a14d 82412004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8242
8243 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8244
f5391096 82452004-03-19 Denis Chertykov <denisc@overta.ru>
8246
ef5541a4 8247 PR target/11520
f5391096 8248 * config/avr/avr.md ("call_insn"): Handle explicit integer
8249 specially.
8250 (call_value_insn): Likewise.
8251
50d1f269 82522004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8253
8254 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8255
9d77437d 82562004-03-19 Kazu Hirata <kazu@cs.umass.edu>
8257
8258 * fold-const.c (negate_expr): Move the handling of constants
8259 ...
8260 (fold_negate_const): ... here.
8261
a26d3281 82622004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8263
8264 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8265 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8266 * tree.c (debug_no_type_hash): Deleted.
8267 (type_hash_canon): Abort if passed a variant.
8268 Check lang_hooks.types.hash_types.
8269 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8270 (build_array_type): Remove unnecessary allocation of pointer type.
8271 (build_complex_type): Properly qualify resulting type.
8272
228f4433 82732004-03-19 Paolo Bonzini <bonzini@gnu.org>
8274
8275 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8276
27588b0f 82772004-03-19 Richard Sandiford <rsandifo@redhat.com>
8278
8279 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8280 (expand_mult): ...here.
8281 (extract_high_half): New, split out from expand_mult_highpart.
8282 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
8283 (expand_highpart): Evaluate the cost of a shift/add sequence,
8284 then see if any of the specialized optabs are cheaper.
8285
e89160e3 82862004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
8287
8288 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8289
6652176a 82902004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8291
8292 * convert.c (convert_to_real): Add more math builtins.
8293
0405708b 82942004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8295
8296 * convert.c (convert_to_real): Reformat using switch stmt.
8297
3180c04a 82982004-03-18 Mark Mitchell <mark@codesourcery.com>
8299
8300 * c-common.c (pointer_int_sum): Do not complain about using
8301 pointers to pointers-to-members.
8302
5c8dda37 83032004-03-18 Kazu Hirata <kazu@cs.umass.edu>
8304
8305 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8306 have moved to the target hooks structure".
8307
b5039c24 83082004-03-18 James E Wilson <wilson@specifixinc.com>
8309
8310 * config/mips/mips.md (type): Split move into arith and fmove. Split
8311 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
8312 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8313 Likewise.
8314 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8315 Likewise.
8316 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8317 rm7_fp_quick): Likewise.
8318 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8319 rm9k_fquick): Likewise.
8320 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8321 Likewise.
8322 (ir_sr70_icmp): Delete.
8323
82bb2115 83242004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
393b349a 8325
82bb2115 8326 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8327 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8328 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8329 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8330 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8331 Protect with proper check.
8332 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8333 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8334 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8335 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8336 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8337 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8338 not TYPE_FIELDS.
7472ae5d 8339 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
82bb2115 8340
e941dfb2 83412004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
8342
8343 * gcse.c (eliminate_partially_redundant_loads): Reject change if
8344 dest is set between beginning and current insn.
8345
7ddf4456 83462004-03-18 Mark Mitchell <mark@codesourcery.com>
8347
8348 * c-decl.c (grokdeclarator): Do not complain about redeclaring
8349 visible "static" identifiers "extern" in a local scope.
8350 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8351 post-increments/decrements.
8352
bef77716 83532004-03-18 Bob Wilson <bob.wilson@acm.org>
8354
8355 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8356 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8357 (xtensa_va_start): Remove assignment to current_function_arg_words.
8358
ad6b1fe1 83592004-03-18 Richard Sandiford <rsandifo@redhat.com>
8360
8361 * alias.c (record_set): Detect the case where a register is assigned
8362 a new value that has the same base term as the old one.
8363
2d49f824 83642004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8365
8366 * doloop.c: Removed.
8367 * loop-doloop.c: New file.
8368 * Makefile.in (doloop.o): Remove.
8369 (loop-doloop.o): New.
8370 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8371 * cfgloopanal.c (get_loop_level): New function.
8372 * loop-iv.c (iv_number_of_iterations): Handle case when loop
8373 is leaved immediatelly.
8374 * loop.c (strength_reduce): Do not call doloop optimization.
8375 * loop.h (LOOP_BCT): Removed.
8376 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8377 (rest_of_handle_loop2): Call doloop_optimize_loops.
8378 (rest_of_compilation): Test for optimizations moved to
8379 rest_of_handle_loop2.
8380
20ebc48f 83812004-03-17 Fariborz Jahanian <fjahanian@apple.com>
8382
393b349a 8383 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8384 for mixed mode.
8385 (rs6000_emit_prologue): Ditto.
8386 (rs6000_emit_epilogue): Ditto.
8387 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8388 macro for mixed mode.
20ebc48f 8389
d10d29c0 83902004-03-18 Jan Hubicka <jh@suse.cz>
8391
8392 * predict.c (propagate_freq): Compute correctly frequency of
8393 EXIT_BLOCK.
8394
0862b7e9 83952004-03-17 Eric Christopher <echristo@redhat.com>
8396
8397 * builtins.c (apply_args_size): Use reg_raw_mode.
8398 (apply_result_size): Ditto.
8399
3da6dfd9 84002004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8401
8402 PR target/14620
8403 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8404
22280ecb 84052004-03-17 Jakub Jelinek <jakub@redhat.com>
8406
8407 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8408 32-bit builds when defaulting to 32-bit.
8409
743ff5bb 84102004-03-17 Jan Hubicka <jh@suse.cz>
8411
8412 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8413 array.
8414
ff813ae9 84152004-03-17 James E Wilson <wilson@specifixinc.com>
8416
8417 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8418 (hazard_nop): Change type to nop.
8419 (type): Split arith into arith, shift, slt, clz. Delete darith.
8420 Fix all uses. Change arith to multi if more than one insn emitted.
8421 * config/mips/5400.md (ir_vr54_arith): Likewise.
8422 * config/mips/5500.md (ir_vr55_arith): Likewise.
8423 * config/mips/7000.md (rm7_int_other): Likewise.
8424 * config/mips/9000.md (rm9k_int): Likewise.
8425 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8426
4aad261f 84272004-03-17 Joel Brobecker <brobecker@gnat.com>
8428
8429 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8430 to hold the subtype tree instead of recomputing it several times.
8431
30b27468 84322004-03-17 Kazu Hirata <kazu@cs.umass.edu>
8433
8434 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8435 CC_INVERT.
8436 * config/mn10300/mn10300.md (cc): Remove "invert".
8437
72302fe8 84382004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8439
5bc8fd11 8440 * builtins.c (integer_valued_real_p): Add builtin rint.
8441 (fold_builtin): Likewise.
8442 * convert.c (convert_to_real): Likewise.
8443
72302fe8 8444 * convert.c (convert_to_real): Fix typos in `long double'
8445 builtins.
8446
8d5d422a 84472004-03-16 Mark Mitchell <mark@codesourcery.com>
8448
8449 PR c++/14481
8450 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8451 generated COMPOUND_EXPRs.
8452
b76e558c 84532004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8454
8455 * config/h8300/t-rtems (h8300-*-rtems*): New.
8456
f30a9f28 84572004-03-16 Eric Christopher <echristo@redhat.com>
8458
8459 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8460
41252d26 84612004-03-16 Kazu Hirata <kazu@cs.umass.edu>
8462
8463 * config/i386/i386-protos.h: Add a prototype for
8464 ix86_reverse_condition.
8465 * config/i386/i386.c (ix86_reverse_condition): New.
8466 * config/i386/i386.h (REVERSE_CONDITION): Use
8467 ix86_reverse_condition.
8468 * config/i386/i386.md: Use ix86_reverse_condition instead of
8469 REVERSE_CONDITION.
8470
93823dba 84712004-03-16 J. Brobecker <brobecker@gnat.com>
8472
8473 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8474
5399bcc3 84752004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
8476
8477 PR bootstrap/12974
8478 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8479
4917c376 84802004-03-16 Paolo Bonzini <bonzini@gnu.org>
8481
8482 * c-common.c (c_common_type_for_mode): Build vector types on
8483 demand.
8484 (handle_mode_attribute): Deprecate using the mode attribute
8485 to create vector types. Fix indentation.
8486 (vector_type_node_list): Remove.
8487 (handle_vector_size_attribute): Create vector types on demand.
8488 Strip a NON_LVALUE_EXPR from the attribute if there is one.
8489 * c-typeck.c (comptypes): Make vector types compatible if they
8490 have the same underlying mode.
8491 (convert_for_assignment): Use comptypes to convert between
8492 vector types.
8493 * tree.c (build_common_tree_nodes_2): Do not create vector types.
8494 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8495 vector types.
8496 * tree.h: Remove vector types.
8497 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8498 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8499 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8500 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8501 * doc/extend.texi (Vector Types): Document how to use the
8502 vector_size attribute to create vectors, rather than mode.
8503
8504 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8505 * config/i386/emmintrin.h: Likewise.
8506 * config/i386/mmintrin.h: Likewise.
8507 * config/i386/xmmintrin.h: Likewise.
8508 * config/sh/ushmedia.h: Likewise.
8509
fb6c3667 85102004-03-16 Kazu Hirata <kazu@cs.umass.edu>
8511
8512 * config/freebsd-spec.h, config/arc/arc-protos.h,
8513 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8514 config/arm/linux-gas.h, config/arm/semi.h,
8515 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8516 config/ia64/freebsd.h, config/mips/7000.md,
8517 config/mips/9000.md, config/ns32k/ns32k-protos.h,
8518 config/sparc/pbd.h: Update copyright.
8519
26f6dfe2 85202004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8521
8522 PR target/14577
8523 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
8524
d7ef6792 85252004-03-16 Paolo Bonzini <bonzini@gnu.org>
8526
8527 * combine.c (combine_simplify_rtx): Remove the "last"
8528 parameter and its documentation. Adjust recursive calls.
8529 (simplify_logical): Always perform the only simplification
8530 controlled by "last", if the simplified expression is
8531 actually different.
8532 (try_combine): Do not pass the "last" parameter to
8533 combine_simplify_rtx.
8534
8473b736 85352004-03-16 Richard Sandiford <rsandifo@redhat.com>
8536
8537 PR target/14599
8538 * config/mips/mips.md (UNSPEC_GP): New constant.
8539 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8540 an UNSPEC instead of (reg $gp).
8541 (mips16_gp_pseudo_reg): Change accordingly.
8542 (print_operand): Print $gp directly when handling CONST_GP_P.
8543
85442004-03-16 Richard Zidlicky <rz@linux-m68k.org>
8e80b452 8545
8546 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8547 * longlong.h: Make code 68060 clean when compiling for m68060.
8548
8473b736 85492004-03-16 Richard Zidlicky <rz@linux-m68k.org>
f9854e90 8550
8551 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8552 * doc/md.texi: Clarify description of "i" constraint.
8553
e9e582c8 85542004-03-15 James E Wilson <wilson@specifixinc.com>
8555
8556 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8557 Split store into store, fpstore, fpidxstore. Fix all uses.
8558 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8559 Likewise.
8560 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8561 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8562 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8563 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8564 ir_sr70_fstore): Likewise.
8565
3ec8c2a1 85662004-03-15 Richard Henderson <rth@redhat.com>
8567
8568 PR middle-end/14535
8569 * except.c (collect_one_action_chain): Record action for cleanup
8570 outer of exception spec.
8571
c4432280 85722004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
8573
8574 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8575 Fix the check for abort and only do the mmap if we can.
8576
d9dc8146 85772004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
8578
8579 * config/sparc/sparc.h: Rework comments about the code model
8580 in 64-bit environment and the mode 'Pmode'.
8581 * doc/invoke.texi (SPARC options): Rework description of the
8582 different code models supported in 64-bit environment.
8583
8665fd86 85842004-03-15 Kazu Hirata <kazu@cs.umass.edu>
8585
8586 * defaults.h (REVERSIBLE_CC_MODE): Define.
8587 * jump.c (reversed_comparison_code_parts): Don't check if
8588 REVERSIBLE_CC_MODE is defined.
8589
a62ddad6 85902004-03-15 Kazu Hirata <kazu@cs.umass.edu>
8591
8592 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8593 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8594 hosthooks.h, params.h, ra-colorize.c, web.c,
8595 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8596 config/avr/avr-protos.h, config/avr/avr.md,
8597 config/fr30/fr30-protos.h, config/fr30/fr30.md,
8598 config/h8300/fixunssfsi.c, config/i386/darwin.h,
8599 config/i386/freebsd.h, config/i386/freebsd64.h,
8600 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8601 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8602 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8603 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8604 config/pa/pa64-regs.h, config/rs6000/aix41.h,
8605 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8606 config/sparc/aout.h, config/sparc/freebsd.h,
8607 config/sparc/litecoff.h, config/vax/vax-protos.h,
8608 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8609 copyright.
8610
1e93bfb2 86112004-03-15 Paul Brook <paul@codesourcery.com>
8612
8613 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8614
ad46e187 86152004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
8616
8617 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8618 (pp_c_cv_qualifier): Document.
8619 (pp_c_space_for_pointer_operator): Likewise.
8620 (pp_c_integer_constant): Likewise.
8621 (pp_c_identifier): Likewise.
8622 (pp_c_init_declarator): Don't print function body.
8623
ef8d967c 86242004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
8625
8626 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8627 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8628 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8629 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
8630 wording and grammar.
8631
dc24ddbd 86322004-03-14 Roger Sayle <roger@eyesopen.com>
8633
8634 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8635 with lang_hooks.foo ().
8636 * builtins.c (expand_builtin_va_arg): Likewise.
8637 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8638 c_common_type_for_mode, c_common_nodes_and_builtins,
8639 handle_mode_attribute, handle_vector_size_attribute): Likewise.
8640 * c-convert.c (convert): Likewise.
8641 * c-format.c (check_format_types): Likewise.
8642 * c-objc-common.c (c_tree_printer): Likewise.
8643 * c-typeck.c (build_unary_op, build_conditional_expr,
8644 build_binary_op): Likewise.
8645 * calls.c (try_to_integrate, expand_call,
8646 emit_library_call_value_1): Likewise.
8647 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8648 Likewise.
8649 * cgraphunit.c (record_call_1, cgraph_analyze_function,
8650 cgraph_expand_function): Likewise.
8651 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8652 * coverage.c (build_fn_info_type, build_ctr_info_type,
8653 build_gcov_info, create_coverage): Likewise.
8654 * dbxout.c (dbxout_init): Likewise.
8655 * diagnostic.c (diagnostic_report_current_function): Likewise.
8656 * dojump.c (do_jump): Likewise.
8657 * dwarf2out.c (dwarf2_name): Likewise.
8658 * except.c (init_eh): Likewise.
8659 * explow.c (expr_size, int_expr_size): Likewise.
8660 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8661 Likewise.
8662 * expr.c (store_expr, store_constructor, safe_from_p,
8663 expand_expr_real, do_store_flag, try_casesi): Likewise.
8664 * function.c (push_function_context_to, pop_function_context_from,
8665 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8666 put_var_into_stack, allocate_struct_function, current_function_name):
8667 Likewise.
8668 * integrate.c (copy_decl_for_inlining, expand_inline_function):
8669 Likewise.
8670 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8671 lhd_print_error_function): Likewise.
8672 * opts.c (handle_option, decode_options): Likewise.
8673 * passes.c (open_dump_file): Likewise.
8674 * print-tree.c (print_node): Likewise.
8675 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8676 expand_decl_cleanup, emit_case_nodes): Likewise.
8677 * stor-layout.c (variable_size): Likewise.
8678 * toplev.c (announce_function, wrapup_global_declarations,
8679 check_global_declarations, compile_file, default_tree_printer,
8680 process_options, lang_dependent_init, finalize): Likewise.
8681 * tree-dump.c (dequeue_and_dump): Likewise.
8682 * tree-inline.c (remap_decl, remap_block, copy_body_r,
8683 initialize_inlined_parameters, declare_return_variable,
8684 inlinable_function_p, expand_call_inline, optimize_inline_calls,
8685 walk_tree, copy_tree_r): Likewise.
8686 * tree-optimize.c (tree_rest_of_compilation): Likewise.
8687 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8688 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8689 variably_modified_type_p, dump_tree_statistics): Likewise.
8690 * varasm.c (assemble_variable, compare_constant, copy_constant,
8691 force_const_mem, compute_reloc_for_constant, output_constant,
8692 output_addressed_constants, initializer_constant_valid_p): Likewise.
8693
33bfa393 86942004-03-14 Kelley Cook <kcook@gcc.gnu.org>
8695
8696 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8697
f298dbad 86982004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
8699
8700 * doc/install.texi: Reflect autoconf and automake version for
8701 libffi. Update autoconf version to 2.59.
8702
fa8b888f 87032004-03-13 Roger Sayle <roger@eyesopen.com>
8704
8705 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8706 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8707 make_range, build_range_check, fold_range_test, unextend,
8708 constant_boolean_node, fold_binary_op_with_conditional_arg,
8709 fold_truthop, fold_mathfn_compare, fold_inf_compare,
8710 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8711 with lang_hooks.foo ().
8712
48341f13 87132004-03-14 Richard Earnshaw <rearnsha@arm.com>
8714
8715 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8716
efd7a05e 87172004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
8718
8719 * doc/install.texi: Note status of -fnew-ra.
8720
5e4778f4 87212004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
8722
8723 PR middle-end/14470
8724 * expr.c (store_expr): Call emit_queue before generating the move
8725 from the temporary to the original target. Protect the temporary
8726 from emit_queue.
8727
f4286f7a 87282004-03-13 Jakub Jelinek <jakub@redhat.com>
8729
8730 PR target/14533
8731 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8732 other than UNSPEC_GOTOFF.
8733
b4e8a300 87342004-03-13 Richard Earnshaw <rearnsha@arm.com>
8735
8736 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
8737 to arm_legitimate_index_p. Update all callers with SET as default
8738 value.
8739 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
8740 range if OUTER is a sign-extend operation on QImode. Correctly
8741 reject shift operations on sign-extended QImode addresses.
8742 (bad_signed_byte_operand): Delete.
8743 (arm_extendqisi_mem_op): New function.
8744 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
8745 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
8746 constraints.
8747 (CONSTRAINT_LEN): New.
8748 (EXTRA_CONSTRAINT): Delete. Replace with...
8749 (EXTRA_CONSTRAINT_STR): ... this.
8750 (PREDICATE_CODES): Remove bad_signed_byte_operand.
8751 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
8752 is now always default.
8753 (define_splits for bad sign-extend loads): Delete.
8754 (arm_extendqisi, arm_extendqisi_v5): Likewise.
8755 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8756 Rework 'U' constraint to 'Uv'.
8757 * arm-protos.h: Remove bad_signed_byte_operand. Add
8758 arm_extendqisi_mem_op.
8759 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8760 Add Uq constraint.
8761
0dd5e539 87622004-03-13 Alan Modra <amodra@bigpond.net.au>
8763
e9f91255 8764 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8765 with targetm version.
8766
0dd5e539 8767 PR target/14567
8768 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8769 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8770 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8771 Update all users of RS6000_ARG_SIZE.
8772 (function_arg_advance): Count fregno using mode size.
8773 (function_arg): Handle long double split over regs and memory.
8774 (function_arg_partial_nregs): Likewise.
8775 (rs6000_va_arg): Repackage complex args.
8776
c94f054f 87772004-03-13 Dean Ferreyra <dferreyra@igc.org>
8778
8779 PR target/14047
8780 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8781 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8782 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8783
e785c081 87842004-03-12 Jakub Jelinek <jakub@redhat.com>
8785
8786 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8787 prototype.
8788 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8789 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8790
eb28db74 87912003-03-12 Andrew Pinski <apinski@apple.com>
8792
8793 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8794 Use ret instead of result. Use addr instead of base.
8795
3759b77b 87962004-03-12 David Edelsohn <edelsohn@gnu.org>
8797
8798 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8799 fixes required by libstdc++ and update installation instructions
8800 for libstdc++.a.
8801
9565e777 88022004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
8803
8804 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8805 leading '@' on fastcall symbols before stripping suffix.
8806
7d87562d 88072004-03-12 Roger Sayle <roger@eyesopen.com>
8808
8809 * combine.c (unmentioned_reg_p): New function to check whether an
8810 expression is a "specialization" of another, i.e. that there are
8811 no registers or memory references mentioned in the first that don't
8812 appear in the second.
8813 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8814 (combine_instructions): Also try combining instructions using the
8815 REG_EQUAL note from a preceding log-linked instruction.
8816
c1fc26c1 88172004-03-12 Roger Sayle <roger@eyesopen.com>
8818
8819 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8820
2f9fc8ef 88212004-03-12 Matt Austern <austern@apple.com>
8822
8823 * target.h (struct gcc_target): New target hook, unwind_label.
8824 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8825 * output.h (default_emit_unwind_label): New function.
8826 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8827 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8828 (TARGET_SUPPORTS_HIDDEN): New target macro.
8829 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8830 that corresponds to this FDE.
8831 (FRAME_BEGIN_LABEL): Allow target to override default label.
8832 (output_call_frame_info): If FDEs are linknonce, then use extra
0dd5e539 8833 indirection for FDE encoding, output a label for each FDE, and
2f9fc8ef 8834 output an empty label for each function without an FDE.
8835 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8836 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8837 decls with DECL_ONE_ONLY set, if that macro is defined.
8838 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8839 for a SUPPORTS_ONE_ONLY target.
8840 * config/darwin-protos.h (darwin_unique_section): Declare.
8841 (darwin_asm_named_section): Likewise.
8842 (darwin_section_type_flags): Likewise.
8843 (darwin_non_lazy_pcrel): Likewise.
8844 (darwin_emit_unwind_label): Likewise.
8845 (darwin_make_decl_one_only): Likewise.
8846 * config/darwin.c (machopic_finish): Get rid of tweak that
8847 eliminate stubs for symbols that are defined.
8848 (darwin_encode_section_info): Don't treat weak functions as defined.
8849 (darwin_make_decl_one_only): Define.
8850 (darwin_asm_named_section): Likewise.
8851 (darwin_section_type_flags): Likewise.
8852 (darwin_unique_section): Likewise.
8853 (darwin_emit_unwind_label): Likewise.
8854 (darwin_non_lazy_pcrel): Likewise.
8855 (darwin_asm_output_dwarf_delta): Difference between two labels is
8856 local only if both labels are local.
8857 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8858 (ASM_MAKE_LABEL_LINKONCE): Likewise.
8859 (TARGET_SUPPORTS_HIDDEN): Likewise.
8860 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8861 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8862 (FRAME_BEGIN_LABEL): Likewise.
8863 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8864 (ASM_DECLARE_FUNCTION_NAME): Likewise.
8865 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8866 (TARGET_ASM_UNIQUE_SECTION): Define.
8867 (EH_FRAME_SECTION_NAME): Define.
8868 (EH_FRAME_SECTION_ATTR): Likewise.
8869 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8870 (TARGET_ASM_NAMED_SECTION): Likewise.
8871 (TARGET_SECTION_TYPE_FLAGS): Likewise.
8872 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8873 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8874 TARGET_ASM_EMIT_UNWIND_LABEL.
f30a9f28 8875
9d9ccca1 88762004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8877
8878 * builtins.c (expand_builtin_mathfn): Add pow10* to the
8879 existing exp10* case.
8880 (expand_builtin): Likewise.
8881
556e5619 88822004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
8883
8884 * doc/tm.texi (registers) <Values in Registers>: Add
8885 entry for REGMODE_NATURAL_SIZE.
8886
92d40bc4 88872004-03-12 Richard Henderson <rth@redhat.com>
8888
8889 PR target/14547
8890 * target.h (struct gcc_target): Move calls substructure before
8891 booleans. Add split_complex_arg.
8892 * function.c (assign_parms, split_complex_args): Use it.
0dd5e539 8893 * calls.c (expand_call): Likewise.
8894 (split_complex_values): Likewise. Check for splittable types
8895 before allocating memory.
8896 (split_complex_types): Likewise.
92d40bc4 8897 * system.h (SPLIT_COMPLEX_ARGS): Poison.
8898 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8899 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8900 * config/alpha/alpha.c (alpha_split_complex_arg): New.
8901 (TARGET_SPLIT_COMPLEX_ARG): New.
8902 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8903 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8904 (rs6000_override_options): Zap it for non-AIX.
8905 (rs6000_function_value): Use targetm.calls.split_complex_arg.
8906 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8907 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8908 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8909 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8910 SPLIT_COMPLEX_ARGS entry.
8911
2d7c492e 89122004-03-11 Richard Henderson <rth@redhat.com>
8913
8914 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8915 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8916 (alpha_emit_xfloating_arith): Update to match.
8917 (alpha_emit_xfloating_compare): Likewise.
8918 (alpha_emit_xfloating_cvt): Likewise.
8919 (alpha_emit_xfloating_libcall): Take already built symbol,
8920 mark call const.
8921 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8922 op1 in a register.
8923
e22c13fa 89242004-03-11 Richard Henderson <rth@redhat.com>
8925
8926 PR target/14539
8927 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8928
1a02cd5b 8929 * simplify-rtx.c (simplify_relational_operation): Fix typo.
8930
e8587c1f 89312004-03-11 Richard Henderson <rth@redhat.com>
8932
8933 PR middle-end/14477
8934 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8935
2c267f1a 89362004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
8937
8938 PR target/14262
8939 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8940 defined, pass small BLKmode values in registers in the low-order part.
8941
cbe81417 89422004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
8943
8944 * combine.c (if_then_else_cond): Check for NULL return value of
8945 simplify_gen_subreg.
8946
2538b6a3 89472004-03-11 Richard Sandiford <rsandifo@redhat.com>
8948
8949 PR target/14496
8950 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8951 TARGET_SINGLE_FLOAT.
8952
ea5219c2 89532004-03-11 Steve Ellcey <sje@cup.hp.com>
8954
8955 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8956 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8957 * config/ia64/ia64.c (ia64_init_libfuncs): New.
8958 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8959
a22fd555 89602004-03-11 Roger Sayle <roger@eyesopen.com>
8961
8962 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8963 -((int)X>>C) where C is an integer constant one bit less than the
8964 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
8965 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8966
8967 * simplify-rtx.c (simplify_unary_operation): Also implement the
8968 above transformations at the RTL level.
8969
f706c513 89702004-03-11 Alan Modra <amodra@bigpond.net.au>
8971
8972 * real.c (encode_ibm_extended): Do round low word.
8973
5ecb8da7 89742004-03-11 Ben Elliston <bje@wasabisystems.com>
8975
8976 * config/arm/arm.md (is_xscale): Comment this attribute and move
8977 it a bit further up in the file, closer to related attributes.
8978
9f2b0905 89792004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
8980
8981 * config/host-solaris.c (sol_gt_pch_use_address): Add
8982 missing terminating marker to comment.
8983
7cfa338a 89842004-03-11 Richard Sandiford <rsandifo@redhat.com>
8985
8986 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8987 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8988 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8989 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
8990 move_operand as source predicate in all cases.
8991 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
8992 Test reg_or_0_operand. Use move_operand as source predicate.
8993 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
8994 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8995 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
8996 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8997 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
8998 Use move_operand as source predicate. Remove 'K' constraint.
8999 (*movqi_internal): Likewise movqi_internal.
9000 (*movsf_hardfloat): Renamed from movsf_internal1. Test
9001 reg_or_0_operand. Use move_operand as source predicate.
9002 (*movsf_softfloat): Likewise movsf_internal2.
9003 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9004 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9005 (*movdf_softfloat): Likewise movdf_internal2.
9006 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9007 for DImode if !TARGET_64BIT.
9008 (mips_legitimize_move): Simplify accordingly.
9009
85bbdb3f 90102004-03-11 Josef Zlomek <zlomekj@suse.cz>
9011
9012 PR/14362
9013 * var-tracking.c (struct variable_def): Added field refcount.
9014 (variable_htab_free): Decrease the refcount and delete variable
9015 only if there are no more references.
9016 (unshare_variable): New function.
9017 (vars_copy_1): Increase refcount instead of copying the variable.
9018 (variable_union): Share the variables where possible, unshare
9019 the variables if needed.
9020 (variable_different_p): Return false if var1 and var2 are
9021 the same structure.
9022 (variable_was_changed): Init the refcount of new variable.
9023 (set_frame_base_location): Unshare variable if needed.
9024 (set_variable_part): Init the refcount of new variable.
9025 Unshare the variables if needed.
0dd5e539 9026 (delete_variable_part): Unshare the variables if needed.
85bbdb3f 9027 (emit_notes_for_differences_1): Init the refcount of new variable.
9028 (vt_add_function_parameters): Do not add function parameters to
9029 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9030 (vt_initialize): Do not add frame_base_decl to IN set of
9031 ENTRY_BLOCK_PTR because it is unused anyway.
9032
e0473d22 90332004-03-11 Josef Zlomek <zlomekj@suse.cz>
9034
9035 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9036 (vars_copy): Likewise.
9037 (variable_union): Likewise.
9038 (set_variable_part): Likewise.
9039 (delete_variable_part): Likewise.
9040
5aedf60c 90412004-03-11 Kazu Hirata <kazu@cs.umass.edu>
9042
9043 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9044 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9045 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9046 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9047 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9048 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9049 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9050 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9051 config/stormy16/stormy16.c: Fix comment typos and formatting.
9052
5222575c 90532004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
9054
9055 * configure: Regenerate, since I forgot to while committing Paolo's
9056 changes.
9057
c24c5e46 90582004-03-08 Paolo Bonzini <bonzini@gnu.org>
9059
9060 PR ada/14131
9061 Move language detection to the top level.
9062 * configure.ac: Remove code to detect languages,
9063 it now lives exclusively in the top level.
9064 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9065 top level, renamed to ACX_PROG_GNAT.
9066
53ee4dac 90672004-03-10 Richard Henderson <rth@redhat.com>
9068
9069 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9070 extra arguments.
9071 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9072 and host_xmake_file fragments.
9073 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9074 (gt_pch_restore): Similarly for gt_pch_use_address.
9075 (default_gt_pch_get_address): New.
9076 (mmap_gt_pch_get_address): Split out of gt_pch_save.
9077 (default_gt_pch_use_address): Split out of gt_pch_restore.
9078 (mmap_gt_pch_use_address): Likewise.
9079 * hooks.c (hook_voidp_size_t_null): Remove.
9080 (hook_bool_voidp_size_t_false): Remove.
9081 * hooks.h: Likewise.
9082 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9083 default_ or mmap_ definitions.
9084 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9085 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9086 and gt_pch_use_address.
9087 * config/host-linux.c, config/host-solaris.c: New files.
9088 * config/x-linux, config/x-solaris: New files.
f30a9f28 9089 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
53ee4dac 9090 Update for changed definition.
9091 (darwin_rs6000_gt_pch_use_address): Likewise.
9092 * doc/hostconfig.texi: Update docs.
9093
a7b87e06 90942004-03-10 Richard Henderson <rth@redhat.com>
9095
9096 PR c/14517
9097 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9098 except for pedantic c90 mode.
9099
d6b9b86f 91002004-03-10 Kelley Cook <kcook@gcc.gnu.org>
9101
9102 * configure.ac: Bump AC_PREREQ to 2.59.
9103 * configure: Regenerate.
9104
750ef9f5 91052004-03-10 Uros Bizjak <uros@kss-loka.si>
9106
9107 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9108 (exp10_optab, exp2_optab): Define corresponding macros.
9109 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9110 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9111 using exp10?f2 and exp2?f2 patterns.
9112 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9113 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9114 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9115 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9116
9117 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9118 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9119 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9120
9d3500ff 91212004-03-10 Anthony Green <green@redhat.com>
9122
9123 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9124
26efa80d 91252004-03-10 David Edelsohn <edelsohn@gnu.org>
9126
9127 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9128 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
9129 __LONGDOUBLE128.
9130 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9131 TARGET_OS_AIX_CPP_BUILTINS.
9132 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9133 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9134 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9135 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9136 previous change.
9137
e63e0041 91382004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9139
9140 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9141
7fa9bfe1 91422004-03-10 David Edelsohn <edelsohn@gnu.org>
9143
9144 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9145 __LONGDOUBLE128 on AIX.
9146
85a5d878 91472004-03-10 Andrew Haley <aph@redhat.com>
9148
f731d64a 9149 PR optimization/14381
85a5d878 9150 * function.c (expand_function_end): Emit a blockage insn before
9151 the epilogue when -fnon-call-exceptions is used.
9152
9153 * except.c (expand_start_all_catch): Make comment more accurate.
9154
13fc16f4 91552004-03-08 Joel Sherrill <joel@oarcorp.com>
9156
9157 PR target/14480
9158 * config/rs6000/t-rtems: Add missing file on branch.
9159
88816742 91602004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
9161
9162 * dbxout.c (dbxout_symbol_location): Do not output references
9163 to optimized-out constant pool symbols.
9164
f4b8dba5 91652004-03-10 Andreas Schwab <schwab@suse.de>
9166
9167 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9168 twon34_r.
9169
c1628b55 91702004-03-09 James E Wilson <wilson@specifixinc.com>
9171
9172 * alias.c (alias_sets_might_conflict_p): New.
9173 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9174 * common.opt (Wstrict-aliasing=): New.
9175 * flags.h (warn_strict_aliasing): Change type to int.
9176 * opts.c (warn_strict_aliasing): Change type to int.
9177 (common_handle_option): Handle OPT_Wstrict_aliasing_.
9178 * tree.h (alias_sets_might_conflict_p): Declare it.
9179 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9180
69d0a6ee 91812004-03-10 Roman Zippel <zippel@linux-m68k.org>
9182
9183 PR bootstrap/12371
9184 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9185 (CALL_USED_REGISTERS): Likewise.
0dd5e539 9186 (REG_CLASS_CONTENTS): Likewise.
69d0a6ee 9187 (REG_ALLOC_ORDER): New.
9188 (REGNO_REG_CLASS): Use regno_reg_class.
9189 * config/m68k/m68k.c: Add regno_reg_class array.
9190
28cabf05 91912004-03-09 Steve Ellcey <sje@cup.hp.com>
9192
9193 * config/ia64/ia64.md (divsi3): Fix algorithm.
9194 (udivsi3): Ditto.
9195 (setf_exp_xf): Remove '*' from name.
9196 * testsuite/gcc.dg/20040309-1.c: New test.
9197
5219c73b 91982004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
9199
9200 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9201 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9202 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9203 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9204 (sparc_aout_select_rtx_section): Don't check
9205 SUNOS4_SHARED_LIBRARIES.
9206 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9207
3db6f318 92082004-03-10 Hans-Peter Nilsson <hp@axis.com>
9209
9210 PR other/14474
9211 * doc/md.texi (Pattern Ordering, Dependent Patterns)
9212 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9213 INTERNALS".
9214
063c2715 92152004-03-09 Zack Weinberg <zack@codesourcery.com>
9216
9217 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9218 (LIBGCC_SPEC): Update to match.
9219
a89ce285 92202004-03-09 Zack Weinberg <zack@codesourcery.com>
9221
9222 * c-decl.c (last_function_parms, last_function_parm_tags)
9223 (last_function_parm_others, current_function_parms)
9224 (current_function_parm_tags, current_function_parm_others):
9225 Delete.
9226 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9227 New macros.
9228 (grokdeclarator): For function definitions, save the arg-info
9229 block from the declarator in DECL_ARGUMENTS.
9230 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
9231 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
9232 contains only PARM_DECLs. Improve diagnostics.
9233 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
9234 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
9235 (store_parm_decls_newstyle): Take the function to operate on,
9236 and an arg-info block, as arguments; don't get anything from
9237 current_function_* globals.
9238 (store_parm_decls_oldstyle): Likewise.
9239 (store_parm_decls): Pass fndecl and its arg-info block down to
9240 store_parm_decls_newstyle/oldstyle. Send functions with empty
9241 argument lists through store_parm_decls_newstyle to reduce
9242 overhead.
9243 (pushdecl): Comment on the problems with the call to copy_node.
9244 Clear DECL_ARGUMENTS of the old node after copying it, if it
9245 is an arg-info block instead of a chain of decls.
9246 (start_function): Do not manipulate current_function_parm* or
9247 last_function_parm*.
9248
1c98eaaa 92492004-03-09 Roger Sayle <roger@eyesopen.com>
9250 Andrew Pinski <pinskia@physics.uc.edu>
9251
9252 * ifcvt.c (noce_try_sign_mask): New function to transform
9253 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9254 (noce_process_if_block): Call noce_try_sign_mask.
9255
e56f8328 92562004-03-09 Andrew Pinski <apinski@apple.com>
9257
9258 * c-typeck.c (tagged_types_tu_compatible_p):
9259 Fix typo.
9260
089b4730 92612004-03-09 Roger Sayle <roger@eyesopen.com>
9262
9263 * simplify-rtx.c (simplify_const_relational_operation): New function
9264 renamed from simplify_relational_operation.
9265 (simplify_relational_operation): Change prototype to accept an
9266 additional mode argument. Call simplify_const_relational_operation.
9267 (simplify_gen_relational): Update simplify_relational_operation call.
9268 (simplify_ternary_operation): Update simplify_relational_operation
9269 subroutine call to use simplify_const_relational_operation instead.
9270
9271 * rtl.h (simplify_const_relational_operation): Prototype here.
9272 (simplify_relational_operation): Add addtional mode argument.
9273
9274 * combine.c (combine_simplify_rtx): Update calls to
9275 simplify_relational_operation.
9276 (simplify_set): Likewise.
9277 (gen_binary): Likewise.
9278 * cse.c (fold_rtx): Likewise.
9279 * dojump.c (compare_from_rtx): Likewise.
9280 (do_compare_rtx_and_jump): Likewise.
9281 * integrate.c (subst_constants): Likewise.
9282 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9283
9537bbab 92842004-03-09 Kazu Hirata <kazu@cs.umass.edu>
9285
9286 * config/m32r/m32r.md: Remove all define_peephole's.
9287
5e3715cc 92882004-03-09 Alan Modra <amodra@bigpond.net.au>
9289
9290 * config/rs6000/rs6000.md: Remove trailing whitespace.
9291
d3c27322 92922004-03-08 Eric Christopher <echristo@redhat.com>
9293
9294 * Makefile.in (site.exp): Add libiconv variable definition.
9295
ac09b42b 92962004-03-09 Hans-Peter Nilsson <hp@axis.com>
9297
9298 * configure: Regenerate for config/accross.m4 correction.
9299
31b38d3a 93002004-03-08 Joel Sherrill <joel@oarcorp.com>
9301
9302 PR target/14480
9303 * config/rs6000/t-rtems: Add missing file on branch.
9304
7d282ac0 93052004-03-08 Roger Sayle <roger@eyesopen.com>
9306
9307 PR middle-end/14289
9308 * c-typeck.c (c_mark_addressable): A register variable should
9309 be considered global if its not automatic, i.e. TREE_PUBLIC,
9310 TREE_STATIC or DECL_EXTERNAL.
9311 * function.c (put_var_into_stack): Call abort when placing a
9312 hard register into the stack, if x_parm_reg_stack_loc is NULL.
9313
c57446fa 93142004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
9315
9316 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9317 ("*extendqisi2_short_displ"): Likewise.
9318
d5c3cdd8 93192004-03-08 Kazu Hirata <kazu@cs.umass.edu>
9320
9321 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9322 (comp_operator): Likewise.
9323 * config/pdp11/pdp11-protos.h: Remove corresponding
9324 prototypes.
9325
252d0e4d 93262004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
9327
9328 * expr.c (highest_pow2_factor_for_type): Rename into
9329 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
9330 TYPE_ALIGN when the target is a COMPONENT_REF.
9331 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9332
41a1086f 93332004-03-08 Alan Modra <amodra@bigpond.net.au>
9334
bb9bbda5 9335 * config/rs6000/rs6000.c: Formatting fix.
9336 (legitimate_offset_address_p): Correct offset range check.
9337
41a1086f 9338 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9339 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
9340 and MASK_STRING.
9341
b0f3cf7f 93422004-03-07 Aldy Hernandez <aldyh@redhat.com>
d3c27322 9343
a89ce285 9344 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9345 for little endian.
9346 ("ashrdi3_no_power"): Disable for little endian.
b0f3cf7f 9347 (ashrdi3): Same.
9348
2df2df75 93492004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9350
9351 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9352 builtins.
9353
9ebd0bb2 93542004-03-08 Hans-Peter Nilsson <hp@axis.com>
9355
9356 PR target/14471
9357 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9358 case, checking for -no-mul-bug-abort option.
9359 * configure, config.in: Regenerate.
9360 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9361 and -mno-mul-bug-workaround.
9362 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9363 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9364 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9365 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
9366 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9367 sure mulu.d is not last on cache-line.
9368 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9369 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9370 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9371 (TARGET_SWITCHES): New options -mmul-bug-workaround and
9372 -mno-mul-bug-workaround.
9373 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9374 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9375 * config/cris/cris.c (cris_operand_extend_operator): Clarify
9376 relation to MULT in head comment.
9377 (cris_op_str): Abort for MULT.
9378 (cris_print_operand) <case '!'>: New case.
9379
1b6ad376 93802004-03-08 Alan Modra <amodra@bigpond.net.au>
9381
9382 PR debug/11983
9383 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9384 dw_val_class_vec. Replace use throughout file.
9385 (dw_float_const): Delete.
9386 (dw_vec_const): New.
9387 (dw_val_struct_union): Rename val_float to val_vec. Replace use
9388 throughout file.
9389 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
9390 (same_dw_val_p): Adjust vec comparison. Use memcmp.
9391 (size_of_die): Adjust dw_val_class_vec sizing.
9392 (output_die): Output dw_val_class_vec.
9393 (insert_int, extract_int, insert_float): New functions.
9394 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9395 Handle CONST_VECTOR.
9396 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
42706596 9397
93982004-03-07 Aldy Hernandez <aldyh@redhat.com>
9399
9400 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9401 AltiVec abi cannot co-exist.
9402
9403 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9404
5d2eea9a 94052004-03-07 Jan Hubicka <jh@suse.cz>
9406
9407 * except.c (emit_to_new_bb_before): Break fallthru edges.
9408
d2155c2b 94092004-03-07 Stephane Carrez <stcarrez@nerim.fr>
9410
9411 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9412 ("*lshrsi3"): Also accept an immediate for 68HC12.
9413 ("*ashrsi3_const"): Likewise.
9414 ("*ashrsi3"): Likewise.
9415 ("*ashlsi3_const"): Likewise.
9416 ("*ashlsi3"): Likewise.
9417 ("cmphi_1_hc12"): Compare two hard register by pushing them and
9418 comparing with a pop; don't use a split for that.
9419 ("cmphi split"): Disable compare split for 68HC12.
9420
9421 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9422 the status operands if they have side effects.
9423
16fd8669 94242004-03-07 Kazu Hirata <kazu@cs.umass.edu>
9425
9426 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9427 definition.
9428 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9429 config/h8300/h8300.h, config/ia64/ia64.h,
9430 config/mcore/mcore.h, config/mmix/mmix.h,
9431 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9432 config/stormy16/stormy16.h, config/v850/v850.h,
9433 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9434 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9435 definition.
9436
f3983262 94372004-03-07 Roger Sayle <roger@eyesopen.com>
9438
9439 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9440 <XOR_EXPR>: Fold x ^ x as zero.
9441 <AND_EXPR>: Fold x & x as x.
9442
0e2fb02d 94432004-03-07 Roger Sayle <roger@eyesopen.com>
9444
9445 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9446 "foo++ == const" into "++foo == const+incr".
9447
66ddfa8b 94482004-03-07 Richard Sandiford <rsandifo@redhat.com>
9449
9450 * config/mips/mips.c (mips_in_small_data_p): Return false if
9451 TARGET_ABICALLS.
9452
da383a3d 94532004-03-06 Stephane Carrez <stcarrez@nerim.fr>
9454
9455 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9456 the stack register.
9457 (expand_prologue): Don't make an interrupt or a trap handler a far
9458 symbol.
9459 (m68hc11_initial_elimination_offset): Likewise.
9460
6ac09a46 94612004-03-06 Richard Henderson <rth@redhat.com>
9462
9463 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9464
451fb7f0 94652004-03-06 Kazu Hirata <kazu@cs.umass.edu>
9466
9467 * config/ns32k/ns32k-protos.h: Add a prototype for
9468 ns32k_notice_update_cc.
9469 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9470 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9471 ns32k_notice_update_cc.
9472
e764e222 94732004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
9474
9475 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9476 "*load_multiple_si"): Allow only if reload_completed.
9477 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9478 Likewise.
9479
339a372c 94802004-03-06 Kazu Hirata <kazu@cs.umass.edu>
9481
9482 * config/vax/vax-protos.h: Add a prototype for
9483 vax_notice_update_cc.
9484 * config/vax/vax.c (vax_notice_update_cc): New.
9485 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9486 vax_notice_update_cc.
9487
d3cef9f8 94882004-03-06 David Edelsohn <edelsohn@gnu.org>
9489
9490 * collect2.c (main): Only export initfunc and finifunc if
9491 LD_INIT_SWITCH not defined.
9492 (scan_prog_file): Only export constructors and destructors if
9493 LD_INIT_SWITCH not defined. Only export symbols not found in
9494 shared objects.
9495
053d819a 94962004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9497
9498 * pa.md (icacheflush): Reorder operands to make match_scratch operand
9499 last.
9500 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9501 from calls to gen_icacheflush.
9502
ef76af46 95032004-03-06 Richard Henderson <rth@redhat.com>
9504
9505 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9506 (TARGET_LONG_DOUBLE_128): New.
9507 (TARGET_SWITCHES): Add long-double-{128,64}.
9508 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9509 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9510 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9511 (WIDEST_HARDWARE_FP_SIZE): New.
9512 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9513 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9514 if TARGET_VAX_FLOAT.
9515 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9516 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9517
405b5ac4 95182004-03-06 Richard Henderson <rth@redhat.com>
9519
9520 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9521 botched rtx class conversion.
9522
852da3c3 95232004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9524
9525 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9526 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9527
9528 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9529 macros.
9530 * fold-const.c (fold_mathfn_compare, fold): Likewise.
9531
66448922 95322004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
9533
9534 PR target/14343
9535 * config/i386/i386.md (movv2di_internal): Conditionalize on
9536 TARGET_SSE, not TARGET_SSE2.
9537
7184a3d9 95382004-03-05 Chris Demetriou <cgd@broadcom.com>
9539
9540 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9541 duplicated line.
9542
ca273d4a 95432004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9544
9545 * builtins.c: Consistently use logN not log* in comments.
9546
b3ff8d90 95472004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
9548
9549 * rtl.h (mem_expr_equal_p): Function prototype added.
9550 * cfgcleanup.c (merge_memattrs): New function.
9551 (flow_find_cross_jump): Call merge_memattrs for matching insns.
9552 * emit-rtl.c (mem_expr_equal_p): New function.
9553
01a43715 95542004-03-05 Ziemowit Laski <zlaski@apple.com>
9555
9556 * objc/objc-act.c (synth_module_prologue): Const-qualify
9557 objc_selector type if using the GNU runtime; fix generated
9558 signatures for objc_msg_lookup and objc_msg_lookup_super
9559 to match what GNU ObjC headers provide; reformat and clean up.
9560 (synth_self_and_ucmd_args): Use previously constructed (and
9561 hence possibly const-qualified) objc_selector type.
9562
a2b660e7 95632004-03-05 Kazu Hirata <kazu@cs.umass.edu>
9564
9565 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9566
908e5f41 95672004-03-05 Jason Merrill <jason@redhat.com>
9568
9569 * tree.h (TYPE_HASH): Use TYPE_UID.
9570 (TREE_HASH): New macro with old definition of TYPE_HASH.
9571 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9572 (build_array_type, build_function_type): Likewise.
9573 (build_method_type_directly): Likewise.
9574 (build_offset_type, build_complex_type): Likewise.
9575 (type_hash_list, attribute_hash_list): Likewise. Now static.
9576 * except.c: s/TYPE_HASH/TREE_HASH/.
9577
9276fdff 95782004-03-05 Bob Wilson <bob.wilson@acm.org>
9579
9580 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9581 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
9582 __va_ndx by 2 words when referencing an argument on the stack.
9583 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
9584 words when an arg on the stack is first seen.
9585
1859920b 95862004-03-05 Paul Brook <paul@codesourcery.com>
9587
9588 * arm.h (ARM_FLAG_VFP): Remove.
9589 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9590 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9591
81ba3f3a 95922004-03-05 Paul Brook <paul@codesourcery.com>
9593
9594 * function.c (assign_parms): Include pretend alignment offset.
9595
4812cab0 95962004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9597
9598 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9599 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9600
1f3fcf32 96012004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
9602
9603 * configure.ac: When passing --enable-languages to subdir
9604 configure when host != build, make sure we don't pass an empty
9605 value.
9606 * configure: Regenerate.
9607
d38f945e 96082004-03-05 Nathan Sidwell <nathan@codesourcery.com>
9609
9610 PR 13577
9611 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9612 options.
9613
e5582c5c 96142004-03-05 Paolo Bonzini <bonzini@gnu.org>
9615
9616 * simplify-rtx.c (simplify_relational_operation): If
9617 flag_wrapv is set, do not move terms between the two
9618 side of a relational operator.
9619
26619827 96202004-03-05 Paolo Bonzini <bonzini@gnu.org>
9621
9622 * rtlanal.c: Include target.h and output.h
9623 (rtx_cost, address_cost, default_address_cost): Move from...
9624 * cse.c (rtx_cost, address_cost, default_address_cost):
9625 ... this file.
9626 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9627 * Makefile.in: Adjust dependencies.
9628
d5790af8 96292004-03-05 Paolo Bonzini <bonzini@gnu.org>
9630
9631 * cse.c (cse_end_of_basic_block): Make static.
9632 * local-alloc.c (function_invariant_p): Move to
9633 reload1.c.
9634 * loop.c (libcall_other_reg, record_excess_regs):
9635 Make static.
9636 * reload1.c (function_invariant_p): Moved here
9637 from local-alloc.c, made static.
9638 * rtl.h (cse_end_of_basic_block, function_invariant_p,
9639 libcall_other_reg, record_excess_regs): Remove
9640 declarations.
9641
e60459ed 96422004-03-05 Kazu Hirata <kazu@cs.umass.edu>
9643
9644 * config/m32r/m32r.c (signed_comparison_operator): Add a
9645 missing parenthesis.
9646
48443f83 96472004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
9648
9649 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9650 going to call mmap again. Read the file into the right place.
9651 Give a fatal error if we have to relocate.
9652
110f993e 96532004-03-04 Bob Wilson <bob.wilson@acm.org>
9654
9655 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9656 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9657
ef6072fe 96582004-03-05 Hans-Peter Nilsson <hp@axis.com>
9659
623f23ea 9660 PR other/14354
ef6072fe 9661 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9662 round the same. When rounding, clear bits that would cause a
9663 second rounding in pack_d.
9664 (_fpmul_parts): Ditto. Remove #if 0:d code.
9665
a1101259 96662004-03-04 Ziemowit Laski <zlaski@apple.com>
9667
9668 PR c++/14425, c++/14426
9669 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9670 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9671 Change C++ definitions to accept a 'const int' argument;
9672 the prototypes already do.
9673 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9674 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9675 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9676 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9677 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9678 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9679 end in ..._int; change them to accept an int instead of a char
9680 as the last parameter.
9681
b1e69582 96822004-03-04 Phil Edwards <phil@codesourcery.com>
9683
9684 * genmultilib: Change '=' to '-' when translating option names
9685 to directory names.
9686
55a176cc 96872004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9688
9689 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9690 stack slot for temp used for result of BLKmode but in integral mode.
9691
adee86a0 96922004-03-04 Jan Hubicka <jh@suse.cz>
9693
9694 * reload.c (find_reloads): Reorganize if seqeunce to switch.
9695
9696 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
9697 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
9698
0fe68042 96992004-03-04 Steve Ellcey <sje@cup.hp.com>
9700
9701 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9702 * testsuite/gcc.dg/20040303-1.c: New test.
9703
4cad3320 97042004-03-04 Steven Bosscher <stevenb@suse.de>
9705
9706 * ppro.md: Rewrite as a DFA pipeline description.
9707 * i386.md: Remove all uses of the ppro_uops attribute.
9708 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9709 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9710 ix86_sched_reorder, ix86_variable_issue,
9711 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9712 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9713 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9714 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9715 * athlon.md (athlon_ssecmp_load): Fix comment
9716
2e62414c 97172004-03-04 Stuart Hastings <stuart@apple.com>
4cad3320 9718
2e62414c 9719 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9720
5837ac9b 97212004-03-04 Stuart Hastings <stuart@apple.com>
4cad3320 9722
5837ac9b 9723 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9724 686, tell Darwin assembler to allow prefetch insns, non-empty def
9725 of SUBTARGET_OPTION_TRANSLATE_TABLE.
9726
0cbad263 97272004-03-04 DJ Delorie <dj@redhat.com>
9728
9729 PR optimization/14282
9730 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9731 between a call and the assignment of its return value.
9732
cdfb02e8 97332004-03-04 Kazu Hirata <kazu@cs.umass.edu>
9734
9735 * config/h8300/h8300.c: Put a comment for every function.
9736
9b406a2e 97372004-03-04 Kazu Hirata <kazu@cs.umass.edu>
9738
9739 * config/h8300/h8300.md: Add comments about peephole2's.
9740
6ee177a2 97412004-03-04 Steven Bosscher <stevenb@suse.de>
9742
9743 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9744
53622482 97452004-03-04 Jan Hubicka <jh@suse.cz>
9746
9747 * cfgcleanup.c (thread_jump): Update call of cselib_init.
9748 * cselib.c (cselib_record_memory): New static variable.
9749 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9750 Give up on memories when asked for.
9751 (cselib_init): Accept new argument.
9752 * cselib.h (cselib_init): Update prototype.
9753 * gcse.c (local_cprop_pass): Update call of cselib_init.
9754 * loop.c (load_mems): Update call of cselib_init.
9755 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9756 * sched-deps.c (sched_analyze): Update call of cselib_init.
9757
15eb3fa6 97582004-03-04 David Edelsohn <edelsohn@gnu.org>
9759 GP <gp@qnx.com>
9760
9761 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9762 when compiling PIC.
9763
b77c03bd 97642004-03-04 Josef Zlomek <zlomekj@suse.cz>
9765
9766 PR/14362
9767 * var-tracking.c (track_expr_p): Do not track variables which
9768 should be ignored for debugging purposes.
9769
773d6991 97702004-03-04 Alan Modra <amodra@bigpond.net.au>
9771
9772 * real.c (encode_ibm_extended): Don't bother rounding low double.
9773 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9774 when fmt->pnan < fmt->p.
9775
7262f0b8 97762004-03-04 Eric Christopher <echristo@redhat.com>
9777
9778 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9779 only range of valid arg registers and fixed_regs.
9780
ac1a7e5a 97812004-03-04 Alan Modra <amodra@bigpond.net.au>
9782
9783 PR target/14406
9784 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9785 (abstf2, abstf2_internal): New define_expand.
9786
d6af6bc2 97872004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
9788
9789 PR optimization/14235
9790 * expr.c (convert_move): Copy the source to a new pseudo
9791 when converting from a sub-word source to a larger-than-word
9792 register which conflicts with the source.
9793
93d30214 97942004-03-03 Zack Weinberg <zack@codesourcery.com>
9795
9796 PR 13728
9797 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9798 parameters with the same name, unless one is a forward decl.
9799 Do not issue a redundant-redeclaration warning for forward
9800 decls of parameters.
9801
d54c3c08 98022004-03-04 David Edelsohn <edelsohn@gnu.org>
9803
9804 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9805 configuration.
9806
7563b974 98072004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
9808
9809 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9810
d6f6a4e9 98112004-03-04 Alan Modra <amodra@bigpond.net.au>
9812
9813 * target-def.h (TARGET_OPTF): Delete.
9814 * c-opts.c (TARGET_OPTF): Define.
9815
3d1cee11 98162004-03-04 Jan Hubicka <jh@suse.cz>
9817
9818 * cselib.c (cselib_finish): Fix another miss-application of my previous
9819 patch.
9820
065e625b 98212004-03-03 Mike Stump <mrs@apple.com>
9822
9823 Add framework support for darwin.
9824
9825 * c-incpath.c: Include target.h and machmode.h.
9826 (add_path): Use a consistent style for cpp_dir. Initialize
9827 p->construct to 0.
9828 (add_cpp_dir_path): New.
9829 (register_include_chains): Add use of extra_includes callback.
9830 (hook_void_int): Add.
9831 (target_c_incpath): Add.
9832 * c-incpath.h (add_cpp_dir_path): New.
9833 (target_c_incpath_s): Add.
9834 (target_c_incpath): Add.
9835 (C_INCPATH_INIT): Add.
9836 * c-opts.c (c_common_missing_argument,
9837 c_common_handle_option): Add -F argument processing.
9838 * c.opt: Add -F argument processing.
9839 * gcc.c (trad_capable_cpp): Add -F argument processing.
9840 * cppfiles.c (find_file_in_dir): Update to use construct
9841 callback.
9842 (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9843 cpp_get_prev): New.
9844 (_cpp_find_file): Use search_path_exhausted.
9845 (make_cpp_dir): Initialize construct to 0.
9846 * cpplib.h (missing_header_cb
9847 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9848 (cpp_callbacks): Add missing_header
9849 (cpp_dir): Add construct.
9850 * target-def.h: (TARGET_OPTF): New.
9851 * hooks.c (hook_void_int, hook_void_charptr): Add.
9852 * hooks.h (hook_void_int, hook_void_charptr): Add.
9853 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9854 $(MACHMODE_H) dependencies.
9855 * doc/invoke.texi (Darwin Options): Document -F.
9856 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9857 (TARGET_OPTF): Add.
9858 * fix-header.c (target_c_incpath): Add.
9859
9860 * config/darwin-c.c: Add c-incpath.h include.
9861 (using_frameworks, find_subframework_file,
9862 find_subframework_header, add_system_framework_path,
9863 frameworks_in_use, num_frameworks, max_frameworks,
9864 add_framework, find_framework, struct framework_header,
9865 framework_header_dirs, framework_construct_pathname,
9866 find_subframework_file, add_system_framework_path,
9867 add_framework_path, framework_defaults,
9868 darwin_register_frameworks, find_subframework_header): Add.
9869 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9870 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9871 (CPP_SPEC): Add __APPLE_CC__ support.
9872 * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9873
ce7efeed 98742004-03-04 Jan Hubicka <jh@suse.cz>
9875
9876 * cselib.c (cselib_finish): Fix miss-application of my previous
9877 patch.
9878
0fb2666c 98792004-03-03 Kazu Hirata <kazu@cs.umass.edu>
9880
9881 * hooks.c (hook_tree_tree_identity): New.
9882 * hooks.h: Add a prototype for hook_tree_tree_identity.
9883 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9884 instead of MD_ASM_CLOBBERS.
9885 * system.h (MD_ASM_CLOBBERS): Poison.
9886 * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9887 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9888 * target.h (gcc_target): Add md_asm_clobbers.
9889 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9890 (ix86_md_asm_clobbers): New.
9891 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9892 * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9893 TARGET_MD_ASM_CLOBBERS.
9894
8f003766 98952004-03-03 Stuart Hastings <stuart@apple.com>
0fb2666c 9896
8f003766 9897 * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
93d30214 9898
38b7c137 98992004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr>
9900
9901 * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9902
9903 * config/sparc/sparc.h (ASM_FLOAT): Delete.
9904 (ASM_DOUBLE): Likewise.
9905 (ASM_LONGDOUBLE): Likewise.
9906 * config/sparc/pbd.h (ASM_INT_OP): Delete.
9907
332a71fa 99082003-03-03 Richard Henderson <rth@redhat.com>
9909
9910 PR opt/13862
9911 * cselib.c (cselib_record_sets): Don't record multiple sets in
9912 asm insns.
9913
839f8415 99142004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
9915
9916 * common.opt: Add description of the new -fgcse-after-reload flag.
9917
9918 * flags.h (flag_gcse_after_reload): Declaration of global variable.
9919
9920 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9921 reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9922 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9923 get_bb_avail_insn, hash_scan_set_after_reload,
9924 compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9925 gcse_after_reload, get_bb_avail_insn): New functions to implement
9926 gcse-after-reload.
9927 (gcse_after_reload_main): New function, the main entry point to
9928 gcse-after-reload.
9929
9930 * rtl.h (gcse_after_reload_main): Declaration of the new function.
9931
9932 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9933
9934 * toplev.c (flag_gcse_after_reload): Initialization.
9935
9936 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9937
9938 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9939 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9940 the gcse after reload optimization.
9941
9942 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9943 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9944 parameters.
9945
9946 * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9947
399d212b 99482004-03-03 Nicolas Pitre <nico@cam.org>
9949
9950 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9951 small negative values.
9952
fd910ba1 99532004-03-03 Jan Hubicka <jh@suse.cz>
9954
9955 * cselib.c (hash_table): Remove GTY marker.
9956 (reg_values): Turn into array.
9957 (used_regs): Likewise.
9958 (n_used_regs): New static variable.
9959 (reg_values_old): Kill.
9960 (clear_table): Update uses of arrays.
9961 (cselib_lookup): Likewise.
9962 (cselib_record_set): Likewise.
9963 (cselib_init): Likewise.
9964 (cselib_finish): Likewise.
9965 (cselib_udpate_varray_sizes): Kill.
9966 * cselib.h (cselib_update_varray_sizes): Kill.
9967
4d61152f 99682004-03-03 Paul Brook <paul@codesourcery.com>
9969
9970 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9971
674b05f5 99722004-03-03 Jan Hubicka <jh@suse.cz>
9973
9974 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9975 Rename from ...; make statistics transparent.
9976 (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9977 (loc_descriptor): New structure.
9978 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9979 add_statistics):
9980 New static function.
9981 (ggc_record_overhead, dump_statistics): New global function.
9982 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9983 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9984 from ...; accept locations
9985 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9986 ggc_realloc, ggc_alloc_typed): ... this one.
9987 from ...; accept locations
9988 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9989 ggc_alloc_stat): Rename from ... ; pass locations
9990 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9991 ... this one.
9992 (ggc_alloc_stat): Record overehead.
9993 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9994 ggc_realloc, ggc_alloc_typed): Turn to macros
9995 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9996 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9997 (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9998 * langhooks.h (lhd_make_node): Declare.
9999 (LANG_HOOKS_MAKE_TYPE): Default to new function,
10000 * langhooks.c (lhd_make_node): New.
10001 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10002 locations.
10003 (rtx_alloc, swallow_copy_rtx): ... this one.
10004 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10005 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10006 * toplpev.c (finalize): Dump stats.
10007 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10008 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
10009 Rename from ... ; pass locators.
10010 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10011 build?, build_decl): Declare.
10012 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10013 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
10014 Declare.
10015 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10016 build?, build_decl): New macros.
10017 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10018 * statistics.h: New file.
10019
0eaca434 100202004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10021 Richard Sandiford <rsandifo@redhat.com>
10022
10023 * config/mips/mips.h (MASK_FIX_SB1): Bump.
10024 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10025 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10026 * config/mips/mips.c (mips_output_division): Fill the branch delay
10027 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
10028 TARGET_FIX_R4400.
10029 (mips_output_division): Adjust accordingly.
10030 (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10031 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10032
6720e96c 100332004-03-03 Paolo Bonzini <bonzini@gnu.org>
10034
10035 * alias.c (rtx_equal_for_memref_p): Use predicates
10036 to test rtx classes and new rtx class codes, possibly
10037 splitting conditionals that tested against '<' and 'o'.
10038 * caller-save.c (save_call_clobbered_regs): Likewise.
10039 * combine.c (contains_muldiv, find_split_point, subst,
10040 combine_simplify_rtx, simplify_if_then_else,
10041 simplify_set, simplify_logical, expand_compound_operation,
10042 make_compound_operation, if_then_else_cond, known_cond,
10043 apply_distributive_law, cached_nonzero_bits,
10044 cached_num_sign_bit_copies, simplify_shift_const,
10045 gen_binary, simplify_comparison, update_table_tick,
10046 record_value_for_reg, get_lsat_value_validate): Likewise.
10047 * cse.c (mention_regs, find_best_addr, find_comparison_args,
10048 fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10049 Likewise.
10050 * emit-rtl.c (copy_insn_1): Likewise.
10051 * expr.c (force_operand): Likewise.
10052 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10053 * flow.c (notice_stack_pointer_modification_1,
10054 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10055 and_reg_cond, elim_reg_cond): Likewise.
10056 * function.c (update_epilogue_consts): Likewise.
10057 * genattrtab.c (attr_rtx_1): Likewise.
10058 * genopinit.c (gen_insn): Likewise.
10059 * integrate.c (subst_constants): Likewise.
10060 * jump.c (reversed_comparison_code_parts,
10061 reversed_comparison_code, delete_related_insns,
10062 rtx_renumbered_equal_p): Likewise.
10063 * local-alloc.c (block_alloc): Likewise.
10064 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10065 canonicalize_condition): Likewise.
10066 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10067 Likewise.
10068 * optabs.c (add_equal_node, expand_binop): Likewise.
10069 * predict.c (estimate_probability): Likewise.
10070 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10071 * recog.c (validate_replace_rtx_1, comparison_operator,
10072 offsettable_address_p, constrain_operands): Likewise.
10073 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10074 Likewise.
10075 * regclass.c (scan_one_insn): Likewise.
10076 * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10077 * regrename.c (kill_autoinc_value): Likewise.
10078 * reload.c (find_reusable_reload, find_reloads,
10079 reg_overlap_mentioned_for_reload_p): Likewise.
10080 * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10081 * rtl.c (copy_rtx): Likewise.
10082 * rtl.h (CONSTANT_P, INSN_P): Likewise.
10083 * rtlanal.c (commutative_operand_precedence): Likewise.
10084 * sched-deps.c (conditions_mutex_p): Likewise.
10085 * sched-rgn.c (is_cfg_nonregular): Likewise.
10086 * simplify-rtx.c (simplify_gen_binary,
10087 simplify_gen_relational, simplify_replace_rtx,
10088 simplify_unary_operation, simplify_binary_operation,
10089 simplify_ternary_operation, simplify_rtx): Likewise.
10090 * unroll.c (reg_dead_after_loop): Likewise.
10091 * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10092 print_operand): Likewise.
10093 * config/arc/arc.c (proper_comparison_operator): Likewise.
10094 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10095 Likewise.
10096 * config/avr/avr.c (_reg_unused_after): Likewise.
10097 * config/frv/frv.c (frv_ifcvt_modify_tests,
10098 frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10099 * config/i386/i386.c (ix86_comparison_operator,
10100 ix86_carry_flag_operator, fcmov_comparison_operator,
10101 arith_or_logical_operator, print_operand,
10102 ix86_expand_binary_operator, ix86_binary_operator_ok):
10103 Likewise.
10104 * config/i386/i386.md: Likewise.
10105 * config/ia64/ia64.c (not_postinc_memory_operand,
10106 ia64_print_operand, update_set_flags, errata_emit_nops):
10107 Likewise.
10108 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10109 CONSTRAINT_OK_FOR_S): Likewise.
10110 * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10111 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10112 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10113 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10114 Likewise.
10115 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10116 eqne_comparison_operator, signed_comparison_operator):
10117 Likewise.
10118 * config/mips/mips.c (cmp_op, symbolic_expression_p):
10119 Likewise.
10120 * config/mmix/mmix (mmix_foldable_comparison_operator,
10121 mmix_comparison_operator): Likewise.
10122 * config/pa/pa.c (hppa_legitimize_address): Likewise.
10123 * config/rs6000/rs6000.c (stmw_operation,
10124 branch_comparison_operator, trap_comparison_operator,
10125 ccr_bit): Likewise.
10126 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10127 * config/s390/s390.c (s390_alc_comparison,
10128 s390_slb_comparison):L Likewise.
10129 * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10130 Likewise.
10131 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10132 noov_compare_op, noov_compare64_op, v9_regcmp_op,
10133 emit_hard_tfmode_operation, reg_unused_after)
10134 * doc/md.texi, doc/rtl.texi: Likewise.
10135
10136 * ra-debug.c: Add 2004 to list of copyright years.
10137 * unroll.c: Likewise.
10138
10139 * combine.c (simplify_logical): Remove dummy test,
10140 (apply_distributive_law): Fix typo in comment.
10141 GET_CODE (x) == AND so x is a commutative binary op.
10142 * jump.c (delete_related_insns): simplify loop
10143 condition, move testing of RTX codes inside the loop.
10144 (rtx_renumbered_equal_p): do not use RTX_CODE.
10145 * rtl.c (rtx_class): Declare as enum rtx_class.
10146 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10147 Move to RTX_COMM_COMPARE class.
10148 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10149 Move to RTX_CONST_OBJ class.
10150 * rtl.h (enum rtx_class): New declaration,
10151 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10152 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10153 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10154 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10155 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10156 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10157 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10158 OBJECT_P): New macros.
10159 * config/sparc/sparc.c (noov_compare_op): Remove register
10160 from parameter.
10161
13401456 101622004-03-03 Kazu Hirata <kazu@cs.umass.edu>
10163
10164 * target.h: Remove texi jargons in comments.
10165
82e2f92a 101662004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10167
10168 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10169 threshold to 0x4f.
10170
10171 Revert:
10172 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10173 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10174 as well.
10175 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10176 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10177
a3a0bf8e 101782004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10179
10180 * doc/md.texi (cbranchmode4): New.
10181
67e72f65 101822004-03-02 Eric Christopher <echristo@redhat.com>
10183
10184 * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10185 fix_trunc.
10186 * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10187 * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10188 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10189 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10190
a2b9a662 101912004-03-02 Richard Henderson <rth@redhat.com>
10192
93d30214 10193 PR middle-end/11767
10194 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10195 * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10196 before the compare, if flag_non_call_exceptions.
a2b9a662 10197
e554ec7f 101982004-03-02 Richard Henderson <rth@redhat.com>
10199
10200 PR middle-end/14327
10201 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10202 emitting the label, not after.
10203
f0ebdb91 102042004-03-02 Stephane Carrez <stcarrez@nerim.fr>
10205
10206 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10207 (m68hc11_mov_addr_mode): Likewise.
10208 (m68hc11_override_options): Initialize them based on target.
10209 (register_indirect_p): Allow a MEM for indirect addressing modes and
10210 use flags to control what is allowed.
10211 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10212 supported addressing modes.
10213 (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10214 (go_if_legitimate_address_internal): Likewise.
10215 (m68hc11_indirect_p): Likewise and check the mode.
10216 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10217
e3e026e8 102182004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10219
10220 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10221 (expand_builtin_setjmp_setup): Use
10222 targetm.builtin_setjmp_frame_value instead of
10223 BUILTIN_SETJMP_FRAME_VALUE.
10224 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10225 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10226 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10227 * target.h (gcc_target): Add builtin_setjmp_frame_value.
10228 * targhooks.c (default_builtin_setjmp_frame_value): New.
10229 * targhooks.h: Add a prototype for
10230 default_builtin_setjmp_frame_value.
10231 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10232 TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10233
db25945d 102342004-03-02 Stephane Carrez <stcarrez@nerim.fr>
10235
10236 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10237 sequences of moves.
10238 (add peepholes): New peepholes to optimize sequences adding small
10239 constants.
10240 (bset peepholes): New peepholes to transform an OR in a bset form
10241 (bclr peepholes): Likewise for bclr form.
10242 (cmp peepholes): New peepholes to avoid register copies when comparing.
10243
90a35510 102442004-03-02 Stephane Carrez <stcarrez@nerim.fr>
10245
10246 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10247 to separate push from moves.
10248 ("*pushdf_internal"): Likewise.
10249 ("*pushsf_internal"): Likewise.
10250 ("*pushsi_internal"): Likewise.
10251 ("movdi_internal"): Use define_insn_and_split; non push operand.
10252 ("movdf_internal"): Likewise.
10253 ("movsf_internal"): Likewise.
10254 ("movsi_internal"): Likewise.
10255 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10256 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10257 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10258
ae7f6ce2 102592004-03-02 Stephane Carrez <stcarrez@nerim.fr>
10260
10261 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10262 ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10263 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10264 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10265 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10266 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10267 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10268 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10269 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10270 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10271 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10272
e3a464ae 102732004-03-02 Stephane Carrez <stcarrez@nerim.fr>
10274
10275 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10276 (SOFT_XY_REGNUM): Define.
10277 (cmp split): Use the above instead of hard coded numbers.
10278 (8-bit op split): No need to check the mode; allow Q_REG.
10279 (ashift split): Adjust the first operand if it uses the SP and we
10280 are pushing the shifted value.
10281 (plus shift split): Fix when a source is in register D+X.
10282 ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10283
ae996105 102842004-03-02 Stephane Carrez <stcarrez@nerim.fr>
10285
10286 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10287 comparing with Z register.
10288
9c1ccc0f 102892004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10290
10291 * cfgloop.h (struct loop_desc): Removed.
10292 (struct loop): Fields simple, desc and has_desc removed.
10293 (simple_loop_p, count_loop_iterations): Declaration removed.
10294 * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10295 (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10296 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10297 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10298 simple_loop_exit_p, variable_initial_value, variable_initial_values,
10299 simple_condition_p, simple_increment, count_strange_loop_iterations,
10300 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10301 Removed.
10302 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10303
de0765cc 103042004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10305
10306 * genattrtab.c: Don't handle MATCH_INSN.
10307 * genrecog.c: Likewise.
10308 * gensupport.c: Likewise.
10309 * rtl.def (match_insn): Remove.
10310 * doc/md.texi (match_insn, match_insn2): Remove.
10311
8e1db42e 103122004-03-02 Mark Mitchell <mark@codesourcery.com>
10313
10314 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10315 macro results in memory allocation.
10316
6e9ae870 103172004-03-02 David O'Brien <obrien@FreeBSD.org>
10318
10319 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10320 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10321 %(fbsd_dynamic_linker),
10322 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10323 config/i386/freebsd.h
10324 * config/arm/freebsd.h: Ditto.
10325 * config/i386/freebsd.h: Ditto.
10326 * config/i386/freebsd64.h: Ditto.
10327 * config/ia64/freebsd.h: Ditto.
10328 * config/rs6000/sysv4.h: Ditto.
10329 * config/sparc/freebsd.h: Ditto.
10330
f810de8f 103312004-03-02 Loren James Rittle <ljrittle@acm.org>
10332
10333 * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10334
c8657a08 103352004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10336
10337 * rtl.def (define_combine): Remove.
10338
c031412d 103392004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10340
10341 * config/h8300/h8300.md: Tweak formatting.
10342
638faf41 103432004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10344
10345 * config/h8300/h8300.md (*cmphi_h8300): Rename to
10346 *cmphi_h8300_znvc.
10347 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10348
9300babd 103492004-03-01 Mark Mitchell <mark@codesourcery.com>
10350
10351 PR bootstrap/14356
10352 * gcc.c (process_command): Remove const-qualification from argv.
10353 (main): Likewise.
10354
49d20509 103552004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10356
10357 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10358 pushqi1_h8300hs_advanced. Adjust its caller.
10359 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10360 Adjust its caller.
10361
21583960 103622004-03-02 Nicolas Roche <roche@act-europe.fr>
00a66eda 10363
10364 * Makefile.in (install-libgcc, install-multilib): Pass
10365 mkinstalldirs var to libgcc.mk.
10366
a5a3c3a1 103672004-03-01 Kazu Hirata <kazu@cs.umass.edu>
10368
10369 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10370 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10371
69d1bada 103722004-03-01 Kazu Hirata <kazu@cs.umass.edu>
10373
10374 * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10375 * config/h8300/h8300.md: Split several peephole2's, each into
10376 two.
10377
3745d6a0 103782004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10379
10380 * dominance.c (recount_dominator): Handle postdominators.
10381
13bd6836 103822004-03-01 Richard Sandiford <rsandifo@redhat.com>
10383
10384 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10385 (NUM_SYMBOL_TYPES): Likewise.
10386 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10387 (mips_unspec_address): Declare.
10388 (mips_gotoff_page, mips_gotoff_global): Delete.
10389 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10390 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10391 (mips_symbolic_constant_p, mips_symbolic_address_p)
10392 (mips_symbol_insns): Handle new symbol types.
10393 (general_symbolic_operand): New predicate.
10394 (mips_unspec_address): Make extern.
10395 (mips_gotoff_page, mips_gotoff_global): Delete.
10396 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10397 Handle new symbol types.
10398 * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10399 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10400 mips_unspec_address directly.
10401 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10402 the documentation of -mexplicit-relocs.
10403
4a755ae7 104042004-03-01 Jeff Law <law@redhat.com>
10405
10406 * fold-const.c (fold): An equality comparison of a non-weak object
10407 against zero has a known result. Similarly an equality comparison
10408 of the address of two non-weak, unaliased symbols has a known result.
67e72f65 10409
4a755ae7 10410 * ggc-page.c (struct page_entry): New field PREV.
10411 (ggc_alloc): Update PREV field appropriately.
10412 (sweep_pages): Likewise.
10413 (ggc_free): Likewise. Use PREV field rather than loop to
10414 improve ggc_free performance.
67e72f65 10415
11e7c2d4 104162004-03-01 Richard Sandiford <rsandifo@redhat.com>
10417
10418 * config/mips/mips.c (mips_output_division): Use the division
10419 instruction to fill the delay slot of a zero check.
10420 (mips_idiv_insns): Adjust accordingly.
10421
1afa774a 104222004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
10423
10424 * config.gcc: Create a default tmake_file for linux, and use
10425 it in all but two linux clauses. Comment those two.
10426
5f3447b0 104272004-03-01 Paolo Bonzini <bonzini@gnu.org>
10428
10429 * combine.c (try_combine): Do not refer to is_replaced.
10430 (gen_lowpart_for_combine): Perverse subregs now have a
10431 more politically correct name.
10432 * cse.c (cse_insn): Likewise.
10433 * jump.c: Fix bogus reference to delete_insn.
10434
9d5baf96 104352004-02-29 Mark Mitchell <mark@codesourcery.com>
10436
99f3dd6a 10437 PR debug/14328
10438 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10439 constants as signed values.
10440
9d5baf96 10441 PR middle-end/13448
10442 * c-tree.h (readonly_warning): Rename to ...
10443 (readonly_error): ... this.
10444 * c-typeck.c (build_unary_op): Adjust accordingly.
10445 (readonly_warning): Rename to ...
10446 (readonly_error): ... this and issue errors, not warnings.
10447 (build_modify_expr): Call readonly_error, not readonly_warning.
10448 (c_expand_asm_operands): Likewise.
10449 * tree-inline.c (optimize_inline_calls): Do not inline functions
10450 after errors have occurred.
10451
d976f534 104522004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
10453
10454 * configure.ac: Rearrange some threading code for clarity;
10455 add section comment.
10456 * configure: Regenerate.
10457
0aee14a5 104582004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10459
10460 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10461 typos.
10462 * doc/cppopts.texi: Fix a typo.
10463
ec5d1187 104642004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10465
10466 * config/i386/i386.md: Fix formatting.
10467
d82be29a 104682004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
10469
d8a2ca58 10470 * configure.ac: Add some comments delineating sections of code.
10471
12e37a44 10472 * doc/install.texi: Note that libada uses autoconf 2.57 also.
10473
edd99cb3 10474 * doc/install.texi: Fix idiot typo in previous commit.
10475
d82be29a 10476 * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10477
0dd9317d 104782004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10479
10480 * config/h8300/h8300.md: Add comments about peephole2's.
10481
350b056a 104822004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10483
10484 * config/h8300/h8300.md: Tweak operand numbers of some
10485 peephole2's.
10486
9bf7efa3 104872004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10488
10489 * config/h8300/h8300.md: Tweak comments about peephole2's.
10490
49bf95f0 104912004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl>
10492
10493 PR middle-end/14203
10494 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10495 instead of testing whether DECL_RTL is not NULL.
10496
d767e27e 104972004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10498
10499 * config/sh/sh.c: Fix formatting.
10500
b60226ef 105012004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10502
10503 * config/sh/sh.c: Convert to ISO-C.
10504
9a77d564 105052004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
67e72f65 10506
322c5c16 10507 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10508 my previous patch.
9a77d564 10509
10510 * config/darwin.h (machopic_finish): Output stub even if the
10511 symbol is already defined.
10512
08404d9c 105132004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10514
10515 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10516
0f5da149 105172004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10518
10519 * genattr.c (main): Don't define
10520 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10521 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10522 (DFA_PIPELINE_INTERFACE): Likewise.
10523 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10524 (DFA_PIPELINE_INTERFACE): Likewise.
10525
c11a8e91 105262004-02-28 Richard Sandiford <rsandifo@redhat.com>
10527
10528 * config/mips/mips.md (tstsi, tstdi): Delete.
10529
2f11794e 105302004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10531
67e72f65 10532 * config/mips/mips.c (override_options): Remove an obsolete
2f11794e 10533 duplicate definition of the "e" constraint.
10534 * config/mips/mips.h: Update a comment accordingly.
10535
99460684 105362004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10537
10538 * config/mips/mips.md: Complete the unfinished R4000
10539 multiply/shift errata workaround. Improve documentation.
10540 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10541 has a hilo hazard.
10542 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10543 (muldi3, muldi3_internal): Likewise.
10544 (muldi3_internal2): Remove, replacing with...
10545 (muldi3_mult3, muldi3_r4000): ...these new patterns.
10546 (mulsidi3): Take the errata into account.
10547 (mulsidi3_32bit): Remove, replacing with...
10548 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10549 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10550 (umulsidi3): Take the errata into account.
10551 (umulsidi3_32bit): Remove, replacing with..
10552 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10553 (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10554 TARGET_FIX_R4000.
10555 (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10556 (smuldi3_highpart, umuldi3_highpart): Likewise.
10557 * doc/invoke.texi: Document the errata workaround.
10558
915c18b3 105592004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10560
10561 * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10562 * config/mips/mips.h (MASK_FIX_SB1): Bump.
10563 (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10564 (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10565 * config/mips/mips.c (mips_idiv_insns): New function.
10566 (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10567 (mips_output_division): Add a workaround for the R4000 divide/shift
10568 errata.
10569 * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10570 the length of an "idiv" instruction.
10571 * doc/invoke.texi: Document the new switches.
10572
a09deb71 105732004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10574
10575 * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10576 TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10577
afb2402b 105782004-02-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10579
10580 PR optimization/14229
10581 * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10582
6f420099 105832004-02-28 Eric Botcazou <ebotcazou@act-europe.fr>
10584
10585 * fold-const.c (fold): Strip NOPs that change the signedness
10586 for RSHIFT too. Expand comment.
10587
153e259d 105882004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
10589
10590 PR optimization/7871
10591 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
6f420099 10592 from or to call insns.
153e259d 10593
105942004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
10595
10596 PR optimization/7871
10597 * flow.c (propagate_one_insn): Interpret calls as setting global
10598 registers, not merely clobbering them.
10599
bcbf3e49 106002004-02-27 Dale Johannesen <dalej@apple.com>
153e259d 10601
bcbf3e49 10602 * config/darwin.c (machopic_output_possible_stub_label): Remove.
10603 config/darwin-protos.h: Ditto.
10604 config/darwin.h: Remove call to it.
10605 * combine.c (distribute_notes): Do not place a REG_DEAD note
10606 when value is both set and used.
10607
b0c688b1 106082004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10609
10610 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10611 as well.
10612 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10613 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10614
c94c99f1 106152004-02-27 Andrew Pinski <apinski@apple.com>
10616
10617 * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10618 Speedup common case of the type values being in the same order.
10619
c1cc6575 106202004-02-27 Steve Ellcey <sje@cup.hp.com>
10621
10622 * config/ia64/ia64.h (no-inline-float-divide): New option.
10623 * config/ia64/ia64.h (no-inline-int-divide): New option.
10624 * config/ia64/ia64.h (no-inline-sqrt): New option.
10625 (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10626 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10627 * config/ia64/ia64.c (ia64_override_options): Modify error
10628 checking for inlined division/sqrt.
10629
8dab0db8 106302004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10631
10632 * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10633 ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10634 value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10635 config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10636 copyright.
10637
b0cdd2bb 106382004-02-27 Paul Brook <paul@codesourcery.com>
10639
10640 * function.c (assign_parms): Don't count pretend args for alignment.
10641
a49a878f 106422004-02-27 Richard Henderson <rth@redhat.com>
10643
10644 * passes.c: New file.
10645 * Makefile.in (OBJS-common): Add it.
10646 * diagnostic.c (rtl_dump_and_exit): Move decl ...
10647 * flags.h (rtl_dump_and_exit): ... here.
67e72f65 10648 * output.h (size_directive_output, last_assemble_variable_decl):
a49a878f 10649 Move from toplev.c.
10650 * rtl.h (reg_alloc): Move from toplev.c.
10651 * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10652 struct dump_file_info, enum dump_file_index, dump_file_tbl,
10653 open_dump_file, close_dump_file, rest_of_decl_compilation,
10654 rest_of_type_compilation, rest_of_handle_final,
67e72f65 10655 rest_of_handle_delay_slots, rest_of_handle_stack_regs,
a49a878f 10656 rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10657 rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10658 rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10659 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
67e72f65 10660 rest_of_handle_tracer, rest_of_handle_if_conversion,
a49a878f 10661 rest_of_handle_if_after_combine, rest_of_handle_web,
10662 rest_of_handle_branch_prob,
10663 rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
67e72f65 10664 rest_of_handle_addressof, rest_of_handle_sibling_calls,
a49a878f 10665 rest_of_handle_jump_bypass, rest_of_handle_inlining,
10666 rest_of_handle_null_pointer, rest_of_handle_combine,
10667 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
67e72f65 10668 rest_of_handle_gcse, rest_of_handle_loop_optimize,
a49a878f 10669 rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10670 (decode_d_option): Use enable_rtl_dump_file.
10671 (compile_file, finalize, do_compile): Move profile+combine+graph
10672 cleanup to finish_optimization_passes.
10673 * toplev.h (init_optimization_passes, finish_optimization_passes,
10674 enable_rtl_dump_file): Declare.
10675
7645fec2 106762004-02-27 Eric Botcazou <ebotcazou@act-europe.fr>
93d30214 10677 Roger Sayle <roger@eyesopen.com>
7645fec2 10678
10679 * fold-const.c (fold): Revert 2004-02-25 change. Use the original
10680 operands to build a tree with swapped operands.
10681 * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10682 'unsignedp' predicate to specify the signedness.
10683
aab2cf92 106842004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10685
10686 * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10687 expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10688 params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10689 comment typos and formatting. Follow spelling conventions.
10690
d4f9f878 106912004-02-26 Aldy Hernandez <aldyh@redhat.com>
10692
10693 * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10694 fix_truncsfsi2.
10695
10696 * config/rs6000/spe.md: Delete spe_efsctuiz.
10697 Add spe_fixuns_truncsfsi2.
10698 Add spe_fix_truncsfsi2.
67e72f65 10699
ccb84981 107002004-02-26 Eric Christopher <echristo@redhat.com>
10701
10702 * c-lex.c (c_lex_string_translate): New variable.
10703 (lex_string): Use to determine string translation.
10704 * c-pragma.h: Prototype.
10705 * c-parse.in (start_string_translation): New. Set above.
10706 (stop_string_translation): Ditto.
10707 (attribute, attribute_list, asm_def, asm_stmt,
10708 asm_operand): Use above functions.
10709 * cp/parser.c (cp_parser_declaration): Translate strings
10710 unless token is RID_EXTERN. Set c_lex_string_translate
10711 for recursive use.
10712 (cp_parser_asm_definition): Only translate argument strings
10713 to asms.
10714 (cp_parser_asm_operand_list): Ditto.
10715 (cp_parser_attribute_list): Do not translate attribute strings.
10716
2ce19011 107172004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10718
10719 * stmt.c (expand_start_case_dummy): Remove.
10720 * tree.h: Remove the corresponding prototype.
10721
315b3a2c 107222004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10723
10724 * builtins.c (apply_args_register_offset): Remove.
10725 * tree.h: Remove the corresponding prototype.
10726
4833325d 107272004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10728
10729 * stor-layout.c (is_pending_size): Remove.
10730 * tree.h: Remove the corresponding prototype.
10731
733c3aca 107322004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10733
10734 * recog.c (validate_replace_src): Remove.
10735 * recog.h: Remove the corresponding prototype.
10736
f4f4133a 107372004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10738
10739 * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10740 MAYBE_REG_PARM_STACK_SPACE.
10741 * function.c: Likewise.
10742 * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10743 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10744 * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10745 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10746
149ccc1c 107472004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10748
10749 * c-decl.c (c_expand_deferred_function): Remove.
10750 * c-tree.h: Remove the corresponding prototype.
10751
f0164c9d 107522004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10753
10754 * postreload.c (reload_cse_move2add): Generate just a PLUS
10755 instead of an entire SET.
10756
37710a73 107572004-02-26 Jan Hubicka <jh@suse.cz>
10758
10759 * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10760 /pentium4m.
10761 * i386.c (override_options): Add support for new CPUs.
10762 * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10763 (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10764 constants.
10765 * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10766
321cd155 107672004-02-26 Bob Wilson <bob.wilson@acm.org>
10768
10769 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10770
520b7351 107712004-02-26 Eric Botcazou <ebotcazou@act-europe.fr>
10772
10773 * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10774 (sparc_emit_fixunsdi): New prototype.
10775 * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10776 (sparc_emit_fixunsdi): New function.
10777 * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10778 operand 1. Pass SFmode to sparc_emit_floatunsdi.
10779 (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode
10780 to sparc_emit_floatunsdi.
10781 (fixuns_truncsfdi2): New expander.
10782 (fixuns_truncdfdi2): Likewise.
10783
139f8db0 107842004-02-26 Alan Modra <amodra@bigpond.net.au>
10785
10786 * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10787 unless HAVE_cc0.
10788
62350d6c 107892004-02-25 Richard Henderson <rth@redhat.com>
10790
10791 * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10792 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10793 use (op0-op1) == 0 if op0 is a pointer.
10794 * config/alpha/alpha.md (cmpdi): Use some_operand.
10795 (three comparison combine splits): Remove.
10796
8c42f0d9 107972004-02-25 Richard Henderson <rth@redhat.com>
10798
3f4af5ac 10799 PR c/12794
8c42f0d9 10800 * c-common.c (handle_alias_attribute): Reject the attribute if
10801 current_function_decl is set.
10802
69eb04f7 108032004-02-25 Kelley Cook <kcook@gcc.gnu.org>
10804
10805 * config.gcc: Add comment describing extra_gcc_objs.
10806 i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10807 * configure.ac (extra_gcc_objs): New substitution variable.
10808 (host_extra_gcc_objs): Don't substitute.
10809 * configure: Regenerate.
10810 * Makefile.in: Use extra_gcc_objs.
10811
5c4b5f43 108122004-02-25 Kelley Cook <kcook@gcc.gnu.org>
10813
10814 * doc/contrib.texi: Add an entry for myself.
10815
54f7a985 108162004-02-25 Jan Hubicka <jh@suse.cz>
10817
10818 * basic-block.h (make_eh_edge, break_superblocks): Declare.
10819 * cfgbuild.c (make_eh_edge): Make global.
10820 * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10821 * except.c (build_post_landing_pads, connect_post_landing_pads,
10822 dw2_build_landing_pads, sjlj_emit_function_enter,
ccb84981 10823 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
54f7a985 10824 sjlj_build_landing_pads): Update CFG.
10825 (emit_to_new_bb_before): New function.
10826 (finish_eh_generation): Do not rebuild the CFG.
10827
cacee710 108282004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10829
10830 * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10831 target_cpu_default defines.
10832 * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10833 * pa.h (TARGET_DEFAULT): Likewise.
10834
f5475491 108352004-02-25 Eric Botcazou <ebotcazou@act-europe.fr>
10836
10837 * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10838 comparisons with regard to signedness.
10839
bca653c5 108402004-02-25 Richard Earnshaw <rearnsha@arm.com>
10841
10842 * arm.c (thumb_legitimize_address): New function.
10843 * arm-protos.h: Prototype it.
10844 * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10845 (LEGITIMIZE_ADDRESS): Use it.
10846
fd11b602 108472004-02-25 J"orn Rennecke <joern.rennecke@superh.com>
10848
10849 * reload1.c (reload): Only spill eliminable register with multiple
10850 adjacent elimination alternatives if all alternatives fail.
10851
806c15d6 108522004-02-25 Richard Earnshaw <rearnsha@arm.com>
10853
10854 * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10855 is -4095...+4095 inclusive.
10856
0f295636 108572004-02-25 Eric Botcazou <ebotcazou@libertysurf.fr>
10858
10859 * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10860 the bootstrap failure with Sun CC 5.4 and 5.5.
10861
4362e8e0 108622004-02-24 Kazu Hirata <kazu@cs.umass.edu>
10863
10864 * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10865 which modifies NEWREG.
10866 (cse_condition_code_reg): Update the mode of CC_REG in
10867 CC_SRC_INSN on our own.
10868
3a67748b 108692004-02-24 Michael Matz <matz@suse.de>
10870
10871 * config/i386/i386.c (ix86_comp_type_attributes): Check for
10872 regparm attributes.
10873
450d042a 108742004-02-24 Richard Henderson <rth@redhat.com>
10875
10876 * toplev.c (dump_file_tbl): Rename from dump_file.
10877 * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
0dd5e539 10878 cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
450d042a 10879 config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10880 config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10881 loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10882 ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10883 toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10884 s/rtl_dump_file/dump_file/g.
10885
53d878e8 108862004-02-24 Aldy Hernandez <aldyh@redhat.com>
10887
93d30214 10888 * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10889 (spe_fixuns_truncsfsi2): Delete.
53d878e8 10890
93d30214 10891 * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10892 (fixuns_truncsfsi2): Delete.
53d878e8 10893
e48e460b 108942004-02-24 Josef Zlomek <zlomekj@suse.cz>
10895
10896 PR/14240
10897 * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10898
75fcbbcf 108992004-02-24 Geoffrey Keating <geoffk@apple.com>
10900
10901 * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10902
e40000f4 109032004-02-24 Jason Merrill <jason@redhat.com>
10904
10905 * tree.c (check_qualified_type): New fn.
10906 (get_qualified_type): Use it. If type already has the desired
10907 quals, just return it.
10908 * tree.h: Declare it.
e40000f4 10909
f77a5bb0 109102003-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com>
10911
10912 * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10913 TARGET_SCHED_FINISH_GLOBAL): New macros.
10914
10915 * target.h (md_init_global, md_finish_global): Function
10916 declarations corresponding to new target macros.
10917
10918 * haifa-sched.c (sched_init, sched_finish): Allow target to
10919 call the new schedular hooks.
10920
10921 * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10922 call to update_life_info.
10923
10924 * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10925 flag_schedule_insns for SH4.
10926
10927 * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10928 find_set_regmode_weight, find_insn_regmode_weight,
10929 find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10930 sh_variable_issue, high_pressure, ready_reorder,
10931 rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10932 functions used to throttle the insn movement in first
10933 scheduling pass for SH.
10934
10935 * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10936 TARGET_SCHED_FINISH_GLOBAL.
10937
3e7f6cce 109382004-02-24 Alexandre Oliva <aoliva@redhat.com>
10939
10940 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10941 2004-02-05 Alexandre Oliva <aoliva@redhat.com>
10942 * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10943 symbols in sections named by the user.
10944 2004-01-30 Alexandre Oliva <aoliva@redhat.com>
10945 * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10946 2004-01-27 Alexandre Oliva <aoliva@redhat.com>
10947 * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10948 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10949 the above.
10950 2004-01-20 Alexandre Oliva <aoliva@redhat.com>
10951 * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10952 one more pseudo to further improve code generation.
10953 2004-01-19 Alexandre Oliva <aoliva@redhat.com>
10954 * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10955 inside UNSPEC.
10956 2004-01-16 Alexandre Oliva <aoliva@redhat.com>
10957 * config/frv/frv.c (frv_legitimate_address_p): Added
10958 allow_double_reg_p argument. Adjust all callers. Use it to
10959 decide whether to enable double-register indirect addressing.
10960 (frv_funcdesc_alias_set): Remove.
10961 (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10962 register. Emit movdi_ldd.
10963 (ldd_address_operand): New.
10964 * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10965 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10966 (PREDICATE_CODES): Add ldd_address_operand.
10967 * config/frv/frv.md (movdi_ldd): New.
10968 (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10969 intermediate computations if possible.
10970 (symGOTOFF2reg_i): Fix harmless typo.
10971 2003-12-18 Alexandre Oliva <aoliva@redhat.com>
10972 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10973 relocated p_vaddr to vaddr type.
10974 * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10975 * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10976 (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10977 MEM, or use a funcdesc alias set. Use regular move instead of
10978 ldd.
10979 (dbl_memory_one_insn_operand): Recognize function descriptors by
10980 type or by alias set, and don't split them.
10981 * config/frv/frv.md (call, call_value): Never use call_internal
10982 for fdpic.
10983 (call_internal, call_value_internal): Never match for FDPIC.
10984 (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10985 call_value_fdpicsi): Require FDPIC.
10986 (ldd): Removed.
10987 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
10988 * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10989 * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10990 (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10991 FDPIC. Compute data base address.
10992 * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10993 before the other self-specs are processed.
10994 * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10995 Build with -fPIC.
10996 2003-12-15 Alexandre Oliva <aoliva@redhat.com>
10997 * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10998 inhibit_libc is defined.
10999 2003-12-12 Alexandre Oliva <aoliva@redhat.com>
11000 * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11001 __FRV_FDPIC__.
11002 (__RELOC_POINTER): Define.
11003 (_Unwind_IteratePhdrCallback): Use it.
11004 * config/frv/frv.h (Twrite): Define.
11005 (TRANSFER_FROM_TRAMPOLINE): Use it.
11006 * config/frv/linux.h (INVOKE__main): Undefine.
11007 (Twrite): Override.
11008 2003-12-05 Richard Sandiford <rsandifo@redhat.com>
11009 * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11010 (-mlibrary-pic): Emphasize that this option generates EABI code.
11011 (-mcpu): Add fr550.
11012 (-mpack): Remove.
11013 2003-11-30 Alexandre Oliva <aoliva@redhat.com>
11014 * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11015 and CONSTs in FDPIC mode.
11016 * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11017 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
11018 * config/frv/frv.c (move_source_operand): Don't accept symbolic
11019 constants.
11020 * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11021 rather than 'i' constraint for the 2-instruction alternative.
11022 (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11023 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
11024 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11025 EXTRA_CONSTRAINT_FOR_Y.
11026 (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11027 * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11028 (addsi3): Change 'Y' constraint to 'Q'.
11029 2003-11-27 Richard Sandiford <rsandifo@redhat.com>
11030 * reload.c (CONST_POOL_OK_P): New macro.
11031 (find_reloads): Use it to decide whether a constant can be forced
11032 into memory.
11033 * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11034 constant satisfies got12_operand.
11035 (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11036 (frv_legitimate_address_p): Check for valid unspec offsets using
11037 got12_operand rather than frv_legitimate_fdpic_operand_p.
11038 (frv_legitimate_fdpic_operand_p): Delete.
11039 (frv_emit_movsi): Abort if we try to use the FDPIC register during
11040 or after reload.
11041 (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11042 TARGET_FDPIC.
11043 * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11044 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
11045 * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11046 (frv_fdpic_fptr_operand): Don't declare here.
11047 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11048 rather than fdpic_got12_operand.
11049 (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for
11050 got12_operand and const_unspec_operand.
11051 * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11052 (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11053 (symbolic_operand): Remove.
11054 (const_unspec_operand): New predicate.
11055 * config/frv/frv.md (*movsi_got): Use got12_operand.
11056 (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11057 2003-11-18 Richard Sandiford <rsandifo@redhat.com>
11058 * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11059 * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11060 * config/frv/frv.c (frv_unspec): New structure.
11061 (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11062 (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11063 validate CONST indices. Use frv_output_const_unspec to print them.
11064 (frv_print_operand): Update call to unspec_got_name. Use
11065 frv_output_const_unspec to print constant unspecs.
11066 (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11067 Reject UNSPECs otherwise.
11068 (unspec_got_name): Take the relocation number as argument, not an
11069 rtx containing it.
11070 (frv_output_addr_const_extra): Remove, replacing with...
11071 (frv_output_const_unspec): ...this new function.
11072 (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11073 (gpr_or_int12_operand): Use fdpic_got12_operand.
11074 (dbl_memory_one_insn_operand): Likewise.
11075 (fdpic_got12_operand): Use frv_const_unspec_p.
11076 (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11077 are already legitimate. Use frv_small_data_reloc_p when deciding
11078 whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11079 2003-11-18 Alexandre Oliva <aoliva@redhat.com>
11080 * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11081 * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file.
11082 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11083 label, for real this time.
11084 * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11085 representation of visibility.
11086 (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11087 such.
11088 2003-11-17 Richard Sandiford <rsandifo@redhat.com>
11089 * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11090 (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11091 * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11092 it was explicitly disabled.
11093 (frv_stack_info): There is no need to save the link register in every
11094 frame unless TARGET_LINKED_FP is true.
11095 (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11096 frame pointer if the stack pointer might change value.
11097 (frv_return_addr_rtx): Check and process "count" argument.
11098 2003-11-14 Richard Sandiford <rsandifo@redhat.com>
11099 * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11100 (frv_find_base_term): Declare.
11101 * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11102 (FIND_BASE_TERM): Define.
11103 (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11104 small_data_register_operand, small_data_symbolic_operand. Add
11105 symbolic_operand.
11106 * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11107 (frv_print_operand_memory_reference, output_move_single): Remove
11108 special handling for unlegitimized sdata addresses.
11109 (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11110 and symbolic addresses.
11111 (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11112 (frv_find_base_term): New function.
11113 (int_2word_operand): Check specifically for symbolic address constants.
11114 (pic_register_operand, pic_symbolic_operand): Delete.
11115 (small_data_register_operand, small_data_symbolic_operand): Delete.
11116 (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11117 Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11118 (move_source_operand): Only accept CONSTs if they're a two-insn
11119 symbolic constant.
11120 (fdpic_got12_operand): Don't require TARGET_FDPIC.
11121 (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11122 using gen_symGOTOFF2reg*.
11123 (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11124 (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs
11125 themselves a cost of 3 insns.
11126 * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11127 Change predicate to symbolic_operand.
11128 (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11129 (*movsi_lda_sdata): Delete.
11130 (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11131 2003-11-05 Alexandre Oliva <aoliva@redhat.com>
11132 * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11133 frv-*-*linux*.
11134 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11135 label.
11136 * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11137 -multilib-library-pic.
11138 (LINK_SPEC): Add -z text for -mfdpic.
11139 * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11140 * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11141 * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11142 Override.
11143 (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11144 FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11145 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11146 crtstuff-generated files.
11147 2003-10-31 Alexandre Oliva <aoliva@redhat.com>
11148 * config.gcc: Add frv-*-*linux*.
11149 * config/frv/linux.h, config/frv/t-linux: New.
11150 2003-10-06 Alexandre Oliva <aoliva@redhat.com>
11151 * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11152 when -mfdpic even if a linker script is explicitly listed.
11153 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
11154 * config/frv/frv.c (frv_override_options): Clear asm_out
11155 unaligned_op for SImode on FDPIC.
11156 (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11157 argument passed to decl_readonly_section.
11158 (frv_assemble_integer): Revert 2003-09-30's change, but make the
11159 whole block run with FDPIC even with -fno-PIC.
11160 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
11161 * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11162 symbol or label plus offset to memory.
11163 (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit
11164 GOTOFF and GPREL for LABEL_REF.
11165 * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11166 -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11167 (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11168 (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11169 * doc/invoke.texi: Document them.
11170 2003-09-30 Alexandre Oliva <aoliva@redhat.com>
11171 * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11172 (frv_splittable_got_operand): Removed.
11173 * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11174 LO_SUM. Add comments.
11175 (frv_override_options): Moved enabling of FDPIC to
11176 DRIVER_SELF_SPECS. Don't enable MASK_DWORD.
11177 (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11178 (frv_legitimize_fdpic_address): Don't duplicate logic in
11179 frv_emit_movsi.
11180 (frv_gen_GPsym2reg): New.
11181 (unspec_got_name): Added gprel.
11182 (frv_expand_fdpic_call): Add support for inlining PLTs.
11183 (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11184 (gpr_or_int12_operand): Added GPREL12.
11185 (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11186 (small_data_symbolic_operand): Fail if FDPIC.
11187 (fdpic_splittable_got_operand): Removed.
11188 (fdpic_got12_operand): Added GPREL12.
11189 (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL
11190 when appropriate. Fix sdata GOTOFF.
11191 (frv_legitimate_constant_p): Require legitimate PIC operand for
11192 FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11193 (frv_assemble_integer): Move FDPIC funcdesc handling out of
11194 flag_pic case.
11195 (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11196 frv_assemble_integer fails.
11197 * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11198 (SUBTARGET_DRIVER_SELF_SPECS): New.
11199 (ASM_SPEC): Don't pass -mno-fdpic.
11200 (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11201 (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11202 (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11203 -multilib-library-pic.
11204 (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11205 condexec_si_media_operator, condexec_sf_add_operator and
11206 condexec_sf_conv_operator. Removed condexec_sf_binary_operator
11207 and condexec_sf_unary_operator.
11208 * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11209 New.
11210 (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11211 movsi_internal. Give them internal names. movsi_got has type
11212 int.
11213 (fdpic got splitters): Remove.
11214 (symGPREL2reg, symGPREL2reg_hilo): New.
11215 * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11216 to -mlibrary-pic. Map -multilib-library-pic to it.
11217 * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11218 Document.
11219 2003-09-28 Alexandre Oliva <aoliva@redhat.com>
11220 * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11221 (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11222 (frv_cannot_force_const_mem): New function.
11223 (const_small_data_p, plus_small_data_p): Update comments on sdata
11224 on FDPIC.
11225 (frv_override_options): Set flag_pie for FDPIC too.
11226 (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11227 call-saved registers on FDPIC.
11228 (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11229 don't force LR to be preserved.
11230 (frv_expand_prologue): Likewise.
11231 (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11232 (frv_frame_pointer_required): Don't force it just because the
11233 FDPIC register is used.
11234 (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11235 operand only if !condexec_p.
11236 (frv_legitimize_address): Return the FDPIC-legitimized address.
11237 Don't match small data here on FDPIC.
11238 (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11239 symbols. Use TRUE/FALSE instead of 1/0.
11240 (frv_local_funcdesc_p): New.
11241 (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11242 immediates when possible.
11243 (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11244 (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11245 an UNSPEC_GOT.
11246 (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and
11247 12-bit immediates when possible.
11248 (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11249 are not legitimate pic operands.
11250 (frv_in_small_data_p): Re-enable for FDPIC.
11251 * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11252 (FRV_GLOBAL_P): Removed.
11253 * config/frv/frv.md: Add modes to CONSTs.
11254 (movsi_got): New.
11255 (movsi_lo_sum_got): Use separate matches instead of match_dup.
11256 (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11257 (fdpic splittable operations): Match on flag_pic != 1.
11258 2003-09-22 Alexandre Oliva <aoliva@redhat.com>
11259 * config/frv/frv.c (frv_asm_out_constructor,
11260 frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11261 bytes, not bits.
11262 2003-09-19 Alexandre Oliva <aoliva@redhat.com>
11263 * config/frv/frv.c (frv_assemble_integer): Reject complex
11264 expressions referencing function SYMBOL_REFs.
11265 * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11266 (move_source_operand): Reject CONSTs that reference function
11267 SYMBOL_REFs on FDPIC.
11268 (frv_emit_movsi): If we get such a CONST, break it up.
11269 * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11270 (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11271 * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11272 MEM.
11273 (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11274 (frv_trampoline_size): Increase for FDPIC.
11275 * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11276 (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11277 * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11278 Disable use of GOTOFF for now.
11279 (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11280 Disable use of small data in FDPIC for now.
11281 (frv_asm_output_mi_thunk): Implement for FDPIC.
11282 * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11283 * config/frv/frv.c (frv_asm_out_constructor): Use
11284 frv_assemble_integer for FDPIC pointers.
11285 (frv_asm_out_destructor): Likewise.
11286 * config/frv/frv.md (ldd): Fix order of operands. Use
11287 address_operand for input.
11288 2003-09-18 DJ Delorie <dj@redhat.com>
11289 * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11290 (unspec_got_name): Correct typo.
11291 (frv_emit_movsi): Pre-expand splittable GOTs.
11292 (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11293 * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11294 (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11295 * config/frv/t-frv: Add -mfdpic multilibs.
11296 * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11297 (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11298 * config/frv/frv.c (frv_override_options): -mfdpic assumes
11299 flag_pic, default to 32-bit pics, require DWORD ops.
11300 (frv_override_options): Add W and Z constraints.
11301 (frv_expand_prologue): No pic prologue for -mfdpic.
11302 (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11303 (frv_print_operand_memory_reference): Handle GOT constants.
11304 (frv_legitimate_address_p): Allow GOT constants.
11305 (frv_legitimize_address): Handle GOT addresses too.
11306 (frv_legitimate_fdpic_operand_p): New.
11307 (frv_legitimize_fdpic_address): New.
11308 (unspec_got_name): New.
11309 (frv_output_addr_const_extra): New.
11310 (frv_expand_fdpic_call): New.
11311 (frv_fdpic_fptr_operand): New.
11312 (gpr_or_int12_operand): Handle GOT operands.
11313 (int_2word_operand): Handle GOT operands.
11314 (fdpic_operand): New.
11315 (fdpic_splittable_got_operand): New.
11316 (fdpic_got12_operand): New.
11317 (frv_emit_movsi): Handle GOT operands.
11318 (frv_assemble_integer): -mfdpic doesn't use rofixups.
11319 (frv_print_operand): Support 'g' code for GOT operands.
11320 * config/frv/frv-protos.h: Add prototypes as needed.
11321 * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11322 R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11323 R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11324 R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11325 R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11326 R_FRV_GOTOFFLO): New.
11327 (movsi_high_got, movsi_lo_sum_got): New.
11328 (*movsi_pic): Don't use this splitter for -mfdpic.
11329 (addsi3): Allow GOT references also.
11330 (call, call_value): Handle -mfdpic separately.
11331 (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11332 call_value_fdpicsi): New.
11333 (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11334 symGOTOFF2reg_i): New.
11335 * config/frv/frv.h (MASK_FDPIC): New.
11336 (TARGET_FDPIC): New.
11337 (TARGET_SWITCHES): Add -mfdpic.
11338 (FDPIC_FPTR_REGNO): New.
11339 (FDPIC_REGNO): New.
11340 (OUR_FDPIC_REG): New.
11341 (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11342 FDPIC_CALL_REGS.
11343 (REG_CLASS_NAMES): Likewise.
11344 (REG_CLASS_CONTENTS): Likewise.
11345 (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11346 (EXTRA_CONSTRAINT): Add it here.
11347 (FRV_GLOBAL_P): New.
11348 (OUTPUT_ADDR_CONST_EXTRA): New.
11349
9d5e4bee 113502004-02-24 Kazu Hirata <kazu@cs.umass.edu>
11351
11352 * config/sparc/sparc.h: Remove commented-out definitions of
11353 TARGET_EDOM and GEN_ERRNO_RTX.
11354
5703af0d 113552004-02-24 Kazu Hirata <kazu@cs.umass.edu>
11356
11357 * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11358 df_analyse with df_analyze.
11359
74e19b67 113602004-02-24 Alan Modra <amodra@bigpond.net.au>
11361
11362 * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11363 beginning of block.
11364
8c78c14b 113652004-02-23 James E Wilson <wilson@specifixinc.com>
11366
92953f35 11367 * calls.c (precompute_arguments): Update comment.
8c78c14b 11368
23c09675 113692004-02-23 Kazu Hirata <kazu@cs.umass.edu>
11370
11371 * et-forest.c: Replace et_occurences with et_occurrences.
11372
f08e8669 113732004-02-23 Kazu Hirata <kazu@cs.umass.edu>
11374
11375 * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11376 with iv_analyze.
11377
4aafbf22 113782004-02-23 Kelley Cook <kcook@gcc.gnu.org>
11379
11380 * config/i386/i386.c: Rename pni to sse3.
11381 * config/i386/i386.h: Likewise.
93d30214 11382 * config/i386/i386.md: Likewise.
4aafbf22 11383 * config/i386/pmmintrin.h: Likewise.
11384 * doc/extend.texi: Likewise.
11385 * doc/invoke.texi: Likewise.
11386
a814bad5 113872004-02-23 Zack Weinberg <zack@codesourcery.com>
11388 Kazu Hirata <kazu@cs.umass.edu>
11389
11390 Remove -fwritable-strings.
11391 * c-common.c (fix_string_type): Don't check
11392 flag_writable_strings.
11393 (fix_string_type): Likewise.
11394 * c-opts.c (set_std_c89): Don't initialize
11395 flag_writable_strings.
11396 (set_std_c99): Likewise.
11397 * common.opt (fwritable-strings): Remove.
11398 * flags.h: Remove the external declaration of
11399 flag_writable_strings.
11400 * opts.c (common_handle_option) <OPT_fwritable_strings>:
11401 Remove.
11402 * toplev.c (flag_writable_strings): Remove.
11403 (f_options): Remove an entry for writable-strings.
11404 * varasm.c (const_hash_1) <STRING_CST>: Don't check
11405 flag_writable_strings.
11406 (compare_constant) <STRING_CST>: Likewise.
11407 (build_constant_desc): Likewise.
11408 * config/darwin.c (machopic_select_section): Likewise.
11409 * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11410 * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11411 * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11412 * config/mips/mips.c (mips_select_section): Likewise.
11413 (mips_encode_section_info): Likewise.
11414 * config/pa/pa.c (pa_select_section): Likewise.
11415 * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11416 * config/v850/v850.c (v850_select_section): Likewise.
11417 * doc/invoke.texi (-fwritable-strings): Remove.
11418 (-fno-const-strings): Don't mention -fwritable-strings.
11419 * doc/trouble.texi: Don't mention -fwritable-strings.
11420
b2956f58 114212003-02-23 Nathanael Nerode <neroden@gcc.gnu.org>
11422
11423 * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11424
8491b232 114252004-02-23 Dale Johannesen <dalej@apple.com>
11426
11427 * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11428 (movdf_hardfloat64): Ditto.
11429 (movdf_softfloat64): Ditto.
11430
8d079cfe 114312004-02-23 Fariborz Jahanian <fjahanian@apple.com>
93d30214 11432 * config/rs6000/rs6000.c (function_arg): call to
8d079cfe 11433 rs6000_mixed_function_arg for DFmode moved to allow
ccb84981 11434 normal DFmode incoming register assignment.
8d079cfe 11435
db615075 114362004-02-23 Dale Johannesen <dalej@apple.com>
11437
11438 * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11439 (movdf_hardfloat64): Ditto.
11440
f9b1fb17 114412004-02-23 Kazu Hirata <kazu@cs.umass.edu>
11442
11443 * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11444 config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11445 copyright.
11446
b5a8fc23 114472004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
11448
aaadf915 11449 PR c/14156
11450 * c-typeck.c (c_expand_return): Change check for VAR_DECL
11451 to use DECL_P instead.
11452
b5a8fc23 11453 * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11454 * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11455
bfb835d3 114562004-02-23 Kazu Hirata <kazu@cs.umass.edu>
11457
11458 * Makefile.in (opts.o): Depend on target.h.
11459 * opts.c (decode_options): Use targetm.default_short_enums
11460 instead of DEFAULT_SHORT_ENUMS.
11461 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11462 * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11463 (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11464 * target.h (gcc_target): Add default_short_enums.
11465 * config/cris/cris.h: Remove a comment about
11466 DEFAULT_SHORT_ENUMS.
11467 * config/ip2k/ip2k.h: Likewise.
11468 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11469 TARGET_DEFAULT_SHORT_ENUMS. Update the description.
11470
82e18817 114712004-02-23 Eric Botcazou <ebotcazou@libertysurf.fr>
93d30214 11472 Falk Hueffner <falk@debian.org>
82e18817 11473
11474 PR c/14188
11475 * builtins.c (expand_builtin_va_arg): Emit an informative message
11476 if a trap is generated.
11477 * c-typeck.c (build_function_call): Likewise.
11478
9131ff41 114792004-02-22 Jakub Jelinek <jakub@redhat.com>
11480
11481 * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11482 fopen.
11483 * libgcov.c: Include sys/stat.h.
11484 * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11485 * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11486 * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11487 * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11488
ea1d1c38 114892004-02-22 Kazu Hirata <kazu@cs.umass.edu>
11490
11491 * reorg.c: Remove comments about dead ports.
11492
573c38ed 114932004-02-22 Christopher Faylor <cgf@redhat.com>
11494
11495 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11496 extra host object file when targetting cygwin rather than generic
11497 object files.
11498
fcc73461 114992004-02-22 Josef Zlomek <zlomekj@suse.cz>
11500
11501 Merge from tree-ssa:
11502 2003-11-20 Richard Henderson <rth@redhat.com>
11503
11504 * tree-inline.c (insert_decl_map): New.
11505 (remap_decl, remap_type, remap_block, copy_body_r,
11506 initialize_inlined_parameters, declare_return_variable,
11507 remap_save_expr): Use it.
11508
11509 * function.c (copy_body_r): Add mapping from id->ret_label to
11510 id->ret_label. Revert test for ret_label.
11511
742e47a0 115122004-02-22 Jakub Jelinek <jakub@redhat.com>
11513
11514 * genoutput.c (process_template): Strip trailing whitespace in @
11515 templates and issue a warning if there was any.
11516
21cb47d8 115172004-02-21 Christopher Faylor <cgf@redhat.com>
e852c6a2 11518
11519 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11520 object file when targetting cygwin.
11521 * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11522 overridden by top-level Makefile.
11523
8e96c36c 115242004-02-21 Roger Sayle <roger@eyesopen.com>
11525
11526 * config/i386/i386.c (standard_80387_constant_p): Also prefer
11527 the x87's load constant instructions when optimizing for size.
11528
98de49b3 115292004-02-21 Kazu Hirata <kazu@cs.umass.edu>
11530
11531 * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11532 * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11533 * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11534 * fold-const.c: Likewise.
11535 * simplify-rtx.c: Likewise.
11536
155184c9 115372004-02-21 Alan Modra <amodra@bigpond.net.au>
11538
11539 * combine.c (can_combine_p): Don't ignore SETs marked with
11540 REG_EH_REGION notes.
11541 (try_combine): When attemting to fix unrecognized insns, don't
11542 split a PARALLEL that contains the original i2.
11543
53469839 115442004-02-21 Ziemowit Laski <zlaski@apple.com>
11545
11546 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11547 SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11548 * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11549 * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11550 (vector, pixel, bool): #define to __vector, __pixel and __bool.
11551 (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11552 portion of header.
11553 (__altivec_link_error_invalid_argument): Remove prototype; will use
11554 __builtin_altivec_compiletime_error("vec_*") instead.
11555 (vec_*): Fix/complete set of available operation overloads given the
11556 existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11557 cv-correctness of pointer arguments; in C, always check for correct
11558 argument types before macro expansion.
11559 * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11560 defining Darwin/PowerPC-specific '-f[no-]altivec' and
11561 '-W[no-]altivec-long-deprecated' switches.
11562 * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11563 '__vector', '__pixel' and '__bool' macros using
11564 '__attribute__((altivec(...)))' types.
11565 * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11566 bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11567 bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11568 New type nodes.
11569 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11570 handling '-W[no-]altivec-long-deprecated'.
11571 (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11572 (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11573 altivec_expand_dst_builtin): Remove casts from integer literals.
11574 (altivec_expand_builtin): Likewise; handle expansion of new
11575 '__builtin_altivec_compiletime_error' function.
11576 (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11577 types, and make them distinct from other vector types; register
11578 '__builtin_altivec_compiletime_error' function.
11579 (print_operand): For 'P', print a full target register name instead of
11580 merely its number.
11581 (rs6000_attribute_table): Add "altivec" attribute.
11582 (rs6000_handle_altivec_attribute): New function.
ccb84981 11583 * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
53469839 11584 '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11585 maps to).
11586 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11587 declare.
11588 (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11589
8cad207a 115902004-02-20 James E Wilson <wilson@specifixinc.com>
11591
11592 * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11593 check.
11594 (shift_mix4left+2): Delete redundant pattern.
11595
a6e6eeae 115962004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11597
11598 * alias.c (OUTGOING_REGNO): Don't define the default.
11599 * builtins.c (OUTGOING_REGNO): Likewise.
11600 (INCOMING_REGNO): Likewise.
11601 (apply_args_register_offset): Always use OUTGOING_REGNO.
11602 * combine.c (OUTGOING_REGNO): Likewise.
11603 * sibcall.c (OUTGOING_REGNO): Likewise.
11604 * defaults.h (INCOMING_REGNO): Provide the default.
11605 (OUTGOING_REGNO): Likewise.
11606
45c09478 116072004-02-21 Jan Hubicka <jh@suse.cz>
11608
11609 * params.def (max-peeled-insns, max-completely-peeled-insns,
11610 max-once-peeled-insns): Set to 400.
11611
043dbdf4 116122004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11613
93d30214 11614 PR c++/12007
043dbdf4 11615 * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11616 are set for parameters before outputing debugging information.
11617
2a88556f 116182004-02-20 Falk Hueffner <falk@debian.org>
11619
11620 PR target/14201
11621 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11622 numbers.
11623
de269355 116242004-02-20 Per Bothner <per@bothner.com>
11625
11626 * input.h: Don't #include line-map.h. It may cause link problems
11627 with undefined linemap_line_start when line-map.h is included but
11628 line-map.o is not linked, as currently happens with gengtype on
11629 compilers that don't support inline.
11630 * toplev.c: So we do have to explicitly #include line-map.h here.
11631
31b44d32 116322004-02-20 Richard Henderson <rth@redhat.com>
11633
11634 * doc/invoke.texi: Add -Wvariadic-macros.
11635
dd18d58a 116362004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11637
11638 * haifa-sched.c (sched_emit_insn): Remove.
11639 * sched-int.h: Remove the corresponding prototype.
11640
d5871f40 116412004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11642
11643 Revert:
11644 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11645 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11646 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11647 * config/cris/cris.h: Remove a comment about
11648 DEFAULT_SHORT_ENUMS.
11649 * config/ip2k/ip2k.h: Likewise.
11650 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11651
8975ab84 116522004-02-20 Mohan Embar <gnustuff@thisiscool.com>
11653 Tom Tromey <tromey@redhat.com>
11654
11655 * doc/install.texi: Moved --disable-libgcj and
11656 --with-system-zlib documentation to new section for
11657 Java-specific options.
11658 Added explicit Cross-Compiler-Specific Options subheading.
11659 Added section for Java-specific options.
11660
9392d4cc 116612004-02-20 Matt Kraai <kraai@alumni.cmu.edu>
11662
11663 * doc/install.texi (Building the Ada compiler): Remove
93d30214 11664 example.
9392d4cc 11665
97878051 116662004-02-20 James E Wilson <wilson@specifixinc.com>
11667
11668 * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11669
eaeaf18f 116702004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11671
11672 * gcc.c (process_command): Allow translation of the copyright
11673 symbol but not the rest of the copyright message.
11674 * gcov.c (print_version): Likewise. Allow translation of the
11675 message about warranty.
11676
700d50bf 116772004-02-20 Hans-Peter Nilsson <hp@axis.com>
11678
11679 * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11680 predicate.
11681 ("*andsi_clear"): Tweak constraints to not match postincrement.
11682 Adjust the predicate to exclude a volatile memory reference.
11683 ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
11684 ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11685
ed90d522 116862004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
11687
11688 * move-if-change: Remove.
11689 * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11690 (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11691 (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11692 (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11693 (s-gtyp-gen, s-iov): Use the top level move-if-change.
11694 * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11695
6cf3854d 116962004-02-19 James E Wilson <wilson@specifixinc.com>
11697
11698 * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11699 for operand2. Add condition that requires register_operand operand2
11700 before reload.
11701
0bb9b30e 117022004-02-19 Richard Sandiford <rsandifo@redhat.com>
838f496b 11703 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
0bb9b30e 11704
11705 * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11706 * config/mips/mips.md: Expand comment above unaligned loads and stores.
11707
413a7abf 117082004-02-19 Richard Henderson <rth@redhat.com>
11709
11710 * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11711 * tree.c (build0, build1, build2, build3, build4): Split out from...
11712 (build): ... here. Call them.
11713 * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11714
11715 * convert.c (convert_to_integer): Remove extra build argument.
11716 * tree-inline.c (expand_call_inline): Likewise.
11717
05d51900 117182004-02-19 Richard Henderson <rth@redhat.com>
11719
11720 * c-opts.c (warn_variadic_macros): New.
11721 (c_common_handle_option): Set it.
11722 (sanitize_cpp_opts): Copy it to cpp_opts.
11723 * c.opt (Wvariadic-macros): New.
11724 * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11725 * cppinit.c (cpp_create_reader): Initialize it.
11726 * cppmacro.c (parse_params): Check it.
11727
8dc2c05f 117282004-02-19 David Daney <ddaney@avtrex.com>
11729
11730 PR preprocessor/14198
11731 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11732 builtin_assert ("machine=mips")
11733
fab39a5c 117342004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11735
11736 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11737 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11738 * config/cris/cris.h: Remove a comment about
11739 DEFAULT_SHORT_ENUMS.
11740 * config/ip2k/ip2k.h: Likewise.
11741 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11742
d39bdc7b 117432004-02-19 Zack Weinberg <zack@codesourcery.com>
11744
11745 * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11746 when passing single SFmode quantities in general registers,
11747 put them in the high half.
11748
43a0013a 117492004-02-19 Aldy Hernandez <aldyh@redhat.com>
d39bdc7b 11750
11751 * doc/md.texi (Standard Names): Document additional dependency on
11752 fix pattern.
11753
11754 * optabs.c (ftruncify): Remove.
11755 (expand_fix): Manually inline ftruncify above.
11756 (can_fix_p): Add FIXME note.
43a0013a 11757
0dd92d6c 117582004-02-19 Aldy Hernandez <aldyh@redhat.com>
d39bdc7b 11759
11760 * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11761 spe_fixuns_truncsfsi2.
11762
11763 * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11764 fixuns_truncsfsi2.
0dd92d6c 11765
6c653d50 117662004-02-19 Steve Ellcey <sje@cup.hp.com>
11767
11768 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11769 * testsuite/gcc.dg/20040219-1.c: New test.
11770
489609e5 117712004-02-19 Ulrich Weigand <uweigand@de.ibm.com>
11772
11773 * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11774 "*subsf3_cconly"): Subtraction is not commutative.
11775
ec4f62a9 117762004-02-19 Zack Weinberg <zack@codesourcery.com>
11777
11778 * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11779 (sdbout_symbol): If called before sdbout_init, queue DECL for
11780 later and return.
11781 (sdbout_init): Set sdbout_initialized true, process decls
11782 queued earlier by sdbout_symbol.
11783 (sdbout_finish): Use size_t for index variable.
11784
5f03fd61 117852004-02-19 Jeff Law <law@redhat.com>
ec4f62a9 11786
5f03fd61 11787 * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11788 for unordered comparison codes.
11789
d40bf399 117902004-02-19 Ian Lance Taylor <ian@wasabisystems.com>
11791
11792 * reload1.c (reload): Correct comment.
11793 (scan_paradoxical_subregs): Remove #if 0 and old comment.
11794 * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11795 register variables are not used by reload.
11796
62a3b667 117972004-02-19 Hans-Peter Nilsson <hp@axis.com>
11798
11799 PR target/14209
11800 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11801 constraints to not match postincrement. Adjust the predicate to
11802 exclude a volatile memory reference.
11803
c0634fda 118042004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11805
11806 * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11807
aab59902 118082004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11809
11810 * hooks.c (hook_void_tree_int): Remove.
11811 (hook_void_constcharptr): Likewise.
11812 (hook_int_void_0): Likewise.
11813 * hooks.h: Remove the prototypes for the above three
11814 functions.
11815 * targhooks.c (hook_bool_machine_mode_true): Remove.
11816 * targhooks.h: Remove the prototype for
11817 hook_bool_machine_mode_true.
11818
1c4e8019 118192004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11820
11821 * emit-rtl.c (subreg_realpart_p): Remove.
11822 (reorder_insns_with_line_notes): Likewise.
11823 (end_full_sequence): Likewise.
11824 * rtl.h: Remove the prototype for the above functions.
11825
ec8c41b5 118262004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11827
11828 * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11829 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11830 config/iq2000/iq2000.h, config/m32r/m32r.h,
11831 config/pdp11/pdp11.h, config/sparc/sparc.h,
11832 config/xtensa/xtensa.h: Remove commented-out or useless
11833 definitions of CASE_VECTOR_PC_RELATIVE.
11834
1844ffeb 118352004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11836
11837 * loop.c (all_sets_invariant_p): Remove.
11838
409cc7f3 118392004-02-19 Eric Botcazou <ebotcazou@libertysurf.fr>
11840
11841 PR target/12916
11842 * config/sparc/sparc.h (NPARM_REGS): Delete.
11843 (BASE_RETURN_VALUE_REG): Likewise.
11844 (BASE_OUTGOING_VALUE_REG): Likewise.
11845 (BASE_PASSING_ARG_REG): Likewise.
11846 (BASE_INCOMING_ARG_REG): Likewise.
11847 * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11848 TARGET_ARCH64, not TARGET_V9.
11849 (function_arg_slotno): Dispatch based on the mode class.
11850 Handle vector modes like floating-point modes.
11851 (function_arg_record_value_1): Handle vector types like
11852 floating-point types.
11853 (function_arg_record_value_2): Likewise.
11854 Calculate regno after mode transformation.
11855 (function_arg): Handle vector modes like floating-point modes.
11856 (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11857 If ARCH64, do not recheck alignment.
11858 (function_arg_pass_by_reference): Reorder the conditions.
11859 (sparc_return_in_memory): Move after function_arg_padding.
11860 Implement calling conventions for vector modes.
11861 (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11862 (function_value): Move scope of 'regbase'.
11863 Implement calling conventions for vector modes.
11864 (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11865 and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11866 (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11867 the argument is passed by reference.
11868 (sparc_type_code): Handle vector types.
11869
1b4f3c7d 118702004-02-19 Alan Modra <amodra@bigpond.net.au>
11871
11872 * function.c (assign_parms): When building decl_rtl for
11873 SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11874
6be0ba7c 118752004-02-19 Olivier Hainque <hainque@act-europe.fr>
11876
11877 * expr.c (is_aligning_offset): Check if we are aligning the
11878 expressions's address over BIGGEST_ALIGNMENT in bytes, not
11879 in bits.
11880
ecbfdc87 118812003-02-18 Matt Austern <austern@apple.com>
11882
11883 * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11884 LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11885 (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11886 defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11887 spec string.
11888 * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
ec4f62a9 11889
d3cdd238 118902004-02-18 Zack Weinberg <zack@codesourcery.com>
11891
11892 * dwarf2out.c (loclabel_num): Move outside #ifdef
11893 DWARF2_DEBUGGING_INFO and mark with GTY(()).
11894 * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11895 Mark with GTY(()).
11896 (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11897 Allocate memory with ggc_alloc. No need to copy anything.
11898 (ia64_hpux_file_end): Update to match.
11899
5652cbe6 119002004-02-18 Jakub Jelinek <jakub@redhat.com>
11901
11902 * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11903 by default.
11904
e90f6093 119052004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
11906
11907 * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11908 ("divmodtisi3"): Likewise.
11909 ("udivmoddi4", "udivmodtidi3"): Likewise.
11910 ("divmodsi4", "divmoddisi3"): Likewise.
11911 ("udivmodsi4", "udivmoddisi3"): Likewise.
11912 ("udivsi3", "umodsi3"): Likewise.
11913
7de9f7aa 119142004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
11915
11916 * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11917 placeholder insn when chunkifying the pool.
11918
009f6443 119192004-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11920
11921 * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11922 generating PIC code.
11923
ab5a13fd 119242004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11925
11926 * config/h8300/h8300-protos.h: Add a prototype for
11927 h8300_expand_branch.
11928 * config/h8300/h8300.c (h8300_expand_branch): New.
11929 * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11930 bgtu, beq, bne): Call h8300_expand_branch().
11931
a578a1cc 119322004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11933
11934 * config/h8300/h8300-protos.h: Add prototypes for
11935 h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11936 * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11937 (h8300_hard_regno_mode_ok): Likewise.
11938 * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11939 h8300_hard_regno_nregs().
11940 (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11941
6e04daf1 119422004-02-18 Per Bothner <per@bothner.com>
11943
11944 * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This
11945 partly reverts my 2003-10-01 change, because we're back to logically
11946 including <command line> inside the main line.
11947 * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field.
11948 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer.
11949 Fixes PR preprocessor/14103.
11950
11951 * cppfiles.c (_cpp_stack_include): When appropriate decrement
11952 line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11953 (cpp_push_include): Don't need to increment pfile's line field.
11954 * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1.
11955
11956 * c-ppoutput.c (print struct): New first_time field.
11957 (init_pp_output): Set print.first_time.
11958 (pp_file_change): Use print.first_time, rather than MAIN_FILE_P,
11959 which is set also for (say) <command line>. Clear print.first_time.
11960
11961 * cppfiles.c (struct _cpp_file): Comment and type for pch field
11962 does not match the code, so fix both.
11963 (should_stack_file): Inline include_pch_p function.
11964 (include_pch_p): Remove pointless function.
11965
11966 * cpphash.h (struct cpp_buffer): Remove unused search_cached field.
11967
20de0339 119682004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11969
11970 * config/h8300/h8300.md (four define_peephole2's): Use
11971 h8300_regs_ok_for_stm().
11972
a620f9df 119732004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11974
11975 * config/h8300/h8300-protos.h: Update the prototype for
11976 expand_a_rotate().
11977 * config/h8300/h8300.c (expand_a_rotate): Remove the first
11978 argument.
11979 * config/h8300/h8300.md: Update all callers.
11980
842672ee 119812004-02-18 Jan Hubicka <jh@suse.cz>
11982
11983 * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11984 floats.
11985 (simplify_binary_operation): Deal with logicals on floats.
11986
11987 * i386.md (SSE fabs splitters): Emit new patterns.
11988 (SSE cmov splitters): Likewise.
11989 (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11990 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11991 subregs.
11992 (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11993 (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11994
18618acc 119952004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11996
11997 * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11998 by hand.
11999 (output_a_rotate): Tweak a comment.
12000 * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12001 (*rotlhi3_1): Change to rotlhi3_1.
12002 (*rotlsi3_1): Change to rotlsi3_1.
12003
92f45e29 120042004-02-18 Richard Earnshaw <rearnsha@arm.com>
12005
12006 PR target/13866
12007 * arm.c (load_multiple_operation): Don't insist that the source reg
12008 of a post-increment component is the same as the destination.
12009 (store_multiple_operation): Likewise.
12010
cb501392 120112004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12012
12013 * config/h8300/h8300.md: Move movsf patterns into one section
12014 of the file.
12015
3eccc2db 120162004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12017
12018 * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12019 loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12020 xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12021 config/mips/linux64.h, config/pa/pa-64.h,
12022 config/rs6000/aix51.h, config/rs6000/aix52.h,
12023 config/rs6000/spe.md, config/sparc/linux.h,
12024 config/sparc/linux64.h: Update copyright.
12025
e0543af0 120262004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12027
12028 * config/h8300/h8300.md: Move push patterns into one
12029 section of the file.
12030
211ade98 120312004-02-18 Mark Mitchell <mark@codesourcery.com>
12032
12033 PR c++/11326
12034 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12035 fntype.
12036
70f5822c 120372004-02-18 Paul Brook <paul@codesourcery.com>
12038
12039 * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12040
1005eb27 120412004-02-18 Paul Brook <paul@codesourcery.com>
12042
bfacbdb8 12043 PR debug/12934
1005eb27 12044 * dwarf2out.c (loc_descriptor_from_tree): Handle
12045 EXPR_WITH_FILE_LOCATION.
12046
9ef1ae22 120472004-02-18 Jakub Jelinek <jakub@redhat.com>
12048
12049 * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12050 testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12051 trailing whitespace from instructions.
12052
a26caf7c 120532004-02-17 Geoffrey Keating <geoffk@apple.com>
12054
12055 * configure.ac: When generating auto-build.h, pass
12056 --enable-languages to the sub-configure.
12057 Put quotes around ${program_transform_name} when generating
12058 name of as, ld, nm, objdump.
12059 * configure: Regenerate.
12060
97b31bb5 120612004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
12062
12063 * Makefile.in (s-check, s-config, s-conditions, s-flags)
12064 (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12065 (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12066 (s-preds, s-iov): Do not depend on move-if-change.
12067
6f5b55f8 120682004-02-17 James E Wilson <wilson@specifixinc.com>
12069
12070 * caller-save.c (insert_restore): Pass mem through copy_rtx.
12071 (insert_save): Likewise.
12072
a3dedda8 120732004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12074
12075 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12076 warning.
12077
7d22b398 120782004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12079
12080 * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12081 *one_cmplsi2_h8300.
12082 (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12083
eb53e102 120842004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12085
12086 * config/h8300/h8300-protos.h: Update the prototype of
12087 fix_bit_operand().
12088 * config/h8300/h8300.c (fix_bit_operand): Remove the second
12089 argument "what".
12090 * config/h8300/h8300.md: Update all callers.
12091
bd80419e 120922004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12093
12094 * config/h8300/h8300.c (fix_bit_operand): Change the name of
12095 the last argument to "code" from "type".
12096
91c21245 120972004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12098
12099 * config/h8300/h8300.c: Remove an extern declaration of
12100 rtx_equal_function_value_matters.
12101
4b042441 121022004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12103
12104 * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12105 by hand.
12106 * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12107 (*iorqi3_1): Change to iorqi3_1.
12108 (*xorqi3_1): Change to xorqi3_1.
12109
8e43612b 121102004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12111
12112 * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12113 typos.
12114
b4d0180d 121152004-02-17 Jan Hubicka <jh@suse.cz>
12116
12117 * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12118
facad922 121192004-02-18 Alan Modra <amodra@bigpond.net.au>
12120
12121 PR optimization/14119
12122 * combine.c (try_combine): When attemting to fix unrecognized insns,
12123 don't delete SETs marked with REG_EH_REGION notes.
12124
ed869d65 121252004-02-17 Ulrich Weigand <uweigand@de.ibm.com>
12126
d3cdd238 12127 * combine.c (simplify_if_then_else): Do not replace
ed869d65 12128 (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12129 modes differ.
12130
cbc44df5 121312004-02017 Steven Bosscher <stevenb@suse.de>
12132
12133 * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12134 function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12135 tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12136 * ada/utils.c: Likewise.
12137 * cp/decl.c: Likewise.
12138 * f/com.c: Likewise.
12139 * java/class.c: Likewise.
12140
b123dda9 121412004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12142
12143 * config/h8300/h8300.md: Fix comment typos.
12144
6912d656 121452004-02-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12146
12147 * config/mips/t-iris6gld: Renamed to ...
12148 * config/mips/t-irix-gld: ... this.
12149 * config.gcc (mips-sgi-irix6*): Reflect this
12150 (mips-sgi-irix5*): Use it with GNU ld.
d3cdd238 12151
6912d656 12152 * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12153 to ...
12154 * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12155 * config/mips/t-irix-gld: Reflect this.
12156 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
d3cdd238 12157
6912d656 12158 * config/mips/iris5gld.h: New file.
12159 * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12160 Only use collect2 without gas.
d3cdd238 12161
6912d656 12162 * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12163 Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12164 (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12165 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
d3cdd238 12166
6912d656 12167 * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12168 * config/mips/iris5.h: ... here.
12169
12170 * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
d3cdd238 12171 IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6912d656 12172 (STARTFILE_SPEC, ENDFILE_SPEC): Define.
d3cdd238 12173
6912d656 12174 * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12175 using irix_startfile_spec, irix_endfile_spec.
12176
67283f09 121772004-02-16 Gunther Nikl <gni@gecko.de>
12178
12179 * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12180
2a8d3d1b 121812004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12182
12183 * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12184 insns by hand.
12185
df7eb7ce 121862004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12187
12188 * cfghooks.c (split_edge): Speed up updating of dominators.
12189
e100aadc 121902004-02-17 Mark Mitchell <mark@codesourcery.com>
12191
12192 PR c++/11326
12193 * c-common.c (flag_abi_version): Remove.
12194 * c-common.h (flag_abi_version): Likewise.
12195 * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12196 * c.opt (fabi-version): Remove.
12197 * calls.c (expand_call): Always pass a function type to
12198 struct_value_rtx. Use convert_memory_address.
12199 * common.opt (fabi-version): Add it.
12200 * flags.h (flag_abi_version): Likewise.
12201 (abi_version_at_least): New macro.
12202 * opts.c (common_handle_option): Add OPT_fabi_version.
12203 * toplev.c (flag_abi_version): Define it.
12204 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12205 New function.
12206 (ia64_output_mi_thunk): Use it.
12207 (ia64_struct_value_rtx): Likewise.
d3cdd238 12208
921a6571 122092004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12210
12211 * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12212 Don't generate insns by hand.
12213
e59fc133 122142004-02-17 Andrew Pinski <pinskia@physics.uc.edu>
12215
12216 PR c++/14178
12217 * doc/invoke.texi (fabi-version): The default is 2 now.
12218
f9cce2dc 122192004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12220
12221 * loop-iv.c: New file.
12222 * Makefile.in (loop-iv.o): New.
12223 * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12224 * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12225 num_loop_branches): New functions.
12226 * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12227 iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12228 find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12229 get_simple_loop_desc, free_simple_loop_desc): Declare.
12230 (simple_loop_desc): New inline function.
12231 (struct rtx_iv, struct niter_desc): New.
12232 * cfgloopmanip.c (loopify): Specify semantics more precisely.
12233 * expr.c (force_operand): Handle subregs of expressions created by
12234 loop unroller.
12235 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12236 parts of the initialization to toplev.c
12237 * loop-unroll.c (loop_exit_at_end_p): New.
12238 (unroll_and_peel_loops): Call iv_analysis_done.
12239 (decide_peel_once_rolling, decide_peel_completely,
12240 decide_unroll_stupid, decide_unroll_constant_iterations,
12241 decide_unroll_runtime_iterations, decide_peel_simple,
12242 peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12243 unroll_loop_runtime_iterations): Use new simple loop analysis.
12244 * loop-unswitch.c (compare_and_jump_seq): New.
12245 (may_unswitch_on_p): Renamed to ...
12246 (may_unswitch_on): Use new iv analysis.
12247 (reversed_condition): Export.
12248 (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12249 * predict.c (estimate_probability): Use new simple loop analysis.
12250 * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12251 canon_condition, simplify_using_condition): Declare.
12252 * stor-layout.c (get_mode_bounds): New.
12253 * toplev.c (rest_of_handle_loop2): Some parts of
12254 initialization/finalization moved here from loop-init.c.
12255
fbeb603c 122562004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12257
12258 * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12259 pointer.
12260 (CALL_USED_REGISTERS): Likewise.
12261 (REG_ALLOC_ORDER): Likewise.
12262 (REG_CLASS) <GENERAL_REGS>: Likewise.
12263
b147a3b4 122642004-02-16 Geoffrey Keating <geoffk@apple.com>
12265
12266 * doc/md.texi (Insn Canonicalizations): Document left-chaining
12267 in associative operators.
12268 * rtlanal.c (commutative_operand_precedence): Create some new
12269 variables. Prefer a commutative operand on the left, then
12270 binary expressions, then NEG and NOT.
12271
51bfa4d4 122722004-02-16 Matthias Klose <doko@debian.org>
12273
d3cdd238 12274 * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12275 in terms of SHLIB_SOVERSION.
12276 * config/m68k/t-slibgcc-elf-ver: New file.
12277 * config/pa/t-slibgcc-elf-ver: New file.
12278 * config.gcc (m68k-linux, parisc-linux): Use them when not
51bfa4d4 12279 sjlj exceptions are not configured.
12280
bf94c6d1 122812004-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
12282
12283 * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12284
14173a2c 122852004-02-16 Zack Weinberg <zack@codesourcery.com>
12286
12287 * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12288
15fa0747 122892004-02-16 Joseph S. Myers <jsm@polyomino.org.uk>
12290
12291 * doc/sourcebuild.texi: Mention backends.html.
12292
7c2df241 122932004-02-16 Kazu Hirata <kazu@cs.umass.edu>
12294
12295 * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12296 line-map.c, line-map.h, var-tracking.c: Fix comment
12297 formatting.
12298
9074c68b 122992004-02-16 Richard Henderson <rth@redhat.com>
12300
12301 * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12302
14173a2c 12303 * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11cb6006 12304
6b302ced 123052004-02-15 Kazu Hirata <kazu@cs.umass.edu>
12306
12307 * config/h8300/h8300.md: Remove unnecessary parallels from
12308 all define_insn and define_split patterns.
12309
d30c4bc5 123102004-02-15 Kazu Hirata <kazu@cs.umass.edu>
12311
12312 * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12313 "clobber").
12314
db5d7b20 123152004-02-15 Bernardo Innocenti <bernie@develer.com>
12316
12317 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12318 '%#'.
12319
bf67dc63 123202004-02-15 Kazu Hirata <kazu@cs.umass.edu>
12321
12322 * config/ia64/ia64.c, config/mips/mips.c,
12323 config/mmix/mmix-modes.def: Fix comment typos.
12324
5bf58eee 123252004-02-15 Roger Sayle <roger@eyesopen.com>
12326
12327 * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12328 (get_directive_line): Remove unused function prototype.
12329
05f60603 123302004-02-14 Josef Zlomek <zlomekj@suse.cz>
12331
12332 * tree-inline.c (copy_body_r): Do not replace ret_label.
12333
41aaead4 123342004-02-14 Jan Hubicka <jh@suse.cz>
12335
12336 * i386.c (x86_four_jump_limit): New variable.
12337 (k8_avoid_jump_misspredicts): Rename to ...
12338 (ix86_avoid_jump_misspredicts): .. this one.
12339 (ix86_pad_returns): Break out from ...
12340 (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12341 to.
12342 * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12343
85d25060 123442004-02-14 Josef Zlomek <zlomekj@suse.cz>
12345
12346 * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12347 PARALLEL is NULL.
12348
c513754a 123492004-02-14 Per Bothner <per@bothner.com>
12350
12351 * fix-header.c (line_table): Move local variable in main to global.
12352 * scan.h (line_table): Use it.
12353 * scan-decls.c (scan_decls): Need to call linemap_lookup on token's
12354 line (recently renamed to src_loc) before calling recognized_function.
12355
08c53a6e 123562004-02-14 Matt Kraai <kraai@alumni.cmu.edu>
12357
12358 * Makefile.in: Fix comment typos.
12359
773f141f 123602004-02-14 Olivier Hainque <hainque@act-europe.fr>
12361
12362 * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12363 for start_value when it is directly moved into reg, and factorize
12364 the retrieval of GET_MODE (reg).
12365
fd848c8e 123662004-02-14 Richard Sandiford <rsandifo@redhat.com>
12367
12368 * config/mips/mips-protos.h (mips_load_got_page): Delete.
12369 (mips_load_got_global): Delete.
12370 (mips_gotoff_page): Declare.
12371 * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12372 (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12373 UNSPEC_LOAD_GOT pattern rather than a MEM.
12374 (*load_got[sd]i): New patterns.
12375 * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12376 (mips_load_got_page, mips_load_got_global): Delete.
12377 (mips_gotoff_page): New function.
12378 (override_options): Don't initialize mips_got_alias_set.
12379
e8607b5d 123802004-02-14 Richard Sandiford <rsandifo@redhat.com>
12381
12382 * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12383 (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12384 (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12385 (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12386 (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12387 * config/mips/mips.c: Fix some overly-long lines.
12388 (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12389 (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12390
fb802910 123912004-02-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12392
12393 * configure.ac: Search for as, ld below libexec/gcc.
12394 * configure: Regenerate.
12395
08476a09 123962004-02-14 Ben Elliston <bje@wasabisystems.com>
12397
12398 * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12399 __builtin_arm_setwcx ().
12400 * config/arm/arm.c (arm_expand_builtin): Generate operands
12401 correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12402
124032004-02-14 Ben Elliston <bje@wasabisystems.com>
12404
12405 * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12406 and "wmuluh" to "wmulsm" and "wmulum", respectively.
12407 * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12408 ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12409 * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12410 (_mm_mulhi_pu16): Likewise.
12411
709e5e54 124122004-02-13 Zack Weinberg <zack@codesourcery.com>
12413
12414 * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12415 DECL_NAME != 0 before dereferencing.
12416
74d2529d 124172004-02-13 Ulrich Weigand <uweigand@de.ibm.com>
12418
12419 * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12420 (s390_output_addr_const_extra): Declare.
12421 (s390_output_pool_entry): Remove FILE * argument.
12422 * config/s390/s390.c (s390_output_symbolic_const): Remove.
12423 (s390_output_addr_const_extra): New function.
12424 (print_operand_address): Call output_addr_const instead of
12425 s390_output_symbolic_const.
12426 (print_operand): Likewise.
12427 (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12428 Remove FILE * argument.
12429 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12430 * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12431 call.
12432
69b23c5d 124332004-02-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12434
12435 * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12436 (struct edge, struct vertex, struct graph): New.
12437 (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12438 free_graph): New functions.
12439
e5a0403b 124402004-02-12 Chris Demetriou <cgd@broadcom.com>
12441
12442 * config/mips/mips.md (casesi_internal, casesi_internal_di):
12443 Use ".set macro" to avoid warnings about multi-instruction
12444 macros, since they're intentional.
12445
f0738865 124462004-02-12 Geoffrey Keating <geoffk@apple.com>
12447
b9ee5a08 12448 * config/darwin.h: Add include guards. Remove old, now incorrect,
12449 comment about STANDARD_EXEC_PREFIX.
12450
f0738865 12451 * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12452 $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule
12453 for installing .1 manpages. Add rules for installing cpp
12454 and gcov manpages under their installed names.
12455
9ace46a5 124562004-02-12 Alexandre Oliva <aoliva@redhat.com>
12457
12458 * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12459 host, but try LD_FOR_TARGET first.
12460 * configure: Rebuilt.
12461
fdcda623 124622004-02-12 Zack Weinberg <zack@codesourcery.com>
12463
12464 * dbxout.c: Move declaration of dbxout_type_decl outside
12465 #ifdef DBX_DEBUGGING_INFO.
12466 * c-parse.in: Don't give the asmdef production a type.
12467
73ae3ef7 124682004-02-12 Zack Weinberg <zack@codesourcery.com>
12469
12470 * debug.h (struct gcc_debug_hooks): Add type_decl field.
12471 (debug_nothing_tree_int): Prototype.
12472 (dwarf_debug_hooks): Delete, unused.
12473 * debug.c (do_nothing_debug_hooks): Update.
12474 (debug_nothing_tree_int): New function.
12475 * langhooks.h (struct lang_hooks_for_decls):
12476 Remove builtin_type_decls field.
12477 * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12478 (LANG_HOOKS_DECLS): Update.
12479 * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12480 Use debug_hooks->type_decl.
12481 * dbxout.c (preinit_symbols): New static.
12482 (dbx_debug_hooks, xcoff_debug_hooks): Update.
12483 (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12484 lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols
12485 for symbols to output.
12486 (dbxout_type_decl): New function.
12487 (dbxout_symbol): If called before dbxout_init has run, queue
12488 the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12489 to TYPE_DECLs before emitting them.
12490 * xcoffout.c (assign_type_number): Delete.
12491 (xcoff_type_numbers): New static table.
12492 (xcoff_assign_fundamental_type_number): New function.
12493 * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12494 DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs.
12495 * sdbout.c: Include varray.h.
12496 (deferred_global_decls): New static.
12497 (sdb_debug_hooks): Update.
12498 (sdbout_global_decl): If we can't emit something right now,
12499 remember it in deferred_global_decls.
12500 (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12501 (sdbout_init): Initialize deferred_global_decls.
12502 * Makefile.in: Update dependencies of sdbout.o.
12503 * dwarf2out.c (dwarf2out_type_decl): New function.
12504 (dwarf2_debug_hooks): Update.
12505 * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12506 * c-decl.c (getdecls): Just return 0.
12507 (check_for_loop_decls): Don't use getdecls.
12508 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12509 * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12510
d504c2c9 125112004-02-12 Ulrich Weigand <uweigand@de.ibm.com>
12512
12513 * config/s390/s390.c (s390_sched_reorder2): Remove.
12514 (TARGET_SCHED_REORDER2): Do not redefine.
12515
fae5a040 125162004-02-12 Zack Weinberg <zack@codesourcery.com>
12517
12518 * c-parse.in (maybe_type_qual): Delete.
12519 (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12520 (asm_argument): New grammar rules.
12521 (extdef_1): Use asmdef.
12522 (maybeasm): Move down with other asm rules; use simple_asm_expr.
12523 (xexpr): Move up with other expression rules.
12524 (stmt): Use asm_stmt.
12525
12526 * c-typeck.c (build_asm_expr): New function - body mostly
12527 pulled from build_asm_stmt.
12528 (build_asm_stmt): Just handle tacking on the volatile qualifier.
12529 * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12530
31b5e645 125312004-02-12 Richard Sandiford <rsandifo@redhat.com>
12532
12533 PR bootstrap/13617
12534 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12535 (mips_declare_object): Make variadic.
12536 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12537 mips_output_aligned_decl_common.
12538 * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12539 (mips_declare_object): Make variadic.
12540
fbc6244b 125412004-02-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12542
8182cbaf 12543 * function.c (update_epilogue_consts): Teach about binary operations.
12544
fbc6244b 12545 * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12546 previous MEM_VOLATILE in REF.
12547 * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12548 * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12549
984408e9 125502004-02-12 Gunther Nikl <gni@gecko.de>
12551
12552 * config.gcc: Restore support for m68k-openbsd.
12553
9fac4e1b 125542004-02-12 Jan Hubicka <jh@suse.cz>
12555
12556 * tree-optimize.c (tree_rest_of_compilation): Do not release
12557 DECL_ARGUMENTS.
12558
f1311182 125592004-02-11 Matt Kraai <kraai@alumni.cmu.edu>
12560
12561 * doc/install.texi: Fix the spelling of "explicitly".
12562
7bc95b56 125632004-02-11 Eric Christopher <echristo@redhat.com>
12564
12565 * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12566 duplicate argument structure of cpp_interpret_string.
12567 * cpphash.h: Move prototype...
12568 * cpplib.h: Here.
12569 * cpplib.c: Fix calls to match new function signature.
12570
638ed81f 125712004-02-11 Joseph S. Myers <jsm@polyomino.org.uk>
12572
12573 PR c/456
12574 * cppexp.c (num_binary_op): Don't allow comma operators in #if
12575 constant expressions at all outside C99 mode if pedantic.
12576
d3cd9bde 125772004-02-11 Uros Bizjak <uros@kss-loka.si>
12578
12579 * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12580 (log10_optab, log2_optab): Define corresponding macros.
12581 * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12582 * genopinit.c (optabs): Implement log10_optab and log2_optab
12583 using log10?f2 and log2?f2 patterns.
12584 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12585 using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12586 (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12587 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12588
12589 * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12590 log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12591 log2, log2f and log2l built-ins as inline x87 intrinsics.
12592
40d28aff 125932004-02-11 Richard Henderson <rth@redhat.com>
12594
51770c05 12595 PR target/1532
40d28aff 12596 * flow.c (insn_dead_p): A clobber of a dead hard register is a
12597 dead insn after reload.
12598
c12cb392 125992004-02-11 Ulrich Weigand <uweigand@de.ibm.com>
12600
12601 * tree.h (frame_base_decl): Add GTY marker.
12602 * var-tracking.c (frame_base_decl): Likewise.
12603
a0f7343c 126042004-02-11 Daniel Berlin <dberlin@dberlin.org>
12605
12606 * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12607 incorrect, hunk.
12608 (add_location_or_const_value_attribute): Use text_section_label,
12609 not TEXT_SECTION_NAME.
610625e3 12610
126112004-02-11 Per Bothner <per@bothner.com>
12612
12613 Represent column numbers using line-map's source_location.
12614 The "next available source_location" is now managed internally by
12615 line-maps.c rather than by clients.
12616 * line-map.h (struct line_map): New field column_bits.
12617 <from_line>: Rename field to start_location.
12618 (struct line_maps): New fields highest_location and max_column_hint.
12619 (linemap_check_files_exited): New declaration.
12620 (linemap_line_start): New declaration.
12621 (linemap_add): Remove from_line parameter; use highest_location field.
12622 (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits.
12623 (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros.
12624 (CURRENT_LINE_MAP): Remove macro.
12625 (linemap_position_for_column): New inline function.
12626 * line-map.c (linemap_init): Clear new fields.
12627 (linemap_check_files_exited): New function, extracted from ...
12628 (linemap_free): Use linemap_check_files_exited.
12629 (linemap_add): Remove from_line parameter. Various updates.
12630 (linemap_line_start): New function.
12631 (linemap_lookeup): Update for new field names.
12632 * cpphash.h (struct cpp_reader) <map>: Field removed. Because
12633 linemap_position_for_column may unpredictably change the current map,
12634 it is cleaner and simpler for us to not cache it in cpp_reader.
12635 (struct cpp_buffer): New sysp field.
12636 Changed warned_cplusplus_comments and from_stage3 to bitfields.
12637 * cppinit.c (cpp_read_min_file): pfile->map no longer exists.
12638 * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get
12639 current map using linemap_lookup.
12640 (do_linemarker): Also set buffer's sysp field.
12641 (destringize_and_run): No longer need to decrement current line.
12642 * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer.
12643 (search_path_head, open_file_failed): Use buffer's sysp.
12644 (cpp_make_system_header): Get current map using linemap_lookup.
12645 Also set buffer's sysp flag.
12646 * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup.
12647 * cpphash.h (CPP_INCREMENT_LINE): New macro.
12648 (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ...
12649 (struct cpp_reader): ... and adding saved_line_base field.
12650 * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12651 Update accordingly. Don't adjust line.
12652 (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE.
12653 * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ...
12654 (cpp_in_system_header): ... new inline function, using buffer's sysp.
12655 * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header.
12656 * cpplex.c (_cpp_lex_direct): Likewise.
12657 * cppmacro.c (_cpp_builtin_macro_text): Likewise.
12658 * cppmacro.c (_cpp_create_definition): Use buffer's sysp field.
12659 * cpplib.h (struct cpp_token): Rename line field to src_loc.
12660 Remove col field as it is now subsumed by src_loc.
12661 * cpperror.c: Update various field, parameter, and macro names.
12662 (print_location): If col==0, try SOURCE_COLUMN of line.
12663 (cpp_error): Use cur_token's src_loc field, rather than line+col.
12664 * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col.
12665 * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12666 _cpp_skip_block_comment): Use CPP_INCREMENT_LINE.
12667 (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc.
12668 (_cpp_get_fresh_line): Don't need to adjust line for missing newline.
12669 (_cpp_lex_direct): Use linemap_position_for_column.
12670 * c-ppoutput.c (maybe_print_line, print_line): Don't take map
12671 parameter. Instead get it from the line_table global. Adjust callers.
12672 (print): Remove map field. Replace line field to src_line.
12673 (init_pp_output, account_for_newlines, maybe_print_line): Adjust.
12674 (cb_line_change): Use SOURCE_COLUMN. Minor optimizations.
12675 (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map.
12676 Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12677 * cpptrad.c (copy_comment): Rename variable.
12678 * c-lex.c (map): Remove static variable, for same reason we removed
12679 cpp_reader's map field.
12680 (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need
12681 to call linemap_lookup.
12682 (cb_line_change): Token's line field replaced by src_loc.
12683 (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros.
12684 Don't save new_map.
12685
12686 * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to
12687 source_location.
12688
3aa2be02 126892004-02-11 Hartmut Penner <hpenner@de.ibm.com>
7bc95b56 12690
3aa2be02 12691 * config/rs6000/altivec.md (*movv4si_internal): At least one
12692 operand must be register_operand.
12693 (*movv8hi_internal1): Likewise.
12694 (*movv16qi_internal1): Likewise.
12695 (*movv4sf_internal1): Likewise.
12696
d9509aa7 126972004-02-10 Aldy Hernandez <aldyh@redhat.com>
18afd0f3 12698
12699 * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12700 operand.
12701 (movv4hi_internal): Same.
12702 (movv2sf_internal): Same.
12703 (movv1di_internal): Same.
d9509aa7 12704
93a1903e 127052004-02-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
12706
12707 * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
d7e5d731 12708 TARGET_OLDABI consistently.
93a1903e 12709 * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12710 mips_va_arg,override_options,compute_frame_size,
12711 mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12712 ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
d7e5d731 12713 and TARGET_OLDABI consistently.
93a1903e 12714 * config/mips/mips.md (exception_receiver): Likewise.
12715 * config/mips/linux64.h: Likewise.
12716
8fadcaf1 127172004-02-11 Hartmut Penner <hpenner@de.ibm.com>
12718
12719 * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12720 Set AltiVec ABI and vrsave as default for ppc64 linux.
12721 (init_cumulative_args): Post error, if try to return
12722 value in AltiVec register without enable AltiVec.
7bc95b56 12723 (function_arg_advance): Ditto for passing arguments.
8fadcaf1 12724
a030d4a8 127252004-02-11 Richard Sandiford <rsandifo@redhat.com>
12726
12727 * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12728 a label before updating its usage count.
12729
18c00244 127302004-02-10 Matt Kraai <kraai@alumni.cmu.edu>
12731
fae5a040 12732 * doc/install.texi: Remove extra cd.
18c00244 12733
409a160c 127342004-02-10 Ziemowit Laski <zlaski@apple.com>
12735
12736 * c-common.c (vector_size_helper): Remove; call
12737 reconstruct_complex_type() instead.
12738 * tree.c (reconstruct_complex_type): New function
12739 (formerly vector_size_helper() in c-common.c).
12740 (make_vector): Make externally visible.
12741 * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12742
f41916c8 127432004-02-10 Kazu Hirata <kazu@cs.umass.edu>
12744
12745 * config/h8300/h8300-protos.h: Add a prototype for
12746 h8300_regs_ok_for_stm.
12747 * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12748 * config/h8300/h8300.md (stm_h8300s_2_advanced,
12749 stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12750 stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12751 stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12752 ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12753 ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12754 ldm_h8300s_4_normal, ldm_h8300s_4): Use
12755 h8300_regs_ok_for_stm().
12756
cd2749e3 127572004-02-10 Danny Smith <dannysmith@users.sourceforge.net>
12758
12759 PR c/14088
e40000f4 12760 * real.c (real_from_string): Look for 'X' as well as 'x' in
cd2749e3 12761 hexfloat strings.
12762
533741d3 127632004-02-10 Kazu Hirata <kazu@cs.umass.edu>
12764
12765 * config/h8300/h8300.md: Remove an incorrect comment about
12766 peephole2. Add comments.
12767
ebfc27f5 127682004-02-10 Josef Zlomek <zlomekj@suse.cz>
12769
12770 PR/14058
12771 * emit-rtl.c (set_decl_incoming_rtl): New.
12772 * tree.h (set_decl_incoming_rtl): New.
12773 * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12774 DECL_INCOMING_RTL.
12775 * ada/misc.c (adjust_decl_rtl): Likewise.
12776
c796cff1 127772004-02-10 Per Bothner <per@bothner.com>
12778
12779 * c-opts.c (c_common_post_options): Don't emit working directory
12780 in cpp output if -P was specified.
12781
3bcc1a80 127822004-02-10 Paolo Bonzini <bonzini@gnu.org>
12783
12784 PR c/14092
12785 * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12786 negate_expr back to the original type.
12787
39d21acd 127882004-02-10 Alan Modra <amodra@bigpond.net.au>
12789
12790 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12791 bump retaddr here.
12792
fd00232c 127932004-02-10 Paolo Bonzini <bonzini@gnu.org>
12794
12795 * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12796 gen_lowpart_SUBREG): Move under the file in which they
12797 are actually declared.
12798
b4f55691 127992004-02-10 Arnaud Charlet <charlet@act-europe.fr>
12800
12801 * doc/sourcebuild.texi: Add libada documentation.
12802
12803 * doc/install.texi: Update documentation on Ada build, now
12804 that the GNAT lib and tools are built automatically.
12805
2b262488 128062004-02-10 Richard Sandiford <rsandifo@redhat.com>
12807
12808 * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12809 && TARGET_IRIX.
12810
e9da9b2c 128112004-02-09 Ziemowit Laski <zlaski@apple.com>
12812
12813 * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12814 boundaries outside build_component_ref() call (a macro in ObjC++).
12815
e060c9df 128162004-02-09 Bob Wilson <bob.wilson@acm.org>
12817
12818 * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12819 (init_cumulative_args): Likewise.
12820 (a7_overlap_mentioned_p): Delete prototype.
12821 * config/xtensa/xtensa.c (struct machine_function): Replace
12822 incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12823 Add set_frame_ptr_insn field.
12824 (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12825 (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12826 if the operand is an argument in a7. If so, copy a7 to a new pseudo
12827 at the function entry and replace the operand with the pseudo.
12828 (init_cumulative_args): Remove unused arguments. Add new "incoming"
12829 argument and record this flag in CUMULATIVE_ARGS.
12830 (function_arg): Remove result_mode and special-case code to handle
12831 arguments in a7. Instead, set need_a7_copy flag when there is an
12832 incoming argument in a7.
12833 (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12834 and use the value recorded in cfun->machine->set_frame_ptr_insn.
12835 (xtensa_builtin_saveregs): Check for negative gp_left value. Set
12836 need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
12837 special-case code.
12838 (a7_overlap_mentioned_p): Delete.
12839 * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12840 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12841 arguments to init_cumulative_args and pass "incoming" flag instead.
12842 (BLOCK_REG_PADDING): Delete.
12843 * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12844 checks for reload_in_progress and reload_completed. Update calls to
12845 xtensa_copy_incoming_a7.
12846 (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
12847 to call xtensa_copy_incoming_a7.
12848
e1803242 128492004-02-09 DJ Delorie <dj@redhat.com>
12850
12851 * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12852 longer modify standard_exec_prefix, standard_bindir_prefix, or
12853 standard_startfile_prefix.
12854
26093bf4 128552004-02-09 James E Wilson <wilson@specifixinc.com>
12856
cba9294e 12857 PR c++/11295
12858 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12859 to expand_expr_real call, and pass in alt_rtl as last argument.
12860
26093bf4 12861 PR libstdc++/5625
12862 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12863 * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12864 * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12865 * except.c (expand_builtin_extend_pointer): New.
12866 * except.h (expand_builtin_extend_pointer): Declare.
12867
671e5971 128682004-02-09 David Edelsohn <edelsohn@gnu.org>
12869
12870 * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12871 unaligned loads and stores.
12872
3755cff1 128732004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12874
12875 * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12876 * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12877
12878 * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12879 * config/mips/iris5.h: ... here.
12880 * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12881
12882 * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12883 * config/mips/iris5.h: ... here.
12884
f7a804c7 128852004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12886
12887 * configure.ac: Remove default executable files before AC_PROG_CC.
12888 * configure: Regenerate.
12889
589b6991 128902004-02-09 Kazu Hirata <kazu@cs.umass.edu>
12891
12892 PR target/13721
12893 * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12894 print a operand other than a register.
12895
beecf0c3 128962004-02-09 Roger Sayle <roger@eyesopen.com>
12897
12898 * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12899 tree code rather than call fold_convert, which doesn't specify a
12900 default floating point to integer conversion.
12901
3acc77d9 129022004-02-08 Bernardo Innocenti <bernie@develer.com>
12903
12904 * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12905 code to support SGS assembler. Reformat adjacent code where possible.
beecf0c3 12906 * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12907 definition.
12908 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12909 for '%#'.
3acc77d9 12910 * config/m68k/linux.h, config/m68k/m68k.c,
beecf0c3 12911 * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12912 macros and asm_printf() format strings.
3acc77d9 12913 * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12914 * config/m68k/linux.h: Update copyright.
12915 * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12916
16b4cb0d 129172004-02-08 Andreas Schwab <schwab@suse.de>
fae5a040 12918 Bernardo Innocenti <bernie@develer.com>
16b4cb0d 12919
12920 * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12921 REGISTER_PREFIX.
12922 * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12923 frame pointer register, overridable by OS targets.
12924 * (M68K_REGNAME): Macro to obtain register name for asm output,
12925 eventually replacing %a6 with M68K_FP_REG_NAME.
12926 * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12927 * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12928 * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12929 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12930 * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12931
10ec06d3 129322004-02-08 Kazu Hirata <kazu@cs.umass.edu>
12933
12934 * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12935 hook_rtx_tree_int_null.
12936 * targhooks.c (default_struct_value_rtx): Remove.
12937 * targhooks.h: Remove the prototype for
12938 default_struct_value_rtx.
12939 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12940 config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12941 config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12942 config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12943 config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12944 config/rs6000/rs6000.c, config/s390/s390.c,
12945 config/stormy16/stormy16.c, config/v850/v850.c,
12946 config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12947 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12948
15056364 129492004-02-08 Joseph S. Myers <jsm@polyomino.org.uk>
12950
12951 * README.Portability: Change "ISO C89" to "ISO C90".
12952 * c-parse.in (primary, initelt): Likewise.
12953
0d8bfd85 129542004-02-08 Richard Sandiford <rsandifo@redhat.com>
12955
12956 * real.c (encode_ibm_extended): Normalize the input value before
12957 converting it to a double. Handle the case where a normal value
12958 rounds to infinity.
12959
069eea26 129602004-02-08 Kazu Hirata <kazu@cs.umass.edu>
12961
2adf6806 12962 * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12963 warning.
069eea26 12964 * cse.c (preferrable): Change to preferable. Update all of its
12965 callers.
12966 * genautomata.c (ainsn): Change
12967 first_ainsn_with_given_equialence_num to
12968 first_ainsn_with_given_equivalence_num. Update all of its
12969 references.
12970
091b0542 129712004-02-08 Jan Hubicka <jh@suse.cz>
12972
12973 * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12974
ecfd3802 129752004-02-07 David Edelsohn <edelsohn@gnu.org>
12976
12977 * function.c (assign_parms): Fix formatting.
12978
174d9cc3 129792004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12980
12981 * default.h (PROMOTE_PROTOTYPES): Remove.
12982 * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12983 STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12984 EXPAND_BUILTIN_SAVEREGS): Poison.
12985 * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12986 hook_bool_tree_false.
12987 (TARGET_PROMOTE_PROTOTYPES): Likewise.
12988 * target.h: Replace SETUP_INCOMING_VARARGS with
12989 targetm.calls.setup_incoming_varargs().
12990 * targhooks.c (default_promote_function_return): Remove.
12991 (default_promote_prototypes): Likewise.
12992 (default_struct_value_rtx): Always abort().
12993 (default_expand_builtin_saveregs): Always print an error
12994 message.
12995 (default_setup_incoming_varargs): Do nothing.
12996 (default_pretend_outgoing_varargs_named): Don't depend on
12997 SETUP_INCOMING_VARARGS.
12998 * targhooks.h: Remove the prototype for
12999 default_promote_function_return and
13000 default_promote_prototypes.
13001
3136e939 130022004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13003
13004 * system.h (SHARED_SECTION_ASM_OP): Poison.
13005 * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13006 * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13007
a3ad3e27 130082004-02-07 Zack Weinberg <zack@codesourcery.com>
13009
13010 Bug 13856
13011 * c-decl.c (diagnose_mismatched_decls): Only give special
13012 treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13013 is also true.
13014 (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13015 DECL_FUNCTION_CODE when defining a built-in function.
13016 Don't update DECL_ESTIMATED_INSNS.
13017 * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13018 FUNCTION_DECLs.
13019 * tree.h: Delete DECL_ESTIMATED_INSNS.
13020 * tree-inline.c (struct inline_data): Delete inlined_insns field.
13021 (expand_call_inline, optimize_inline_calls): Don't update
13022 DECL_ESTIMATED_INSNS nor inlined_insns.
13023 * cgraphunit.c (cgraph_analyze_function): Don't update
13024 DECL_ESTIMATED_INSNS.
13025
130262004-02-07 Zack Weinberg <zack@codesourcery.com>
13027
13028 * c-common.c (shadow_warning): Delete.
13029 * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13030 * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13031 * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13032 * c-parse.in (free_parser_stacks): Delete.
13033
ca08f0d3 130342004-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
13035
13036 * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13037 config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13038 Use the top level mkinstalldirs, not the one in the gcc subdir.
13039 * mkinstalldirs: Remove (from the gcc subdir).
13040
b30e3dbc 130412004-02-07 Roger Sayle <roger@eyesopen.com>
13042
13043 PR middle-end/13696
13044 * fold-const.c (fold_convert): New function to provide type
13045 conversion to the middle-end without using convert.
13046 (negate_expr, associate_trees, size_diffop, omit_one_operand,
13047 operand_equal_for_comparison_p, pedantic_omit_one_operand,
13048 invert_truthvalue, optimize_bit_field_compare, range_binop,
13049 decode_field_reference, make_range, build_range_check, unextend,
13050 fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13051 fold_binary_op_with_conditional_arg, fold_inf_compare,
13052 fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13053 convert with calls to fold_convert.
13054
f82dbd66 130552004-02-07 Jan Hubicka <jh@suse.cz>
13056
13057 * genrecog.c (find_operand): add extra argument stop.
13058 (validate_pattern): Verify that mach_dup is duplicating operand
13059 defined lexically earlier.
13060
d8372058 130612004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13062
13063 * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13064 * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13065 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13066 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13067 config/ia64/ia64.h, config/ip2k/ip2k.h,
13068 config/iq2000/iq2000.h, config/mips/iris5.h,
13069 config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13070 config/rs6000/aix51.h, config/rs6000/aix52.h,
13071 config/rs6000/darwin.h, config/rs6000/rs6000.h,
13072 config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13073 config/sparc/linux.h, config/sparc/linux64.h,
13074 config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13075 config/xtensa/xtensa.h: Remove the definitions of
13076 MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13077 MAX_WCHAR_TYPE_SIZE.
13078 * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13079 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13080
84267788 130812004-02-07 Stephane Carrez <stcarrez@nerim.fr>
13082
13083 PR bootstrap/13990
13084 * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13085 gen_rtx_NE.
13086
77918a25 130872004-02-07 Josef Zlomek <zlomekj@suse.cz>
13088
13089 * var-tracking.c (vt_add_function_parameters): Surround checkings by
13090 #ifdef ENABLE_CHECKING and #endif.
13091
2169cab6 130922004-02-07 Roger Sayle <roger@eyesopen.com>
13093
13094 * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13095 either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13096 (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13097 integer types and floating point with unsafe_math_optimizations.
13098 Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13099 Optimize A - B as A + (-B), if B is easily negated.
13100
093936a9 131012004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13102
13103 * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13104 config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13105 config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13106 config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13107 Update copyright.
13108
1fba1f6c 131092004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13110
13111 * c-ppoutput.c, var-tracking.c: Fix comment typos.
13112
b49c3e99 131132004-02-06 James E Wilson <wilson@specifixinc.com>
13114
13115 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13116 glibc 2.3 or better.
13117
a16f837d 131182004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13119
13120 * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13121 to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13122
325ade6e 131232004-02-07 Alan Modra <amodra@bigpond.net.au>
13124
13125 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13126 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13127 (SHLIB_MKMAP_OPTS): Delete.
13128 (TARGET_LIBGCC2_CFLAGS): Add -specs.
13129 (bispecs): Add rule.
13130 * config/rs6000/libgcc-ppc64.ver: New file.
13131 * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13132 (__floatdidf, __floatdisf): Optimize multiply.
13133 (__fixunstfdi): New function.
13134 * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13135 real and imag parts larger than one register.
13136 (function_arg): Correct type of reg used when fp arg split partially
13137 to stack.
13138 * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13139 and __MACH__ or __powerpc64__.
13140
24fd4260 131412004-02-06 Roger Sayle <roger@eyesopen.com>
13142 Ulrich Weigand <uweigand@de.ibm.com>
13143
13144 * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13145 of gen_highpart or gen_lowpart when the floating point format is
13146 wider than the result mode.
13147
2335d803 131482004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
13149
a3ad3e27 13150 * dwarf2out.c (loclabel_num): Move into #ifdef
2335d803 13151 DWARF2_DEBUGGING_INFO.
13152
7e200d93 131532004-02-06 Ziemowit Laski <zlaski@apple.com>
13154
13155 * objc/objc-act.c (build_super_template) the 'class' field of
13156 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13157 (get_super_receiver): Likewise.
13158
aa150c9f 131592004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13160
13161 * reload1.c (check_eliminable_occurrences): Optimize the reset
13162 of can_eliminate.
13163 (eliminate_regs_in_insn): Likewise.
13164
b2025850 131652004-02-06 Daniel Berlin <dberlin@dberlin.org>
a3ad3e27 13166 Josef Zlomek <zlomekj@suse.cz>
b2025850 13167
13168 * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13169 at the beginning of function, call dwarf2out_var_location for
13170 NOTE_INSN_VAR_LOCATION note.
13171 (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13172 decl_loc_table): New.
13173 (lookup_decl_loc): New function.
13174 (add_var_loc_to_decl): New function.
13175 (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13176 only if can_use_fbreg.
13177 (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13178 functions.
13179 (loc_descriptor): Likewise. Process VAR_LOCATION.
13180 (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13181 (loc_descriptor_from_tree): Call mem_loc_descriptor with
13182 can_use_fbreg == true.
13183 (add_location_or_const_value_attribute): Added parameter enum
13184 dwarf_attribute attr, generate attribute ATTR. Create the location list.
13185 (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13186 (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13187 with attr == DW_AT_location.
13188 (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13189 if frame_base_decl is defined and has a location list.
13190 (gen_variable_die): Call add_location_or_const_value_attribute with
13191 attr == DW_AT_location.
13192 (dwarf2out_var_location): New function.
13193 (dwarf2out_begin_function): New function.
13194 (dwarf2out_init): Create decl_loc_table.
13195
3cec6341 131962004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
13197
13198 * loop.c (force_movables): Transitively increase the priorities of
13199 all insns forces by an insn, not just the first one.
13200
5923a5e7 132012004-02-06 Josef Zlomek <zlomekj@suse.cz>
a3ad3e27 13202 Daniel Berlin <dberlin@dberlin.org>
5923a5e7 13203
13204 Josef Zlomek <zlomekj@suse.cz>
13205 * Makefile.in (var-tracking.o): New.
13206 * common.opt (fvar-tracking): New.
13207 * flags.h (flag_var_tracking): New.
13208 * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13209 * opts.c (common_handle_option): Add OPT_fvar_tracking.
13210 * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
a3ad3e27 13211 * rtl.c (note_insn_name): Likewise.
13212 * rtl.def (VAR_LOCATION): New.
13213 * rtl.h (NOTE_VAR_LOCATION): New.
13214 (NOTE_VAR_LOCATION_DECL): New.
13215 (NOTE_VAR_LOCATION_LOC): New.
13216 (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13217 (variable_tracking_main): New exported function.
13218 * timevar.def (TV_VAR_TRACKING): New.
13219 * toplev.c (enum dump_file_index): Added DFI_vartrack.
13220 (dump_file): "vartrack" was added (-dV).
13221 (flag_var_tracking): New.
13222 (f_options): "var-tracking" was added.
5923a5e7 13223 (rest_of_handle_variable_tracking): New function.
a3ad3e27 13224 (rest_of_compilation): Run variable tracking.
5923a5e7 13225 (process_options): If user has not specified flag_var_tracking set it
13226 according to optimize, debug_info_level and debug_hooks.
13227 * tree.h (frame_base_decl): New.
a3ad3e27 13228 * var-tracking.c: New file.
5923a5e7 13229 * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13230 (ia64_override_options): Set flags to run variable tracking in machine
13231 dependent reorg instead of toplev.c.
13232 (ia64_reorg): Run variable tracking if wanted.
a3ad3e27 13233 * doc/invoke.texi: Mention variable tracking in -dV,
5923a5e7 13234 add and -fvar-tracking.
a3ad3e27 13235 * doc/passes.texi: Added variable tracking pass.
5923a5e7 13236
13237 Daniel Berlin <dberlin@dberlin.org>
13238 * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13239 * dbxout.c (dbx_debug_hooks): Likewise.
13240 (xcoff_debug): Likewise.
13241 * debug.c (do_nothing_debug_hooks): Likewise.
13242 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13243 * dwarfout.c (dwarf_debug_hooks): Likewise.
13244 * sdbout.c (sdb_debug_hooks): Likewise.
13245 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
a3ad3e27 13246 * final.c (final_scan_insn): Call var_location debug hook for each
13247 NOTE_INSN_VAR_LOCATION.
5923a5e7 13248
8fbae57a 132492004-02-06 Jan Hubicka <jh@suse.cz>
13250
13251 * flow.c (update_life_info): Allocate reg_deaths when called from
13252 scheudler.
13253 (attempt_auto_inc): Update life ranges accordingly.
13254
dbb28acc 132552004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
13256
13257 PR debug/11816
13258 * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13259
867af572 132602004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
13261
13262 * cfganal.c (flow_call_edges_add): Never split a libcall block.
13263
71c23453 132642004-02-06 Daniel Berlin <dberlin@dberlin.org>
13265
13266 * dwarf2out.c (output_loc_list): Don't use deltas if we have
13267 a separate line info table in use.
13268 Use the correct size for terminators.
13269 (output_die): Use offset, not delta.
13270
c64c05f2 132712004-02-06 H.J. Lu <hongjiu.lu@intel.com>
13272
13273 * doc/invoke.texi: Remove the pni option from -mfpmath=.
13274
f2a3e89e 132752004-02-06 Jan Hubicka <jh@suse.cz>
13276
13277 * recog.c (split_all_insns): Do not update reg info.
13278 * regrename.c (regrename_optimize): Likewise.
13279 * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13280 * flow.c (struct propagate_block_info): Add insn_num field.
13281 (reg_deaths): New array.
13282 (life_analysis): Free reg_deaths info.
13283 (allocate_reg_life_data): Allocate reg_deaths array.
13284 (propagate_one_insn): Use new array.
13285 (init_propagate_block): Initialize it.
13286 (free_propagate_block_info): Finish compuation of
13287 REG_LIVE_LENGTH
13288 (attempt_auto_inc): Sanity check that REG_INFO is not
13289 computed at same time.
13290 (mark_used_regs): Update new array.
13291
13292 * reg-stack.c (subst_stack_regs): Unshare clobbers before
13293 substitution.
13294
515fbee0 132952004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13296
13297 * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13298 *extendqisi2_short_displ.
13299
30c70355 133002004-02-06 Alan Modra <amodra@bigpond.net.au>
13301
13302 * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13303 * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13304 (emit_library_call_value_1): Likewise pass nargs.
13305 * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13306 * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13307 * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13308 parameter instead of scanning TYPE_ARGS_TYPES to count args.
13309 * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13310 prototype.
13311 * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13312 (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13313 (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13314 * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13315 INIT_CUMULATIVE_ARGS.
13316 * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13317 * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13318 config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13319 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13320 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13321 config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13322 config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13323 config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13324 config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
34f27375 13325 config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
30c70355 13326 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13327 config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13328
949168fb 133292004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13330
13331 * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13332 possible.
13333
9feec5c7 133342004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13335
13336 * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13337 note containing (plus (reg) (const_int)), where reg is an
13338 eliminable reg, then perform the register elimination without
13339 depending on eliminate_regs().
13340
39cc9599 133412004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13342
13343 * config/arc/arc.c (arc_return_in_memory): Check the return
13344 value of int_size_in_bytes against -1. Don't check
13345 TREE_ADDRESSABLE.
13346 * config/avr/avr.c (avr_return_in_memory): Check the return
13347 value of int_size_in_bytes against -1.
13348 * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13349 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13350 Likewise.
13351 * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13352 * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13353 Likewise.
13354
c1ab9f72 133552004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13356
13357 * config/frv/frv-protos.h: Remove the prototype for
13358 frv_setup_incoming_varargs.
13359 * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13360 (frv_setup_incoming_varargs): Make it static.
13361 * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13362
a4aab424 133632004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13364
13365 * config/fr30/fr30-protos.h: Remove the prototype for
13366 fr30_setup_incoming_varargs.
13367 Update the prototypes for fr30_num_arg_regs and
13368 fr30_function_arg_partial_nregs.
13369 * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13370 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13371 (fr30_setup_incoming_varargs): Make it static.
13372 Add argument second_time. Don't do anything when second_time
13373 is nonzero.
13374 (fr30_num_arg_regs): Change the type of the first argument to
13375 enum machine_mode.
13376 (fr30_function_arg_partial_nregs): Change the type of the
13377 second argument to enum machine_mode.
13378 * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13379 (SETUP_INCOMING_VARARGS): Remove.
13380
d046d751 133812004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13382
13383 * config/arc/arc-protos.h: Remove the prototype for
13384 arc_setup_incoming_varargs.
13385 * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13386 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13387 (arc_setup_incoming_varargs): Make it static.
13388 (arc_external_libcall): Likewise.
13389 * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13390 Remove the commented-out definition of
13391 ASM_OUTPUT_EXTERNAL_LIBCALL.
13392
a32ee8f1 133932004-02-05 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
13394
13395 * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13396 to $$(slibdir) in the installation commands.
13397
aee171c8 133982004-02-05 David Edelsohn <edelsohn@gnu.org>
13399
13400 * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13401 with inner_regno, not regno.
13402 * rtlanal.c (refers_to_regno_p): Same.
13403
10af081f 134042004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13405
13406 * config.gcc: Remove i370 support.
13407
b510ee9c 134082004-02-05 Kelley Cook <kcook@gcc.gnu.org>
13409
13410 * doc/install.texi: Update automake and autoconf version
13411 requirements. Note where to find gcj automake version.
13412
134132004-02-05 Kelley Cook <kcook@gcc.gnu.org>
13414
13415 * Makefile.in (generate-manpages): Move dependencies to ...
13416 (man): here.
13417 * doc/makefile.texi: Document new targets.
13418 * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13419
6bc11008 134202004-02-05 Kelley Cook <kcook@gcc.gnu.org>
13421
13422 PR/13485
13423 Makefile.in (srcextra): Add a level of indirection to ...
13424 (gcc.srcextra): ... here.
13425 (po-generated): Delete.
13426 (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on
13427 options.c.
13428 (start.encap): Remove superfluous lang.srcextra dependency.
13429 objc/Make-lang.in (po-generated): Delete.
13430
312d343a 134312004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13432
13433 * config/ia64/ia64.c (REG_GP): Remove.
13434
d74dd50d 134352004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13436
13437 * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13438
eb550b19 134392004-02-05 Devang Patel <dpatel@apple.com>
13440
13441 * dwarf2out.c (force_type_die): Look up input type itself
13442 instead of root_type() of type.
a3ad3e27 13443
56b9b457 134442004-02-05 Andreas Krebbel <krebbel1@de.ibm.com>
13445
13446 * config/s390/s390.md ("*tmqidi_ext"): New insn.
13447 ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13448 pre-reload splitters are transformed to post-reload
13449 define_insn_and_split patterns.
13450 ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13451
82ac3699 134522004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13453
13454 * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13455 TARGET_PROMOTE_PROTOTYPES.
13456
cbe4c3a5 134572004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13458
13459 PR middle-end/13750
13460 Revert:
13461 2004-01-15 Geoffrey Keating <geoffk@apple.com>
13462 PR pch/13361
13463 * c-typeck.c (constructor_asmspec): Delete.
13464 (struct initializer_stack): Delete field 'asmspec'.
13465 (start_init): Delete saving of asmspec.
13466 (finish_init): Don't update constructor_asmspec.
13467 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13468 * stmt.c (expand_asm): Duplicate strings from tree.
13469 (expand_asm_operands): Likewise.
13470 * tree.c (tree_size): Update computation of size of STRING_CST.
13471 (make_node): Don't make STRING_CST nodes.
13472 (build_string): Allocate string with tree node.
13473 * tree.def (STRING_CST): Update comment.
13474 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13475 (tree_string): Place contents of string in tree node.
13476 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13477 from tree.
13478
32a99bf2 134792004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
13480
13481 * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13482 msgid.
13483
f3367180 134842004-02-05 Dorit Naishlos <dorit@il.ibm.com>
13485
13486 * config/rs6000/altivec.md (*movv4si_internal): At least one
13487 operand must be altivec_register_operand.
13488 (*movv8hi_internal1): Likewise.
13489 (*movv16qi_internal1): Likewise.
13490 (*movv4sf_internal1): Likewise.
13491
3ba829c3 134922004-02-05 David Edelsohn <edelsohn@gnu.org>
13493
13494 * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13495 * configure: Regenerate.
13496
1c32278d 134972004-02-05 Jonathan Wakely <redi@gcc.gnu.org>
13498
13499 * doc/install.texi: Update description of --gxx-include-dir to
13500 give correct default value.
13501
b0c1e147 135022004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13503
13504 * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13505 8 with MAC_REG.
13506
75b1a41a 135072004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13508
13509 * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13510 gen_rtx_PARALLEL.
13511
74efa612 135122004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13513
13514 * emit-rtl.c: Update the comment about the file.
13515
24c7cd5e 135162004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
13517
13518 * sourcebuild.texi (Test Idioms): Update testcase naming
13519 conventions.
13520
d732fcf0 135212004-02-04 Per Bothner <per@bothner.com>
13522
13523 Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13524 * c-ppoutput.c (pp_dir_change): New function.
13525 * c-common.h (pp_dir_change): New declaration.
13526 * cpplib.h (struct cpp_options): Remove working_directory field.
13527 * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to
13528 (cpp_read_main_file): as before 10-01. Call _cpp_stack_file.
13529 Don't handle -fworking_directory here, but in c_common_post_options.
13530 (read_original_directory): Don't back up when done.
13531 Don't clear no-longer used working_directory flag.
13532 * cpplib.h: Update declarations to match.
13533 * c-lex.c (cb_dir_change): Move to c-opts.c.
13534 (init_c_lex): Don't set dir_change callback here, since we want
13535 to set it even if flag_preprocess_only.
13536 * c-opts.c (cb_dir_change): Function moved from c-lex.c.
13537 (c_common_post_options): Set dir_change callback.
13538 Call pp_dir_change if approporiate.
13539 (finish_options): Don't call cpp_find_main_file here. Hence remove
13540 unneeded parameter and result. Do LC_RENAME for <built-in>.
13541 (c_common_post_options): Call cpp_read_main_file here instead.
13542 (c_common_init): Update accordingly.
13543 (push_command_line_include): Don't cpp_push_main_file.
13544 Do LC_RENAME rather than LC_LEASE to get back to main file.
13545 Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13546 (c_common_parse_file): Call cpp_read_main_file for subsequent main
13547 files, but call finish_options for all files.
13548 * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory.
13549 * fix-header.c (read_scan_file): Call cpp_read_main_file instead of
13550 cpp_find_main_file + cpp_push_main_file.
13551 * c-lex.c (fe_file_change): Don't set main_input_filename here.
13552 * opts.c (handle_options): Only set main_input_filename first time.
13553
a2383135 135542004-02-05 Ian Lance Taylor <ian@wasabisystems.com>
13555
13556 * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13557
900c3c49 135582004-02-04 Geoffrey Keating <geoffk@apple.com>
13559
13560 * reload.c (find_equiv_reg): When checking for register overlap,
13561 don't index hard_regno_nregs with a pseudo-reg.
13562
fc55a1df 135632004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
13564
13565 * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13566
08e46c24 135672004-02-04 David Edelsohn <edelsohn@gnu.org>
13568
13569 * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13570 against FIRST_PSEUDO_REGISTER.
13571
e0fa47cd 135722004-02-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13573
13574 * Makefile.in: Move target, host overrides after per-language
13575 fragments.
13576
13577 * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13578 (GNATLIBCFLAGS): Remove -g.
13579
8e262b5e 135802004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13581
13582 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13583 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13584 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13585 config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13586 config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13587 config/sparc/sparc.c, config/vax/vax.c: Revert the
13588 replacements of "FALLTHRU" with "Fall through" done in the
13589 previous patch.
13590
1d60d981 135912004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13592
13593 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13594 config/arm/arm.c, config/arm/arm.md,
13595 config/cris/cris-protos.h, config/fr30/fr30.c,
13596 config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13597 config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13598 config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13599 config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13600 config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13601 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13602 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13603 config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13604 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13605 config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13606 config/s390/s390.md, config/sparc/netbsd-elf.h,
13607 config/sparc/openbsd.h, config/sparc/sparc.c,
13608 config/xtensa/lib2funcs.S: Fix comment formatting.
13609
58552ed0 136102004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13611
13612 * config/alpha/alpha.c, config/arc/arc.c,
13613 config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13614 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13615 config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13616 config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13617 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13618 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13619 config/iq2000/iq2000.c, config/m32r/m32r.c,
13620 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13621 config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13622 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13623 config/rs6000/rs6000.h, config/sparc/sparc.c,
13624 config/vax/vax.c: Fix comment typos. Follow spelling
13625 conventions.
13626
0364c2b4 136272004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13628
13629 * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13630 caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13631 ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13632 sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13633 config/arm/fpa.md, config/arm/iwmmxt.md,
13634 config/arm/netbsd-elf.h, config/arm/netbsd.h,
13635 config/m68hc11/m68hc11.md, config/mips/iris5.h,
13636 config/mn10300/mn10300.md, config/rs6000/altivec.md,
13637 config/sparc/netbsd-elf.h: Update copyright.
13638
17476724 136392004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr>
13640
13641 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13642 for all modes whose size is greater than 8 bytes if ARCH32.
13643 (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13644 by reference if ARCH32.
13645
eefb1eb2 136462004-02-04 Aldy Hernandez <aldyh@redhat.com>
a3ad3e27 13647
13648 * cgraphunit.c (cgraph_postorder): Fix typo in comment.
eefb1eb2 13649
93474865 136502004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
13651
13652 * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13653 to before adddi3 insn patterns.
13654 ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13655 "reload_insi"): Move to before addsi3 insn patterns.
13656
eaa112a0 136572004-02-04 Mark Mitchell <mark@codesourcery.com>
13658
13659 * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13660 parameter. Use it instead of current_function_is_thunk.
13661 * function.h (struct function): Update documentation for is_thunk.
13662 * tree.h (CALL_FROM_THUNK_P): New macro.
13663 * config/alpha/alpha.c (alpha_sa_mask): Do not check
13664 no_new_pseudos when testing current_function_is_thunk.
13665 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13666
dfabcc74 136672004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13668
13669 * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13670 TARGET_SETUP_INCOMING_VARARGS.
13671
8fd5918e 136722004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13673
13674 * emit-rtl.c (gen_rtx): Remove.
13675 * genattrtab.c: Don't mention gen_rtx in a comment.
13676 * rtl.h: Remove the prototype for gen_rtx.
13677 * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13678
b074b706 136792004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13680
13681 * config/arc/arc.h, config/fr30/fr30.h
13682 (SETUP_INCOMING_VARARGS): Remove the target-independent
13683 comments.
13684 * doc/tm.texi: Don't mention deprecated target macros.
13685
41d98e67 136862004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13687
13688 * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13689 target-independent comment.
13690
8a0686b1 136912004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13692
13693 * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13694 mention deprecated target macros.
13695
04d9b51b 136962004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13697
13698 * config.gcc: Remove obsolete ports and configurations.
13699 * config/linux-aout.h, config/netware.h,
13700 config/t-linux-gnulibc1, config/d30v/abi,
13701 config/d30v/d30v-protos.h, config/d30v/d30v.c,
13702 config/d30v/d30v.h, config/d30v/d30v.md,
13703 config/d30v/libgcc1.asm, config/d30v/t-d30v,
13704 config/dsp16xx/dsp16xx-modes.def,
13705 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13706 config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13707 config/i370/README, config/i370/i370-c.c,
13708 config/i370/i370-protos.h, config/i370/i370.c,
13709 config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13710 config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13711 config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13712 config/i386/moss.h, config/i386/netware.h,
13713 config/i386/svr3.ifile, config/i386/svr3dbx.h,
13714 config/i386/svr3gas.h, config/i386/svr3z.ifile,
13715 config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13716 config/i960/i960-c.c, config/i960/i960-coff.h,
13717 config/i960/i960-modes.def, config/i960/i960-protos.h,
13718 config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13719 config/i960/rtems.h, config/i960/t-960bare,
13720 config/m68k/hp310.h, config/m68k/hp320.h,
13721 config/m68k/hp320base.h, config/m68k/m68kv4.h,
13722 config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13723 Remove.
13724 * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13725 doc/md.texi: Remove mentions of obsolete ports.
13726
a2e238f7 137272004-02-04 Jan Hubicka <jh@suse.cz>
13728
13729 * alias.c (find_base_term, get_addr): Do not dereference NULL
13730 pointer when all VALUE's locations has been invalidated.
13731 (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13732
a3ad3e27 137332004-02-03 Wolfgang Bangerth <bangerth@dealii.org>
81a74c96 13734
13735 * doc/invoke.texi (x86 options): Fix spelling/wording.
13736
94b7cae5 137372004-02-03 Richard Sandiford <rsandifo@redhat.com>
13738
13739 * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13740 put the original string in a comment.
13741 * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13742 * config/mips/mips.c (mips_output_ascii): Likewise.
13743 * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13744
24d41d7f 137452004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13746
13747 * system.h (GIV_SORT_CRITERION): Poison.
13748 * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13749 * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13750
99e03bd2 137512004-02-03 Roger Sayle <roger@eyesopen.com>
13752
13753 PR target/9348
13754 * expr.c (expand_expr_real) <MULT_EXPR>: When performing widening
13755 multiplies with a multiplication of the wrong signedness, its the
13756 signedness of the multiplication that we've performed that needs to
13757 be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move
13758 if expand_mult_highpart_adjust places the result in target.
13759
a62c4031 137602004-02-03 Richard Henderson <rth@redhat.com>
13761
13762 * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13763
dde03f02 137642004-02-03 J"orn Rennecke <joern.rennecke@superh.com>
13765
13766 * config.gcc (sh[234]l): Use little endian fragments.
13767
82bd1383 137682004-02-03 Paul Koning <pkoning@equallogic.com>
13769
13770 * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13771 * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13772 * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13773 encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13774 floating point format.
13775 (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13776 the above functions.
13777 (output_move_quad): Output float values in correct target format.
13778 (legitimate_const_double_p): New function.
13779 * config/pdp11/pdp11.h: Fix typos.
13780 (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13781 (TARGET_FLOAT_FORMAT): Ditto.
13782 (pdp11_f_format, pdp11_d_format): Add external declarations.
13783 (MAX_REGS_PER_ADDRESS): Corrected.
13784 (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13785 (PRINT_OPERAND): Output float literals in target format.
13786
2c584053 137872004-02-03 Mark Mitchell <mark@codesourcery.com>
13788
13789 PR c++/13975
13790 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13791 TI_PRIVATE.
13792 (access_public_node): Redefine.
13793 (access_protected_node): Likewise.
13794 (access_private_node): Likewise.
13795 * tree.c (build_common_tree_nodes): Create access_public_node,
13796 access_protected_node, and access_private_node.
13797
ce0713c7 137982004-02-03 Steve Ellcey <sje@cup.hp.com>
13799
13800 * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13801 (MASK_INLINE_INT_DIV_THR): Ditto.
13802 (MASK_INLINE_SQRT_LAT): Ditto.
13803 (MASK_INLINE_SQRT_THR): Ditto.
13804 (MASK_DWARF2_ASM): Ditto.
13805 (MASK_EARLY_STOP_BITS): Ditto.
13806
a2cd141b 138072004-02-02 Paul Brook <paul@codesourcery.com>
13808
13809 Merge from csl-arm-branch.
13810
13811 2004-01-30 Paul Brook <paul@codesourcery.com>
13812
13813 * aof.h (REGISTER_NAMES): Add vfp reg names
13814 (ADDITIONAL_REGISTER_NAMES): Ditto.
13815 * aout.h (REGISTER_NAMES): Ditto.
13816 (ADDITIONAL_REGISTER_NAMES): Ditto.
13817 * arm-protos.h: Update/Add Prototypes.
13818 * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13819 Only allow 0.0 for VFP.
13820 (fp_consts_inited): Rename from fpa_consts_inited. Update users.
13821 (values_fp): Rename from values_fpa. Update Users.
13822 (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13823 Update users. Only check valid constants for this hardware.
13824 (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users.
13825 Only allow consts for FPA.
13826 (arm_float_add_operand): Rename from fpa_add_operand. Update users.
13827 Only allow consts for FPA.
13828 (use_return_insn): Check for saved VFP regs.
13829 (arm_legitimate_address_p): Handle VFP DFmode addressing.
13830 (arm_legitimize_address): Ditto.
13831 (arm_general_register_operand): New function.
13832 (vfp_mem_operand): New function.
13833 (vfp_compare_operand): New function.
13834 (vfp_secondary_reload_class): New function.
13835 (arm_float_compare_operand): New function.
13836 (vfp_print_multi): New function.
13837 (vfp_output_fstmx): New function.
13838 (vfp_emit_fstm): New function.
13839 (arm_output_epilogue): Output VPF reg restore code.
13840 (arm_expand_prologue): Output VFP reg save code.
13841 (arm_print_operand): Add 'P'.
13842 (arm_hard_regno_mode_ok): Return modes for VFP regs.
13843 (arm_regno_class): Return classes for VFP regs.
13844 (arm_compute_initial_elimination_offset): Include space for VFP regs.
13845 (arm_get_frame_size): Ditto.
13846 * arm.h (FIXED_REGISTERS): Add VFP regs.
13847 (CALL_USED_REGISTERS): Ditto.
13848 (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13849 (FIRST_VFP_REGNUM): Define.
13850 (LAST_VFP_REGNUM): Define.
13851 (IS_VFP_REGNUM): Define.
13852 (FIRST_PSEUDO_REGISTER): Include VFP regs.
13853 (HARD_REGNO_NREGS): Handle VFP regs.
13854 (REG_ALLOC_ORDER): Add VFP regs.
13855 (enum reg_class): Add VFP_REGS.
13856 (REG_CLASS_NAMES): Ditto.
13857 (REG_CLASS_CONTENTS): Ditto.
13858 (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13859 (REG_CLASS_FROM_LETTER): Add 'w'.
13860 (EXTRA_CONSTRAINT_ARM): Add 'U'.
13861 (EXTRA_MEMORY_CONSTRAINT): Define.
13862 (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13863 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13864 (REGISTER_MOVE_COST): Ditto.
13865 (PREDICATE_CODES): Add arm_general_register_operand,
13866 arm_float_compare_operand and vfp_compare_operand.
13867 * arm.md (various): Rename as above.
13868 (divsf3): Enable when TARGET_VFP.
13869 (divdf3): Ditto.
13870 (movdfcc): Ditto.
13871 (sqrtsf2): Ditto.
13872 (sqrtdf2): Ditto.
13873 (arm_movdi): Disable when TARGET_VFP.
13874 (arm_movsi_insn): Ditto.
13875 (movsi): Only split with general regs.
13876 (cmpsf): Use arm_float_compare_operand.
13877 (push_fp_multi): Restrict to TARGET_FPA.
13878 (vfp.md): Include.
13879 * vfp.md: New file.
13880 * fpa.md (various): Rename as above.
13881 * doc/md.texi: Document ARM w and U constraints.
13882
13883 2004-01-15 Paul Brook <paul@codesourcery.com>
13884
13885 * config.gcc: Add with_fpu. Allow with-float=softfp.
13886 * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13887 Break out of loop when we find a float-abi. Fix typo.
13888 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13889 Set -mfloat-abi=.
13890 * doc/install.texi: Document --with-fpu.
13891
13892 2003-01-14 Paul Brook <paul@codesourcery.com>
13893
13894 * config.gcc (with_arch): Add armv6.
13895 * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13896 * config/arm/arm.c (arm_overrride_options): Ditto.
13897
13898 2004-01-08 Richard Earnshaw <rearnsha@arm.com>
13899
13900 * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13901 (FL_ARCH6): Renamed from FL_ARCH6J.
13902 (arm_arch3m): Renamed from arm_fast_multiply.
13903 (arm_arch6): Renamed from arm_arch6j.
13904 * arm.h: Update all uses of above.
13905 * arm-cores.def: Likewise.
13906 * arm.md: Likewise.
13907
13908 * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13909 not arm6j. Add entry for arch armv6.
13910
13911 2004-01-07 Richard Earnshaw <rearnsha@arm.com>
13912
13913 * arm.c (arm_emit_extendsi): Delete.
13914 * arm-protos.h (arm_emit_extendsi): Delete.
13915 * arm.md (zero_extendhisi2): Also handle zero-extension of
13916 non-subregs.
13917 (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13918 (thumb_zero_extendhisi2): Only match if not v6.
13919 (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13920 (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13921 (thumb_extendqisi2): Likewise.
13922 (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13923 (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13924 (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13925 (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13926 (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13927 (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13928 (arm_zero_extendhisi2addsi): Remove subreg. Add attributes.
13929 (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13930 (arm_extendqisi2addsi): Likewise.
13931
13932 2003-12-31 Mark Mitchell <mark@codesourcery.com>
13933
13934 Revert this change:
13935 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13936 + REG addressing modes.
13937
13938 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13939 + REG addressing modes.
13940
13941 2003-12-30 Mark Mitchell <mark@codesourcery.com>
13942
13943 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13944 CONSTANT_P_RTX.
13945
13946 2003-30-12 Paul Brook <paul@codesourcery.com>
13947
13948 * longlong.h: protect arm inlines with !defined (__thumb__)
13949
13950 2003-30-12 Paul Brook <paul@codesourcery.com>
13951
13952 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13953
13954 2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
13955
13956 * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13957 change.
13958
13959 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
13960
13961 * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13962 to the virtual incoming args pointer for downward stacks.
13963
13964 2003-12-29 Paul Brook <paul@codesourcery.com>
13965
13966 * config/arm/arm-cores.def: Add cost function.
13967 * config/arm/arm.c (arm_*_rtx_costs): New functions.
13968 (arm_rtx_costs): Remove
13969 (struct processors): Add rtx_costs field.
13970 (all_cores, all_architectures): Ditto.
13971 (arm_override_options): Set targetm.rtx_costs.
13972 (thumb_rtx_costs): New function.
13973 (arm_rtx_costs_1): Remove cases handled elsewhere.
13974 * config/arm/arm.h (processor_type): Add COSTS parameter.
13975
13976 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
13977
13978 * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13979 (arm926ejs.md): Include it.
13980 * config/arm/arm926ejs.md: New pipeline description.
13981
13982 2003-12-24 Paul Brook <paul@codesourcery.com>
13983
13984 * config/arm/arm.c (arm_arch6j): New variable.
13985 (arm_override_options): Set it.
13986 (arm_emit_extendsi): New function.
13987 * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13988 * config/arm/arm.h (arm_arch6j): Declare.
13989 * config/arm/arm.md: Add sign/zero extend insns.
13990
13991 2003-12-23 Paul Brook <paul@codesourcery.com>
13992
13993 * config/arm/arm.c (all_architectures): Add armv6.
13994 * doc/invoke.texi: Document it.
13995
13996 2003-12-19 Paul Brook <paul@codesourcery.com>
13997
13998 * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify
13999 insn patterns to match.
14000 * config/arm/arm-generic.md: Ditto.
14001 * config/arm/cirrus.md: Ditto.
14002 * config/arm/fpa.md: Ditto.
14003 * config/amm/iwmmxt.md: Ditto.
14004 * config/arm/arm1026ejs.md: Ditto.
14005 * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses
14006 for 11_loadb.
14007
14008 2003-12-18 Nathan Sidwell <nathan@codesourcery.com>
14009
14010 * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14011 * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14012 TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14013 (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14014 arm_no_early_mul_dep): Correctly deal with conditional execution,
14015 parallels and single shift operations.
14016 (arm_no_early_alu_shift_value_dep): Define.
14017 * arm.md (attr type): Replace 'normal' with 'alu',
14018 'alu_shift' and 'alu_shift_reg'.
14019 (attr core_cycles): Adjust.
14020 (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14021 *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14022 *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14023 *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14024 *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14025 *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14026 *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14027 attribute appropriately.
14028 * config/arm/arm1026ejs.md (alu_op): Adjust.
14029 (alu_shift_op, alu_shift_reg_op): New.
14030 * config/arm/arm1136.md: Add better bypasses for early
14031 registers. Remove load[234] and store[234] bypasses.
14032 (11_alu_op): Adjust.
14033 (11_alu_shift_op, 11_alu_shift_reg_op): New.
14034
14035 2003-12-15 Nathan Sidwell <nathan@codesourcery.com>
14036
14037 * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14038 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14039 * config/arm/arm.c (arm_no_early_store_addr_dep,
14040 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14041 * config/arm/arm1026ejs.md: Add load-store bypass.
14042 * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14043 Add bypasses between instructions.
14044
14045 2003-12-10 Paul Brook <paul@codesourcery.com>
14046
14047 * config/arm/arm.c (arm_fpu_model): New variable.
14048 (arm_fload_abi): New variable.
14049 (target_fpe_name): Rename from target_fp_name.
14050 (target_fpu_name): New variable.
14051 (arm_is_cirrus): Remove.
14052 (fpu_desc): New struct.
14053 (all_fpus): Define.
14054 (pf_model_for_fpu): Define.
14055 (all_loat_abis): Define.
14056 (arm_override_options): Set fp arch flags based on -mfpu=
14057 and -float-abi=.
14058 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14059 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14060 (*): Use new TARGET_* flags.
14061 * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14062 (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14063 (TARGET_SOFT_FLOAT): Ditto.
14064 (TARGET_SOFT_FLOAT_ABI): New.
14065 (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies
14066 TARGET_HARD_FLOAT.
14067 (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14068 (TARGET_OPTIONS): Add -mfpu=.
14069 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14070 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14071 (arm_pf_model): Define.
14072 (arm_float_abi_type): Define.
14073 (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE
14074 * config/arm/arm.md: Use new TARGET_* flags.
14075 * config/arm/cirrus.md: Ditto.
14076 * config/arm/fpa.md: Ditto.
14077 * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14078 * config/arm/semi.h (ASM_SPEC): Ditto.
14079 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14080 (FPUTYPE_DEFAULT): Set to VFP.
14081 * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14082
14083 2003-11-22 Phil Edwards <phil@codesourcery.com>
14084
14085 PR target/12476
14086 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use
14087 'bx' instead of 'b' to avoid branch range restrictions. Output
14088 the thunk immediately before the thunked-to function.
14089 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit
14090 .thumb_func if a thunk is being generated. Emit .code 16 along
14091 with .thumb_func if a thunk is not being generated.
14092
14093 2003-11-15 Nicolas Pitre <nico@cam.org>
14094
14095 * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14096 arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14097 * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14098 (lshrdi3_iwmmxt): Renamed from lshrdi3.
14099 * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14100
14101 2003-11-12 Steve Woodford <scw@wasabisystems.com>
14102 Ian Lance Taylor <ian@wasabisystems.com>
14103
14104 * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14105 code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14106
14107 2003-11-05 Phil Edwards <phil@codesourcery.com>
14108
14109 * config/arm/arm.md (insn): Add new V6 instruction names.
14110 (generic_sched): New attr.
14111 * config/arm/arm-generic.md: Use generic_sched here.
14112 * config/arm/arm1026ejs.md: Do not model fetch/issue/decode
14113 stages of pipeline. Adjust latency counts accordingly.
14114 * config/arm/arm1136jfs.md: New file.
14115
14116 2003-10-28 Mark Mitchell <mark@codesourcery.com>
14117
14118 * config/arm/arm.h (processor_type): New enumeration type.
14119 (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14120 ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14121 (CPP_CPU_ARCH_SPEC): Likewise.
14122 * config/arm/arm.c (arm_tune): New variable.
14123 (all_cores): Use cores.def.
14124 (all_architectures): Add representative processor.
14125 (arm_override_options): Restructure way in which tuning
14126 information is deduced.
14127 * arm.md: Update "insn" and "type" attributes throughout.
14128 (insn): New attribute.
14129 (type): Compute "mult" from "insn" attribute. Add load2,
14130 load3, load4 alternatives.
14131 (arm automaton): Move to arm-generic.md.
14132 * config/arm/arm-cores.def: New file.
14133 * config/arm/arm-generic.md: Likewise.
14134 * config/arm/arm1026ejs.md: Likewise.
14135
aa49c7dd 141362004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr>
14137
14138 * doc/invoke.texi (SPARC options): Remove -mflat and
14139 all -mxxx (xxx:chip) options.
14140 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14141 * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14142 * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14143 * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14144 * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14145 * config/sparc/sparc.c: Likewise.
14146 (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14147 (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14148 (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14149 (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14150 (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14151 (sparc_flat_must_save_register_p): Likewise.
14152 (sparc_flat_compute_frame_size): Likewise.
14153 (sparc_flat_save_restore): Likewise.
14154 (sparc_flat_function_prologue): Likewise.
14155 (sparc_flat_function_epilogue): Likewise.
14156 (sparc_flat_epilogue_delay_slots): Likewise.
14157 (sparc_flat_eligible_for_epilogue_delay): Likewise.
14158 (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14159 * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14160 (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14161 (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14162 (CONDITIONAL_REGISTER_USAGE): Likewise.
14163 (FRAME_POINTER_REQUIRED): Likewise.
14164 (INITIAL_ELIMINATION_OFFSET): Likewise.
14165 (BASE_RETURN_VALUE_REG): Likewise.
14166 (BASE_OUTGOING_VALUE_REG): Likewise.
14167 (BASE_PASSING_ARG_REG): Likewise.
14168 (BASE_INCOMING_ARG_REG): Likewise.
14169 (INCOMING_REGNO): Likewise.
14170 (OUTGOING_REGNO): Likewise.
14171 (LOCAL_REGNO): Likewise.
14172 (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14173 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14174 (EPILOGUE_USES): Likewise.
14175 * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14176 ("flat" attribute): Delete.
14177 (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14178 handling.
14179 (call followed by jump define_peephole's): Delete.
14180 (exception_receiver): Likewise.
14181 (builtin_setjmp_receiver): Likewise.
14182 * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14183
d1b92730 141842004-02-03 Paolo Bonzini <bonzini@gnu.org>
14185
14186 PR c/11658
14187 PR c/13994
14188 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14189 on langhooks.h.
14190 * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14191 * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14192 Include langhooks.h. Replace c_common_truthvalue_conversion
14193 with the truthvalue_conversion language hook throughout.
14194 (expr_no_commas): Call default_conversion before save_expr
14195 for the first term of the production 'x ? : y'.
14196 * c-common.c (c_common_truthvalue_conversion): Remove
14197 obsolete block. Invoke recursively the hook instead
14198 of this function.
14199 * c-convert.c (convert): handle ERROR_MARK_NODE.
14200 * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14201 returned by the truthvalue_conversion language hook.
14202 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14203 c_objc_common_truthvalue_conversion.
14204 * c-objc-common.c (c_objc_common_truthvalue_conversion):
14205 New function.
14206 * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14207 * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14208 c_objc_common_truthvalue_conversion.
14209
be5bd17b 142102004-02-03 Kazu Hirata <kazu@cs.umass.edu>
14211
14212 * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14213 of gen_rtx.
14214 (LIBCALL_VALUE): Likewise.
14215 * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14216 gen_rtx_CC0 instead of gen_rtx.
14217 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14218 gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14219 (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14220 gen_rtx.
14221 (m68hc11_emit_logical): Likewise.
14222
bcd9bd66 142232004-02-03 Kazu Hirata <kazu@cs.umass.edu>
14224
14225 * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14226 config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14227 config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14228 config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14229 config/mips/mips.md, config/mmix/mmix.c,
14230 config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14231 config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14232 config/rs6000/altivec.md, config/s390/s390.c,
14233 config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14234 config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14235 Use const0_rtx instead of GEN_INT (0). Do the same for other
14236 constants that are readily available.
14237
6757f5d6 142382004-02-03 Kazu Hirata <kazu@cs.umass.edu>
14239
14240 * doloop.c, optabs.c, regmove.c, sched-deps.c,
14241 config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14242 instead of GEN_INT (0). Do the same for other constants that
14243 are readily available.
14244
27a9551b 142452004-02-03 Kazu Hirata <kazu@cs.umass.edu>
14246
14247 * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14248 gen_rtx.
14249 * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14250 instead of gen_rtx.
14251 * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14252 gen_rtx.
14253 * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14254 gen_rtx_ASHIFT instead of gen_rtx.
14255 (udivmodqi4): Likewise.
14256
828eae76 142572004-02-02 Richard Henderson <rth@redhat.com>
14258
a3ad3e27 14259 PR target/13789
14260 * expr.c (store_expr): Use force_operand before emit_move_insn.
828eae76 14261
21dff555 142622004-02-02 Jeff Law <law@redhat.com>
14263 Roger Sayle <roger@eyesopen.com>
14264
14265 * tree.c (commutative_tree_code, associative_tree_code): New
14266 functions.
14267 (iterative_hash_expr): Use commutative_tree_code.
14268 * tree.h (commutative_tree_code, associative_tree_code): Declare.
14269 * fold-const.c (operand_equal_p): Use commutative_tree_code
14270 rather than inlining the commutativity check.
14271 (fold): Likewise.
14272
128c89d3 142732004-02-02 Kazu Hirata <kazu@cs.umass.edu>
14274
14275 * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14276 * config/frv/frv-protos.h: Remove the prototype for
14277 frv_function_arg_keep_as_reference.
14278 * config/frv/frv.c (frv_function_arg_keep_as_reference):
14279 Remove.
14280 * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14281 * config/stormy16/stormy16.h: Remove the commented-out
14282 definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14283
16e32085 142842004-02-03 Alan Modra <amodra@bigpond.net.au>
14285
14286 PR target/13914
14287 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14288 for retaddr_column.
14289
8d7bd4fd 142902004-02-02 Kazu Hirata <kazu@cs.umass.edu>
14291
14292 * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14293 gen_rtx.
14294
57ba96e9 142952004-02-02 Eric Christopher <echristo@redhat.com>
a3ad3e27 14296 Zack Weinberg <zack@codesourcery.com>
57ba96e9 14297
14298 * c-opts.c (c_common_handle_option): Add -finput-charset.
a3ad3e27 14299 * c.opt: Ditto.
14300 * cppcharset.c (one_iso88591_to_utf8): Remove.
14301 (convert_iso88591_utf8): Ditto.
14302 (conversion_tab): Remove 8859-1 converter.
14303 (_cpp_input_to_utf8): Remove.
14304 (_cpp_init_iconv_buffer): Ditto.
14305 (_cpp_close_iconv_buffer): Ditto.
14306 (_cpp_convert_input): New function.
14307 (_cpp_default_encoding): Ditto.
14308 * cpphash.h: Add/remove prototypes for above.
14309 * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14310 * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14311 for narrow execution and input character sets.
14312 * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14313 * doc/cppopts.texi: Document -finput-charset.
57ba96e9 14314
859f38c8 143152004-02-02 David Edelsohn <edelsohn@gnu.org>
14316
14317 * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14318 against FIRST_PSEUDO_REGISTER.
14319
c524abbf 143202004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
14321
14322 * doc/invoke.texi (SPARC options): Further improve.
14323
dc55b8a9 143242004-02-02 Kazu Hirata <kazu@cs.umass.edu>
14325
14326 * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14327 config/h8300/h8300.c, config/ip2k/ip2k.md,
14328 config/iq2000/iq2000.c, config/mips/mips.c,
14329 config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14330 config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14331 config/v850/v850.md: Fix indentation.
14332
4e090328 143332004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
14334
14335 * config/sparc/sparc.c (function_arg_slotno): Align TImode
14336 arguments on a 16-byte boundary in the parameter array if ARCH64.
14337 Split handling of TFmode.
14338
2f3f2ddf 143392004-02-02 Paolo Bonzini <bonzini@gnu.org>
14340
14341 * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14342 Don't test CONSTANT_P (x).
14343 (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14344 ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14345 Fix misindentation.
14346
4aab44e7 143472004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
14348
14349 * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14350
29bb088d 143512004-02-02 Kazu Hirata <kazu@cs.umass.edu>
14352
14353 * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14354 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14355 config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14356 config/iq2000/iq2000.c, config/m32r/m32r.c,
14357 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14358 config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14359 config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14360 config/stormy16/stormy16.c, config/v850/v850.md,
14361 config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14362
b58fb4dd 143632004-02-01 Kazu Hirata <kazu@cs.umass.edu>
14364
14365 * config/mcore/mcore.c (block_move_sequence): Replace
14366 gen_rtx_CONST_INT with GEN_INT.
14367
67d6c12b 143682004-02-02 Jan Hubicka <jh@suse.cz>
14369
14370 * alias.c (record_set): Use hard_regno_nregs.
14371 * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14372 * builtins.c (apply_args_size): Likewise.
14373 * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14374 mark_set_regs, add_stored_regs, mark_referenced_regs,
14375 insert_restore, insert_save, insert_one_insn): Likewise.
14376 * cfgcleanup.c: Include regs.h
14377 (mark_effect, mentions_nonequal_regs): Likewise.
14378 * cfgrtl.c (mark_killed_regs): Likewise
14379 * combine.c (update_table_tick, record_value_for_reg,
14380 record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14381 reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14382 reg_bitfield_target_p, distribute_notes): Likewise.
14383 * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14384 exp_equiv_p, cse_insn): Likewise.
14385 * cselib.c (cselib_lookup): Likewise.
14386 (cselib_invalidate_regno, cselib_record_set): Likewise.
14387 * df.c (df_ref_record): Likewise.
14388 * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14389 Likewise.
14390 * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14391 count_or_remove_death_notes_bb): Likewise.
14392 * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14393 * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14394 mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14395 * integrate.c (mark_stores): Likewise.
14396 * jump.c (delete_prior_computation): Likewise.
14397 * lcm.c (reg_dies, reg_becomes_live): Likewise.
14398 * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14399 * loop.c (LOOP_REGNO_NREGS): Likewise.
14400 * postreload.c (reload_combine, reload_combine_note_store,
14401 reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14402 * ra-colorize.c (combine, color_usable_p, get_free_reg,
57ba96e9 14403 calculate_dont_begin, calculate_dont_begin, colorize_one_web,
67d6c12b 14404 try_recolor_web, insert_coalesced_conflicts, check_colors,
14405 break_precolored_alias): Likewise.
14406 * ra-debug.c: Include regs.h
14407 (ra_print_rtx_object): Likewise.
14408 * ra-rewrite (choose_spill_colors): Likewise.
14409 (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14410 * ra.c (init_ra): Likewise.
14411 * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14412 peep2_find_free_register): Likewise.
14413 * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14414 * regclass.c (hard_regno_nregs): New array.
14415 (init_reg_modes_once): Initialize it.
14416 (choose_hard_reg_mode): Use it.
14417 (record_reg_classes): Likewise.
14418 * regmove.c (mark_flags_life_zones): Likewise.
14419 * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14420 scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14421 copy_value, maybe_mode_change, find_oldest_value_reg,
14422 copyprop_hardreg_forward_1):
14423 * regs.h (hard_regno_nregs): Declare.
14424 * realod.c (reload_inner_reg_of_subreg): Use it.
14425 (push_reload, combine_reloads, find_dummy_reload,
14426 hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14427 refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14428 reload_adjust_reg_for_mode): Likewise.
14429 * reload1.c (compute_use_by_pseudos, count_pseudo,
14430 count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14431 spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14432 clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14433 allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14434 delete_output_reload): Likewise.
14435 * resource.c (update_live_status, mark_referenced_resources,
14436 mark_set_resources, mark_target_live_regs): Likewise.
14437 * rtlanal.c: Include regs.h
14438 (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14439 dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14440 subreg_regno_offset, subreg_offset_representable_p,
14441 hoist_test_store): Likewise.
14442 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14443 * sched-rgn.c (check_live_1, update_live_1): Likewise.
14444 * stmt.c: Include regs.h
14445 (decl_conflicts_with_clobbers_p): Likewise.
14446 * varasm.c (make_decl_rtl): Likewise.
14447 * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14448
1a83b3ff 144492004-02-01 Kazu Hirata <kazu@cs.umass.edu>
14450
14451 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14452 config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14453 config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14454 config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14455 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14456 config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14457 config/iq2000/iq2000.h, config/m32r/m32r.c,
14458 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14459 config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14460 config/mcore/mcore.c, config/mcore/mcore.h,
14461 config/mcore/mcore.md, config/mips/mips.c,
14462 config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14463 config/rs6000/rs6000.c, config/s390/s390.c,
14464 config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14465 config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14466 "gen_rtx (FOO, " with "gen_rtx_FOO (".
14467
47b897c4 144682004-02-01 Kazu Hirata <kazu@cs.umass.edu>
14469
14470 * config/h8300/h8300.md (two peephole2's): New.
14471
b97ba337 144722004-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
14473
14474 * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14475 (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14476 (ASM_CPU_SPEC): Likewise
14477 * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14478 (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3.
14479
b613c2a6 144802004-02-01 Roger Sayle <roger@eyesopen.com>
14481
14482 * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14483 isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14484 (expand_builtin): Always call expand_builtin_pow.
14485
27f261ef 144862004-02-01 Roger Sayle <roger@eyesopen.com>
14487
14488 * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14489 BUILT_IN_SIGNBITL): New GCC builtins.
14490 * builtins.c (expand_builtin_signbit): New function to RTL expand
14491 calls to signbit, signbitf and signbitl as inline intrinsics.
14492 (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14493 (fold_builtin_signbit): New function to perform constant folding
14494 of signbit, signbitf and signbitl.
14495 (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14496
14497 * doc/extend.texi: Document new signbit{,f,l} builtins.
14498
53fddb7b 144992004-02-01 Richard Sandiford <rsandifo@redhat.com>
14500
14501 * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14502
a6b601dd 145032004-02-01 Chris Demetriou <cgd@broadcom.com>
14504
14505 * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14506 "mips_const_double_ok" and "simple_memory_operand", which were
14507 removed from the MIPS port with the mips-3_4-rewrite branch merge.
14508 * config/mips/mips.c (mips16_lay_out_constants): Update comment
14509 for removal of simple_memory_operand.
14510
eae12af7 145112004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14512
14513 * config/c4x/c4x.md: Use GEN_INT instead of
14514 gen_rtx (CONST_INT, ...).
14515
82032a87 145162004-01-31 Richard Henderson <rth@redhat.com>
14517
14518 * varasm.c (output_constant_pool): Don't zap the pool.
14519
7e5202bc 145202004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14521
14522 * genrecog.c (decision_type): Add DT_const_int.
14523 (write_cond) [DT_const_int]: Print a comparison against small
14524 constant.
14525 (write_node): Simplify comparisons against small constants
14526 before printing tests.
57ba96e9 14527
73a1a86f 145282004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14529
14530 * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14531 instead of gen_rtx_CONST_INT.
14532
46128352 145332004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14534
14535 * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14536 instead of gen_rtx_CONST_INT.
14537
9878c8d9 145382004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14539
14540 * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14541 hook_bool_CUMULATIVE_ARGS_false.
14542 * targhooks.c (default_strict_argument_naming): Rename to
14543 hook_bool_CUMULATIVE_ARGS_false.
14544 * targhooks.h: Update the prototype for
14545 default_strict_argument_naming.
14546
407d9153 145472004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14548
14549 * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14550 * config/sh/sh.h: Likewise.
14551 * config/sh/sh.md: Likewise.
14552
48e8e1b8 145532004-01-31 Eric Botcazou <ebotcazou@libertysurf.fr>
14554
14555 * doc/invoke.texi (SPARC options): Restructure and update.
14556
1ce13983 145572004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14558
14559 * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14560 STRICT_ARGUMENT_NAMING): Poison.
14561 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14562 hook_bool_tree_false.
14563 * targhooks.c (default_promote_function_args): Remove.
14564 (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14565 Don't check incoming.
14566 (default_strict_argument_naming): Don't use
14567 STRICT_ARGUMENT_NAMING.
14568 * targhooks.h: Remove the prototype for
14569 default_promote_function_args.
14570
b1beff69 145712004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14572
14573 * config/i386/i386-protos.h: Remove the prototype for
14574 ix86_setup_incoming_varargs.
14575 * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14576 (ix86_setup_incoming_varargs): Make it static.
14577 * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14578
3f7df443 145792004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14580
14581 * alloc-pool.c: Fix comment typos.
14582 * builtin-types.def: Likewise.
14583 * builtins.def: Likewise.
14584 * c-pretty-print.c: Likewise.
14585 * df.h: Likewise.
14586 * reload1.c: Likewise.
14587
9fd71724 145882004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14589
14590 * doc/invoke.texi: Follow spelling conventions.
14591 * doc/tm.texi: Likewise.
14592
3f17796c 145932004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14594
14595 * doc/install.texi: Fix typos.
14596 * doc/invoke.texi: Likewise.
14597
20988c4e 145982004-01-31 Ulrich Weigand <uweigand@de.ibm.com>
14599
14600 * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14601 registers as pointers.
14602 * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14603
316f48ea 146042004-01-31 Paolo Bonzini <bonzini@gnu.org>
14605
0dd5e539 14606 * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
316f48ea 14607 and restore it to gen_lowpart_general on exit.
14608 (gen_lowpart_for_combine): Adjust all callers to go through
14609 gen_lowpart.
14610 * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14611 and restore it to gen_lowpart_general on exit.
14612 (gen_lowpart_if_possible): Adjust all callers to go through
14613 gen_lowpart.
14614 * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14615 (gen_lowpart): Declare as pointer to function, initialized to
14616 gen_lowpart_general.
14617 * rtl.h (gen_lowpart): Declare as pointer to function.
14618
943d05fc 146192004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14620
14621 * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14622 * calls.c: Likewise.
14623 * emit-rtl.c: Likewise.
14624 * function.c: Likewise.
14625 * reload1.c: Likewise.
14626 * config/i386/cygming.h: Likewise.
14627 * config/i386/i386.c: Likewise.
14628 * config/i386/winnt.c: Likewise.
14629
e4a013de 146302004-01-30 Dara Hazeghi <dhazeghi@yahoo.com>
14631
14632 PR bootstrap/9249
14633 * doc/install.texi: document --enable-__cxa_atexit option.
14634 * configure.ac: Disable __cxa_atexit if not supported.
14635 * configure: Regenerate.
14636
c84c7b21 146372003-01-30 Daniel Berlin <dberlin@dberlin.org>
14638
14639 * ggc-zone.c (ggc_free): New function.
14640
934f2848 146412004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14642
14643 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14644 cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14645 flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14646 ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14647 tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14648 config/alpha/alpha.c, config/alpha/alpha.h,
14649 config/alpha/alpha.md, config/alpha/unicosmk.h,
14650 config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14651 config/c4x/c4x-protos.h, config/c4x/c4x.md,
14652 config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14653 config/frv/frvend.c, config/i386/cygming.h,
14654 config/i386/djgpp.h, config/i386/emmintrin.h,
14655 config/i386/gthr-win32.c, config/i386/i386-interix.h,
14656 config/i386/i386-protos.h, config/i386/openbsd.h,
14657 config/i386/winnt.c, config/i386/xm-mingw32.h,
14658 config/i386/xmmintrin.h, config/ia64/ia64.md,
14659 config/iq2000/iq2000.md, config/m32r/m32r.md,
14660 config/m68k/m68k.md, config/mcore/mcore-elf.h,
14661 config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14662 config/mips/iris5gas.h, config/mips/iris6.h,
14663 config/mips/iris6gas.h, config/mips/linux.h,
14664 config/mips/mips.md, config/mips/netbsd.h,
14665 config/mips/openbsd.h, config/mips/windiss.h,
14666 config/pa/fptr.c, config/rs6000/aix.h,
14667 config/rs6000/altivec.h, config/rs6000/darwin.h,
14668 config/rs6000/xcoff.h, config/s390/s390-protos.h,
14669 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14670 config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14671 config/sparc/sol2.h: Update copyright.
14672
b5a57562 146732004-01-30 Kelley Cook <kcook@gcc.gnu.org>
14674
14675 * Makefile.in (abs_docdir, abs_srcdir): Define.
14676 (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14677
f57ff396 146782004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14679
14680 * genconfig.c (main): Have CC0_P check its operand even on a
14681 target without cc0.
14682
6644435d 146832004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14684
14685 * config/alpha/alpha.c: Remove mentions of deprecates macros
14686 in comments, remove some target-independent comments about target
14687 macros, and/or add minimal function comments for target hook
14688 implementations.
14689 * config/avr/avr.c: Likewise.
14690 * config/ia64/ia64.h: Likewise.
14691 * config/ip2k/ip2k.c: Likewise.
14692 * config/iq2000/iq2000.c: Likewise.
14693 * config/m32r/m32r.h: Likewise.
14694 * config/m68hc11/m68hc11.c: Likewise.
14695 * config/mcore/mcore.c: Likewise.
14696 * config/mmix/mmix.c: Likewise.
14697 * config/mn10300/mn10300.c: Likewise.
14698 * config/pa/pa.c: Likewise.
14699 * config/pdp11/pdp11.c: Likewise.
14700 * config/rs6000/rs6000.h: Likewise.
14701 * config/sh/sh.c: Likewise.
14702 * config/sh/sh.h: Likewise.
14703 * config/sparc/sparc.c: Likewise.
14704 * config/sparc/sparc.h: Likewise.
14705 * config/stormy16/stormy16.c: Likewise.
14706 * config/xtensa/xtensa.c: Likewise.
14707
5482e0c7 147082004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
14709
14710 PR optimization/12147
14711 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14712 RELOAD_FOR_OPADDR_ADDR.
14713 (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14714 might be reused as RELOAD_FOR_OPADDR_ADDR register.
14715
88b8887c 147162004-01-30 Jan Hubicka <jh@suse.cz>
14717
6644435d 14718 * reload.c (get_secondary_mem): Fix updating of
88b8887c 14719 secondary_memlocs_elim_used.
14720
01714e38 147212004-01-30 Richard Henderson <rth@redhat.com>
14722
14723 * varasm.c (struct rtx_const, struct pool_constant): Remove.
14724 (MAX_RTX_HASH_TABLE): Remove.
14725 (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14726 (first_pool, last_pool, pool_offset): Remove.
14727 (struct rtx_constant_pool): Split out from ...
14728 (struct varasm_status): ... here. Reference one via pointer.
14729 (struct constant_descriptor_rtx): Merge struct pool_constant.
14730 (SYMHASH): Remove.
14731 (decode_rtx_const): Remove.
14732 (const_hash_rtx, compare_constant_rtx): Remove.
14733 (record_constant_rtx): Remove.
14734 (const_desc_rtx_hash, const_desc_rtx_eq): New.
14735 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14736 (const_rtx_hash_1, const_rtx_hash): New.
14737 (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14738 (simplify_subtraction): Use simplify_rtx.
14739 (force_const_mem): Rewrite to use new data structures.
14740 (find_pool_constant): Likewise.
14741 (get_pool_constant, get_pool_constant_mark,
14742 get_pool_constant_for_function, get_pool_mode,
14743 get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14744 (output_constant_pool_2): Split out from output_constant_pool.
14745 (output_constant_pool_1): Likewise. Use new pool datastructures.
14746 (output_constant_pool): Zap entire pool datastructure.
14747 (mark_constant): Use new pool datastructures.
14748 (mark_constants): Use for_each_rtx.
14749 (mark_constant_pool): Use new pool datastructures.
14750
1f9f7953 147512004-01-30 Fariborz Jahanian <fjahanian@apple.com>
57ba96e9 14752
a3ad3e27 14753 * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
1f9f7953 14754 Copy operands[1] to pseudo for simplify_gen_subreg.
14755
51280053 147562004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14757
14758 * gcse.c (bypass_block): Fix a typo in the previous check-in
14759 to the file.
14760
15ac28e3 147612004-01-30 Andrew Pinski <pinskia@physics.uc.edu>
14762
14763 * toplev.c: Include alloc-pool.h.
57ba96e9 14764 * Makefile.in (toplev.c): Update dependencies.
15ac28e3 14765
ea1ac559 147662004-01-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14767
14768 * combine.c (simplify_shift_const, case XOR): Be careful when
14769 commuting XOR with ASHIFTRT.
14770
7b328f0e 147712004-01-30 Kazu Hirata <kazu@cs.umass.edu>
a3ad3e27 14772 Eric Botcazou <ebotcazou@libertysurf.fr>
7b328f0e 14773
14774 * config/sparc/sparc-protos.h: Remove the prototype for
14775 sparc_builtin_saveregs.
14776 * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14777 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14778 (TARGET_PROMOTE_PROTOTYPES): Likewise.
14779 (TARGET_STRUCT_VALUE_RTX): Likewise.
14780 (TARGET_RETURN_IN_MEMORY): Likewise.
14781 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14782 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14783 (sparc_builtin_saveregs): Make it static.
14784 (sparc_promote_prototypes): New.
14785 (sparc_struct_value_rtx): Likewise.
14786 (sparc_return_in_memory): Likewise.
14787 * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14788 (PROMOTE_FUNCTION_RETURN): Likewise.
14789 (RETURN_IN_MEMORY): Likewise.
14790 (STRUCT_VALUE): Likewise.
14791 (STRUCT_VALUE_INCOMING): Likewise.
14792 (EXPAND_BUILTIN_SAVEREGS): Likewise.
14793 (STRICT_ARGUMENT_NAMING): Likewise.
14794 (PROMOTE_PROTOTYPES): Likewise.
14795
14796 * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14797
2e355795 147982004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
14799
14800 PR c/12818
14801 * varasm.c (const_hash_1) <STRING_CST>: Use the
14802 address to compute the hash value if flag_writable_strings.
14803 (compare_constant) <STRING_CST>: Compare the addresses
14804 if flag_writable_strings.
14805 (build_constant_desc): Do not copy the expression for a
14806 STRING_CST if flag_writable_strings.
14807
3cbad6de 148082004-01-30 Jan Hubicka <jh@suse.cz>
14809
7fec61de 14810 * alloc-pool.c: Include hashtab.h
14811 (alloc_pool_descriptor): New structure
14812 (alloc_pool_hash): New global variable.
14813 (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14814 (create_alloc_pool): Update statistics.
14815 (free_alloc_pool): Likewise.
14816 (pool_alloc): Likewise.
14817 (output_info): New structure
14818 (print_statistics, dump_alloc_pool_statistics): New function.
14819 * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14820 (dump_alloc_pool_statistics): Declare.
14821 * toplev.c (finalize): Dump statistics.
14822
3cbad6de 14823 * reload.c (secondary_memlocs_elim_used): New static variable.
14824 (get_secondary_mem): Update it.
14825 (find_reloads): Use it.
14826
1c101c86 148272004-01-30 Steven Bosscher <s.bosscher@student.tudelft.nl>
14828
14829 * toplev.c: Fix broken checkin of 2003-12-30, again.
14830
15dff672 148312004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
14832
14833 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14834 s390*-*-* targets by specifying a 'nop' insn.
14835 * configure: Regenerate.
14836
0daea6cd 148372004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
14838
14839 PR target/11475
14840 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14841
6c231ace 148422004-01-29 Jakub Jelinek <jakub@redhat.com>
14843
14844 * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14845 of addr when creating MEM copy.
14846
d612af01 148472004-01-29 Devang Patel <dpatel@apple.com>
14848
14849 * dwarf2out.c (gen_field_die): Do not equate decl number to die.
57ba96e9 14850
a336c79a 148512004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
14852
14853 PR inline-asm/6162
14854 * reload.c (find_reloads): Only support one pair of commutative
14855 operands.
14856
206442fb 148572004-01-29 Roger Sayle <roger@eyesopen.com>
14858
14859 PR java/13824
14860 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14861 as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14862 recursion.
14863
bb2ef5d4 148642004-01-29 Kazu Hirata <kazu@cs.umass.edu>
14865
14866 * config/frv/frv.c: Don't mention deprecated macros in
14867 comments. Remove some target-independent comments about
14868 target macros.
14869 * config/frv/frv.h: Likewise.
14870
87f9210f 148712004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14872
14873 * cfghooks.c (split_block): Set probability and count of the
14874 new edge.
14875
26863140 148762005-01-29 Josef Zlomek <zlomekj@suse.cz>
14877
14878 * dwarf2out.c (struct die_struct): Added field decl_id.
14879 (decl_die_table): Changed to hash table.
14880 (decl_die_table_allocated): Deleted.
14881 (decl_die_table_in_use): Deleted.
14882 (DECL_DIE_TABLE_INCREMENT): Deleted.
14883 (decl_die_table_hash): New function.
14884 (decl_die_table_eq): New function.
14885 (lookup_decl_die): Lookup in a hash table.
14886 (equate_decl_number_to_die): Insert into a hash table.
14887 (dwarf2out_init): Init hash table decl_die_table.
14888
0ab96142 148892004-01-29 Jakub Jelinek <jakub@redhat.com>
14890
14891 PR optimization/13424
14892 * expr.c (store_constructor): Revert 2003-12-03 change.
14893
14894 * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14895 expected before returning early. Avoid sharing RTL if they
14896 need to be changed.
14897
14898 * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14899 handling so that memory attributes are preserved. Don't call
14900 ix86_set_move_mem_attrs.
14901 (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14902 (ix86_expand_clrstr): Rename src argument to
14903 dst. Rework rep_stos and strset handling so that memory attributes
14904 are preserved.
14905 (ix86_expand_strlen): Pass src argument to
14906 ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that
14907 memory attributes are preserved.
14908 (ix86_expand_strlensi_unroll_1): Add src argument. Use
14909 change_address instead of gen_rtx_MEM.
14910 * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14911 expanders.
14912 (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14913 strmovqi, strmovqi_rex64): Remove.
14914 (rep_mov*, strmov*): Prefix insn names with *.
14915 (strset, strset_singleop, rep_stos): New expanders.
14916 (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14917 strsetqi, strsetqi_rex64): Remove.
14918 (rep_stos*, strset*): Prefix insn names with *.
14919 (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode
14920 to SImode.
14921 (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14922 are preserved.
14923 (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14924 Prefix insn names with *.
14925 (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14926 (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14927 (strlenqi_1): New expander.
14928 * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14929
5f5d4cd1 149302004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14931
14932 * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14933 * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14934 verify_flow_info): Declaration removed.
14935 * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14936 (debug_bb, debug_bb_n): Add argument to dump_bb call.
14937 * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14938 try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14939 instead of delete_block.
14940 * cfghooks.c: Include timevar.h and toplev.h.
14941 (cfg_hooks): Define here.
14942 (verify_flow_info, dump_bb): Moved from cfg.c.
14943 (redirect_edge_and_branch, redirect_edge_and_branch_force,
14944 split_block, split_block_after_labels, move_block_after,
14945 delete_basic_block, split_edge, create_basic_block,
14946 create_empty_bb, can_merge_blocks_p, merge_blocks,
14947 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14948 New functions.
14949 * cfghooks.h (struct cfg_hooks): Added fields name,
14950 make_forwarder_block, tidy_fallthru_edge and
14951 move_block_after. Changed type of verify_flow_info, dump_bb,
14952 split_block fields. Renamed cfgh_split_edge and delete_block
14953 fields.
14954 (redirect_edge_and_branch, redirect_edge_and_branch_force,
14955 split_block, delete_block, split_edge, create_basic_block,
14956 can_merge_blocks_p, merge_blocks): Macros removed.
14957 (cfg_hooks): Do not export.
14958 (verify_flow_info, dump_bb, redirect_edge_and_branch,
14959 redirect_edge_and_branch_force, split_block, split_block_after_labels,
14960 move_block_after, delete_basic_block, split_edge, create_basic_block,
14961 create_empty_bb, can_merge_blocks_p, merge_blocks,
14962 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14963 Declare.
14964 (cfg_layout_rtl_cfg_hooks): Declare.
14965 * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14966 New functions.
14967 (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14968 (redirect_edge_with_latch_update): Removed.
14969 (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14970 * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14971 * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14972 rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14973 tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14974 cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14975 cfghooks.c.
14976 (rtl_create_basic_block): Coding style fix.
14977 (rtl_tidy_fallthru_edge, rtl_move_block_after,
14978 rtl_make_forwarder_block): New functions.
14979 (update_cfg_after_block_merging): Removed.
14980 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14981 * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14982 to dump_bb.
14983 * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14984 find_if_case_2): Don't update dominators.
14985 * timevar.def (TV_CFG_VERIFY): New.
14986 * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14987 * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14988 * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14989 (remove_bbs): Don't call remove_bbs.
14990 (create_preheader): Use make_forwarder_block.
14991 (mfb_keep_just, mfb_update_loops): New static functions.
14992
d41dc6f8 149932004-01-29 Kazu Hirata <kazu@cs.umass.edu>
14994
14995 * config/avr/avr.h: Remove target-independent comments about
14996 target macros.
14997
8abdf97f 149982004-01-28 Daniel Berlin <dberlin@dberlin.org>
57ba96e9 14999
8abdf97f 15000 * timevar.c (timevar_print): Mention when checking is enabled.
15001
fe097a11 150022004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
15003
15004 * c-lex.c (c_lex): Rename to...
15005 (c_lex_with_flags): Add new parameter to get CPP flags.
15006 (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15007 * c-pragma.h (c_lex_with_flags): Declare.
15008
e4ef650e 150092004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15010
15011 * config/mcore/mcore.c (mcore_external_libcall): Add a
15012 comment.
15013 (mcore_return_in_memory): Likewise.
15014
5ee57edb 150152004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15016
15017 * config/mcore/mcore-protos.h: Remove the prototype for
15018 mcore_setup_incoming_varargs.
15019 * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15020 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15021 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15022 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15023 (TARGET_STRUCT_VALUE_RTX): Likewise.
15024 (TARGET_RETURN_IN_MEMORY): Likewise.
15025 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15026 (mcore_setup_incoming_varargs): Make it static. Receive the
15027 first argument by reference. Add argument second_time.
15028 (mcore_external_libcall): New.
15029 (mcore_return_in_memory): Likewise.
15030 * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15031 (PROMOTE_FUNCTION_RETURN): Likewise.
15032 (STRUCT_VALUE): Likewise.
15033 (RETURN_IN_MEMORY): Likewise.
15034 (SETUP_INCOMING_VARARGS): Likewise.
15035 (PROMOTE_PROTOTYPES): Likewise.
15036 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15037
efc813ec 150382004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15039
15040 * config/m32r/m32r-protos.h: Remove the prototype for
15041 m32r_setup_incoming_varargs.
15042 * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15043 (TARGET_STRUCT_VALUE_RTX): Likewise.
15044 (TARGET_RETURN_IN_MEMORY): Likewise.
15045 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15046 (m32r_return_in_memory): New.
15047 (m32r_setup_incoming_varargs): Make it static.
15048 * config/m32r/m32r.h: Remove #undef of
15049 ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out
15050 definitions of PROMOTE_FUNCTION_ARGS and
15051 PROMOTE_FUNCTION_RETURN.
15052 (PROMOTE_PROTOTYPES): Remove.
15053 (RETURN_IN_MEMORY): Likewise.
15054 (STRUCT_VALUE): Likewise.
15055
c8c47ddf 150562004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15057
15058 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15059 (TARGET_STRUCT_VALUE_RTX): Likewise.
15060 (m68k_struct_value_rtx): Likewise.
15061 * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15062 STRUCT_VALUE_REGNUM.
15063 (PROMOTE_PROTOTYPES): Remove.
15064 * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15065 STRUCT_VALUE_REGNUM.
15066 * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15067 * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15068
5fb9750f 150692004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15070
15071 * config/stormy16/stormy16.c
15072 (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15073 TARGET_BUILD_BUILTIN_VA_LIST.
15074
6aa67e60 150752004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15076
15077 * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15078 (TARGET_STRUCT_VALUE_RTX): Likewise.
15079 (TARGET_RETURN_IN_MEMORY): Likewise.
15080 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15081 (v850_return_in_memory): Likewise.
15082 (v850_setup_incoming_varargs): Likewise.
15083 * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15084 (SETUP_INCOMING_VARARGS): Likewise.
15085 (RETURN_IN_MEMORY): Likewise.
15086 (STRUCT_VALUE): Likewise.
15087
322f231a 150882004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15089
15090 * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15091 (fr30_setup_incoming_varargs): Don't use
15092 STRICT_ARGUMENT_NAMING.
15093 * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15094 (STRICT_ARGUMENT_NAMING): Likewise.
15095
7593a0cf 150962004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15097
15098 * config/frv/frv-protos.h: Remove the prototype for
15099 frv_expand_builtin_saveregs.
15100 * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15101 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15102 (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15103 STRUCT_VALUE_REGNUM.
15104 (frv_expand_builtin_saveregs): Make it static.
15105 (frv_struct_value_rtx): New.
15106 * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15107
4e8871a0 151082004-01-29 Jan Hubicka <jh@suse.cz>
15109
15110 PR c++/12850
15111 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15112 initial pointers.
15113 * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15114 for functions that will be only inlined.
15115 (cgraph_mark_function_to_output): Likewise.
15116 (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15117 do not clear function body.
15118 * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15119 (tree_rest_of_compilation): Reorganize the logic releasing function
15120 body to use callgraph datastructure.
15121
18e88b71 151222004-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15123
15124 * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15125 to register_operand.
15126
20dd001f 151272004-01-28 Zack Weinberg <zack@codesourcery.com>
15128
15129 * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15130 (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15131 match_operand expressions so that all match_dups appear
15132 lexically after their corresponding match_operands.
15133
f4ac50fb 151342004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15135
15136 * config/h8300/h8300.c (WORD_REG_USED): Use
15137 HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15138 (compute_saved_regs): Likewise.
15139 (h8300_expand_prologue): Likewise. Allocate locals after
15140 saving registers.
15141 (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15142 of FRAME_POINTER_REGNUM. Deallocate locals before saving
15143 registers.
15144 (h8300_initial_elimination_offset): Adjust for the new frame
15145 layout, which swaps flips the order of locals and saved
15146 registers.
15147 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15148 (HARD_FRAME_POINTER_REGNUM): New.
15149 (ELIMINABLE_REGS): Add an elimination rule from
15150 FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15151 (REGISTER_NAMES): Add fp.
15152 * config/h8300/h8300.md (FP_REG): Change to 11.
15153 (HFP_REG): New.
15154
c71bf6e4 151552004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15156
15157 * genrecog.c (write_node): Remove a useless local variable.
15158
0e6605c4 151592004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
15160
15161 * Makefile.in (options.c options.h): Use stamp file s-options to
15162 avoid unnecessary rebuilds.
15163 (options.o): New target listing dependencies.
15164 (gtyp-gen.h): Use stamp file s-gtyp-gen.
15165 (STAGESTUFF): Add s-gtyp-gen.
15166
c4e03242 151672004-01-28 Richard Henderson <rth@redhat.com>
15168
15169 * ggc.h (ggc_free): Declare.
15170 * ggc-common.c (ggc_realloc): Use it.
15171 * ggc-page.c: Remove lots of inline markers.
15172 (globals): Add free_object_list.
15173 (ggc_alloc): Tidy.
15174 (ggc_free, validate_free_objects): New.
15175 (poison_pages): Provide default.
15176 (ggc_collect): Call validate_free_objects; emit markers to
15177 the debug file.
15178
2cb948c5 151792004-01-28 Zack Weinberg <zack@codesourcery.com>
15180 Jim Wilson <wilson@specifixinc.com>
15181
15182 * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15183 Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15184 scratch pointer.
15185 (ia64_secondary_reload_class): Delete case GR_REGS.
15186 * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15187 Do not allocate a scratch register.
15188 (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15189
433e77e8 151902004-01-28 Jan Hubicka <jh@suse.cz>
15191
15192 * gcse.c (bypass_block): Prevent edges to be unified when we are
15193 about to emit compenstation code.
15194
87872629 151952004-01-28 Nick Clifton <nickc@redhat.com>
15196
15197 * config/arm/arm.c (arm_expand_builtin): Force second argument of
15198 the setcwx insn into a register.
15199
7dd4dac3 152002004-01-28 Richard Sandiford <rsandifo@redhat.com>
15201
15202 * config/fp-bit.c (pack_d): When using paired doubles to implement
15203 a long double, round the high part separately.
15204 (unpack_d): Fix the case in which the high part is a power of two
15205 and the low part is a nonzero value of the opposite sign.
15206
ec618ada 152072004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15208
15209 * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15210 (TARGET_STRUCT_VALUE_RTX): Likewise.
15211 (c4x_external_libcall): Likewise.
15212 (c4x_struct_value_rtx): Likewise.
15213 * config/c4x/c4x.h: Remove.
15214 (STRUCT_VALUE_REGNUM): Likewise.
15215 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15216
21be8eee 152172004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15218
15219 * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15220 (TARGET_STRUCT_VALUE_RTX): Likewise.
15221 * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15222 (STRUCT_VALUE): Likewise.
15223 (PROMOTE_PROTOTYPES): Likewise.
15224
6edde44b 152252004-01-27 Roger Sayle <roger@eyesopen.com>
15226
15227 * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15228 CONST_INT before using INTVAL.
15229
9e232130 152302004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
15231
15232 * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15233 * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15234 frame if !TARGET_BACKCHAIN.
2cb948c5 15235 * config/s390/s390.md ("allocate_stack"): Use pattern only if
9e232130 15236 TARGET_BACKCHAIN.
15237 * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15238
4d4b27e7 152392004-01-27 Zack Weinberg <zack@codesourcery.com>
15240
15241 * ia64.c (ia64_function_arg): When placing HFAs in integer
15242 registers, do not special case the mode used for complex
15243 types. Do not advance int_regs until the current register
15244 is full.
15245
5b8192c3 152462004-01-27 Richard Sandiford <rsandifo@redhat.com>
15247
15248 PR target/7297
15249 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15250
de68370e 152512004-01-27 David Edelsohn <edelsohn@gnu.org>
15252
15253 * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15254 slow, unaligned loads and stores while debugging. Fix formatting.
15255
ebd6ee23 152562004-01-27 David Edelsohn <edelsohn@gnu.org>
15257
15258 * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15259 of computing wmode.
15260 (restore_stack_nonlocal): Same.
15261
2b49746a 152622004-01-27 Devang Patel <dpatel@apple.com>
4d4b27e7 15263
2b49746a 15264 * Makefile.in (dwarf2out.o): Depend on input.h
4d4b27e7 15265 * dbxout.c (dbx_debug_hooks): Add new empty hook for
2b49746a 15266 imported_module_or_decl.
15267 (xcoff_debug_hooks): Same.
15268 * sdbout.c (sdb_debug_hooks): Same.
15269 * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15270 * debug.c (do_nothing_debug_hooks): Same.
15271 (debug_nothing_tree_tree): New function.
15272 * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15273 * dwarf2out.c: Include input.h.
15274 (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15275 (remove_child_TAG): New function.
15276 (dwarf_tag_name): Handle DW_TAG_imported_module.
15277 (gen_subprogram_die): Equate decl number to declaration die. Do not
15278 remove all children dies while reusing declaration die for definition.
15279 Instead, selectively remove only formal parameters.
15280 (gen_variable_die): Equate variable decl to declaration die.
15281 (gen_field_die): Equate field decl to line number.
15282 (force_namespace_die): Replace it with ...
15283 (force_decl_die): ... this.
15284 (force_type_die): New function.
15285 (setup_namespace_context): Replace use of force_namespace_die() with
15286 force_decl_die().
15287 (gen_namespace_die): Same.
15288 (dwarf2out_imported_module_or_decl): New function.
15289
2aac53ce 152902004-01-27 Bob Wilson <bob.wilson@acm.org>
4d4b27e7 15291
2aac53ce 15292 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15293 on CQImode and CHImode incoming arguments in register a7.
15294 (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15295 * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15296 * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15297 xtensa_copy_incoming_a7 before reload.
4d4b27e7 15298
3f18719c 152992004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
15300
15301 * coverage.c (get_coverage_counts): Give a different message
15302 if flag_guess_branch_prob is set.
15303 * predict.c (counts_to_freqs): Return an int.
15304 (estimate_bb_frequencies): If counts_to_freqs returns zero,
15305 calculate estimates.
15306
f005e0cb 153072004-01-27 Kazu Hirata <kazu@cs.umass.edu>
15308
15309 * config/iq2000/iq2000-protos.h: Remove the prototype for
15310 iq2000_setup_incoming_varargs.
15311 * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15312 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15313 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15314 (TARGET_STRUCT_VALUE_RTX): Likewise.
15315 (TARGET_RETURN_IN_MEMORY): Likewise.
15316 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15317 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15318 (iq2000_return_in_memory): Likewise.
15319 (iq2000_setup_incoming_varargs): Make it static. Receive the
15320 first argument by reference.
15321 * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15322 (PROMOTE_FUNCTION_RETURN): Likewise.
15323 (PROMOTE_PROTOTYPES): Likewise.
15324 (RETURN_IN_MEMORY): Likewise.
15325 (STRUCT_VALUE): Likewise.
15326 (SETUP_INCOMING_VARARGS): Likewise.
15327 (STRICT_ARGUMENT_NAMING): Likewise.
15328
4502ba69 153292004-01-24 James A. Morrison <ja2morri@uwaterloo.ca>
15330
4d4b27e7 15331 * fixinc/fixinc.c (test_test): Initialize res.
4502ba69 15332 (start_flexer): Initialize pz_cmd_save.
15333
c480d0a9 153342004-01-27 Zack Weinberg <zack@codesourcery.com>
15335
15336 * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15337 SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15338
f626a9a0 153392004-01-27 Zack Weinberg <zack@codesourcery.com>
15340
15341 PR 7198
15342 * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15343 (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15344 (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15345 Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15346 Possibly rename pattern for consistency.
15347 Remove ??? comments suggesting that this be done.
15348 (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15349 New patterns.
15350 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15351 (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15352 (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15353 (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15354 Update to match.
15355
fa3ae0b9 153562004-01-27 Ian Lance Taylor <ian@wasabisystems.com>
15357
15358 * config/arm/arm.c (output_return_instruction): Only restore IP
15359 into SP if frame_pointer_needed.
15360
78122997 153612004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
15362
15363 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15364 for SCmode and DCmode if ARCH32.
15365 (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15366 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15367 if ARCH32.
15368 (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15369 if ARCH32.
15370 (BASE_OUTGOING_VALUE_REG): Likewise.
15371
8721ac35 153722004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
15373
15374 PR target/10904
15375 PR target/13058
15376 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15377 Forbid mode changes from SImode for lower FP regs if ARCH64.
15378
08d163a9 153792004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
15380
15381 * Makefile.in (bt-load.o): Depend on except.h.
15382 * bt-load.c (except.h): #include.
15383 (compute_defs_uses_and_gen): If insn at end of BB can throw
15384 within this function, consider registers used by it unavailable for
15385 btr migration.
15386 (move_btr_def): If insn at end of BB can throw, insert before rather
15387 than after.
15388
15389 * flags.h (flag_btr_bb_exclusive): Declare.
15390 * toplev.c (flag_btr_bb_exclusive): New variable.
15391 (f_options): Add btr-bb-exclusive.
15392 * bt-load.c (augment_live_range): Restore old behaviour if
15393 flag_btr_bb_exclusive is set.
15394 * common.opt: Add entry for -fbtr-bb-exclusive.
15395 * opts.c (common_handle_options): Same.
15396 * doc/invoke.texi: Document -fbtr-bb-exclusive.
f626a9a0 15397
08d163a9 15398 * bt-load.c (btrs_live_at_end): New variable.
15399 (compute_defs_uses_and_gen): Compute its pointed-to array.
15400 (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15401 (augment_live_range): When augmenting with a new dominator,
15402 use only its btrs_live_at_end set, but also add in the full set
15403 of the old dominator.
15404 (btr_def_live_range): Use btrs_live_at_end.
15405 (move_btr_def): Set other_btr_uses_before_def, and move new set
15406 to the end of the basic block, if appropriate.
15407 (migrate_btr_defs): Allocate and free btrs_live_at_end.
f626a9a0 15408
08d163a9 15409 * bt-load.c (basic_block_freq): Remove outdated comment.
15410
617f66bf 154112004-01-27 Alan Modra <amodra@bigpond.net.au>
15412
15413 * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15414 (PREDICATE_CODES): Remove duplicate.
15415 * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15416 (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15417 (MASK_PROFILE_KERNEL): Adjust define.
15418
fbbd4d68 154192004-01-27 Jakub Jelinek <jakub@redhat.com>
15420
15421 * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15422 of long string literals from 32 bytes to sizeof (void *) when !-Os
15423 and to 1 with -Os.
15424
abe5efd4 154252004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15426
15427 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15428 constant addresses in the normal mode.
15429
2ccf1c3a 154302004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15431
15432 * system.h (CHAR_BITFIELD): Delete.
15433 (BOOL_BITFIELD): New.
15434 * c-decl.c (c_scope): Use BOOL_BITFIELD.
15435 * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15436
9363d006 154372004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15438
15439 * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15440 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15441 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15442 (TARGET_STRUCT_VALUE_RTX): Likewise.
15443 (TARGET_RETURN_IN_MEMORY): Likewise.
15444 (arc_return_in_memory): Likewise.
15445 * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15446 (PROMOTE_FUNCTION_RETURN): Likewise.
15447 (RETURN_IN_MEMORY): Likewise.
15448 (STRUCT_VALUE): Likewise.
15449
baca0a47 154502004-01-26 Richard Henderson <rth@redhat.com>
15451
15452 * c-parse.in (extension): Use itype.
15453 (SAVE_EXT_FLAGS): Don't allocate a tree.
15454 (RESTORE_EXT_FLAGS): Don't read a tree.
15455
663fb689 154562004-01-26 Jan Hubicka <jh@suse.cz>
15457
15458 * cselib.c (discard_useless_values): Clear out value pointer pointing
15459 to datastructure to be recycled.
15460
c0fe9e54 154612004-01-25 Jan Hubicka <jh@suse.cz>
15462
15463 * genextract.c (main): Do not output the memset when not checking.
15464
52d2fba2 154652004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15466
15467 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15468 switch statement instead of a chain of if statements.
15469
a81f2556 154702004-01-26 Jeff Law <law@redhat.com>
15471
15472 * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
15473 acute accents for Petur Runolfsson's entry.
15474
4faa8f4d 154752004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15476
15477 * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15478 (TARGET_RETURN_IN_MEMORY): Likewise.
15479 * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15480 (RETURN_IN_MEMORY): Likewise.
15481
15ac28e3 154822004-01-26 Fariborz Jahanian <fjahanian@apple.com>
1f2ba3bd 15483
f626a9a0 15484 * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15485 unaligned load/store into smaller loads and stores.
1f2ba3bd 15486
15ac28e3 154872004-01-26 Fariborz Jahanian <fjahanian@apple.com>
1f2ba3bd 15488
f626a9a0 15489 * function.c (assign_parms): Do not assign
15490 long long argument to memory in prologue if
15491 is it loaded into register.
1f2ba3bd 15492
15ac28e3 154932004-01-26 Fariborz Jahanian <fjahanian@apple.com>
1f2ba3bd 15494
15495 PR middle-end/13779
f626a9a0 15496 * expr.c (emit_group_load): split constant
15497 correctly into register components of PARALLEL insn.
1f2ba3bd 15498
15ac28e3 154992004-01-26 Fariborz Jahanian <fjahanian@apple.com>
1f2ba3bd 15500
15501 * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15502 Use adjust_address_nv directly with appropriate mode.
15503 (restore_stack_nonlocal): Ditto.
15504
4fe4af61 155052004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15506
15507 * config/xtensa/xtensa-protos.h: Remove the prototype for
15508 xtensa_builtin_saveregs.
15509 * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15510 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15511 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15512 (TARGET_STRUCT_VALUE_RTX): Likewise.
15513 (TARGET_RETURN_IN_MEMORY): Likewise.
15514 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15515 (xtensa_builtin_saveregs): Make it static.
15516 (xtensa_return_in_memory): New.
15517 * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15518 (PROMOTE_FUNCTION_RETURN): Likewise.
15519 (PROMOTE_PROTOTYPES): Likewise.
15520 (STRUCT_VALUE): Likewise.
15521 (RETURN_IN_MEMORY): Likewise.
15522 (EXPAND_BUILTIN_SAVEREGS): Likewise.
15523
4c66acf1 155242004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15525
15526 * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15527 (arm_setup_incoming_varargs): Likewise.
15528 * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15529
05b21e76 155302004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15531
15532 * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15533 (cris_setup_incoming_varargs): Likewise.
15534 * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15535
30df9aa7 155362004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15537
15538 * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15539 (ns32k_struct_value_rtx): Likewise.
15540 * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15541 NS32K_STRUCT_VALUE_REGNUM.
15542
f2eb2b4d 155432004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15544
15545 * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15546 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15547 (TARGET_STRUCT_VALUE_RTX): Likewise.
15548 (arm_struct_value_rtx): Likewise.
15549 * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15550 (STRUCT_VALUE): Likewise.
15551 (STRUCT_VALUE_REGNUM): Likewise.
15552 (PROMOTE_PROTOTYPES): Likewise.
15553
ac9a2599 155542004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15555
15556 * config/ia64/ia64-protos.h: Remove the prototype for
15557 ia64_setup_incoming_varargs and ia64_return_in_memory.
15558 * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15559 (TARGET_RETURN_IN_MEMORY): Likewise.
15560 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15561 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15562 (ia64_setup_incoming_varargs): Adjust the arguments to meet
15563 the requirement of TARGET_SETUP_INCOMING_VARARGS.
15564 (ia64_return_in_memory): Make it static. Change the return
15565 type to bool from int. Add an argument.
15566 (ia64_struct_value_rtx): New.
15567 * config/ia64/ia64.h: Remove commented-out definitions of
15568 PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15569 PROMOTE_PROTOTYPES.
15570 (RETURN_IN_MEMORY): Remove.
15571 (STRUCT_VALUE_REGNUM): Likewise.
15572 (STRICT_ARGUMENT_NAMING): Likewise.
15573
d483a581 155742004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
15575
15576 PR target/13666
15577 * config/sparc/sparc.c (function_arg_union_value): New function.
15578 (function_arg): Use it to deal with unions.
15579 (function_value): Likewise. Define 'regbase' only for ARCH64.
15580 Replace a conditional statement by a simpler one.
15581
8c6a2362 155822004-01-26 Richard Sandiford <rsandifo@redhat.com>
15583
15584 * config/mips/mips.c (mips16_optimize_gp): Delete.
15585 (mips_reorg): Don't call it.
15586
8609935c 155872004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15588
15589 * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15590 (floatunsqihf2): Remove operand 6.
15591 (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15592 fix patterns.
15593 (ldi_conditional, ldf_conditional): Validate operands.
15594
716325cf 155952004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15596
15597 * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15598 (HAVE_GAS_HIDDEN): Undefine as interim measure.
f626a9a0 15599
635a078f 156002004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15601
15602 * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
15603 memory references if TARGET_EXPOSE_LDP nonzero.
15604
1b82ab16 156052004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15606
15607 * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
f626a9a0 15608
436facd5 156092004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15610
15611 * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15612 invalid operand combinations.
15613
c88fb8c1 156142004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15615
15616 * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15617 c4x_legitimate_address_p. Fix post_modify check.
436facd5 15618
c88fb8c1 15619 * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15620 * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
f626a9a0 15621
b8debbe8 156222004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15623
15624 * config/pa/pa-protos.h: Remove the prototype for
15625 hppa_builtin_saveregs. Add a prototype for
15626 pa_return_in_memory.
15627 * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15628 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15629 (TARGET_STRUCT_VALUE_RTX): Likewise.
15630 (TARGET_RETURN_IN_MEMORY): Likewise.
15631 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15632 (pa_struct_value_rtx): Likewise.
15633 (pa_return_in_memory): Likewise.
15634 * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15635 PA_STRUCT_VALUE_REGNUM.
15636 (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15637 (EXPAND_BUILTIN_SAVEREGS): Remove.
15638 (PROMOTE_PROTOTYPES): Likewise.
15639 (PROMOTE_FUNCTION_RETURN): Likewise.
15640
64dbec6f 156412004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15642
15643 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15644 (TARGET_STRUCT_VALUE_RTX): Likewise.
15645 (vax_struct_value_rtx): Likewise.
15646 * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15647 VAX_STRUCT_VALUE_REGNUM.
15648 (PROMOTE_PROTOTYPES): Remove.
15649
de74ad77 156502004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
f626a9a0 15651
15652 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
15653
e78db7f7 156542003-04-25 Chris Demetriou <cgd@broadcom.com>
15655
15656 * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15657 and MIPS64 have HI/LO interlocks. Update comment.
15658
b4073628 156592004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15660
15661 * config/stormy16/stormy16-protos.h: Remove the prototype for
15662 xstormy16_setup_incoming_varargs.
15663 * config/stormy16/stormy16.c
15664 (xstormy16_setup_incoming_varargs): Remove.
15665 (xstormy16_return_in_memory): New.
15666 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15667 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15668 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15669 (TARGET_STRUCT_VALUE_RTX): Likewise.
15670 (TARGET_RETURN_IN_MEMORY): Likewise.
15671 * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15672 (PROMOTE_FUNCTION_RETURN): Likewise
15673 (PROMOTE_PROTOTYPES): Likewise
15674 (RETURN_IN_MEMORY): Likewise
15675 (STRUCT_VALUE): Likewise
15676 (SETUP_INCOMING_VARARGS): Likewise
15677
8ce4ae95 156782004-01-25 Richard Sandiford <rsandifo@redhat.com>
15679
15680 * config/mips/mips.c (mips_offset_within_object_p): New function.
15681 (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15682 SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
15683 ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15684
67008030 156852004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15686
15687 * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15688 (PROMOTE_FUNCTION_RETURN): Likewise.
15689
f2d49d02 156902004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15691
15692 * config/mn10300/mn10300-protos.h: Remove the prototype for
15693 mn10300_builtin_saveregs.
15694 * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15695 (TARGET_STRUCT_VALUE_RTX): Likewise.
15696 (TARGET_RETURN_IN_MEMORY): Likewise.
15697 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15698 (mn10300_return_in_memory): Likewise.
15699 (mn10300_builtin_saveregs): Make it static.
15700 * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15701 (RETURN_IN_MEMORY): Likewise.
15702 (STRUCT_VALUE): Likewise.
15703 (EXPAND_BUILTIN_SAVEREGS): Likewise.
15704
fa015b9a 157052004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
15706
15707 PR bootstrap/13853
15708 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15709
0c12a362 157102004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15711
15712 * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15713 using ccr.
15714
3dbe4d04 157152004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15716
15717 * config/i860/i860-protos.h: Remove the prototype for
15718 i860_saveregs.
15719 * config/i860/i860.c (i860_saveregs): Make it static.
15720 (i860_struct_value_rtx): New.
15721 (TARGET_STRUCT_VALUE_RTX): Likewise.
15722 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15723 * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15724 I860_STRUCT_VALUE_REGNUM.
15725 (EXPAND_BUILTIN_SAVEREGS): Remove.
15726
1e63778b 157272004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15728
15729 * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15730 (TARGET_RETURN_IN_MEMORY): Likewise.
15731 (m68hc11_struct_value_rtx): Likewise.
15732 (m68hc11_return_in_memory): Likewise.
15733 * config/m68hc11/m68hc11.h: Remove a commented-out definition
15734 of PROMOTE_PROTOTYPES.
15735 (RETURN_IN_MEMORY): Remove.
15736 (STRUCT_VALUE_REGNUM): Likewise.
15737
29425937 157382004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15739
15740 * config/mmix/mmix-protos.h: Remove the prototype for
15741 mmix_setup_incoming_varargs.
15742 * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15743 (TARGET_STRUCT_VALUE_RTX): Likewise.
15744 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15745 (mmix_setup_incoming_varargs): Make it static.
15746 (mmix_struct_value_rtx): New.
15747 * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15748 Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15749 (STRUCT_VALUE_REGNUM): Remove.
15750 (SETUP_INCOMING_VARARGS): Likewise.
15751
f9232117 157522004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15753
15754 * config/mips/mips-protos.h: Remove the prototypes for
15755 mips_setup_incoming_varargs and mips_return_in_memory.
15756 * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15757 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15758 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15759 (TARGET_STRUCT_VALUE_RTX): Likewise.
15760 (TARGET_RETURN_IN_MEMORY): Likewise.
15761 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15762 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15763 (mips_setup_incoming_varargs): Match the prototype for
15764 TARGET_SETUP_INCOMING_VARARGS.
15765 (mips_return_in_memory): Make it static. Add argument fntype.
15766 (mips_strict_argument_naming): New.
15767 * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15768 (PROMOTE_FUNCTION_ARGS): Likewise.
15769 (PROMOTE_FUNCTION_RETURN): Likewise.
15770 (STRUCT_VALUE): Likewise.
15771 (RETURN_IN_MEMORY): Likewise.
15772 (SETUP_INCOMING_VARARGS): Likewise.
15773 (STRICT_ARGUMENT_NAMING): Likewise.
15774
ee782504 157752004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15776
15777 * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15778 (TARGET_RETURN_IN_MEMORY): Likewise.
15779 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15780 (ip2k_return_in_memory): Likewise.
15781 (ip2k_setup_incoming_varargs): Likewise.
15782 * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15783 (STRUCT_VALUE): Likewise.
15784 (STRUCT_VALUE_INCOMING): Likewise.
15785 (SETUP_INCOMING_VARARGS): Likewise.
15786
cfd55026 157872004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15788
15789 * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15790 (TARGET_RETURN_IN_MEMORY): Likewise.
15791 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15792 (avr_return_in_memory): Remove.
15793 * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15794 (STRUCT_VALUE): Likewise.
15795 (STRUCT_VALUE_INCOMING): Likewise.
15796 (STRICT_ARGUMENT_NAMING): Likewise.
15797
7f518aaf 157982004-01-25 Jan Hubicka <jh@suse.cz>
15799
15800 * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15801
5b1aef3e 158022004-01-25 Richard Sandiford <rsandifo@redhat.com>
15803
15804 * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15805 (mips_regno_mode_ok_for_base_p): Declare.
15806 * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15807 (FRAME_POINTER_REGNUM): Renumber to 78.
15808 (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15809 (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15810 (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15811 (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15812 (REG_MODE_OK_FOR_BASE_P): Likewise.
15813 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15814 entry for 77 to "$arg" and entry for 78 to "$frame".
15815 (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15816 (mips_reg_mode_ok_for_base_p): Remove.
15817 (mips_regno_mode_ok_for_base_p): New function, derived from old
15818 BASE_REG_P macro. Don't enforce the mips16 stack pointer
15819 restrictions unless we're being strict.
15820 (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15821
4885b286 158222004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15823
15824 * c-common.h: Fix comment typos.
15825 * c-decl.c: Likewise.
15826 * cgraphunit.c: Likewise.
15827 * combine.c: Likewise.
15828 * et-forest.c: Likewise.
15829 * flow.c: Likewise.
15830 * function.c: Likewise.
15831 * ifcvt.c: Likewise.
15832 * integrate.c: Likewise.
15833 * jump.c: Likewise.
15834 * postreload.c: Likewise.
15835 * varray.c: Likewise.
15836
47e051ca 158372004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15838
15839 * doc/frontends.texi: Update copyright.
15840 * doc/gcov.texi: Likewise.
15841 * doc/gty.texi: Likewise.
15842 * doc/sourcebuild.texi: Likewise.
15843 * doc/standards.texi: Likewise.
15844
15d1cdae 158452004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
15846
15847 PR target/12978
15848 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15849 Remove movstrqi_small because it conflicts with movstrqi_large.
15850
9beb7d17 158512004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15852
15853 * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15854 (TARGET_STRUCT_VALUE_RTX): Likewise.
15855 (cris_struct_value_rtx): Likewise.
15856 * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15857 (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15858 STRUCT_VALUE_REGNUM.
15859 (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15860
960670fc 158612004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
15862
15863 PR bootstrap/13848
15864 * cse.c (cse_cc_succs): Change the mode of the source expression
15865 as soon as decide we need a new mode. Don't permit changing modes
15866 if we found a match in a successor block.
15867 (cse_condition_code_reg): Save original mode of source expression
15868 so that we know whether we have to change the mode in other
15869 insns.
15870
d28edf0d 158712004-01-24 Jan Hubicka <jh@suse.cz>
15872
15873 * emit-rtl.c (change_address, adjust_address_1, offset_address,
15874 widen_memory_access): Return early when there is nothing to change.
15875
85e70f49 158762004-01-24 Jakub Jelinek <jakub@redhat.com>
15877
15878 * simplify-rtx.c (simplify_relational_operation): Don't
15879 simplify address == constant into address + -constant == 0.
15880
d418f489 158812004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15882
15883 * gcc.c (process_command): Don't internationalize the
15884 Copyright message.
15885 * mips-tfile.c (main): Likewise.
15886
3c5749b6 158872004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
15888
15889 * cse.c: (cse_cc_succs) Fix comparison warning.
15890
f706920f 158912004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15892
15893 * config/h8300/h8300.md: Remove extraneous USE in expanders.
15894
9a5775fe 158952004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15896
15897 * config/h8300/h8300-protos.h: Provide prototypes for
15898 h8300_legitimate_constant_p and h8300_legitimate_address_p.
15899 * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15900 (h8300_rtx_ok_for_base_p): Likewise.
15901 (h8300_legitimate_address_p): Likewise.
15902 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15903 h8300_legitimate_constant_p.
15904 (RTX_OK_FOR_BASE_P): Remove.
15905 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15906
61c2d1b0 159072004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15908
15909 * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15910 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15911 (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15912 (REG_OK_FOR_BASE_STRICT_P): Likewise.
15913 (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15914 (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15915 (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15916 (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15917
52bc1318 159182004-01-24 Jan Hubicka <jh@suse.cz>
15919
15920 * cselib.c (remove_useless_values): Do not access discarded values.
15921
9b73f131 159222004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
15923
15924 * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15925 arrays.
15926
dcdca5f7 159272004-01-23 Kazu Hirata <kazu@cs.umass.edu>
15928
15929 * recog.c: Fix a typo in copyright.
15930
00962383 159312004-01-23 Andrew Pinski <apinski@apple.com>
15932
15933 * config/rs6000/rs6000.md (call): Fix misappiled patch.
15934 (call_value): Likewise.
15935
0c4f797f 159362004-01-23 Richard Henderson <rth@redhat.com>
15937
f626a9a0 15938 PR opt/12941
15939 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15940 (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15941 if SHIFT_COUNT_TRUNCATED is set.
0c4f797f 15942
abeadffe 159432004-01-23 Bob Wilson <bob.wilson@acm.org>
15944
15945 * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15946 separate real and imaginary parts.
15947 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15948
193c2805 159492004-01-23 Hartmut Penner <hpenner@de.ibm.com>
15950
15951 PR target/13674
15952 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15953 loading into GPR.
15954
992f5b1b 159552004-01-23 Jan Hubicka <jh@suse.cz>
15956
3988ef8b 15957 * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
15958 change.
15959
992f5b1b 15960 * alloc-pool.c (align_four): Kill.
15961 (create_alloc_pool): Align size to eight.
15962 (free_alloc_pool, free_pool): Invalidate deallocated data.
15963
124ac4e4 159642004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
15965
15966 PR gcc/1532
15967 * cse.c (cse_change_cc_mode): New static function.
15968 (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15969 (cse_condition_code_reg): New function.
15970 * rtl.h (cse_condition_code_reg): Declare.
15971 * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15972 * target.h (struct gcc_target): Add fixed_condition_code_regs and
15973 cc_modes_compatible.
15974 * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15975 (TARGET_CC_MODES_COMPATIBLE): Define.
15976 (TARGET_INITIALIZER): Add new initializers.
15977 * targhooks.c (default_cc_modes_compatible): New function.
15978 * targhooks.c (default_cc_modes_compatible): Declare.
15979 * hooks.c (hook_bool_intp_intp_false): New function.
15980 * hooks.h (hook_bool_intp_intp_false): Declare.
15981 * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15982 (TARGET_CC_MODES_COMPATIBLE): Define.
15983 (ix86_fixed_condition_code_regs): New static function.
15984 (ix86_cc_modes_compatible): Likewise.
15985 * doc/tm.texi (Condition Code): Document new hooks.
15986
a3278934 159872004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15988
15989 * fixinc/inclhack.def (bad_lval): Renamed to ...
15990 (alpha_bad_lval): ... this.
15991 Removed file list.
15992 Restrict to alpha*-dec-osf*.
15993 * fixinc/fixincl.x: Regenerate.
15994 * fixinc/tests/base/dirent.h: Remove, moving test ...
15995 * fixinc/tests/base/testing.h: ... here, reflecting new name.
15996
32a8d34e 159972004-01-23 Zack Weinberg <zack@codesourcery.com>
15998
74275542 15999 PR c/13814
32a8d34e 16000 * c-decl.c (diagnose_mismatched_decls): Also discard a
16001 built-in if we encounter an old-style definition with the
16002 same name.
16003
83ae44d6 160042004-01-23 Jakub Jelinek <jakub@redhat.com>
16005
16006 * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16007 set to default{32,64}.
16008
a4fe931d 160092004-01-21 Jakub Jelinek <jakub@redhat.com>
16010
16011 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16012 [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16013
55787a2f 160142004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
32a8d34e 16015 Olivier Hainque <hainque@act-europe.fr>
55787a2f 16016
16017 * fold-const.c (fold_binary_op_with_conditional_arg): Only
16018 build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16019
e027ee9c 160202004-01-23 Daniel Jacobowitz <drow@mvista.com>
16021
16022 * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16023 size for minipool references.
16024
89ab3887 160252004-01-23 Roger Sayle <roger@eyesopen.com>
16026
16027 * real.c (real_floor, real_ceil): Tweak to allow input and output
16028 arguments to overlap.
16029 (real_round): New function to implement round(3m) semantics.
16030 * real.h (real_round): Prototype here.
16031 * builtins.c (fold_builtin_round): New function to constant fold
16032 round, roundf and roundl.
16033 (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16034
adbf1ac5 160352004-01-23 Alexandre Oliva <aoliva@redhat.com>
16036
16037 PR optimization/13819
32a8d34e 16038 * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
adbf1ac5 16039 introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16040 (sh_handle_sp_switch_attribute): Remove warning.
16041
82d96732 160422003-11-30 Jan Hubicka <jh@suse.cz>
16043
16044 * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
16045
a091e4f5 160462004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
16047
16048 * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16049 may or may not return non-NIL.
16050 * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16051 check CANNOT_CHANGE_MODE_CLASS
16052
c59b7e96 160532004-01-23 Jan Hubicka <jh@suse.cz>
16054
16055 * basic-block.h (PROP_POSTRELOAD): New macro.
16056 (CLEANUP_LOG_LINKS): New.
16057 * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16058 * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
16059
16060 * cselib.c (value_pool): New.
16061 (new_cselib_val): Use pool.
16062 (cselib_init): Initialize value_pool
16063 (cselib_finish): Free pool.
16064
cff583d4 160652004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
16066
16067 * config/sparc/sparc.c (scan_record_type): New function.
16068 (function_arg_slotno): Use it to determine which kinds of
16069 registers the record can be passed in.
16070
3f374426 160712004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
16072
16073 * config/pa/fptr.c: Fix old-style definition.
16074
8762566c 160752004-01-22 Paolo Bonzini <bonzini@gnu.org>
16076
16077 PR optimization/13724
16078 * cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
16079 represents the zero bits produced by a ZERO_EXTEND operation.
16080
deb45e60 160812004-01-22 Roger Sayle <roger@eyesopen.com>
16082
16083 PR optimization/13821
16084 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16085 correctly calculate the lowpart offset of the contracted subreg.
16086
bef7c312 160872004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
16088
16089 * doc/invoke.texi (Optimize Options): Note that --param arguments
16090 are subject to change without notice.
16091
04fb18a3 160922004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16093
16094 * config.gcc (mips-sgi-irix6*o32): Removed.
16095 * config/mips/iris6-o32-as.h: Likewise.
16096 * config/mips/iris6-o32-gas.h: Likewise.
16097 * config/mips/iris6-o32.h: Likewise.
16098
10d3796f 160992004-01-22 Jan Hubicka <jh@suse.cz>
16100
16101 * cfgcleanup.c (first_pass): New static variable.
16102 (try_forward_edges): Add work limiting check for threading.
16103 (try_crossjump_bb): Add work limiting check for crossjumping.
16104 (try_optimize_cfg): Maintain first pass variable.
16105
1732796a 161062004-01-22 Bob Wilson <bob.wilson@acm.org>
16107
16108 * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16109 handles complex and vector modes.
16110
d325f92c 161112004-01-22 Kazu Hirata <kazu@cs.umass.edu>
16112
16113 * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16114 (REG_OK_FOR_BASE_P_STRICT): Likewise.
16115 (STRICT): Likewise.
16116
27649ee4 161172004-01-22 Daniel Jacobowitz <drow@mvista.com>
16118
16119 * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16120 (genrtl_for_stmt): Remove emit_nop calls.
16121
b7f41348 161222004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16123
16124 PR target/13713
16125 PR target/13324
16126 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16127 movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16128 clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16129
37826745 161302004-01-22 Daniel Jacobowitz <drow@mvista.com>
16131
16132 * config/arm/arm.c: Include "debug.h".
32a8d34e 16133 (thumb_pushpop): Take two new arguments. Add some commentary.
37826745 16134 Output frame information when pushing.
16135 (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16136 thumb_pushpop.
16137 (thumb_output_function_prologue): Likewise. Accumulate a CFA
16138 offset, and pass it to thumb_pushpop. Output CFI information.
16139 (thumb_expand_prologue): Add some frame-related markers and notes.
16140
85307ce1 161412004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
16142
16143 * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16144 for TARGET_64BIT.
16145 (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16146 * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16147
f36eb1e9 161482004-01-22 Roger Sayle <roger@eyesopen.com>
16149 Paolo Bonzini <bonzini@gnu.org>
16150
16151 * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16152 (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16153 * rtl.h (subreg_lsb_1): Prototype here.
16154 * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16155 sign extensions.
16156
745f3229 161572004-01-22 Kazu Hirata <kazu@cs.umass.edu>
16158
16159 * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16160 macro need not be defined if jump-tables should contain
16161 relative addresses only when -fPIC or -fPIC is in effect.
16162
e5b19a8c 161632004-01-22 Jan Hubicka <jh@suse.cz>
16164
16165 * alias.c (reg_base_value): Turn into varray.
16166 (reg_base_value_size): Kill.
16167 (old_reg_base_value): New deletable varray.
16168 (alias_invariant_size): New variable.
16169 (REG_BASE_VALUE): Update to use varray.
16170 (find_base_value): Likewise.
16171 (record_set): Likewise.
16172 (record_base_value): Likewise.
16173 (memrefs_conflict_p): Likewise.
16174 (record_set): Likewise
16175 (record_base_value): Likewise.
16176 (memrefs_conflict_p): Use alias_invariant_size.
16177 (init_alias_analysis): Use varray; set alias_invariant_size;
16178 rescale other arrays to be sized by maxreg.
16179 (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16180
2f733a64 161812004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
16182
16183 * config/sparc/sparc.c (function_arg_slotno): Use
16184 FLOAT_TYPE_P to detect FP fields in structures.
16185 (function_arg_record_value_1): Likewise.
16186 (function_arg_record_value_2): Likewise.
16187
957211e4 161882004-01-22 Jan Hubicka <jh@suse.cz>
16189
16190 * function.c (allocate_struct_function): Do not initialize expr, emit
16191 and varasm.
16192 (prepare_function_start): Do it here.
16193 * c-parse.in (maybe_type_qual): Do not produce line number notes.
16194
a2f30e7a 161952004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
16196
16197 PR target/13559
16198 * config/sparc/sparc.c (function_arg_record_value_3): Revert
16199 to 'word_mode' once the first slot has been filled.
16200
1343412e 162012004-01-22 Olivier Hainque <hainque@act-europe.fr>
16202
16203 * config/sparc/sparc.c (function_arg_record_value_1): Fix
16204 computation of the number of integer registers required.
16205
6064b6a1 162062004-01-21 Kazu Hirata <kazu@cs.umass.edu>
16207
16208 * config/i386/i386.md: Simplify certain comparisons of
16209 const_int.
16210
6338eaa1 162112004-01-21 Andrew Pinski <apinski@apple.com>
16212
16213 PR target/13785
32a8d34e 16214 * config/rs6000/rs6000.md (call_value): Force operand
6338eaa1 16215 1 not operand 0 into a register.
16216
6ba04dfb 162172004-01-21 Kazu Hirata <kazu@cs.umass.edu>
16218
16219 * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16220 unwind-dw2-fde.h: Update copyright.
16221
4e352f76 162222004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16223
16224 * pa-protos.h: Update copyright.
16225 * pa.h: Likewise.
16226 * pa.md: Likewise.
16227
15ac28e3 162282004-01-21 Caroline Tice <ctice@apple.com>
bf004608 16229
dfd45e97 16230 PR target/12308
32a8d34e 16231 * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
bf004608 16232 flags register.
16233 (fix_truncdfdi2): Likewise.
16234 (fix_truncsfdi2): Likewise.
16235 (*fix_truncdi_1): Likewise.
16236 (fix_truncxfsi2): Likewise.
16237 (fix_truncdfsi2): Likewise.
16238 (fix_truncsfsi2): Likewise.
16239 (*fix_truncsi_1): Likewise.
16240 (fix_truncxfhi2): Likewise.
16241 (fix_truncdfhi2): Likewise.
16242 (fix_truncsfhi2): Likewise.
16243 (*fix_trunchi_1): Likewise.
32a8d34e 16244
a8349c62 162452004-01-21 Kazu Hirata <kazu@cs.umass.edu>
16246
16247 * alias.c, basic-block.h, c-common.c, c-common.h,
16248 c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16249 calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16250 combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16251 cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16252 defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16253 expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16254 genautomata.c, genconditions.c, genemit.c, genflags.c,
16255 gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16256 ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16257 langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16258 line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16259 ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16260 rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16261 target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16262 unwind.h, varray.c, varray.h: Update copyright.
16263
ab85a80c 162642004-01-21 Kazu Hirata <kazu@cs.umass.edu>
16265
16266 * config/h8300/coff.h: Update copyright.
16267 * config/h8300/elf.h: Likewise.
16268 * config/h8300/h8300-protos.h: Likewise.
16269 * config/h8300/h8300.c: Likewise.
16270 * config/h8300/h8300.h: Likewise.
16271 * config/h8300/h8300.md: Likewise.
16272
37935110 162732004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16274
16275 * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16276 ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16277 ultrix_unistd): New hacks.
16278 * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16279 ULTRIX_CONST2_CHECK): Add checks.
16280 * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16281 * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16282 * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16283 * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16284 * fixinc/tests/base/locale.h: New file.
16285 * fixinc/fixincl.x: Rebuilt.
16286
f899e75e 162872004-01-21 Andreas Jaeger <aj@suse.de>
16288 Michael Matz <matz@suse.de>
16289
16290 * doc/extend.texi (Extended Asm): Clarify memory clobber.
16291
69c4cf50 162922004-01-21 Jakub Jelinek <jakub@redhat.com>
16293
16294 * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16295 _Jv_RegisterClasses through a function pointer.
16296
5b952578 162972004-01-21 Falk Hueffner <falk@debian.org>
16298
16299 PR target/12898
16300 * config/alpha/alpha.c (alpha_emit_set_const_1): If
16301 no_new_pseudos, use gen_rtx_SET directly for SImode constants
16302 which need multiple instructions to emit.
16303
3c4489d5 163042004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
16305
16306 * config/m32r/m32r.h (CPP_SPEC): Define.
16307
b41346d4 163082004-01-21 Zack Weinberg <zack@codesourcery.com>
16309
16310 * c-decl.c (merge_decls): Kill different_binding_level and
16311 different_tu arguments; simplify throughout.
16312 (duplicate_decls): Likewise.
16313 (pushdecl, merge_translation_unit_decls): Update calls to
16314 duplicate_decls.
16315
8d2c7825 163162004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16317
16318 * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16319 $(SYSTEM_H).
16320 (print-rtl1.o): Depend on $(SYSTEM_H).
16321
ca6eabd1 163222004-01-20 Kelley Cook <kcook@gcc.gnu.org>
16323
16324 PR bootstrap/12730
16325 * configure.ac: Delete definition and subsitution of docdir.
16326 Add info, man, srcman and srcinfo to target hooks. Create doc/
16327 directory.
16328 * configure: Regenerate.
16329 * Makefile.in: Don't substitute docdir and delete all references
16330 throughout.
16331 (MAKEINFOFLAGS): Define.
16332 (stmp-docobjdir): Delete.
16333 (INFOFILES, MANFILES): Define.
16334 (info): Call lang.info, srcinfo and lang.srcinfo.
16335 (generated-manpages): Call lang.man, srcman and lang.srcman.
16336 (srcinfo, srcman): New rules to copy back files to source directory.
16337 (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16338 (install-man): Revamp rule.
16339 (clean): Update dvi directory.
16340 (distclean): Delete TAGS from front end directorys.
16341 (maintainer-clean): Delete all document files in source directory.
16342
16343 objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16344 (objc.srcman, objc.srcinfo): Likewise.
16345
cee0cd59 163462004-01-20 Bruce Korb <bkorb@gnu.org>
16347
16348 * fixinc/inclhack.def(math_exception): bypass only for glibc.
16349 (matherr_decl): rename & relocate as exception_structure.
16350 This fix must precede the math_exception fix.
16351
04b253e8 163522004-01-20 Roger Sayle <roger@eyesopen.com>
16353
16354 * fold-const.c (fold_convert): Rename to fold_convert_const.
16355 (fold_convert_const): Change arguments to take a tree_code,
16356 a type and the operand/expression to be converted. Return
16357 NULL_TREE if no simplification is possible. Add support for
16358 FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16359 (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16360 Adjust call to fold_convert to match new fold_convert_const.
16361 Avoid modifying the tree passed to fold in-place.
16362
4eeb8b5d 163632004-01-21 Alan Modra <amodra@bigpond.net.au>
16364
16365 * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16366 * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16367 * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16368
6bcdc1fb 163692004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16370
16371 * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16372 * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16373 Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
16374 (emit_move_sequence): Check scratch_reg first in various if statements.
16375 Extend source simplification to handle all 64-bit CONST_INTs.
16376 (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16377 frame size.
16378 (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16379 frame offset calculations.
16380 * pa.h (NEW_HP_ASSEMBLER): Add comment.
16381 (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16382 LEGITIMATE_64BIT_CONST_INT_P): Define.
16383 (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
16384 any CONST_INT as legitimate during and after reload.
16385 (VAL_32_BITS_P, INT_32_BITS): Define.
16386 (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16387
c09425a0 163882004-01-20 Jan Hubicka <jh@suse.cz>
16389
16390 * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16391 emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16392 containing hard regs are shared.
16393 (gen_hard_reg_clobber): New function.
16394 (hard_reg_clobbers): New array.
16395 * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16396 (copy_rtx): Do not copy clobbers containing hard regs.
16397 * rtl.h (gen_hard_reg_clobber): Declare.
16398
81dd33bf 163992004-01-20 Jan Hubicka <jh@suse.cz>
16400
16401 * varray.c: Include hashtab.h
16402 (varray_descriptor): New structure.
16403 (hash_descriptor, eq_descriptor, varray_descriptor,
16404 print_statistics): New static functions
16405 (varray_init, varray_grow): Update statistics
16406 (dump_varray_statistics): New function.
16407 * varray.h (dump_varray_statistics): Declare.
16408 * toplev.c (finalize): Call it.
16409 * Makefile.in (varray.o): Add dependency.
16410
69d7e198 164112004-01-20 Jan Hubicka <jh@suse.cz>
16412
16413 * cselib.c: Include alloc-pool.h
16414 (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16415 (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16416 (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16417 unchain_one_elt_loc_list_pool, unchain_one_value,
16418 new_cselib_val): Simplify using allocpool.
16419 (cselib_init): Initialize allocpools.
16420 (cselib_finish): Finish allocpools.
16421 * Makefile.in (cselib.o): Depend on alloc-pool.h
16422
b5f4a160 164232004-01-20 Richard Sandiford <rsandifo@redhat.com>
16424
16425 * config/mips/mips.c (mips_load_call_address): Make the call insn
16426 use $gp if it could be calling a lazy binding stub.
16427
88789115 164282004-01-20 Kazu Hirata <kazu@cs.umass.edu>
16429
16430 * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16431 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16432 (TARGET_STRUCT_VALUE_RTX): Likewise.
16433 * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16434 (PROMOTE_FUNCTION_RETURN): Remove.
16435 (STRUCT_VALUE): Remove.
16436
698e822a 164372004-01-20 Denis Chertykov <denisc@overta.ru>
16438
1d70e8d1 16439 PR bootstrap/13735
698e822a 16440 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16441 register as pointer after reload.
16442
68d0c847 164432004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
16444
16445 PR optimization/12440
16446 * loop.c: Include ggc.h.
16447 (loop_optimize): Run garbage collector between optimization of loops.
16448 * Makefile.in (loop.o): Add GGC_H dependency.
16449
4f2a7e5e 164502004-01-20 Hartmut Penner <hpenner@de.ibm.com>
16451
b41346d4 16452 * gcc/config/rs6000/rs6000.c (function_arg) Handle
4f2a7e5e 16453 vector register special in function without prototype.
16454 (function_arg_advance): Vector parameters get always
16455 GPRs allocated for the linux64 target.
16456
dc7d2585 164572004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
16458
16459 * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16460 not TARGET_M32RX_MASK.
16461
4107b7c6 164622004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
16463
16464 PR target/13557
16465 * config/sparc/sparc.c (function_arg): Reorder the cases.
16466
ceec9c13 164672004-01-19 Per Bothner <per@bothner.com>
16468
16469 Move cpp_reader's line_maps field to a shared global.
16470 * cpphash.h (cpp_reader): Rename line_maps field to line_table
16471 and change the type to a pointer rather than a struct.
16472 * cppinit.c (cpp_push_main_field): Adjust accordingly.
16473 * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16474 Likewise.
16475 * cppfiles.c (validate_pch): Likewise.
16476 * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16477 Likewise.
16478 * cpperror.c (print_location): Likewise.
16479 * cpplib.h (cpp_create_reader): New line_maps pointer parameter.
16480 * cppinit.c (cpp_create_reader): Handle new parameter.
16481 (cpp_destroy): Don't free line_maps - that's no longer our job.
16482 * input.h (line_table): New variable.
16483 * toplev.c (line_table): Declare variable.
16484 (general_init): Initialize line_table.
16485 * c-opts.c (c_common_init_options): Pass line_table to
16486 cpp_create_reader.
16487 * fix-header.c (read_scan_file): New local variable line_table.
16488 Initialize, and pass it to cpp_create_reader.
16489 * Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
16490 (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
16491
164922004-01-19 Per Bothner <per@bothner.com>
088db31b 16493
16494 Implement a cache for linemap_lookup.
16495 * line-map.h (struct_line_maps): Add cache field.
16496 * line-map.c (linemap_init): Zero cache field.
16497 (linemap_add): Set cache field to offset of newly allocated map.
16498 (linemap_lookup): Use and set cache field.
16499
52966c1d 165002004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
16501
16502 PR optimization/13567
16503 * cse.c (cse_basic_block): Call cse_insn with a non-null
16504 libcall_insn for the last SET insn of a no-confilict block.
16505
88a86c80 165062004-01-20 Kelley Cook <kcook@gcc.gnu.org>
16507
b41346d4 16508 * Makefile.in (target_noncanonical, program_transform_name): Use
88a86c80 16509 immediate define instead of deferred.
b41346d4 16510 (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
88a86c80 16511 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16512 GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16513 deferred backquote.
16514
a7ea5e81 165152004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
16516
16517 * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16518 true unconditionally.
16519 * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16520 Remove.
16521 (build_unary_op, build_modify_expr): Don't handle extended
16522 lvalues.
16523 (build_component_ref, build_conditional_expr): Call non_lvalue
16524 instead of pedantic_non_lvalue.
16525 (build_c_cast): Don't condition use of non_lvalue on pedantic.
16526 * fold-const.c (fold): Don't check pedantic directly for
16527 COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
16528 passed to pedantic_non_lvalue.
16529 * doc/extend.texi: Remove documentation of extended lvalues.
16530
efbc8128 165312004-01-19 Roger Sayle <roger@eyesopen.com>
16532
16533 PR optimization/5263
16534 * simplify-rtx.c (associative_constant_p): Delete.
16535 (simplify_associative_operation): Rewrite to linearize terms, and
16536 attempt to simplify new term against both left and right subterms.
16537 (simplify_binary_operation): Call swap_commutative_operands_p on
16538 op0 and op1, not trueop0 and trueop1. Move the initialization of
16539 trueop0 and trueop1 down to where first needed.
16540 (simplify_relational_operation): Likewise.
16541 * rtlanal.c (commutative_operand_precedence): Also order constant
16542 operands using avoid_constant_pool_reference.
16543
d67e1866 165442004-01-19 Richard Henderson <rth@redhat.com>
16545
b41346d4 16546 * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16547 don't check memory mode.
16548 (unaligned_memory_operand): Likewise.
16549 (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16550 abort for op0 not MEM.
d67e1866 16551
b41346d4 16552 * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16553 is not a reg, copy to a scratch first.
16554 (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16555 unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16556 unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16557 (reload_inqi, reload_inhi): Fix mode of op0.
16558 (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16559 reload_outhi_help): Likewise. Use define_insn_and_split.
d67e1866 16560
b41346d4 16561 * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16562 as well as $29 dead.
d67e1866 16563
07a23b4e 165642004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
16565
16566 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
16567 "tls_object" for thread-local objects.
16568 * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16569 "#tls" for thread-local sections.
16570 * configure.ac (thread-local checks): Specify --fatal-warnings in
16571 every binutils-specific checks. For sparc*-*-*, test whether the
16572 OS is Solaris and the tools are native and act accordingly.
16573 * configure: Rebuild.
16574
09b60667 165752004-01-19 Jeff Law <law@redhat.com>
16576
16577 * contrib.texi: Update Paolo Carlini's entry. New entries for
16578 Jerry Quinn and Petur Runolfsson.
b41346d4 16579
2198cdfa 165802004-01-19 Roger Sayle <roger@eyesopen.com>
16581
16582 * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16583 size, don't use the larger zero-extending loads.
16584
df9e12ce 165852004-01-19 Richard Henderson <rth@redhat.com>
16586
16587 * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16588 * alpha.md (UNSPEC_NT_LDA): Remove.
16589 (UNSPEC_CVTLQ, cvtlq): New.
16590 (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16591 (extendsidi2_fix): Remove.
16592 (extendsidi2 splitter): Use cvtlq.
16593 (extendsidi2 fp peepholes): Remove.
16594 (cvtql): Use SFmode instead of SImode.
16595 (fix_trunc?fsi): Update to match.
16596 (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16597 (movsi): Rename from movsi_nofix, remove f alternatives.
16598 (movsi_nt_vms): Similarly.
16599 (movsi_fix, movsi_nt_vms_fix): Remove.
16600 (nt_lda): Remove.
16601 * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16602
bc5cab3b 166032004-01-19 Jan Hubicka <jh@suse.cz>
16604
16605 * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16606 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16607 list.
16608 (cgraph_remove_unreachable_nodes): New function
16609 (cgraph_decide_inlining_of_small_function): Fix pasto.
16610 (cgraph_decide_inlining_incrementally): Fix pasto.
16611 (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16612
00775b04 166132004-01-19 Steven Bosscher <stevenb@suse.de>
16614
16615 * gengtype.c (header_file): Make it static.
16616 (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16617 * gengtype.h (header_file): No longer extern.
16618
0f5c9560 166192004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16620
16621 * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16622 * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16623 * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16624
bf83534c 166252004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16626
16627 * stmt.c (HAVE_casesi): Define it not already defined.
16628 (HAVE_tablejump): Likewise.
16629 (expand_end_case_type): Resort to the binary tree method if
16630 neither casesi or tablejump is available.
16631
fbf5169c 166322004-01-18 Daniel Jacobowitz <drow@mvista.com>
16633
16634 * final.c (final_scan_insn): Make non-static again.
16635 * output.h (final_scan_insn): Re-add prototype.
16636 * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16637 to final_scan_insn call.
16638 * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16639 * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16640 * config/pa/pa.c (output_lbranch, output_call): Likewise.
16641 * config/sh/sh.c (print_slot): Likewise.
16642 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16643 (output_sibcall, sparc_flat_function_epilogue): Likewise.
16644
e5562ab8 166452004-01-18 Jan Hubicka <jh@suse.cz>
16646
16647 * basic-block.h (try_redirect_by_replacing_jump): Declare.
16648 * cfgcleanup.c (try_optimize_cfg): Use it.
16649 * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16650 (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16651 Kill hack.
16652 (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16653
16654 Revert:
16655 2004-01-16 Geoffrey Keating <geoffk@apple.com>
16656
16657 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16658 even after reload, just don't remove the actual jump tables.
16659
a9d598c1 166602004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16661
16662 * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16663
cdf7cfb1 166642004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16665
16666 * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16667 the size of a pointer in bytes.
16668
6372a134 166692004-01-18 Roger Sayle <roger@eyesopen.com>
16670
16671 * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16672 live "next" variable, which could lead to an infinite loop.
16673
193c20c7 166742004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
16675
5e3ecf47 16676 * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16677 block.
16678
193c20c7 16679 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16680 Check for NULL in the chain and remove repeated code.
16681
39eca7a3 166822004-01-18 Jan Hubicka <jh@suse.cz>
16683
16684 * coverage.c (checksum_string): Rename to ...
16685 (coverage_checksum_string): ... this one, Use crc32_string; recognize
16686 names containing random number and zero the number out in order to get
16687 match.
16688
d318582e 166892004-01-18 Richard Sandiford <rsandifo@redhat.com>
16690
16691 * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16692
7a0ad664 166932004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16694
16695 * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16696 doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16697 doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16698 doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16699 doc/trouble.texi: Remove trailing whitespace.
16700
e9f90660 167012004-01-18 Richard Sandiford <rsandifo@redhat.com>
16702
6b0f7867 16703 PR target/7618
e9f90660 16704 * config/mips/mips.c: Include cfglayout.h.
16705 (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16706 (mips_unspec_offset_high): Add temporary register argument.
16707 (mips_load_call_address): New function, split out from...
16708 (mips_expand_call): ...here.
16709 (mips_output_cplocal): New function.
16710 (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16711 (mips_emit_loadgp): New function, split out from...
16712 (mips_expand_prologue): ...here.
16713 (mips_output_mi_thunk): New function.
16714
5c806626 167152004-01-17 Bernardo Innocenti <bernie@develer.com>
16716
16717 * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16718 mcpu32): Remove redundant checks for implied target predefines.
16719
764ec6e3 167202004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
16721
16722 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16723 Return type is unsigned int not int.
16724 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16725 Likewise.
16726
c20b542c 167272004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16728
16729 * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16730 doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16731 "GNU/Linux" and "Microsoft Windows" terminology.
16732
a0ecd6b1 167332004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16734
16735 * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16736 doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16737 doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16738 doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16739 @smallexample instead of @example.
16740
f73d7f5d 167412004-01-17 Ziemowit Laski <zlaski@apple.com>
16742
16743 * objc/objc-act.c (build_objc_method_call): Use target
b41346d4 16744 hooks instead of macros to determine if ..._stret
f73d7f5d 16745 dispatchers should be used (NeXT runtime only).
16746
b7b16e57 167472004-01-17 Roger Sayle <roger@eyesopen.com>
16748
16749 * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16750 last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16751
ca154f3f 167522004-01-17 Daniel Jacobowitz <drow@mvista.com>
16753
16754 * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16755 (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16756 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16757 macros.
16758 * reload1.c (emit_reload_insns): Use them.
16759 * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16760 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16761 for NULL PATTERN.
16762
e69efecb 167632004-01-17 Daniel Jacobowitz <drow@mvista.com>
16764
16765 * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16766 (final_scan_insn): Update to take an additional SEEN argument. Emit
16767 a line note after the prologue. Make static.
16768 (line_note_exists): Remove.
16769 (final): Don't initialize line_note_exists. Update call to
16770 final_scan_insn.
16771 * output.h (final_scan_insn): Remove prologue.
16772 * function.c (set_insn_locators): Update comment.
16773 (thread_prologue_and_epilogue_insns): Add a comment.
16774
d84c6db8 167752004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
16776
16777 PR target/10781
16778 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16779 Prototype.
16780 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16781 New function.
16782 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16783 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16784 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16785
adbd36b5 167862004-01-17 Jan Hubicka <jh@suse.cz>
16787
8c2c4b45 16788 * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16789 commit.
16790
adbd36b5 16791 * toplev.c (HAVE_conditional_execution): Provide default.
16792 (rest_of_handle_reorder_blocks): For conditional_execution target
16793 update liveness once after all transformations
16794 (rest_of_compilation): Do crossjumping before ce3.
16795
4ec9406e 167962004-01-17 Geoffrey Keating <geoffk@apple.com>
16797
16798 * alias.c (new_alias_set): Mark last_alias_set for PCH.
16799 (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16800 for PCH.
16801 (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16802 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16803 (get_TOC_alias_set): Mark 'set' for PCH.
16804
f0874fc3 168052004-01-16 Geoffrey Keating <geoffk@apple.com>
16806
16807 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16808 even after reload, just don't remove the actual jump tables.
16809
71cd8096 168102004-01-17 J. Brobecker <brobecker@gnat.com>
6114cbf0 16811
16812 * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16813 Remove checks for is_ada() and TREE_UNSIGNED.
16814 (subrange_type_die): Emit a byte_size attribute if the subrange
16815 type size is different from the base type size.
16816 (modified_type_die): Replace call to is_ada_subrange_type() by
16817 call to is_subrange_type().
16818
5bf8e2fe 168192004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
16820
16821 * config/sh/sh.c: Include ggc.h.
16822
9f787687 168232004-01-16 Geoffrey Keating <geoffk@apple.com>
16824
16825 * Makefile.in (MD5_H): New.
16826 (fold-const.o): Depend on md5.h.
16827 (dwarf2out.o): Likewise.
16828 (cppfiles.o): Likewise.
16829 * cppfiles.c: Include md5.h.
16830 (should_stack_file): Check against list read from PCH file.
16831 (struct pchf_data): New.
16832 (pchf): New variable.
16833 (struct pchf_adder_info): New.
16834 (pchf_adder): New.
16835 (pchf_save_compare): New.
16836 (_cpp_save_file_entries): New.
16837 (_cpp_read_file_entries): New.
16838 (struct pchf_compare_data): New.
16839 (pchf_compare): New.
16840 (check_file_against_entries): New.
16841 * cpphash.h (_cpp_save_file_entries): Prototype.
16842 (_cpp_read_file_entries): Prototype.
16843 * cpppch.c (cpp_write_pch_state): Write the list of headers.
16844 (cpp_read_state): Read the list of headers.
16845
0261691a 168462004-01-17 Jan Hubicka <jh@suse.cz>
16847
16848 * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16849 builtin_expect specially.
16850 * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16851 (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16852 * invoke.texi (max-inline-insns-single): Set to 100.
16853 (large-function-insns): Set to 3000.
16854
787c3d1a 168552004-01-16 Eric Christopher <echristo@redhat.com>
16856 Chandrakala Chavva <cchavva@redhat.com>
16857
16858 * cppcharset.c (one_iso88591_to_utf8): New function.
16859 (convert_iso88591_utf8): Ditto. Use.
16860 (conversion_tab): Use.
16861 (_cpp_input_to_utf8): New function.
16862 (_cpp_init_iconv_buffer): Ditto.
16863 (_cpp_close_iconv_buffer): Ditto.
16864 * cpphash.h: Prototype new functions.
16865 (cpp_buffer): Add input_cset_desc.
16866 * cppinit.c: Add input_charset default.
16867 * cpplib.c (cpp_push_buffer): Support init and
16868 close of iconv.
16869 * cpplib.h (cpp_options): Add input_charset.
16870
988b8879 168712004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16872
16873 * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16874 * config/alpha/unicosmk.h: Remove a commented-out definition
16875 of ASM_OUTPUT_SECTION_NAME.
16876 * config/stormy16/stormy16.h: Likewise.
16877
6a80f466 168782004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16879
16880 * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16881 (alpha___extern_prefix_sys_stat): ... this.
16882 Apply to <sys/mount.h>, too.
16883 Tweak to match more variations.
16884 * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16885
16886 * fixinc/inclhack.def (alpha___extern_prefix,
787c3d1a 16887 alpha___extern_prefix_standards): New hacks to obey
0dd5e539 16888 __PRAGMA_EXTERN_PREFIX.
6a80f466 16889 * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16890 test.
16891 * fixinc/tests/base/standards.h: Likewise.
787c3d1a 16892
6a80f466 16893 * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16894 variations.
16895 New testcase.
16896 * fixinc/tests/base/pthread.h: Handle it.
787c3d1a 16897
6a80f466 16898 * fixincl/inclhack.def (bad_lval): Sort file list.
16899 Add many missing files up to Tru64 UNIX V5.1B.
16900 * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16901 * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16902 order.
787c3d1a 16903
6a80f466 16904 * fixinc/fixincl.x: Regenerate.
16905
2c8653ed 169062004-01-16 Mark Mitchell <mark@codesourcery.com>
16907
16908 * version.c (version_string): Change to 3.5.0.
16909 * doc/include/gcc-common.texi (version-GCC): Likewise.
16910
89df180d 169112004-01-16 Jan Hubicka <jh@suse.cz>
16912
16913 * i386.md (load_tp_di): Fix pasto.
16914
16915 PR opt/13608
16916 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16917
16918 * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16919 pp_c_character_constant, pp_c_floating_constant,
16920 pp_c_additive_expression, pp_c_shift_expression,
16921 pp_c_equality_expression, pp_c_and_expression,
16922 pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16923 pp_c_logical_and_expression): Remove inline modifier.
16924 * dwarf2out.c (get_AT): Likewise.
16925 * et-forest.c (et_splay): Likewise.
16926 * ra.h (ra_alloc, ra_calloc): Likewise
16927
6626535c 169282004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16929
16930 * config/frv/frv-protos.h: Fix comment formatting.
16931 * config/frv/frv.c: Likewise.
16932 * config/frv/frv.h: Likewise.
16933 * config/frv/frv.md: Likewise.
16934 * config/frv/frvbegin.c: Likewise.
16935 * config/frv/frvend.c: Likewise.
16936
f254cd4c 169372004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16938
16939 * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16940 * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16941 LINKER_DOES_NOT_WORK_WITH_DWARF2.
16942 (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16943
9d9e3c81 169442004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
16945
d891500a 16946 PR 11864
9d9e3c81 16947 * postreload.c (reload_cse_simplify_operands): Don't remove
16948 implicit extension from LOAD_EXTEND_OP.
16949
18f811c9 169502004-01-16 Jan Hubicka <jh@suse.cz>
16951
00775b04 16952 PR opt/11350
16953 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
18f811c9 16954 after reload.
00775b04 16955 * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16956 rtl_try_redirect_by_replacing_branch): Likewise.
18f811c9 16957
330868b3 169582004-01-15 Geoffrey Keating <geoffk@apple.com>
16959
318dcdd8 16960 PR pch/13689
16961 * alias.c (struct alias_set_entry): Mark for GC.
16962 (alias_sets): Make static, mark for GC.
16963 (record_alias_subset): Use GC to allocate alias structures.
16964 * varray.c (element): Make generic varrays GCed.
16965
bff4639d 16966 PR pch/13361
16967 * c-typeck.c (constructor_asmspec): Delete.
16968 (struct initializer_stack): Delete field 'asmspec'.
16969 (start_init): Delete saving of asmspec.
16970 (finish_init): Don't update constructor_asmspec.
16971 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16972 * stmt.c (expand_asm): Duplicate strings from tree.
16973 (expand_asm_operands): Likewise.
16974 * tree.c (tree_size): Update computation of size of STRING_CST.
16975 (make_node): Don't make STRING_CST nodes.
16976 (build_string): Allocate string with tree node.
16977 * tree.def (STRING_CST): Update comment.
16978 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16979 (tree_string): Place contents of string in tree node.
16980 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16981 from tree.
16982
330868b3 16983 * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16984 altivec operands.
16985
21dda4ee 169862004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16987
16988 * c-common.h: Fix comment formatting.
16989 * c-cppbuiltin.c: Likewise.
16990 * c-pragma.c: Likewise.
16991 * calls.c: Likewise.
16992 * collect2.c: Likewise.
16993 * cppcharset.c: Likewise.
16994 * cpptrad.c: Likewise.
16995 * dbxout.c: Likewise.
16996 * defaults.h: Likewise.
16997 * dwarf2out.c: Likewise.
16998 * fold-const.c: Likewise.
16999 * genautomata.c: Likewise.
17000 * genconditions.c: Likewise.
17001 * genflags.c: Likewise.
17002 * gengtype.c: Likewise.
17003 * integrate.c: Likewise.
17004 * loop.c: Likewise.
17005 * predict.c: Likewise.
17006 * sdbout.c: Likewise.
17007
223b25f9 170082004-01-15 Zack Weinberg <zack@codesourcery.com>
17009
17010 * config/ia64/ia64.md (*movti_internal): C output template
17011 extracted to ia64.c.
17012 (*movti_internal_reg): Delete.
17013 (reload_inti, reload_outti): Use the correct mode on operand 2
17014 in the first place, don't fix it up in the output template.
17015 (movtf, reload_ointf, reload_outtf): New expanders.
17016 (*movtf_internal): New define_insn_and_split.
17017 * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17018 make static; do not hand TFmode CONST_DOUBLEs to split_double.
17019 (ia64_split_tmode_move): New function, body mostly pulled
17020 from ia64.md:*movti_internal.
17021 (ia64_function_arg_words): New function, extracted common
17022 logic from ia64_function_arg et seq.
17023 (ia64_function_arg_offset): Likewise. Handle correctly the
17024 case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17025 (ia64_function_arg, ia64_function_arg_partial_nregs)
17026 (ia64_function_arg_advance): Use ia64_function_arg_words and
17027 ia64_function_arg_offset.
17028 (ia64_function_value): TCmode does not go in float regs.
17029 (ia64_secondary_reload_class): Also handle TFmode.
17030 * config/ia64/ia64-protos.h: Remove prototype for
17031 ia64_split_timode; add prototype for ia64_split_tmode_move.
17032
57eb42be 170332004-01-15 Kelley Cook <kcook@gcc.gnu.org>
17034
17035 * Makefile.in (MAINT): Make it an immediate assignment.
17036
3de8b598 170372004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17038
17039 * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17040
716085c2 170412004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17042
17043 * config/h8300/coff.h: Replace Hitachi with Renesas.
17044 * config/h8300/elf.h: Likewise.
17045 * config/h8300/h8300-protos.h: Likewise.
17046 * config/h8300/h8300.c: Likewise.
17047 * config/h8300/h8300.h: Likewise.
17048 * config/h8300/h8300.md: Likewise.
17049 * config/h8300/lib1funcs.asm: Likewise.
17050
14919cc2 170512004-01-15 Andrew Pinski <apinski@apple.com>
17052
17053 * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17054 around it.
17055
5c6c612a 170562004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17057
17058 * config/h8300/h8300.c (h8300_return_in_memory): New.
17059 (TARGET_STRUCT_VALUE_RTX): Likewise.
17060 (TARGET_RETURN_IN_MEMORY): Likewise.
17061 * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17062 (RETURN_IN_MEMORY): Likewise.
17063
50d0dd90 170642004-01-15 Richard Earnshaw <rearnsha@arm.com>
17065
17066 PR optimization/13375
17067 * gcse.c (handle_avail_expr): Just return if the source is not a
17068 single set.
17069
a76d79d9 170702004-01-15 Richard Earnshaw <rearnsha@arm.com>
17071 Daniel Jacobowitz <drow@mvista.com>
17072
17073 * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17074 (EQUIV): Define.
17075 (ARM_FUNC_ALIAS): New macro.
17076 * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17077 * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17078
8697e217 170792004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17080
17081 PR optimization/12372
17082 * calls.c (expand_call): Add call_fusage data for stack arguments in
17083 constant calls.
17084
0621a15b 170852004-01-15 Alan Modra <amodra@bigpond.net.au>
17086
17087 * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
17088 (rs6000_elf_declare_function_name): Formatting.
17089 * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17090
faa80ce8 170912004-01-15 Jan Hubicka <jh@suse.cz>
17092
17093 PR bootstrap/13692
17094 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17095 previous patch.
17096
c83891bc 170972004-01-15 Richard Henderson <rth@redhat.com>
17098
17099 * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17100 integer regs of the same call-savedness.
17101
1f24a83f 171022004-01-15 Andreas Schwab <schwab@suse.de>
17103
17104 PR bootstrap/13562
17105 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17106 status for NOTB/NOTW/NEGW methods.
17107
fa6735a1 171082004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17109
17110 * doc/invoke.texi: Update dump file names. Fix a typo.
17111
399c0e64 171122004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17113
17114 * builtins.c (expand_builtin_va_end): Don't use
17115 EXPAND_BUILTIN_VA_END.
17116 * system.h (EXPAND_BUILTIN_VA_END): Poison.
17117 * config/d30v/d30v.h: Remove a commented-out definition of
17118 EXPAND_BUILTIN_VA_END.
17119 * config/stormy16/stormy16.h: Likewise.
17120
b3a9a0a8 171212004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17122
17123 * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17124 * targhooks.c (default_struct_value_rtx): Don't use
17125 STRUCT_VALUE_INCOMING_REGNUM.
17126
a6b4c5a9 171272004-01-15 Kelley Cook <kcook@gcc.gnu.org>
17128
17129 PR bootstrap/12744
17130 * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17131 GENINSRC and not parsedir. Define srcextra as a langhook.
17132 * configure: Regenerate.
17133 * Makefile.in: Suppress default .l.c rule. Don't substitute
17134 parsedir and delete all references throughout. Conditionally define
17135 rule for srcextra dependent on GENINSRC.
17136 (stmp-docobjdir): Delete.
17137 (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17138 (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17139 and gengtype-yacc.h back to source directory.
17140 (maintainer-clean): Delete all parse files in source directory.
17141 (distclean): Delete generated files.
17142
17143 * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17144 (objc-parse.c, objc-parse.y): Don't use parsedir.
17145 (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17146 directory if requested.
17147 (po-generated): Don't use parsedir.
17148 (objc.maintainer-clean): Delete above files from source directory.
17149
627d3c8e 171502004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17151
17152 * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17153
e920c3d4 171542004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17155
17156 * doc/tm.texi: Replace RETURN_IN_MEMORY with
17157 TARGET_RETURN_IN_MEMORY.
17158
3421ab77 171592004-01-15 Jan Hubicka <jh@suse.cz>
17160
17161 * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17162 * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17163 functions accepting SSE arguments
17164 (function_arg): Warn only when asked to warn.
17165 * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17166
76f8735a 171672004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
17168
17169 * c-parse.in (stmts_and_decls): Make label at end of compound
17170 statement a hard error.
17171
69435b7f 171722004-01-14 Jan Hubicka <jh@suse.cz>
17173
17174 * cgraph.c (create_edge): Use local.redefined_extern_inline.
17175 * cgraph.h (cgraph_local_info): Sort fields by size; add
17176 redefined_extern_inline
17177 (cgraph_global_info): Sort fields by size.
17178 (cgraph_node): Likewise.
17179 * cgraphunit.c (cgraph_finalize_function): Se
17180 local.redefined_extern_inline on redefinition.
17181 (cgraph_analyze_function): Use it; fix formating.
17182
d4f68afb 171832004-01-14 Jan Hubicka <jh@suse.cz>
17184
17185 PR c++/10776
17186 * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17187 outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17188 bitmaps
17189 (cache_size): New variable
17190 (add_dependence): Update use; canonize early memory locations
17191 (sched_analyze_1): Likewise.
17192 (sched_analyze_2): Likewise.
17193 (init_dependency_caches): Initialize bitmaps.
17194 (free_dependency_caches): Free bitmaps
17195
8bdddbd1 171962004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17197
17198 * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17199 targetm.calls.strict_argument_naming().
17200 * target.h: Likewise.
17201
31b1fbc5 172022004-01-14 Richard Henderson <rth@redhat.com>
17203
17204 PR debug/13231
17205 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17206 instructions.
17207
618fa93e 172082004-01-14 Richard Henderson <rth@redhat.com>
17209
17210 PR c++/12491
17211 * except.c (struct eh_region): Add u.fixup.resolved.
17212 (resolve_one_fixup_region): Split out from ...
17213 (resolve_fixup_regions): ... here.
17214
2c3c651e 172152004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17216
17217 * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17218
048620a6 172192004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17220
17221 * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17222 * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17223 (STRUCT_VALUE): Remove.
17224
f064b039 172252004-01-14 Steven Bosscher <stevenb@suse.de>
6000e302 17226
17227 * system.h: Poison PROMOTED_MODE
17228 * integrate.c (expand_inline_function): Don't mention the
17229 PROMOTED_MODE.
17230 * loop.c (update_giv_derive): Same.
17231 * tree.h (DECL_RTL): Same.
17232
b78739b6 172332004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
17234
17235 PR target/9365
17236 * sh.c (gen_block_redirect): Add special handling of RETURN.
17237 (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17238 far branch target (i.e. it's a return).
17239
705e01b3 172402004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17241
17242 * regrename.c (find_oldest_value_reg): Fix a warning.
17243
31fc2294 172442004-01-14 Richard Earnshaw <rearnsha@arm.com>
17245
17246 PR bootstrap/12527
17247 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17248 Move linux-gas.h and linux-elf.h before aout.h.
17249 * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17250 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17251
ccbf616f 172522004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17253
17254 * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17255 (CONST_INT, VOIDmode, ...).
17256
b1c00d40 172572004-01-14 Richard Earnshaw <rearnsha@arm.com>
17258
223b25f9 17259 * regrename.c (find_oldest_value_reg): If the replacement uses
b1c00d40 17260 multiple hard registers, check that all of them are in CLASS.
17261
bcbf7cf4 172622004-01-14 Jan Hubicka <jh@suse.cz>
17263
17264 * alias.c (get_alias_set): Initialize alias set to 0 when subset is
17265 impossible.
17266
17e2788d 172672004-01-14 Kelley Cook <kcook@gcc.gnu.org>
17268
17269 * Makefile.in: Define MAINT from --enable-maintainer-mode.
17270
cf7e0744 172712004-01-14 Hartmut Penner <hpenner@de.ibm.com>
17272
17273 * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17274 Calculate always vrsave_mask if TARGET_ALTIVEC.
17275 (rs6000_emit_prologue): Emit code for vrsave
17276 only if TARGET_ALTIVEC_VRSAVE.
17277 (rs6000_emit_epilogue): Likewise.
17278
f28414cc 172792004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
17280
17281 * config/sparc/sparc.md (tie_add32): Fix pasto.
17282 (tie_add64): Likewise.
17283
dcb6802c 172842004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
17285
17286 * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17287
ac324f33 172882004-01-13 Kazu Hirata <kazu@cs.umass.edu>
17289
17290 * config/iq2000/iq2000-protos.h: Fix comment formatting.
17291 * config/iq2000/iq2000.c: Likewise.
17292 * config/iq2000/iq2000.md: Likewise.
17293
a84a50a5 172942004-01-14 J. Brobecker <brobecker@gnat.com>
17295
17296 * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17297 (subrange_type_die): Add handle for nameless subrange types.
17298
1564ec41 172992004-01-13 Kazu Hirata <kazu@cs.umass.edu>
17300
17301 * config/h8300/h8300-protos.h: Replace do_movsi with
17302 h8300_expand_movsi.
17303 * config/h8300/h8300.c (do_movsi): Change to
17304 h8300_expand_movsi.
17305 * config/h8300/h8300.md (movsi): Replace do_movsi with
17306 h8300_expand_movsi.
17307 (movsf): Likewise.
17308
8e75d01b 173092004-01-13 Kazu Hirata <kazu@cs.umass.edu>
17310
17311 * config/h8300/h8300.c (dosize): Change to
17312 h8300_emit_stack_adjustment. Update callers.
17313
a37abd00 173142004-01-13 Kazu Hirata <kazu@cs.umass.edu>
17315
17316 * config/h8300/h8300.md (movstrictqi): Add an alternative with
17317 the source being post_inc. Tighten the predicate for the
17318 destination to register_operand.
17319 (movstricthi): Likewise.
17320
86e3e95d 173212004-01-13 Kazu Hirata <kazu@cs.umass.edu>
17322
17323 * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17324 * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17325 * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17326
16a1ea05 173272004-01-14 Jan Hubicka <jh@suse.cz>
17328
dc721f36 17329 Partial fix PR c++/12850
17330 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17331 at zero nest level.
16a1ea05 17332
b811d787 173332004-01-13 Bernardo Innocenti <bernie@develer.com>
17334
17335 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
223b25f9 17336 pseudo-register.
b811d787 17337
cd3034ab 173382004-01-13 Devang Patel <dpatel@apple.com
17339
17340 PR debug/7078
223b25f9 17341 * dbxout.c (dbxout_symbol_name): Emit mangled names for
cd3034ab 17342 NAMESPACE_DECL memebers.
223b25f9 17343
5c423bd6 173442004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
17345
17346 PR c++/12709
17347 * c-common.c (finish_fname_decls): Use the chain only if the
17348 tree is an expr_stmt.
17349
bccc9ebc 173502004-01-13 Vladimir Makarov <vmakarov@redhat.com>
17351
6000e302 17352 * rtl.def: Add comment about new option in automata_option.
223b25f9 17353
bccc9ebc 17354 * genautomata.c (PROGRESS_OPTION): New macro.
17355 (progress_flag): New global variable.
17356 (gen_automata_option): Process `progress'.
17357 (transform_insn_regexps, check_unit_distributions_to_automata,
17358 make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17359 expand_automata, write_automata): Print about the progress only if
17360 progress_flag. Remove fflush.
17361 (initiate_automaton_gen): Process command line flag `-progress'.
17362
17363 * doc/md.texi: Describe the new option.
223b25f9 17364
3d810835 173652004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
17366
17367 * cfg.c (dump_bb): Dump entry edges.
17368
a941568e 173692004-01-13 Richard Earnshaw <rearnsha@arm.com>
17370
223b25f9 17371 * arm.c (thumb_legitimate_address_p): Only allow constant pool
a941568e 17372 references from SImode.
17373 * arm.md (thumb_movhi_insn): Don't allow minipool references.
17374
9fd95d94 173752004-01-13 Kazu Hirata <kazu@cs.umass.edu>
17376
17377 * system.h (TEXT_SECTION): Poison.
17378 * varasm.c (text_section): Don't use TEXT_SECTION.
17379 * config/sh/sh.c (sh_file_start): Fix a comment typo.
17380 * doc/tm.texi (TEXT_SECTION): Remove.
17381
30952e85 173822004-01-13 Ben Elliston <bje@wasabisystems.com>
17383
17384 * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17385
564a3e1a 173862004-01-12 James E Wilson <wilson@specifixinc.com>
17387
17388 * unwind-libunwind.c: Delete.
17389
2a222da1 173902004-01-12 Zack Weinberg <zack@codesourcery.com>
17391
17392 PR 13656
17393 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17394 oldtype is set, set *newtypep or *oldtypep too. Do not set
17395 them at the very end.
17396 (validate_proto_after_old_defn): Restructure for comprehensibility;
17397 make error messages clearer.
17398
17ee7790 173992004-01-12 Zack Weinberg <zack@codesourcery.com>
17400
17401 * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17402 (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17403 * varray.c: No need to prototype error.
17404 (varray_check_failed): Wrap long string onto two lines.
17405 (varray_underflow): New function.
17406
35901471 174072004-01-13 Steven Bosscher <stevenb@suse.de>
17408
17409 PR c++/13376
17410 * function.h (struct function): Kill `name' field.
17411 (current_function_name): Make it an extern function.
17412 * function.c (current_function_name): New function.
17413 * graph.c: Update all uses of current_function_name.
17414 * gcse.c: Likewise.
17415 * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17416 config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17417 * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17418 instead of a strcmp with "main".
17419
d731003e 174202004-01-13 Jan Hubicka <jh@suse.cz>
17421
f446ac8c 17422 * c-decl.c (diagnose_mismatched_decls): Fix warning calls.
17423
d731003e 17424 * cgraphunit.c (cgraph_optimize_function): Always do
17425 optimize_inline_calls when there is always_inline callee.
17426 (cgraph_decide_inlining): Fix formating.
17427 * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17428 functions.
17429 (expand_call_inline): Likewise.
17430 * toplev.h (sorry): Fix prototype.
17431
6c04b2f1 174322004-01-12 Roger Sayle <roger@eyesopen.com>
17433
17434 * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17435 conditional jumps that drop through to unconditional jumps or the
17436 end of the sequence.
17437
243ec9ec 174382004-01-13 Jan Hubicka <jh@suse.cz>
17439
17440 * alias.c (new_alias_set): Construct the alias_set varray.
17441 (init_alias_once): Don't do it here.
17442
02adebe0 174432004-01-12 Marc Espie <espie@openbsd.org>
17444
17445 * system.h: handle YYBYACC like YYBISON.
17446
1ad09257 174472004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
17448
17449 PR target/10847
17450 * config.gcc: No longer includes conflicting header sparc/sol2.h when
17451 building on sparc64-*-openbsd*.
17452
e6653de4 174532004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
17454
17455 PR debug/13539
17456 * dbxout.c (dbxout_type): Protected inheritance is not
17457 private but protected.
17458
3b04eb2e 174592004-01-12 Richard Sandiford <rsandifo@redhat.com>
17460
17461 * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17462
08eb940c 174632004-01-12 Kazu Hirata <kazu@cs.umass.edu>
17464
17465 PR optimization/12508.
17466 * combine.c (try_combine): Remove a dead set in a parallel
17467 even if its destination is a subreg.
17468
17469 Revert:
17470 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
17471 * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17472 SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17473
7a09e4c7 174742004-01-12 Geoffrey Keating <geoffk@apple.com>
7cda9262 17475
17476 * real.c: Update copyright date.
17477 * emit-rtl.c: Likewise.
17478 * rtl.h: Likewise.
17479 * dwarf2out.c: Likewise.
17480 * config/rs6000/darwin-ldouble.c: Likewise.
17481 * config/rs6000/rs6000.md: Likewise.
17482
5d5522a8 174832004-01-12 David Edelsohn <edelsohn@gnu.org>
17484
17485 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17486 TFmode to SImode libfuncs.
17487
577f0c5d 174882004-01-12 Roger Sayle <roger@eyesopen.com>
17489
17490 PR middle-end/11397
17491 * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17492
b9de5542 174932004-01-12 Jan Hubicka <jh@suse.cz>
17494
17495 PR opt/12826
17496 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17497 stored.
17498
17499 PR opt/12863
17500 * cfgcleanup.c (label_is_jump_target_p): Move to...
17501 * rtlanal.c (label_is_jump_target_p): ... here.
17502 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
17503 edges unified with branch edges.
17504
f24bf586 175052004-01-12 Richard Earnshaw <rearnsha@arm.com>
17506
17507 * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17508 high word of an integral CONST_DOUBLE.
17509
c6ad6818 175102004-01-12 Paul Brook <paul@codesourcery.com>
65b62c6f 17511
17512 * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17513
5c836ef9 175142004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
05e09565 17515
17516 PR target/13585
17517 * sh-protos.h (check_use_sfunc_addr): Declare.
17518 * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17519 * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17520
f391504c 175212004-01-12 Jan Hubicka <jh@suse.cz>
17522
56bbdce4 17523 * alias.c: Invlude varray.h
17524 (alias_sets): Turn into varray.
17525 (get_alias_set_entry): Use VARRAY; mark inline.
17526 (mems_in_disjoint_alias_sets_p): Mark inline.
17527 (record_alias_subset): Use varray.
17528 (init_alias_once): Initialize varray.
17529 (new_alias_set): Grow array.
17530 * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17531
175322004-01-12 Jan Hubicka <jh@suse.cz>
17533
17534 Partial fix for PR opt/10776 II
f391504c 17535 * cselib.c: Include params.h
17536 (cselib_invalidate_mem): Limit amount of nonconflicting memory
17537 locations.
17538 * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17539 * Makefile.in (cselib.o): Depend on params.h
17540
115addd6 175412004-01-12 Richard Sandiford <rsandifo@redhat.com>
17542
17543 * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17544 simplify_unary_operation if the operand has a known mode.
17545
4bbdff0e 175462004-01-12 Hartmut Penner <hpenner@de.ibm.com>
17547
6fabcd44 17548 PR target/13534
4bbdff0e 17549 * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17550 predicate to handle 'ld' conform addresses.
17551 * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17552 contraint.
17553 (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17554 are memory contraints.
17ee7790 17555 * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
4bbdff0e 17556 New prototype.
17ee7790 17557 * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
4bbdff0e 17558 Change 'o' to 'Y' constraint.
17559 (*movdf_softfloat64): Ditto.
17ee7790 17560
2de9355b 175612004-01-12 Bernardo Innocenti <bernie@develer.com>
17562
17563 * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17564 brace-enclosed syntax in all C output statements.
17565
351e7ee6 175662004-01-12 David Edelsohn <edelsohn@gnu.org>
17567
17568 PR target/13401
17569 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17570 Objective-C language type value is 14.
17571
151f4f3b 175722004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
17573
17574 PR c/12148
17575 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17576 `int' in a number of places to make sure we always have a SImode
17577 and not a HImode. Add a 'L' suffix to a number of constants.
17578
6e18276d 175792004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17580
17581 * pa.c: Don't include obstack.h.
17582
17583 * pa.md: Correct constraint in pattern for loading PIC label address.
17584
63c46f38 175852004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
17586
17587 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17588 before defining.
17589
c2dc8ebf 175902004-01-11 Steven Bosscher <stevenb@suse.de>
17591
2e4cceb3 17592 PR fortran/9972
c2dc8ebf 17593 * toplev.c (rest_of_handle_inline): Also consider functions
17594 for deferral if the language is GNU F77.
17595
828c4f9c 175962004-01-11 Zack Weinberg <zack@codesourcery.com>
17597
17598 * c-decl.c (diagnose_arglist_conflict): Add missing space to
17599 diagnostic messages.
17600
15c85053 176012004-01-11 Jakub Jelinek <jakub@redhat.com>
17602
17603 PR middle-end/13392
17604 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17605 to drop through label. Don't fall back to SCC even when conditional
17606 jump has not been found.
17607
c15bc0ce 176082004-01-11 Jan Hubicka <jh@suse.cz>
17609
91235000 17610 * invoke.texi: Fix syntax error in previous patch.
17611
c15bc0ce 17612 Partial fix for PR opt/10776
17613 * Makefile.in (reload.o): Include param.h
17614 * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17615 * reload.c: Include params.h.
17616 (find_equiv_reg): Work limiting check.
17617 * invoke.texi: Document.
17618
33292eed 176192004-01-11 Richard Sandiford <rsandifo@redhat.com>
17620
17621 * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17622 out-of-bounds accesses to string constants. Simplify mips16
17623 case accordingly.
17624
389f8841 176252004-01-11 Richard Sandiford <rsandifo@redhat.com>
17626
17627 PR optimization/13469
17628 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17629 reload_cse_regs (-fnon-call-exceptions only).
17630
3fcfff30 176312004-01-11 Kazu Hirata <kazu@cs.umass.edu>
17632
17633 * config/mcore/lib1.asm: Fix comment formatting.
17634 * config/mcore/mcore-elf.h: Likewise.
17635 * config/mcore/mcore.c: Likewise.
17636 * config/mcore/mcore.h: Likewise.
17637 * config/mcore/mcore.md: Likewise.
17638
679bf177 176392004-01-10 Zack Weinberg <zack@codesourcery.com>
17640
17641 * c-decl.c (duplicate_decls): Break apart into...
17642 (diagnose_arglist_conflict, validate_proto_after_old_defn)
17643 (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17644 ... these new functions. Restructure for comprehensibility.
17645 Remove various archaic special cases. Always report the
17646 location of the previous declaration when a diagnostic is issued.
17647 (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17648 (match_builtin_function_types): Delete unnecessary forward declaration.
17649
b0effe67 176502004-01-10 Zack Weinberg <zack@codesourcery.com>
17651
17652 * genautomata.c (make_automaton, NDFA_to_DFA):
17653 Print progress bars with '.' characters instead of '*'.
17654 (build_automaton): Change notes to match.
17655
3b8ddcea 176562004-01-10 Kazu Hirata <kazu@cs.umass.edu>
17657
17658 * config/m32r/m32r.md: Use define_constants for unspec and
17659 unspec_volatile.
17660
be6993e7 176612004-01-10 Jan Hubicka <jh@suse.cz>
17662
350f9300 17663 PR opt/11635
be6993e7 17664 * expr.c (expand_expr_real): More curefully expand union casts.
17665
d62f2973 176662004-01-10 Kazu Hirata <kazu@cs.umass.edu>
17667
17668 * config/m32r/m32r.md (flush_icache): Use 1 for
17669 unspec_volatile.
17670
d6d30f68 176712004-01-10 David Edelsohn <edelsohn@gnu.org>
17672 James E Wilson <wilson@specifixinc.com>
17673
17674 PR debug/12860
17675 * dbxout.c (dbxout_symbol): Remove initialization of
17676 current_sym_code, current_sym_value, and current_sym_addr.
17677 (dbxout_symbol_location): Same.
17678 (dbxout_prepare_symbol): Zero current_sym_code,
17679 current_sym_value, and current_sym_addr.
17680
5d122ee8 176812004-01-10 Richard Sandiford <rsandifo@redhat.com>
17682
17683 * tree.c (get_unwidened): Reorder conditions so that the null pointer
17684 check is done first.
17685
7e614678 176862004-01-09 Eric Christopher <echristo@redhat.com>
17687
17688 * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17689 if we're running mark_constant_function.
17690
02db32a6 176912004-01-09 Jeff Bailey <jbailey@nisa.net>
17692
17693 PR target/12561
17694 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17695
11d99e06 176962004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
17697
17698 PR debug/11231
d6d30f68 17699 * dbxout.c (dbxout_type_fields): Return if any item is
17700 error_mark_node or the type is error_mark_node.
11d99e06 17701
9b4cd3bb 177022004-01-09 Geoffrey Keating <geoffk@apple.com>
17703
2ce081b7 17704 * config/rs6000/darwin-ldouble.c: Add big comment explaining
17705 exactly what is expected as a 'long double'.
17706 (_xlqadd): When a value to be returned is representable as a
17707 'double', just return it directly, do not construct it using a union.
17708 Also, correct final fixup.
17709 (_xlqmul): Likewise.
17710 (_xlqdiv): Likewise.
17711 * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17712
9b4cd3bb 17713 * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17714
39dc22d5 177152004-01-09 Richard Henderson <rth@redhat.com>
17716
17717 * recog.c (constrain_operands): Validate mem operands.
17718
ddb37376 177192004-01-09 James E Wilson <wilson@specifixinc.com>
17720
17721 * gcc.c (init_spec): Remove -lunwind from shared case.
17722 * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17723
ecb7c90c 177242004-01-09 Steve Ellcey <sje@cup.hp.com>
17725
17726 * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17727 * configure: Regenerate
17728
48b3d385 177292004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
17730
17731 PR c/11234
17732 * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17733 between function and object pointers.
17734 (digest_init): When comparing a pointer to function type to the
17735 target type, only apply TREE_TYPE once to the pointer to function
17736 type.
17737 * except.c (for_each_eh_label_1): Treat data as a pointer to a
17738 function pointer rather than casting it to a function pointer.
17739 (for_each_eh_label): Update caller.
17740 * recog.h (struct insn_data): Use a struct or union for output.
17741 * genoutput.c (output_insn_data): Update.
17742 * final.c (get_insn_template): Update.
17743
60ffaf4d 177442004-01-09 Mark Mitchell <mark@codesourcery.com>
17745
17746 * expr.h (expand_expr): Make it a macro, not a function.
17747 (expand_expr_real): New function.
17748 * expr.c (store_expr): Adjust logic for deciding whether or not to
17749 copy the value returned by expand_expr.
17750 (expand_expr): Rename to ...
17751 (expand_expr_real): ... this. Add alt_rtl parameter. Adjust
17752 calls to language hooks.
17753 * c-common.h (c_expand_expr): Adjust prototype.
17754 * c-common.c (c_expand_expr): Add alt_rtl parameter.
17755 * langhooks-def.h (lhd_expand_expr): Change prototype.
17756 * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17757 * langhooks.h (lang_hooks): Change type of expand_expr.
17758 * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17759 (last_expr_alt_rtl): Likewise.
17760 (expand_expr_stmt_value): Set last_expr_alt_rtl.
17761 (clear_last_expr): Clear it.
17762 (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17763 (expand_end_bindings): Save and restor last_expr_alt_rtl.
17764 * tree.def (RTL_EXPR): Give it an additional operand.
17765 * tree.h (RTL_EXPR_ALT_RTL): New macro.
ddb37376 17766
008f505a 177672004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17768
17769 * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
843505b2 17770 * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
008f505a 17771
b7afdc4b 177722004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17773
17774 PR target/13380.
17775 * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17776 or (ne:SI (reg:CC 17) (const_int 0)).
17777 Be specific about modes wherever possible.
17778
76dad66d 177792004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17780
17781 * config/m32r/m32r.c (m32r_expand_block_move): Call
17782 gen_movestrsi_internal with two more arguments.
17783 (m32r_output_block_move): Adjust operand numbers.
17784 Properly update the source and destination pointers.
17785 * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17786 'r+'. Change the set detinations to match_operand.
17787
0d3fde44 177882004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17789
17790 * final.c (FIRST_INSN_ADDRESS): Remove.
17791 (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17792 * system.h (FIRST_INSN_ADDRESS): Poison.
17793 * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17794 * config/m32r/m32r-protos.h: Remove the prototype for
17795 m32r_first_insn_address.
17796 * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17797 * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17798 * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17799
93c7db82 178002004-01-09 J. Brobecker <brobecker@gnat.com>
17801
17802 * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17803 we just created.
17804 (is_ada_subrange_type): DIEs for enumeration subtypes should be
17805 emitted as subrange types too.
17806 (subrange_type_die): Add handling of enumeration subtypes.
17807
22031865 178082004-01-08 Richard Henderson <rth@redhat.com>
17809
17810 PR opt/12441
17811 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
ddb37376 17812 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17813 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17814 (ix86_address_cost): Be prepared for SUBREGed registers.
17815 (legitimate_address_p): Accept SUBREGed registers.
22031865 17816
c0450c4b 178172004-01-08 Kelley Cook <kcook@gcc.gnu.org>
17818
17819 * Makefile.in: Rename configure.in to configure.ac
17820 * doc/sourcebuild.texi: Likewise.
17821 * configure: Regenerate.
17822 * config.in: Regenerate.
17823
5cd42618 178242004-01-08 Stuart Hastings <stuart@apple.com>
17825
17826 * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17827
fea157ce 178282004-01-08 Jan Hubicka <jh@suse.cz>
17829
17830 * cgraphunit.c (cgraph_decide_inlining): Fix typo.
17831
c4bec01f 178322004-01-08 Geoffrey Keating <geoffk@apple.com>
17833
24a01658 17834 * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17835 (UNSPEC_FIX_TRUNC_TF): New constant.
17836 (movtf_internal): Make splitter active only when insn is active.
17837 (extenddftf2): Rewrite to properly load zero into low part.
17838 (extenddftf2_internal): New.
17839 (extendsftf2): Rewrite.
17840 (truncdftf2): Correct length.
17841 (floatditf2): Delete.
17842 (fix_trunc_helper): New.
17843 (fix_trunctfdi2): Use fix_trunc_helper.
17844 (fix_trunctfsi2): Likewise.fix_trunc
17845 (fix_trunctfsi2_internal): New.
17846
c4bec01f 17847 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17848 addresses are legitimate on Darwin even when flag_pic.
17849 (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17850 non-offsettable addresses for loads of TFmode constants.
17851
1ff0298e 178522004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17853
17854 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17855 variables in the appropriate bss section.
17856
3a9bfe1e 178572004-01-09 Alan Modra <amodra@bigpond.net.au>
17858
17859 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17860 target_flags has MASK_POWERPC64 when -m64.
17861 * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17862 to 620, 630, power3, power4 and rs64a entries.
17863 * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17864
e67a84f3 178652004-01-08 Richard Sandiford <rsandifo@redhat.com>
17866
17867 * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17868 floating-point constants.
17869
a7011153 178702004-01-08 J. Brobecker <brobecker@gnat.com>
17871
17872 * dwarf2out.c (subrange_type_die): Add context_die parameter.
17873 Create the subrange_type DIE using the given context DIE.
17874 (modified_type_die): Update call to subrange_type_die.
17875
178762004-01-08 Zack Weinberg <zack@codesourcery.com>
817adc77 17877
17878 * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17879 Add multiple-include guard.
17880
d0b334e7 178812004-01-08 Hartmut Penner <hpenner@de.ibm.com>
17882
817adc77 17883 * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17884 all vector constant loadable by vsplt*.
d0b334e7 17885 (output_vec_const_move): Likewise.
17886
09e0a2a1 178872004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
17888
17889 PR c/6024
17890 * c-typeck.c (comptypes): Only treat enumerated types in the same
17891 translation unit as compatible with each other when they are the
17892 same type.
17893 * doc/extend.texi: Update.
17894
0b351ac2 178952004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
17896
17897 PR c/12165
17898 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17899 array type from the array element type.
17900
0e841d50 179012004-01-07 Alan Modra <amodra@bigpond.net.au>
17902
17903 * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17904 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17905 * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17906 (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17907 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17908
09b049bd 179092004-01-06 Eric Christopher <echristo@redhat.com>
17910
17911 * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17912 (DWARF2_DEBUGGING_INFO): Define.
17913 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17914 * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17915 * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17916 for irix as.
17917 (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17918 * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17919 * config/mips/iris5gas.h: Ditto.
17920 (DBX_DEBUGGING_INFO): Remove.
17921 (DWARF2_DEBUGGING_INFO): Ditto.
17922 (MIPS_DEBUGGING_INFO): Ditto.
17923 (PREFERRED_DEBUGGING_TYPE): Ditto.
17924 * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17925 (PREFERRED_DEBUGGING_TYPE): Ditto.
17926 (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17927 * config/mips/elf64.h: Ditto.
17928
b27f5b41 179292004-01-06 Jan Hubicka <jh@suse.cz>
17930
17931 * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17932 (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17933
23c35826 179342004-01-06 Geoffrey Keating <geoffk@apple.com>
17935
c95202ed 17936 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17937 (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17938 * config/rs6000/darwin-ldouble.c: New.
09b049bd 17939
791172c5 17940 * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17941 for constants.
17942 (constant_subword): Delete.
17943 * rtl.h (constant_subword): Delete prototype.
17944 (immed_double_const): Is not in varasm.c.
17945 * simplify-rtx.c (simplify_immed_subreg): New.
17946 (simplify_subreg): Use simplify_immed_subreg.
17947
5f85ae79 17948 * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17949 than trying to generate RTL directly.
17950 (fix_trunctfsi2): Use expand_fix rather than trying to generate
17951 RTL directly.
17952
23c35826 17953 * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17954
dcdbee1d 179552004-01-06 David Edelsohn <edelsohn@gnu.org>
17956
17957 * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17958 function into a separate macro.
17959 (read_only_data_section): Add void argument.
17960 (private_data_section): Same.
17961 (read_only_private_data_section): Same.
17962 (toc_section): Same.
17963
e3c8fc92 179642004-01-06 Jan Hubicka <jh@suse.cz>
17965
a5475a84 17966 * invoke.texi: Remove typo in last change.
17967
e3c8fc92 17968 PR target/10301
17969 * config.gcc: Accept opteron and athlon-64 as variants
17970 of k8.
17971 * i386.c (override_options): Likewise.
17972 * invoke.texi (i386 -mtune): Expand documentation.
17973
d632b59a 179742004-01-06 Kazu Hirata <kazu@cs.umass.edu>
17975
17976 * alias.c: Fix comment typos.
17977 * builtins.c: Likewise.
17978 * cfg.c: Likewise.
17979 * df.c: Likewise.
17980 * dominance.c: Likewise.
17981 * dwarf2out.c: Likewise.
17982 * emit-rtl.c: Likewise.
17983 * expr.c: Likewise.
17984 * final.c: Likewise.
17985 * fold-const.c: Likewise.
17986 * gcse.c: Likewise.
17987 * genattrtab.c: Likewise.
17988 * genrecog.c: Likewise.
17989 * gensupport.c: Likewise.
17990 * ggc-zone.c: Likewise.
17991 * integrate.c: Likewise.
17992 * local-alloc.c: Likewise.
17993 * loop.c: Likewise.
17994 * recog.c: Likewise.
17995 * regmove.c: Likewise.
17996 * reg-stack.c: Likewise.
17997 * reorg.c: Likewise.
17998 * rtlanal.c: Likewise.
17999 * rtl.h: Likewise.
18000 * sched-ebb.c: Likewise.
18001 * simplify-rtx.c: Likewise.
18002 * toplev.c: Likewise.
18003 * varasm.c: Likewise.
18004
eeb9edcb 180052004-01-06 Kazu Hirata <kazu@cs.umass.edu>
18006
18007 * doc/install.texi: Fix typos.
18008 * doc/invoke.texi: Likewise.
18009 * doc/md.texi: Likewise.
18010
ebe79df7 180112004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
18012
18013 * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18014
6ef4a624 180152004-01-06 Jan Hubicka <jh@suse.cz>
18016
18017 * i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
18018 (function_arg_advance): Do not pass aggregates in SSE; deal handling
18019 of MMX_REGPARM.
18020 (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
18021 add MMX_REGPARM.
18022 * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18023 (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18024 (MMX_REGPARM_MAX): Similarly for -mmmx.
18025
ada8cf8b 180262004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18027
18028 * config/sh/linux.h: Fix comment formatting.
18029 * config/sh/netbsd-elf.h: Likewise.
18030 * config/sh/sh.c: Likewise.
18031 * config/sh/sh.h: Likewise.
18032 * config/sh/vxworks.h: Likewise.
18033
3f6473f4 180342004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18035
18036 * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18037 * toplev.c (output_file_directive): Don't use
18038 ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18039
1c101c86 180402004-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl>
18041
18042 * toplev.c: Fix broken checkin of 2003-12-30.
18043
211e9ed7 180442004-01-05 Daniel Berlin <dberlin@dberlin.org>
09b049bd 18045
211e9ed7 18046 * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18047 (USING_MMAP): We don't support non-mmap.
18048 (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18049 large objects.
18050 (struct page_entry): Remove bytes_free.
18051 (struct page_table_chain): Remove.
18052 (struct globals): Remove page_table member.
18053 (loookup_page_table_entry): Function deleted.
18054 (set_page_table_entry): Ditto.
18055 (ggc_allocated_p): No longer need page table lookups.
18056 (ggc_marked_p): Ditto.
18057 (alloc_small_page): Don't care about bytes_free anymore.
18058 (alloc_large_page): Round up size.
18059 (ggc_alloc_zone_1): Mark large objects as such, and calculate
09b049bd 18060 their size the new way.
211e9ed7 18061 Remove page table lookups and setting.
18062 (ggc_get_size): Calculate large object size the new way.
18063 (sweep_pages): Redo to account for fact that we no longer have
18064 bytes_free.
18065 (ggc_collect): No longer need to reincrement bytes_free.
18066 (ggc_pch_alloc_object): Handle new large objects properly.
18067 (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18068
6ea1f694 180692004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18070
18071 * doc/invoke.texi: Remove a page break.
18072
e067eab2 180732004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18074
18075 * config/avr/avr.c (avr_output_function_prologue): Remove an
18076 extra pair of curly braces.
18077
09e5ce26 180782004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18079
18080 * config/mn10300/mn10300.c: Fix comment formatting.
18081 * config/mn10300/mn10300.h: Likewise.
18082
9f5f9308 180832004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18084
18085 * tree.h: Update documentation on nothrow_flag.
18086 * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18087 types.
18088
77b238a3 180892004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18090
18091 * doc/invoke.texi: Remove traces of dead ports.
18092
292a5474 180932004-01-05 Richard Sandiford <rsandifo@redhat.com>
18094
18095 * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18096 option.
18097
198a19fa 180982004-01-05 Richard Sandiford <rsandifo@redhat.com>
18099
18100 PR target/12945
18101 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
36b4934c 18102 counter labels.
198a19fa 18103 * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18104 (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18105 string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
18106 the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18107 (mips_symbol_insns): Don't trust the local/global classification.
18108 (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18109 (override_options): Make -mabicalls -fno-unit-at-a-time imply
18110 -mno-explicit-relocs.
18111 (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18112 between local and global symbols.
18113
fa70e739 181142004-01-05 Richard Sandiford <rsandifo@redhat.com>
18115
18116 * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18117 (mips_preferred_reload_class): Declare.
18118 * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18119 (EXTRA_CONSTRAINT): Update accordingly.
18120 (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18121 * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18122 (mips_preferred_reload_class): New function. Prefer LEA_REGS if
18123 mips_dangerous_for_la25_p.
18124 (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18125 if mips_dangerous_for_la25_p.
18126
0a9a8eaf 181272004-01-05 Bernardo Innocenti <bernie@develer.com>
18128
18129 * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
09b049bd 18130 warning.
0a9a8eaf 18131
2cd18f76 181322004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
18133
18134 * configure.ac: Use AC_PROG_CPP_WERROR.
18135 * configure: Regenerate.
18136
1af56aa4 181372004-01-04 Zack Weinberg <zack@codesourcery.com>
18138
18139 * .cvsignore: Add autom4te.cache.
18140
8cc8156d 181412004-01-04 Richard Sandiford <rsandifo@redhat.com>
18142
18143 * doc/invoke.texi: Revamp documentation of MIPS options. Remove
18144 -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18145 -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
18146 then architecture options, then ABI options. General rewording.
18147
648147e8 181482004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
18149
18150 PR c/3414
18151 * doc/extend.texi: Clarify definition of malloc attribute.
18152
611e5405 181532004-01-04 Jan Hubicka <jh@suse.cz>
18154
18155 * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18156 * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18157 * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18158 (cgraph_inline_p): Add extra argument reason.
18159 * cgraphunit.c: Minor formating fixes.
18160 cgraph_first_inlined_callee): New functions.
18161 (record_call_1): Record builtins too.
18162 (cgraph_analyze_function): Update inline_failed messages.
18163 (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18164 cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18165 (cgraph_check_inline_limits): Likewise; Add argument reason.
18166 (cgraph_set_inline_failed): New static function.
18167 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18168 reasons.
18169 (cgraph_inline_p): Add new argument reason.
18170 * tree-inline.c (expand_call_inline): Update warning.
18171
6a8964db 181722004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
18173
1211e6bc 18174 * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18175 with modern equivalents.
18176 * configure: Regenerate.
18177
1af56aa4 18178 * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18179 * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18180 * configure: Regenerate.
478a5aa8 18181
f3cfafe4 18182 * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18183
6a8964db 18184 * configure.in: Rename to configure.ac.
18185 * configure.ac: Renamed from configure.in; make minimum necessary
18186 changes for autoconf 2.5x.
18187 * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18188 * configure: Regenerate with autoconf 2.57.
18189
166ac515 181902004-01-03 Kazu Hirata <kazu@cs.umass.edu>
18191
18192 * config/mips/linux.h: Fix comment formatting.
18193 * config/mips/mips.c: Likewise.
18194 * config/mips/mips.h: Likewise.
18195 * config/mips/mips.md: Likewise.
18196 * config/mips/netbsd.h: Likewise.
18197 * config/mips/windiss.h: Likewise.
18198
02dbf737 181992004-01-02 Richard Henderson <rth@redhat.com>
18200
18201 * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18202 for sse and 387; add suppression for mmx.
18203
dcd8fd01 182042004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
18205
d33c284e 18206 * loop.c (loop_optimize): Free all loops_info's mems.
18207
1af56aa4 18208 * c-typeck.c (finish_init): Free spelling_base before
dcd8fd01 18209 setting it again.
1af56aa4 18210
dcd8fd01 18211 * cfgloop.c (flow_loops_find): Always free the sbitmap
18212 headers.
18213
18214 * predict.c (estimate_probability): Free bbs after being
18215 done with it.
18216
b93f3721 182172004-01-02 Kazu Hirata <kazu@cs.umass.edu>
18218
18219 * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18220 const_8bit_operand and call_address_operand.
18221
9f01464b 182222004-01-02 Jan Hubicka <jh@suse.cz>
18223
18224 * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
18225 when there is nothing to inline but warnings are requested.
18226 (cgraph_decide_inlining): Fix memory leak.
18227
0a5c2b94 182282004-01-02 Jan Hubicka <jh@suse.cz>
18229
18230 * expr.c (store_constructor): Fix pasto in previous patch.
18231
d697f1db 182322004-01-02 Kazu Hirata <kazu@cs.umass.edu>
18233
18234 * config/i386/cygming.h: Fix comment formatting.
18235 * config/i386/djgpp.h: Likewise.
18236 * config/i386/gthr-win32.c: Likewise.
18237 * config/i386/i386-interix.h: Likewise.
18238 * config/i386/i386.c: Likewise.
18239 * config/i386/i386.h: Likewise.
18240 * config/i386/openbsd.h: Likewise.
18241 * config/i386/winnt.c: Likewise.
18242 * config/i386/xm-mingw32.h: Likewise.
18243
52176bc1 182442004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
18245
18246 * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18247 copyright and last modification dates.
18248
f684e2fa 182492004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
18250
18251 * doc/install.texi (Specific): Mention x86_64.
18252
9d4b544c 182532004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
18254
18255 * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18256 Call force_operand on plus_constant result.
18257
b8d2bcdd 182582004-01-01 Jan Hubicka <jh@suse.cz>
18259
18260 * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18261 * expr.c (store_constructor): Use vec_init pattern.
18262 * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18263 * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18264 (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18265 * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18266 New patterns.
18267 (sse2_unpc?pd): Fix pattern.
18268 (sse2_movlpd): Kill.
18269 (sse2_movsd): Deal with movlpd too.
18270 * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18271 (ix86_expand_vector_init): New.
18272 * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18273 * md.texi (vec_set, vec_extract): Document
18274
99cf25d0 182752003-12-31 Jan Hubicka <jh@suse.cz>
18276
18277 PR opt/13473
18278 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
18279 ASM input operands
18280
18281 PR opt/12617
18282 * toplev.c (dump_file_index): Reorder ce3 and bbro.
18283 (dump_file): Likewise.
18284 (rest_of_compilation): Likewise.
18285
18286 PR debug/13367
18287 * cgraph.c (cgraph_function_possibly_inlined): Even with
18288 flag_really_no_inline we inline always_inline functions.
18289 * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18290 for non-always_inline functions when there is flag_really_no_inline.
18291 (cgraph_decide_inlining): Limit work done when not inlining.
18292 (cgraph_decide_inlining_incrementally): Likewise.
18293 (cgraph_optimize_function): Check whether something got inlined.
18294 * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18295 extern inline functions when not inlining.
18296
18297 * opts.c (decode_options): Disable crossjumping at -O1
18298 * invoke.texi (-O1): Document change.
474bb692 18299
bd95886b 18300See ChangeLog.10 for earlier changes.