OSDN Git Service

2004-06-15 Jerry Quinn <jlquinn@optonline.net>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
2
3         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
4         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
5         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
6         Likewise.
7         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
8         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
9         expand_builtin_strcmp, expand_builtin_strncmp,
10         expand_builtin_frame_address): Likewise.
11         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
12         insert_one_insn): Likewise.
13         * calls.c (prepare_call_address, precompute_register_parameters,
14         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
15         * cfganal.c (flow_active_insn_p): Likewise.
16         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
17         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
18         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
19         make_extraction, recog_for_combine, gen_lowpart_for_combine,
20         simplify_comparison, record_dead_and_set_regs_1,
21         record_dead_and_set_regs, record_promoted_value,
22         check_promoted_subreg, get_last_value_validate, get_last_value,
23         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
24         unmentioned_reg_p_1): Likewise.
25         * conflict.c (mark_reg): Likewise.
26         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
27         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
28         merge_equiv_classes, flush_hash_table, invalidate,
29         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
30         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
31         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
32         record_jump_cond, cse_insn, addr_affects_sp_p,
33         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
34         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
35         cse_cc_succs, cse_condition_code_reg): Likewise.
36         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
37         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
38         cselib_record_set, cselib_record_sets): Likewise.
39         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
40         dbxout_block): Likewise.
41         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
42         * dojump.c (do_jump): Likewise.
43         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
44         is_based_loc, rtl_for_decl_location): Likewise.
45         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
46         set_decl_incoming_rtl, mark_user_reg): Likewise.
47         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
48         copy_to_suggested_reg, allocate_dynamic_stack_space,
49         probe_stack_range, hard_function_value): Likewise.
50         * expmed.c (store_bit_field, store_fixed_bit_field,
51         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
52         extract_split_bit_field, expand_divmod, emit_store_flag_force):
53         Likewise.
54         * expr.c (convert_move, convert_modes,
55         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
56         use_group_regs, emit_move_insn, emit_move_insn_1,
57         compress_float_constant, push_block, emit_single_push_insn,
58         emit_push_insn, get_subtarget, expand_assignment, store_expr,
59         store_constructor, store_field, force_operand, safe_from_p,
60         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
61         Likewise.
62         * final.c (profile_function, final_scan_insn, alter_subreg,
63         get_mem_expr_from_op, output_asm_operand_names, output_operand,
64         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
65         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
66         find_regno_partial, propagate_one_insn, init_propagate_block_info,
67         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
68         attempt_auto_inc, find_auto_inc, mark_used_regs,
69         count_or_remove_death_notes_bb): Likewise.
70         * function.c (find_temp_slot_from_address, update_temp_slot_address,
71         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
72         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
73         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
74         purge_single_hard_subreg_set, instantiate_decl,
75         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
76         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
77         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
78         expand_function_start, diddle_return_value, clobber_return_register,
79         expand_function_end, keep_stack_depressed, handle_epilogue_set,
80         update_epilogue_consts): Likewise.
81         * genemit.c (gen_exp, gen_insn): Likewise.
82         * genrecog.c (make_insn_sequence): Likewise.
83         * global.c (global_conflicts, expand_preferences, mark_reg_store,
84         mark_reg_conflicts, set_preference, reg_becomes_live,
85         build_insn_chain, mark_reg_change): Likewise.
86         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
87         Likewise.
88         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
89         Likewise.
90         * integrate.c (copy_rtx_and_substitute, try_constants,
91         subst_constants, mark_stores, allocate_initial_values): Likewise.
92         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
93         delete_computation, rtx_renumbered_equal_p, true_regnum,
94         reg_or_subregno): Likewise.
95         * lcm.c (reg_dies, reg_becomes_live): Likewise.
96         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
97         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
98         wipe_dead_reg, no_conflict_p): Likewise.
99         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
100         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
101         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
102         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
103         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
104         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
105         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
106         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
107         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
108         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
109         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
110         try_swap_copy_prop): Likewise.
111         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
112         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
113         Likewise.
114         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
115         reload_cse_simplify_operands, reload_combine,
116         reload_combine_note_store, reload_combine_note_use,
117         reload_cse_move2add, move2add_note_store): Likewise.
118         * print-rtl.c (print_rtx): Likewise.
119         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
120         contains_pseudo, handle_asm_insn): Likewise.
121         * ra-debug.c (ra_print_rtx_object, dump_constraints,
122         dump_static_insn_cost): Likewise.
123         * ra-rewrite.c (slots_overlap_p, emit_colors,
124         remove_suspicious_death_notes): Likewise.
125         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
126         register_operand, scratch_operand, nonmemory_operand,
127         constrain_operands): Likewise.
128         * reg-stack (check_asm_stack_operands, remove_regno_note,
129         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
130         subst_asm_stack_regs): Likewise.
131         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
132         record_address_regs, reg_scan_mark_refs): Likewise.
133         * regmove.c (discover_flags_reg, replacement_quality,
134         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
135         fixup_match_1): Likewise.
136         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
137         kill_set_value, copyprop_hardreg_forward_1): Likewise.
138         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
139         reload_inner_reg_of_subreg, can_reload_into, push_reload,
140         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
141         operands_match_p, decompose, find_reloads, find_reloads_toplev,
142         find_reloads_address, subst_indexed_address, find_reloads_address_1,
143         find_reloads_subreg_address, find_replacement,
144         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
145         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
146         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
147         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
148         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
149         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
150         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
151         do_output_reload, emit_reload_insns, gen_reload,
152         delete_address_reloads_1, inc_for_reload): Likewise.
153         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
154         update_reg_unused_notes, fill_slots_from_thread): Likewise.
155         * resource.c (update_live_status, mark_referenced_resources,
156         mark_set_resources, mark_target_live_regs): Likewise.
157         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
158         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
159         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
160         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
161         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
162         parms_set, find_first_parameter_load, keep_with_call_p,
163         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
164         num_sign_bit_copies1): Likewise.
165         * rtlhooks.c (gen_lowpart_general): Likewise.
166         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
167         sched_analyze): Likewise.
168         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
169         Likewise.
170         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
171         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
172         simplify_binary_operation, simplify_const_relational_operation,
173         simplify_subreg): Likewise.
174         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
175         expand_end_stmt_expr, expand_return, expand_decl,
176         expand_anon_union_decl): Likewise.
177         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
178         find_splittable_regs, find_splittable_givs, find_common_reg_term,
179         loop_iterations): Likewise.
180         * var-tracking.c (variable_union, variable_part_different_p,
181         variable_different_p, count_uses, add_uses, add_stores,
182         compute_bb_dataflow, set_variable_part, delete_variable_part,
183         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
184         Likewise.
185         * varasm.c (assemble_variable): Likewise.
186
187 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
188
189         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
190         definition.
191         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
192         #undef and #if 0'd definition.
193
194 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
195
196         * combine.c (distribute_notes): Comment typo fix.
197
198 2004-06-15  Roger Sayle  <roger@eyesopen.com>
199
200         * expmed.c (synth_mult): Mask bits of the multiplier to the
201         machine mode of the multiplication.  Don't consider shifts
202         by more than (or equal to) the width of the operation's mode.
203
204 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
205
206         * doc/install.texi: Yet another update for autoconf
207         and automake versions.
208
209 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
210
211         * function.h (struct function): Remove cannot_inline field.
212         (current_function_cannot_inline): Remove.
213         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
214         Simplify conditionals to ignore warn_return_type.
215         * tree-optimize.c (tree_rest_of_compilation): Do not reset
216         DECL_DEFER_OUTPUT.
217         * objc/objc-act.c (build_module_descriptor, finish_method_def):
218         Do not set current_function_cannot_inline.
219
220 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
221
222         * cfglayout.c (fixup_reorder_chain): Handle case where the
223         destination of E_TAKEN is EXIT_BLOCK_PTR.
224
225 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
226
227         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
228
229 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
230
231         * fold-const.c (operand_equal_p): Update comment.
232
233 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
234
235         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
236         (INCOMING_RETURN_ADDR_RTX): Define.
237         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
238         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
239         __builtin_return_address(0).
240         (m32r_return_addr): Added for __builtin_return_address(0).
241         (m32r_reload_lr): Ditto.
242
243         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. 
244         
245 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
246
247         * doc/install.texi (Prerequisites): Update libbanshee,
248         fastjar, libcpp, libjava/libltdl entries to
249         automake 1.8.5.
250
251 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
252             Olivier Hainque  <hainque@act-europe.fr>
253
254         * function.c (fixup_var_refs): Also adjust the start of sequence
255         after fixing up the insns.
256
257 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
258
259         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
260
261 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
262
263         * doc/install.texi (Prerequisites): Update libstdc++ entry to
264         automake 1.8.5.
265
266 2004-06-14  Eric Christopher  <echristo@redhat.com>
267
268         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
269         to -mtpf-trace (-mno-tpf-trace).
270         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
271         documentation.
272
273 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
274
275         * real.c: Fix bit count in head comment.
276
277 2004-06-14  Jeff Law  <law@redhat.com>
278
279         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
280         PHIs where the destination or an argument is marked with
281         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
282
283 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
284
285         PR middle-end/15945
286         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
287         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
288
289 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
290
291         * opts.sh (var_args): Fix regexp.
292
293 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
294
295         PR target/15178
296         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
297
298 2004-06-14  Paul Brook  <paul@codesourcery.com>
299
300         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
301
302 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
303
304         * Makefile.in (FLAGS_H): New.
305         (flags.h): Replace by FLAGS_H.
306         * c.opt: Document Var, VarExists, Init and Report attributes.
307         * common.opt: Fill the values of the attributes.
308         * diagnostic.c (flag_fatal_errors): Do not define.
309         * except.c (flag_non_call_exceptions): Do not define.
310         * flags.h: Include options.h.  Remove declarations conflicting with
311         the automatically defined ones.
312         * opts.c: Remove automatically defined variables.
313         (handle_option): Perform default initialization.
314         (common_handle_option): Do not handle options covered by the
315         default initialization.
316         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
317         fields.
318         (CL_REPORT): New.
319         * opts.sh: Generate variable declarations, handle CL_REPORT.
320         * toplev.c: Remove automatically defined variables.
321         (f_options): Removed.
322         (print_switch_values): Use cl_options instead of f_options.
323         * toplev.h (version_flag): Declaration removed.
324
325 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
326
327         * config/sparc/sparc.h: Correct comment about availability of
328         little endian option.
329
330         * config.gcc: Remove sparc64-*-aout*.
331         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
332         * config/sparc/sp64-aout.h: Remove.
333         * config/sparc/aout.h: Remove.
334
335 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
336
337         * config/s390/s390.c: Include "tree-gimple.h".
338         (s390_gimplify_va_arg): New function.
339         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
340         (s390_va_arg): Remove.
341         * config/s390/s390-protos.h (s390_va_arg): Remove.
342         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
343
344 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
345
346         * basic-block.h (could_fall_through): Declare.
347         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
348         Fail if the source already has a fallthrough edge to the exit
349         block pointer.
350         (could_fall_through): New function.
351         * cfgbuild.c (make_edges): Check if we already have a fallthrough
352         edge to the exit block pointer.
353         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
354         not called before reload has completed.
355         Handle special case of first block having a fall-through exit edge.
356         (cfg_layout_finalize): Don't call it before reload or if we have
357         rtl epilogues.
358         (fixup_reorder_chain): A fall through to the exit block does not
359         require the block to come last.  Add sanity checks.
360         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
361         edges to the exit block.
362         * function.c (cfglayout.h): #include.
363         (thread_prologue_and_epilogue_insns): If we have neither return nor
364         epilogue, but a fall through to the exit block from mid-function,
365         force a non-fall-through exit.
366         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
367
368 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
369
370         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
371         for power5 and rs64a.  Correct condition for default.  Correct power3,
372         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
373
374 2004-06-13  Steven Bosscher <stevenb@suse.de>
375
376         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
377         Revert previous change, don't use CALL_P.
378
379 2004-06-13  Jason Merrill  <jason@redhat.com>
380
381         * tree.h: Move std_gimplify_va_arg_expr protoype here.
382         * tree-gimple.h: From here.
383
384 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
385
386         Fix PR tree-optimization/15979
387         Fix PR tree-optimization/15981
388         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
389         try to insert values undefined along some path.
390
391 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
392
393         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
394         are available everywhere too.
395
396 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
397
398         * fold-const.c (fold_checksum_tree <case 't'>): Only
399         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
400         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
401         EXPR is an INTEGERAL_TYPE or a scalar float type.
402
403 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
404
405         * tree-sra.c (tree_sra): Update documentation.
406
407 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
408
409         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
410         function_types_compatible_p, type_lists_compatible_p): Remove
411         flags parameter.
412         * c-tree.h (comptypes): Likewise.
413         (COMPARE_STRICT): Remove.
414         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
415         callers changed.
416
417 2004-06-13  Eric Christopher  <echristo@redhat.com>
418
419         * c-decl.c (diagnose_mismatched_decls): Improve error message.
420         Remove unused code.
421         * c-typeck.c (comptypes): Add location in standard we're checking.
422
423 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
424
425         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
426         version 3.3.4.
427
428 2004-06-12  Roger Sayle  <roger@eyesopen.com>
429
430         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
431         index by machine mode.
432         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
433         tables inside the loop over machine modes.
434         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
435         expand_divmod): Index shift*_cost by the appropriate machine mode.
436
437 2004-06-12  Eric Christopher  <echristo@redhat.com>
438
439         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
440         * config/s390/s390.md: Ditto.
441         * config/s390/s390.c: Ditto.
442         (s390_frame_info): Conditionalize frame and setup info on
443         TARGET_TPF_PROFILING.
444         (s390_arg_frame_offset): Ditto.
445
446 2004-06-12  Roger Sayle  <roger@eyesopen.com>
447
448         * fold-const.c (omit_two_operands): New function.
449         * tree.h (omit_two_operands): Prototype here.
450         * builtins.c (fold_builtin_unordered_cmp): New function to lower
451         C99 unordered comparison builtins to the appropriate tree nodes.
452         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
453         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
454         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
455         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
456         (simplify_builtin_memcmp, simplify_builtin_strncmp,
457         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
458         omit_two_operands function to build the required COMPOUND_EXPRs.
459
460 2004-06-12  Steven Bosscher <stevenb@suse.de>,
461             Andreas Jaeger  <aj@suse.de>
462
463         * gcse.c (record_set_info): Use predicates like REG_P.
464         (mems_conflict_for_gcse_p): Likewise.
465         (load_killed_in_block_p): Likewise.
466         (hash_expr_1): Likewise.
467         (insert_set_in_table): Likewise.
468         (gcse_constant_p): Likewise.
469         (hash_scan_set): Likewise.
470         (hash_scan_insn): Likewise.
471         (canon_list_insert): Likewise.
472         (record_last_mem_set_info): Likewise.
473         (record_last_set_info): Likewise.
474         (compute_hash_table_work): Likewise.
475         (mark_set): Likewise.
476         (mark_clobber): Likewise.
477         (mark_oprs_set): Likewise.
478         (compute_transp): Likewise.
479         (find_avail_set): Likewise.
480         (cprop_insn): Likewise.
481         (do_local_cprop): Likewise.
482         (cprop): Likewise.
483         (find_implicit_sets): Likewise.
484         (find_bypass_set): Likewise.
485         (bypass_conditional_jumps): Likewise.
486         (insert_insn_end_bb): Likewise.
487         (pre_insert_copy_insn): Likewise.
488         (compute_transpout): Likewise.
489         (next_ls_expr): Likewise.
490         (invalidate_any_buried_refs): Likewise.
491         (compute_ld_motion_mems): Likewise.
492         (reg_set_info): Likewise.
493         (reg_clear_last_set): Likewise.
494         (find_moveable_store): Likewise.
495         (compute_store_table): Likewise.
496         (find_loads): Likewise.
497         (store_killed_in_insn): Likewise.
498         (insert_insn_start_bb): Likewise.
499         (reg_set_between_after_reload_p): Likewise.
500         (reg_used_between_after_reload_p): Likewise.
501         (is_jump_table_basic_block): Likewise.
502         (gcse_after_reload): Likewise.
503         (hash_scan_set_after_reload): Likewise.
504         (compute_hash_table_after_reload): Likewise.
505
506 2004-06-12  Steven Bosscher  <stevenb@suse.de>
507
508         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
509         (INSN_P): Don't look at the rtx code class, just explicitly
510         check for one of the tree RTX_INSN codes.
511
512 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
513
514         * c-typeck.c (default_function_array_conversion): Use
515         build_pointer_type not TYPE_POINTER_TO.
516
517 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
518
519         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
520         * configure, config.in: Regenerate.
521         * system.h: Unconditionally define bool as unsigned char,
522         BOOL_BITFIELD as unsigned int.
523         * domwalk.h: Use BOOL_BITFIELD.
524
525 2004-06-12  Andreas Jaeger  <aj@suse.de>
526
527         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
528         * libgcc-darwin.ver: Likewise.
529
530 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
531
532         * reload.c (find_reloads): Force reload for pseudo registers on big
533         endian machines.
534
535 2004-06-11  Steven Bosscher <stevenb@suse.de>
536
537         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
538         Don't try to mark anything control dependent on the entry or
539         exit blocks.
540
541 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
542
543         Fix Bug 15899
544         Fix Bug 15460
545         * tree.h (SSA_NAME_VALUE): New macro.
546         (struct tree_ssa_name): Add value_handle member.
547         * tree-ssa-pre.c: Replaced.
548         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
549         (struct cst_ann_d): New.
550         (struct expr_ann_d): New.
551         (union tree_ann_d): Add cst_ann, expr_ann.
552         * tree-dfa.c (create_cst_ann): New function.
553         (create_expr_ann): Ditto.
554         * tree-flow-inline.h (cst_ann): New function.
555         (expr_ann): Ditto.
556         (get_cst_ann): Ditto.
557         (get_expr_ann): Ditto..
558
559 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
560
561         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
562         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
563         _U_Qfcmp library function.
564         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
565         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
566
567         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
568         unspec used for loading address from DLT.
569         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
570         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
571         Don't use short code sequence when loading the address of a nonlocal
572         label.
573         (nonlocal_goto): New expander.
574         (indirect_goto): New jump pattern for nonlocal gotos.
575         (short_jump): Remove extra whitespace.
576         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
577         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
578         pattern.
579
580 2004-06-11  Roger Sayle  <roger@eyesopen.com>
581
582         * expmed.c (synth_mult): Add an additional MODE argument for the
583         machine mode of the multiplication.  Update recursive calls.  Use
584         mode instead of word_mode for determining operation costs.
585         (choose_mult_variant): Update calls to synth_mult with "mode".
586
587 2004-06-11  Richard Henderson  <rth@redhat.com>
588
589         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
590         and makes_aliased_stores.
591
592 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
593
594         * doc/install.text (--enable-shared): Fix typo.
595
596 2004-06-11  Richard Henderson  <rth@redhat.com>
597
598         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
599         argument.  Use internal post for call to gimplify_expr.  Tidy
600         rounded type size computation.
601         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
602         get_initialized_tmp_var.
603
604 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
605
606         * doc/install.texi (--enable-shared): Update libobjc's shared library
607         status.  Remove reference to libf2c.
608
609 2004-06-11  Jason Merrill  <jason@redhat.com>
610
611         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
612         * config/i386/i386.c (ix86_va_arg): Remove.
613         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
614         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
615         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
616         * config/alpha/alpha.c (alpha_va_arg): Remove.
617         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
618         * config/sparc/sparc.c (sparc_va_arg): Remove.
619
620         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
621         assignment might throw.
622         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
623         expressions.
624
625 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
626
627         PR 15886:
628         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
629
630 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
631
632         * doc/install.texi (Prerequisites): Update documentation of
633         required versions of autoconf and automake.  Remove mention of
634         libf2c.
635
636 2004-06-11  Jason Merrill  <jason@redhat.com>
637
638         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
639         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
640
641 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
642
643         * typeclass.h: Add GPL plus exception license.  Add include
644         guard.
645
646 2004-06-10  Jason Merrill  <jason@redhat.com>
647
648         * gimplify.c (gimplify_modify_expr): Don't force a temporary
649         of an aggregate_value_p type.
650
651 2004-06-10  Jeff Law  <law@redhat.com>
652
653         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
654         code when we are in gimple form.
655
656 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
657
658         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
659         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
660         (highest_ssa_version): Remove.
661         * tree-outof-ssa.c (new_temp_expr_table): Replace
662         highest_ssa_version with num_ssa_names.
663         (dump_replaceable_exprs): Likewise.
664         (rewrite_vars_out_of_ssa): Likewise.
665         * tree-ssa-ccp.c (initialize): Likewise
666         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
667         * tree-ssa-dce.c (tree_dce_init): Likewise.
668         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
669         * tree-ssa-live.c (create_ssa_var_map): Likewise.
670         (dump_var_map): Likewise.
671         * tree-ssa.c (verify_ssa): Likewise.
672         (kill_redundant_phi_nodes): Likewise.
673         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
674         * tree-ssanames.c: Include tree-flow.h
675         (ssa_names): New varray.
676         (init_ssa_names): Initialize ssa_names.
677         Reserve the first slot of the ssa_names table.
678         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
679         Assign version numbers using num_ssa_names.
680
681 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
682
683         * doc/sourcebuild.texi (Front End): Add details of more
684         installation documentation required.
685
686 2004-06-10  Brian Booth  <bbooth@redhat.com>
687
688         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
689         of V_MAY_DEF and V_MUST_DEF.
690         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
691         num_vdefs to num_v_may_defs.
692         (compute_immediate_uses_for_stmt): Rename occurences of vdef
693         to v_may_def.
694         (redirect_immediate_uses): Ditto.
695         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
696         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
697         Also add code to sum up the number of v_must_defs.
698         (vdefs_disappeared_p): Replace with...
699         (v_may_defs_disappeared_p): This.
700         (v_must_defs_disappeared_p): New function.
701         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
702         Also add code to mark new variables found in V_MUST_DEFs for
703         renameing.
704         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
705         vdef_ops to v_may_def_ops.
706         (get_vdef_ops): Replace with...
707         (get_v_may_def_ops): This.
708         * tree-flow-inline.h (get_vdef_ops): Replace with...
709         (get_v_may_def_ops): This.
710         (get_v_must_def_ops): New function.
711         (get_vdef_result_ptr): Replace with...
712         (get_v_may_def_result_ptr): This.
713         (get_vdef_op_ptr): Ditto with...
714         (get_v_may_def_op_ptr); This.
715         (get_v_must_def_op_ptr): New function.
716         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
717         to v_may_def. Also add code to mark statements with
718         V_MUST_DEFs as definition sites.
719         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
720         add code to register new V_MUST_DEFs made by the statement.
721         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
722         (check_replaceable): Rename occurences of vdef to v_may_def. Also
723         add check for V_MUST_DEFs.
724         (find_replaceable_in_bb): Ditto.
725         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
726         to v_may_def. Also add code to dump V_MUST_DEFs.
727         * tree-sra.c (mark_all_vdefs): Replace with...
728         (mark_all_v_may_defs): This.
729         (mark_all_v_must_defs): New function.
730         (create_scalar_copies): Replace call to mark_all_vdefs with
731         calls to mark_all_v_may_defs and mark_all_v_must_defs.
732         (scalarize_structures): Rename occurences of vdef to v_may_def.
733         Also add a check for V_MUST_DEFs.
734         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
735         * tree-ssa-alias.c (global_var): Update comment.
736         (compute_may_aliases): Ditto.
737         (compute_points_to_and_addr_escape): Rename occurences of vdef
738         to v_may_def. Also add code to mark variables in V_MUST_DEF
739         operands as being written to.
740         (group_aliases): Update comment.
741         (maybe_create_global_var): Ditto.
742         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
743         Also add a check for V_MUST_DEFs on GIMPLE registers.
744         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
745         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
746         to v_may_def. Also add code to mark all V_MUST_DEF operands
747         VARYING.
748         (initialize): Ditto.
749         (set_rhs): Rename occurences of vdef to v_may_def. Also add
750         code to update SSA_NAMEs in V_MUST_DEFs.
751         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
752         to v_may_def.
753         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
754         occurences of vdef to v_may_def. Also add code to mark statements
755         with V_MUST_DEFs as necessary.
756         (propagate_necessity): Rename occurences of vdef to v_may_def.
757         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
758         occurences of vdef to v_may_def. Also add code to mark operands
759         in V_MUST_DEFs for renaming.
760         (eliminate_redundant_computations): Rename occurences of vdef
761         to v_may_def.
762         (record_equivalences_from_stmt): Rename occurences of vdef
763         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
764         (optimize_stmt): Remove unnesessary variable vdefs. Update
765         comment.
766         (register_definitions_for_stmt): Rename occurences of vdef
767         to v_may_def. Also add code to register definitions made with
768         V_MUST_DEFs.
769         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
770         (fix_stmt_v_may_defs): This.
771         (fix_phi_uses): Rename occurences of vdef to v_may_def.
772         (dse_optimize_stmt): Ditto.
773         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
774         to v_may_def. Also add code to mark V_MUST_DEF operands as being
775         used in virtual operators.
776         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
777         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
778         renaming.
779         * tree-ssa-operands.c (opf_kill_def): New flag for killing
780         definitions.
781         (build_vdefs): Renamed to...
782         (build_v_may_defs): This.
783         (build_v_must_defs): New variable.
784         (voperands_d): Add v_must_def_ops and replace vdef_ops with
785         v_may_def_ops.
786         (append_vdef): Replace with...
787         (append_v_may_def): This.
788         (append_v_must_def): New function.
789         (NUM_FREE): Increment for V_MUST_DEF
790         (optype_freelist): Increment its size for V_MUST_DEF
791         (allocate_vdef_optype): Replace with...
792         (allocate_v_may_def_optype): This.
793         (allocate_v_must_def_optype): New function.
794         (free_vdefs): Replace with...
795         (free_v_may_defs): This.
796         (free_v_must_defs): New function.
797         (remove_vdefs): Replace with...
798         (remove_v_may_defs): This.
799         (remove_v_must_defs): New function.
800         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
801         add code to initialize build_v_must_defs.
802         (finalize_ssa_vdefs): Replace with...
803         (finalize_ssa_v_may_defs): This.
804         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
805         (finalize_ssa_v_must_defs): New function.
806         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
807         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
808         (verify_start_operands): Rename occurences of vdef to v_may_def.
809         Also add check for build_v_must_defs.
810         (get_stmt_operands): Rename occurences of vdef to v_may_def.
811         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
812         killing definitions.
813         (get_expr_operands): Update comment and use opf_kill_def for
814         killing definitions.
815         (add_stmt_operand): Replace code that appends VDEFs with code
816         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
817         otherwise.
818         (add_call_clobber_ops): Update comments.
819         * tree-ssa-operands.h (vdef_optype_d): Replace with...
820         (v_may_def_optype_d): This.
821         (v_must_def_optype_d): New structure.
822         (VDEF_OPS): Replace with...
823         (V_MAY_DEF_OPS): This.
824         (STMT_VDEF_OPS): Same with...
825         (STMT_V_MAY_DEF_OPS): This.
826         (NUM_VDEFS): And...
827         (NUM_V_MAY_DEFS): This.
828         (VDEF_RESULT_PTR): As well as...
829         (V_MAY_DEF_RESULT_PTR): This.
830         (VDEF_RESULT): Same goes for...
831         (V_MAY_DEF_RESULT): This.
832         (VDEF_OP_PTR): And...
833         (V_MAY_DEF_OP_PTR): This.
834         (VDEF_OP): And...
835         (V_MAY_DEF_OP): This.
836         (V_MUST_DEF_OPS): New macro.
837         (STMT_V_MUST_DEF_OPS): Ditto.
838         (NUM_V_MUST_DEFS): Ditto.
839         (V_MUST_DEF_OP_PTR): Ditto.
840         (V_MUST_DEF_OP): Ditto.
841         (remove_vdefs): Replace signature with...
842         (remove_v_may_defs): This.
843         (remove_v_must_defs): New function signature.
844         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
845         with calls to remove_v_may_defs and remove_v_must_defs.
846         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
847         Also add code that marks left occurences of operands in V_MUST_DEFs.
848         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
849         to v_may_def. Also add check for V_MUST_DEFs.
850         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
851
852 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
853
854         PR target/15653
855         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
856         insn.
857
858 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
859
860         PR web/15263
861         * doc/install.texi: Remove superfluous linebreak.
862
863 2004-06-10  Roger Sayle  <roger@eyesopen.com>
864
865         * builtins.c (expand_builtin): Fall back to library function call for
866         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
867         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
868         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
869         IMAGPART_EXPR respectively.
870
871 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
872
873         * sh.c (dump_table): New argument start.  Changed caller.
874         (fixup_mova): New function.
875         (find_barrier): Use it.
876         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
877         If the label a mova refers to is above the mova itself, change
878         the mova into a load.
879         * sh.md (*casesi_worker): Rename to:
880         (casesi_worker_1).
881         (casesi_worker_2): New insn.
882
883 2004-06-10  Jason Merrill  <jason@redhat.com>
884
885         * target.h (struct gcc_target): Change gimplify_va_arg_expr
886         hook signature.
887         * tree-gimple.h: Adjust.
888         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
889         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
890         Use fold_convert.
891         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
892         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
893         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
894         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
895         (gimplify_va_arg_expr): Return GS_ERROR in error case.
896         Gimplify valist rather than calling stabilize_va_list.
897
898 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
899
900         * Makefile.in (df.o): Remove fibheap dependency.
901         * df.h: Do not include sbitmap.h.
902         (struct ref): New field "data".
903         (DF_REF_DATA): New accessor macro.
904         (struct df): Field "dom" removed.
905         (df_analyze_subcfg): New function.
906         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
907         (transfer_function): ... new type.
908         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
909         (iterative_dataflow): ... new function.
910         (enum set_representation, struct dataflow): New.
911         * df.c: Do not include fibheap.h.
912
913         (df_reg_def_chain_clean, df_reg_use_chain_clean,
914         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
915         prune_to_subcfg, df_bb_modify): New functions.
916         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
917         df_refs_update, df_reg_table_realloc, df_ref_create,
918         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
919         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
920         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
921
922         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
923         (df_rd_transfer_function, df_ru_transfer_function,
924         df_lr_transfer_function): Type of bitmaps changed to void *.
925         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
926         (hybrid_search): ... new function.
927         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
928         (iterative_dataflow): ... new function. Avoid use of fibheaps for
929         a worklist.  Do not process basic blocks unnecessarily.
930
931 2004-06-10  Roger Sayle  <roger@eyesopen.com>
932
933         * fold-const.c (fold_abs_const): Make extern.
934         * tree.h (fold_abs_const): Prototype here.
935         * builtins.c (fold_builtin_fabs): New function to transform
936         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
937         (fold_builtin_abs): New function to transform abs, labs, llabs
938         and imaxabs builtins into ABS_EXPR tree nodes.
939         (expand_builtin): Fall back to a function call for abs, labs,
940         llabs and imaxabs builtins that survive constant folding.
941         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
942         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
943
944 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
945
946         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
947         leaf function without unwind info at RP 0.
948
949 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
950
951         PR c++/14791
952         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
953         (fileptr_type_node): Define.
954         * tree.c (build_common_tree_nodes_2): Initialize
955         fileptr_type_node to ptr_type_node.
956         * c-common.c (c_common_nodes_and_builtins): For C++, make
957         fileptr_type_node a distinct type copy.
958         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
959         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
960         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
961         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
962         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
963         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
964         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
965         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
966         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
967         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
968         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
969         the above *FILEPTR* types instead of *PTR*.
970
971 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
972
973         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
974         match.
975
976 2004-06-09  Roger Sayle  <roger@eyesopen.com>
977
978         * fold-const.c (fold_not_const): New function.
979         (fold) <ABS_EXPR>: Don't bother testing wins.
980         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
981         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
982
983 2004-06-09  Richard Henderson  <rth@redhat.com>
984
985         PR middle-end/15228
986         * function.c (assign_parms): Always set_mem_align with the computed
987         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
988
989 2004-06-09  Richard Henderson  <rth@redhat.com>
990
991         PR opt/15108
992         * tree-tailcall.c (find_tail_calls): Don't check early for
993         tail_recursion failure.
994
995 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
996
997         Move SSA_NAME annotations into tree_ssa_name.
998
999         * tree-dfa.c (create_ssa_name_ann): Remove.
1000         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1001         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1002         (struct ssa_name_ann_d): Remove.
1003         (union tree_ann_d): Update.
1004         (ssa_name_ann_t): Remove.
1005         * tree-ssa-alias.c: (get_ptr_info): New local function.
1006         Replace references to ssa_name_ann_t with struct ptr_info_def.
1007         * tree-ssa-operands.c (get_expr_operands): Likewise.
1008         * tree.h (SSA_NAME_PTR_INFO): Define.
1009         (struct ptr_info_def): Declare.
1010         (struct tree_ssa_name): Add field 'ptr_info'.
1011
1012 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1013
1014         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1015         misplaced ')'.
1016
1017 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1018
1019         * config/i386/k6.md: Rewrite using the DFA model.
1020         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1021         cost of load-operation insns for the K6.
1022         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1023         (ia32_multipass_dfa_lookahead): Likewise.
1024
1025 2004-06-09  Richard Henderson  <rth@redhat.com>
1026
1027         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1028         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1029
1030 2004-06-09  Richard Henderson  <rth@redhat.com>
1031
1032         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1033
1034 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1035
1036         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1037         (CPP_ID_DATA_H): New.
1038         (gtype-desc.o): Update dependencies.
1039         (GTFILES): Use CPP_ID_DATA_H.
1040
1041 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1042
1043         Revert:
1044         PR c++/15815
1045         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1046         * doc/extend.texi: Deprecate #pragma interface and #pragma
1047         implementation.
1048
1049 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1050
1051         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1052
1053 2004-06-09  Richard Henderson  <rth@redhat.com>
1054
1055         * basic-block.h (struct edge_def): Add goto_locus.
1056         * tree-cfg.c (make_goto_expr_edges): Set it.
1057         (disband_implicit_edges): Use it.
1058         * tree-pretty-print.c (dump_implicit_edges): Print it.
1059
1060 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1061
1062         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1063
1064 2004-06-08  Jason Merrill  <jason@redhat.com>
1065
1066         Gimplify VA_ARG_EXPR into simpler forms.
1067         * target.h: Add gimplify_va_arg_expr hook.
1068         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1069         * fold-const.c (build_fold_addr_expr)
1070         (build_fold_addr_expr_with_type): Move from gimplify.c.
1071         * tree.h: Declare them.
1072         * gimplify.c (gimplify_and_add): New fn.
1073         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1074         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1075         (gimplify_expr): Use build_fold_*.
1076         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1077         don't know how to gimplify it.
1078         * builtins.c (std_gimplify_va_arg_expr): New fn.
1079         (dummy_object): New static fn.
1080         (gimplify_va_arg_expr): New fn.
1081         (stabilize_va_list): Use build_fold_*.
1082         * tree-gimple.h: Declare new fns.
1083         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1084         (ix86_gimplify_va_arg): New fn.
1085         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1086         (ia64_gimplify_va_arg): New fn.
1087         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1088         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1089         * alias.c (get_varargs_alias_set): Just return 0 for now.
1090
1091         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1092
1093 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1094
1095         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1096         of convert.
1097         * tree-inline.c (setup_one_parameter): Likewise.
1098         * tree-sra.c (csc_build_component_ref): Likewise.
1099         * tree-ssa-ccp.c (ccp_fold): Likewise.
1100         * tree-ssa-copy.c (cprop_operand): Likewise.
1101         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1102         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1103
1104 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1105
1106         PR rtl-optimization/15521:
1107         * sched-int.h (in_post_call_group_p): Change type to enum.
1108         * sched-deps.c (sched_analyze_insn):
1109         (sched_analyze): When in_post_call_group_p is post_call_initial,
1110         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1111         and also reset in_post_call_group_p to post_call.
1112         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1113         initialize in_post_call_group_p as post_call_initial.
1114         (init_deps): initialize in_post_call_group_p to not_post_call.
1115
1116 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1117
1118         PR ada/6637
1119         * doc/install.texi: List ada, libada as options to --enable-shared
1120
1121 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1122
1123         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1124         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1125         config.in entries.
1126         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1127         if hard links are not available.
1128         * configure: Regenerate.
1129         * config.in: Regenerate.
1130
1131 2004-06-08  Per Bothner  <per@bothner.com>
1132
1133         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1134
1135 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1136
1137         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1138         Correct formatting.
1139
1140 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1141
1142         PR target/15790
1143         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1144
1145 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1146
1147         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1148         POINTER_TYPE and INTEGER_TYPE.
1149
1150 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1151
1152         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1153         defined.
1154
1155 2004-06-08  Jeff Law  <law@redhat.com>
1156
1157         * doc/contrib.texi: Add entries for Stefan Olsson and
1158         Ola Ronnerup.
1159
1160 2004-06-08  DJ Delorie  <dj@redhat.com>
1161
1162         * toplev.c (floor_log2_wide): Replace loop with faster bit
1163         operations.
1164         (exact_log2_wide): Define in terms of the above.
1165         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1166         available.
1167
1168 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1169
1170         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1171         Make sure that we are in INDIRECT mode when getting the
1172         stub name.
1173
1174 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1175
1176         * h8300.md (extendqisi2_h8300): Add constraints.
1177         (ldm_h8300s_4_normal): Fix typo.
1178
1179 2004-06-08  Richard Henderson  <rth@redhat.com>
1180
1181         * gimple-low.c (struct lower_data): Replace the_return_label and
1182         one_return_stmt with return_statements.
1183         (lower_function_body): Process the entire list of return_statements.
1184         (lower_return_expr): Check source value before unifying return_exprs.
1185         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1186         for !aggregate_value_p.
1187         * tree-gimple.c: Update RETURN_EXPR grammer.
1188
1189 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1190
1191         PR target/15598
1192         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1193
1194 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1195
1196         PR rtl-optimization/15717
1197         * config/i386/i386.c (legitimate_constant_p): Do not allow
1198         x - symbol_ref.
1199
1200 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1201
1202         * gimplify.c (copy_if_shared_r): Revert:
1203         2004-05-21  Richard Henderson  <rth@redhat.com>
1204         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1205
1206 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1207
1208         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1209         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1210         (init_expmed): Initialize these cost arrays as appropriate.
1211         (store_bit_field, extract_bit_field): Correct whitespace.
1212         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1213         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1214         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1215         word_mode or compute_mode as appropriate.
1216
1217 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1218
1219         PR target/15783
1220         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1221         parameter.  Enumerate the registers inside the PARALLEL.
1222         (function_arg): Adjust call to function_arg_union_value.
1223         (function_value): Likewise.
1224
1225         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1226
1227 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1228
1229         * real.c (real_copysign): New function to implement libm's copysign.
1230         * real.h (real_copysign): Prototype here.
1231         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1232         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1233         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1234         fold_builtin_isdigit): Add function prototypes.
1235         (fold_builtin_copysign): New function to fold copysign, copysignf
1236         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1237         constant arguments at compile-time using real_copysign.  Fold
1238         copysign(X,Y) as fabs(X) if Y is always non-negative.
1239         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1240         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1241
1242 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1243
1244         * tree.c (iterative_hash_expr): Use real_hash.
1245
1246 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1247
1248         PR c/14765
1249         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1250         NULL_TREE.
1251
1252 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1253
1254         PR c++/15815
1255         * doc/extend.texi: Deprecate #pragma interface and #pragma
1256         implementation.
1257
1258 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1259
1260         PR middle-end/15666
1261         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1262         builtin decl as well.
1263
1264 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1265
1266         PR c/14649
1267         * c-typeck.c (require_constant_value, require_constant_elements):
1268         Move declarations to the top of the file.
1269         (build_function_call): If we require a constant value, fold with
1270         fold_initializer.  If the result is a constant, and the function
1271         wasn't called using __builtin_foo, issue a pedantic warning.
1272         (build_unary_op): If we require a constant value, fold tree with
1273         fold_initializer.
1274         (build_binary_op): Use require_constant_value to determine whether
1275         to call fold or fold_initializer.
1276
1277 2004-06-07  Richard Henderson  <rth@redhat.com>
1278
1279         * gimple-low.c (struct lower_data): Add the_return_label and
1280         one_return_stmt.
1281         (lower_function_body): Initialize and use them.
1282         (lower_return_expr): New.
1283         (lower_stmt): Call it.
1284         * gimplify.c (gimplify_return_expr): Force the argument to be either
1285         null or a result_decl.
1286         * tree-gimple.c: Update gimple grammer to match.
1287         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1288         coalescing of result_decls.
1289
1290 2004-06-07  Richard Henderson  <rth@redhat.com>
1291
1292         PR rtl-opt/15193
1293         * expmed.c (extract_bit_field): Fix vector_extract return.
1294
1295         * config/i386/i386.md (negv4sf2): New pattern.
1296
1297 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1298
1299         PR c++/15337
1300         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1301         message.
1302
1303 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1304
1305         * config.in: Regenerate.
1306
1307 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1308
1309         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1310         SWITCH_LABELS are always sorted.
1311
1312 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1313
1314         * hooks.c (hook_int_void_1): New generic hook.
1315         * hooks.h (hook_int_void_1): Add prototype.
1316         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1317         Define to hook_int_void_1.
1318         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1319         with dummies for the new one.
1320
1321 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1322
1323         * tree.h (lvalue_or_else): Delete function prototype.
1324         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1325
1326 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1327
1328         PR target/14542
1329         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1330         a live change of a register after peephole replacement.
1331
1332 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1333
1334         PR c/13519
1335         * c-typeck.c (composite_type, common_pointer_type): New functions.
1336         (common_type): Split parts into composite_type and
1337         common_pointer_type.  Ensure that arithmetic operations return
1338         unqualified types without attributes.  Don't make composite type
1339         of signed enum and compatible integer be unsigned.
1340         (build_conditional_expr, build_binary_op): Use
1341         common_pointer_type.
1342         * c-decl.c (merge_decls): Use composite_type.
1343         * c-tree.h (composite_type): Declare.
1344
1345 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1346
1347         PR target/14457
1348         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1349         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1350         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1351         (inhibit_libc): Must define.
1352         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1353         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1354         ("xorhi3"): Likewise.
1355
1356 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1357
1358         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1359         always_inline pass.
1360
1361 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1362
1363         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1364         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1365
1366 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1367
1368         * regclass.c (init_reg_sets): Check for missing registers in target
1369         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1370
1371 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1372
1373         * Makefile.in (MKDEPS_H): New shorthand.
1374         (c-opts.o): Update dependencies.
1375         * c-opts.c: Include mkdeps.h.
1376         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1377         not cpp_add_dependency_target.
1378
1379 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1380
1381         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1382         * config/v850/v850.md: Convert to DFA scheduler description.
1383
1384 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1385
1386         PR fortran/15478
1387         * doc/install.texi: Document GMP as prerequisite. Document
1388         --with-gmp and --with-gmp-dir configure options.
1389         * fortran/gfortran.texi: Remove section "Compiling and testing",
1390         remove TOC reference to it.
1391
1392 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1393
1394         * combine.c(simplify_shift_const): Check shift amount is a
1395         CONST_INT.
1396
1397 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1398
1399         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1400         opening asm_out_file.
1401         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1402         reading asm_out_file. Replace fflush after reading asm_out_file
1403         with fseek.
1404         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1405         default and add to HOST_HOOKS_INITIALIZER.
1406         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1407         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1408         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1409         to set mmi.offset padding.
1410          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1411         $(srcdir)/config/i386/winnt.c.
1412         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1413         (i[34567]86-*-uwin*): Likewise.
1414         *i[34567]86-*-interix3*): Likewise.
1415         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1416         * config/i386/host-mingw32.c: New file.
1417         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1418         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1419         (extern_head): Likewise.
1420         (struct export_list) Likewise.
1421         (export_head): Likewise.
1422         (i386_pe_record_external_function): Use ggc_alloc.
1423         (i386_pe_record_exported_symbol): Likewise.
1424         Include "gt-winnt.h" at end.
1425         * doc/hostconfig.texi: Document
1426         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1427
1428 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1429
1430         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1431         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1432         trailing whitespace before EOLs and before TABs.
1433         (MAX_CODE_ALIGN): Remove unused macro.
1434         (CALL_USED_REGISTERS): Reformat and add comments.
1435
1436 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1437
1438         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1439         to enumerate -lmudflap* and dependencies when linking.
1440
1441 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1442
1443         PR target/15822
1444         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1445
1446 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1447
1448         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1449         * genconditions.c (write_header): Back out removal of reload.h.
1450
1451 2004-06-04  Jan Hubicka  <jh@suse.cz>
1452
1453         Re-apply hopefully fixed patch:
1454         * i386.md (UNSPECV_EH_RETURN): Kill.
1455         (eh_return): Use jump_insn.
1456         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1457
1458 2004-06-04  Jeff Law  <law@redhat.com>
1459
1460         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1461
1462 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1463
1464         * except.c (for_each_eh_region): New function.
1465         * except.h (for_each_eh_region): Add a prototype for it.
1466         * tree-cfg.c (update_eh_labels): New function, callback for
1467         for_each_eh_region.
1468         (label_for_bb): Make global static, unfortunately.
1469         (cleanup_dead_labels): Also update label references for
1470         exception regions.
1471
1472 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1473
1474         * config/mips/mips.c (struct irix_section_align_entry): Fix
1475         GTY marker.
1476
1477 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1478
1479         * toplev.c (check_global_declarations): Don't ask for
1480         DECL_ASSEMBLER_NAME unless the function really is declared
1481         static and not defined.
1482
1483 2004-06-03  Matt Austern  <austern@apple.com>
1484
1485         PR c++/15428
1486         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1487         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1488         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1489         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1490         documentation to reflect the new macro name and to clarify its
1491         meaning.
1492
1493 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1494
1495         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1496
1497 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1498
1499         * config/darwin.c (machopic_indirect_data_reference): Copy
1500         the SYMBOL_REF_DECL from the original RTX for the new
1501         non-lazy pointer RTX.
1502
1503 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1504
1505         * tree.h: Remove include of version.h
1506         * c-cppbuiltin.c: Include version.h
1507         * diagnostic.c: Include version.h
1508         * dwarf2out.c: Include version.h
1509         * toplev.c: Include version.h
1510         * vmsdbgout.c: Include version.h
1511         * Makefile.in: Remove dependency on version.h from TREE_H, and
1512         add dependencies to required .o targets
1513
1514 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1515
1516         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1517         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1518         (TARGET_H): Add insn-modes.h.
1519         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1520         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1521         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1522         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1523         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1524         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1525         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1526         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1527         CFGLAYOUT_H.
1528         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1529         Replace ra.h with RA_H.
1530         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1531         insn-recog.o): Replace resource.h with RESOURCE_H.
1532         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1533         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1534         with SCHED_INT_H.
1535         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1536         ra-rewrite.o): Replace df.h with DF_H.
1537         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1538         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1539         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1540         (insn-conditions.o): Remove unused reload.h.
1541         * cfglayout.h: Add include guard.  Include basic-block.h.
1542         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1543         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1544         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1545         basic-block.h.
1546         * genconditions.c:  Remove reload.h.
1547         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1548         hard-reg-set.h, insn-modes.h.
1549         * resource.h: Add include guard.  Include hard-reg-set.h.
1550         * sched-int.h:  Add include guard.  Include insn-attr.h,
1551         basic-block.h, rtl.h.
1552         * target.h: Add include guard.  Include insn-modes.h.
1553         * tree-ssa-live.h: Include partition.h.
1554
1555 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1556                 Kenneth Zadeck <zadeck@naturalbridge.com>
1557
1558         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1559         (add_var_to_ssa_edges_worklist): Add value argument.
1560         Update callers.
1561         Use new worklist.
1562         (process_ssa_edge_worklist): New function.
1563         (tree_ssa_ccp): Move worklist processing core to
1564         process_ssa_edge_worklist, and just call that for the two worklists.
1565
1566 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1567
1568         * basic-block.c (tail_recursion_label_list): Don't declare.
1569         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1570         accordingly.
1571         * cfgbuild.c (find_label_refs): Remove.
1572         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1573         * cfgcleanup.c (tail_recursion_label_p): Remove.
1574         (merge_blocks_move): Do not check for tail recursion.
1575         (try_optimize_cfg): Likewise.
1576         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1577         * cfgrtl.c (tail_recursion_label_list): Remove.
1578         * except.c (remove_unreachable_regions): Don't handle
1579         CALL_PLACEHOLDER insns.
1580         (convert_from_eh_region_ranges_1, can_throw_internal,
1581         can_throw_external): Likewise.
1582         * function.c (free_after_compilation): Don't clear
1583         x_tail_recursion_label.
1584         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1585         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1586         (reorder_blocks_1): Likewise.
1587         * function.h (struct function): Remove x_tail_recursion_label
1588         member.  Don't define tail_recursion_label.
1589         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1590         * print-rtl.c (print_rtx): Likewise.
1591         * rtl.def (CALL_PLACEHOLDER): Remove.
1592         * rtl.h (sibcall_use_t): Remove enum.
1593         (optimize_sibling_and_tail_recursive_calls,
1594         replace_call_placeholder): Remove function prototypes.
1595         * stmt.c (tail_recursion_args): Remove.
1596         (optimize_tail_recursion): Remove.
1597         (expand_return): Don't check for possible tail recursion.
1598         * tree.h (optimize_tail_recursion): Remove prototype.
1599
1600 2004-06-02  Jan Hubicka  <jh@suse.cz>
1601
1602         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1603         return_stmt.
1604
1605 2004-06-02  Jason Merrill  <jason@redhat.com>
1606
1607         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1608         Do include c-parse.in.
1609
1610 2004-06-02  Eric Christopher  <echristo@redhat.com>
1611
1612         * c-typeck.c (common_type): Don't lose type qualifiers
1613         when creating new variants.
1614
1615 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1616
1617         PR tree-optimization/14042
1618         PR tree-optimization/14729
1619         PR tree-optimization/14736
1620         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1621         Check the type which the pointer points to
1622         instead of the pointer types.
1623
1624 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1625
1626         PR tree-optimization/15738.
1627         * builtins.c (fold_builtin_strchr): Transform
1628         strrchr (s, '\0') to strchr (s, '\0').
1629
1630 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1631
1632         * i386.c (ix86_adjust_cost): Don't increase the cost for
1633         load+operation for PROCESSOR_PENTIUMPRO, it is already
1634         modelled in the DFA description
1635
1636 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1637
1638         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1639         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1640         (ALIAS_H, EMIT_RTL_H): New.
1641         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1642         (cfgcleanup.o): Add EMIT_RTL_H.
1643         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1644         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1645         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1646         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1647         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1648         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1649         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1650         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1651         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1652         set_mem_size): Move to emit-rtl.h.
1653         * emit-rtl.h: New.
1654         * alias.h: New.
1655
1656 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1657
1658         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1659         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1660         Adjust recursive calls to self.
1661         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1662
1663 2004-06-01  Richard Henderson  <rth@redhat.com>
1664             Andrew Pinski  <pinskia@physics.uc.edu>
1665
1666         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1667         (primary): Handle offsetof.  Add error productions for faux functions.
1668         Move component_ref objc checking to build_component_ref.
1669         (reswords): Add offsetof.
1670         (rid_to_yy): Add offsetof.
1671         * c-tree.h (build_offsetof): Declare.
1672         * c-common.h (objc_is_public): Declare.
1673         * c-typeck.c (build_component_ref): Check objc_is_public.
1674         (build_offsetof): New.
1675         * stub-objc.c (objc_is_public): New.
1676         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1677         from is_public.
1678         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1679         * doc/extend.texi (Offsetof): Move from C++ section to C section
1680         and rewrite for __builtin_offsetof.
1681
1682 2004-06-01  Peter Barada  <peter@the-baradas.com>
1683             Peter Jakubek  <peter@laseranimation.com>
1684
1685         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1686         a scratch to perform an add to memory.
1687
1688 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1689
1690         PR target/14018
1691         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1692         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1693         m68k_align_funcs): Remove.
1694         (override_options): Remove code to handle -malign-* options.
1695         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1696         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1697         (m68k_align_loops_string, m68k_align_jumps_string,
1698         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1699         m68k_align_funcs): Remove definitions.
1700
1701 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1702
1703         PR target/15626
1704         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1705         by the Sun linker in conjunction with the Sun assembler.
1706         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1707
1708 2004-06-01  Jeff Law  <law@redhat.com>
1709
1710         * stmt.c (expand_decl): Be more selective about calling
1711         mark_reg_pointer.
1712
1713 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1714
1715         PR objc/7993
1716         * objc-act.c (is_private): Do not emit the 'instance variable %s
1717         is declared private' error.
1718         (is_public): Emit the error after calling is_private.
1719         (lookup_objc_ivar): If the instance variable is private, return 0
1720         - the instance variable is invisible here.
1721
1722 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1723
1724         * doc/invoke.texi (-static-libgcc): Explicitly mention
1725         non-GNU linkers.
1726
1727 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1728
1729         PR target/12968
1730         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1731
1732 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1733
1734         PR c/15749
1735         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1736         misuses of structures with flexible array members if
1737         in_system_header.
1738
1739 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1740
1741         PR target/15693
1742         * config/sparc/sparc.c (compare_operand): New predicate.
1743         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1744         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1745         operand is a ZERO_EXTRACT and the second operand is not zero,
1746         force the former to a register.
1747         (cmpdi expander): Likewise.
1748
1749 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1750
1751         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1752         looks at.
1753         * alias.c (alias_invariant_size): Make alias_invariant_size
1754         static, fix GTY marker.
1755
1756 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1757
1758         PR tree-optimization/15743.
1759         * builtins.c (fold_builtin_1): Fold index() and rindex().
1760
1761 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1762
1763         PR middle-end/15069
1764         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1765         into "X < 0" (where C is the signbit) if X's type is a full mode.
1766
1767 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1768
1769         * pa.md: Disable the peephole2 patterns that generate indexed
1770         floating-point stores when indexing is disabled.
1771
1772 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1773
1774         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1775         (pp_c_right_bracket): Likewise.
1776         (pp_c_star): Likewise.
1777         (pp_c_ampersand): Define.
1778         * c-pretty-print.h (pp_c_left_bracket): Declare.
1779         (pp_c_right_bracket): Likewise.
1780         (pp_c_star): Likewise.
1781         (pp_c_ampersand): Likewise.
1782
1783 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1784
1785         * config/sol2.h (__enable_execute_stack): ANSIfy function
1786         definition.
1787
1788 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1789
1790         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1791         HAVE_DOS_BASED_FILESYSTEM.
1792
1793 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1794
1795         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1796         Only look at case labels if the immediate dominator is also
1797         the only predecessor.  Don't look for more case labels if the
1798         first seen is a case range.
1799
1800 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1801
1802         * builtins.c: Add a prototype for fold_builtin_strchr().
1803
1804 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1805
1806         Revert this patch:
1807         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1808
1809         * combine.c (gen_binary): Remove.
1810         (known_cond, simplify_shift_const
1811         find_split_point, combine_simplify_rtx,
1812         simplify_if_then_else, simplify_set,
1813         simplify_logical, expand_field_assignment,
1814         extract_left_shift, force_to_mode,
1815         if_then_else_cond, apply_distributive_law,
1816         simplify_and_const_int, simplify_shift_const,
1817         gen_lowpart_for_combine, simplify_comparison,
1818         reversed_comparison): Replace with
1819         simplify_gen_binary, simplify_gen_relational or
1820         distribute_and_simplify_rtx.
1821         (distribute_and_simplify_rtx): New function.
1822
1823 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1824
1825         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1826         when generating PIC code.
1827
1828 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1829
1830         * c-decl.c (c_expand_body_1): Remove and fold back into ...
1831         (c_expand_body): here.
1832         (c_expand_decl): Move to ...
1833         * c-common.c (c_expand_decl): Here and remove check for nested
1834         functions.
1835         * c-common.h (c_expand_decl): Add prototype.
1836         * c-tree.h (c_expand_decl): Remove.
1837
1838 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1839
1840         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1841         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1842         fold_mathfn_compare, fold_inf_compare, fold,
1843         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1844         Use constant_boolean_node where appropriate.  Don't bother using
1845         fold_convert on the second argument to omit_one_operand.
1846
1847 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1848
1849         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1850         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1851         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
1852         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1853         Add missing (but documented) tree nodes to the index.
1854
1855 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1856
1857         PR tree-optimization/14819
1858         * builtins.c (fold_builtin_strchr): New.
1859         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1860         with fold_builtin_strchr().
1861
1862 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1863
1864         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1865         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1866         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1867         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1868         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1869         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1870         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1871         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1872         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1873         formatting.
1874
1875 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1876
1877         * gimplify.c (sort_case_labels): New.  Split out from...
1878         (gimplify_switch_expr): ...here.  Use it.
1879         * tree-eh.c (lower_try_finally_switch): Sort the labels of
1880         the SWITCH_EXPR created here before leaving the function.
1881         * tree.c (sort_case_labels): Add prototype.
1882
1883 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1884
1885         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1886         of BOOLEAN_TYPE.
1887
1888 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1889
1890         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1891         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1892         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1893         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1894         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1895         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1896         comment typos.  Follow spelling conventions.
1897
1898 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
1899
1900         * gengtype-yacc.y: Add NESTED_PTR token.
1901         (option): Record `nested_ptr' option.
1902         * gengtype-lex.l: Handle `nested_ptr' keyword.
1903         * gengtype.c (walk_type): Process `nested_ptr' option.
1904         * gengtype.h (struct nested_ptr_data): New.
1905         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1906         * stringpool.c (struct string_pool_data): Make 'entries' point to
1907         ht_identifier instead of tree.
1908         (gt_pch_save_stringpool): Don't adjust pointers.
1909         (gt_pch_restore_stringpool): Call ht_load.
1910
1911 2004-05-29  Jason Merrill  <jason@redhat.com>
1912
1913         * gimplify.c (gimplify_expr): Don't build a statement list
1914         if no gimplification was necessary.
1915
1916 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1917
1918         * pretty-print.c (pp_base_format_text): Support %< instead of %`
1919         and %> as well as %'.
1920         * c-format.c: Use %< and %>.
1921         (gcc_diag_char_table, gcc_cdiag_char_table,
1922         gcc_cxxdiag_char_table): Update.
1923
1924 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1925
1926         * c-typeck.c (common_type): Correct comment.
1927
1928 2004-05-29  Peter Barada  <peter@the-baradas.com>
1929
1930         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1931         * config/m68k/m68k.c (const_method): Likewise.
1932         * config/m68k/m68k.c (const_int_cost): Likewise.
1933         * config/m68k/m68k.c (const_int_cost): Likewise.
1934         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1935
1936 2004-05-29  Peter Barada  <peter@the-baradas.com>
1937
1938         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1939         addressing.
1940         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1941         movsi,movhi,movqi insn patterns.
1942
1943 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1944
1945         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1946
1947         PR target/15720
1948         * config/darwin.c (machopic_indirect_call_target): Copy
1949         the SYMBOL_REF_DECL from the original RTX for the new
1950         stub RTX.
1951
1952 2004-05-28  DJ Delorie  <dj@redhat.com>
1953
1954         * stor-layout.c (place_field): Revert erroneous commit.
1955
1956 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
1957
1958         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1959         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1960         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1961         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1962         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1963         vec_ste): Remove type checks for integral parameters and literals
1964         from '..._args_eq' macros.
1965
1966 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1967
1968         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1969
1970 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1971
1972         * testsuite/g++.dg/charset/function.cc: New.
1973
1974         * testsuite/gcc.dg/charset/function.c: New.
1975
1976         * c-decl.c (c_make_fname_decl): Free return value from
1977         fname_as_string.
1978
1979         * cp/decl.c (cp_make_fname_decl): Free return value from
1980         fname_as_string.
1981
1982         * c-common.c (fname_as_string): Translate if necessary.
1983
1984 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
1985
1986         * stringpool.c: Add comments to PCH saving/restoring routines.
1987
1988 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1989
1990         * c-common.c (c_estimate_num_insns_1): Kill.
1991         (c_estimate_num_insns): Kill.
1992         * c-common.h (c_estimate_num_insns): Kill.
1993
1994         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1995         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1996         Remove comment about not checking for
1997         _POSIX_PRIORITY_SCHEDULING.
1998         * gthr-posix.c: Likewise.
1999
2000 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2001             Roger Sayle  <roger@eyesopen.com>
2002
2003         PR rtl-optimization/15649
2004         Add LTGT_EXPR and improve pretty-printing of unordered
2005         comparisons.
2006         * c-common.c (c_common_truthvalue_conversion):
2007         Handle LTGT_EXPR.
2008         * c-typeck.c (build_binary_op): Likewise.
2009         * dojump.c (do_jump): Likewise.
2010         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2011         * predict.c (tree_predict_by_opcode): Likewise.
2012         * real.c (real_compare): Likewise.
2013         * tree-cfg.c (verify_expr): Likewise.
2014         * tree-inline.c (estimate_num_insns_1): Likewise.
2015         * tree-pretty-print.c (dump_generic_node): Likewise.
2016         Handle ORDERED_EXPR, UNORDERED_EXPR.
2017         (op_symbol): Print unordered comparisons differently
2018         than ordered ones.
2019         * tree.def (LTGT_EXPR): New '<' tree code.
2020         * doc/c-tree.texi (Expressions): Document floating-point
2021         comparison nodes.
2022
2023         Fold comparisons between floating point values.
2024         * fold-const.c (enum comparison_code): New, from
2025         #define'd constants.  Define compcodes for unordered
2026         comparisons and for invalid transformations.
2027         (invert_tree_comparison): Add "honor_nans" parameter.
2028         (fold_truthop): Revamp to work on floating-point types too.
2029         (comparison_to_compcode): Support unordered comparisons.
2030         Use new enum comparison_code.
2031         (compcode_to_comparison): Likewise.
2032         (combine_compcodes): New function.
2033         (invert_truthvalue): Let invert_tree_comparison decide
2034         whether it is valid to fold the comparison.  Fold ORDERED
2035         and UNORDERED even if flag_unsafe_math_optimizations is off,
2036         and the remaining even if flag_unsafe_math_optimizations
2037         is off but we are under -fno-trapping-math.
2038         (fold_relational_const): Integer modes do not honor NaNs.
2039
2040 2004-05-28  Paul Brook  <paul@codesourcery.com>
2041
2042         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2043
2044 2004-05-28  Paul Brook  <paul@codesourcery.com>
2045
2046         * config/arm/arm.c (thumb_force_lr_save): New function.
2047         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2048         thumb_output_function_prologue): Use it.
2049         (thumb_expand_prologue): Set lr_save_eliminated.
2050
2051 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2052
2053         * config/mips/mips.md (extendsidi2): Tie the source and destination
2054         of the register alternative.  Split it into nothing.
2055
2056 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2057
2058         * rtl.h (skip_consecutive_labels): Declare.
2059         * emit-rtl.c (skip_consecutive_labels): New function.
2060         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2061         * jump.c (follow_jumps): Say what null return values mean.
2062
2063 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2064
2065         PR target/13250
2066         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2067
2068 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2069
2070         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2071         libgcc-std.ver.
2072         * config/sh/libgcc-std.ver: New file.
2073
2074 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2075
2076         * except.c: Revert change of 2004-05-26.
2077         * config/i386/i386.md: Revert change of 2004-05-27.
2078
2079 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2080
2081         * configure.ac: Remove --enable-tree-browser option.
2082         Define TREEBROWSER when ac_tree_checking is defined.
2083         * configure: Rebuilt.
2084
2085 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2086
2087         * expr.c (store_constructor): Restore sanity check on
2088         the size of the type before clearing.
2089
2090 2004-05-27  Jan Hubicka  <jh@suse.cz>
2091
2092         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2093
2094 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2095
2096         * combine.c (gen_binary): Remove.
2097         (known_cond, simplify_shift_const
2098         find_split_point, combine_simplify_rtx,
2099         simplify_if_then_else, simplify_set,
2100         simplify_logical, expand_field_assignment,
2101         extract_left_shift, force_to_mode,
2102         if_then_else_cond, apply_distributive_law,
2103         simplify_and_const_int, simplify_shift_const,
2104         gen_lowpart_for_combine, simplify_comparison,
2105         reversed_comparison): Replace with
2106         simplify_gen_binary, simplify_gen_relational or
2107         distribute_and_simplify_rtx.
2108         (distribute_and_simplify_rtx): New function.
2109         * simplify-rtx.c (simplify_binary_operation):
2110         Use nonzero_bits to simplify ANDs where we are
2111         turning off bits already known to be off in OP0.
2112
2113 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2114
2115         PR target/14478
2116         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2117
2118 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2119
2120         PR middle-end/14084
2121         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2122         to size of decl.
2123
2124 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2125
2126         PR/14924
2127         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2128
2129 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2130
2131         * tree.h: Fix comment typo.
2132
2133 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2134
2135         * gimplify.c (compare_case_labels): New function.
2136         (gimplify_switch_expr): Sort case labels, and make sure the
2137         last label in the label vector is the default case.
2138         * tree-cfg.c (group_case_labels): New function.
2139         (build_tree_cfg): Cleanup redundant labels and group case labels
2140         before creating edges.
2141         (cleanup_dead_labels): Handle GOTO_EXPRs.
2142         (find_case_label_for_value): Use a binary search to find the
2143         case label for the given value.
2144         * tree-gimple.c: Mention that labels are sorted, and that the
2145         last label must be the default.
2146
2147 2004-05-27  Jan Hubicka  <jh@suse.cz>
2148
2149         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2150
2151 2004-05-27  Jan Hubicka  <jh@suse.cz>
2152
2153         * i386.md (UNSPECV_EH_RETURN): Kill.
2154         (eh_return): Use jump_insn.
2155         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2156
2157 2004-05-26  Jan Hubicka  <jh@suse.cz>
2158
2159         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2160         not loop optimizing.
2161
2162 2004-05-26  Jan Hubicka  <jh@suse.cz>
2163
2164         * except.c (can_throw_internal):  Notice RESX instructions.
2165
2166 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2167
2168         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2169         of the two sizes to assemble_integer.
2170
2171 2004-05-25  Paul Brook  <paul@codesourcery.com>
2172
2173         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2174         pointless #ifdef.
2175
2176 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2177
2178         * Makefile.in (top_builddir): Define to .
2179
2180 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2181
2182         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2183         top-level detects, except when in-tree ld is being cross-built.
2184         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2185         then AS only if target is host.
2186         * configure: Rebuilt.
2187
2188 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2189
2190         * global.c (global_alloc): Call make_accurate_live_analysis.
2191         (record_one_conflict): Remove dead code.
2192         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2193         (bb_info): New structure.
2194         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2195         (allocate_bb_info, free_bb_info, mark_reg_change,
2196         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2197         modify_bb_reg_pav, calculate_reg_pav,
2198         make_accurate_live_analysis): New functions.
2199
2200 2004-05-25  Devang Patel  <dpatel@apple.com>
2201
2202         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2203         xrealloc.
2204         (end_alias_analysis): Use ggc_free instead fo free.
2205
2206 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2207
2208         PR target/15546
2209         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2210         as needed to be outputted.
2211
2212 2004-05-25  Jan Hubicka  <jh@suse.cz>
2213
2214         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2215
2216 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2217         Mostafa Hagog  <mustafa@il.ibm.com>
2218
2219         * Makefile.in (modulo-sched.o, ddg.o): New.
2220         * ddg.h, ddg.c, modulo-sched.c: New files.
2221         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2222         internals to "dupicate_insn".
2223         (duplicate_insn): New function.
2224         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2225         declarations.
2226         * common.opt (fmodulo-sched): New flag.
2227         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2228         Remove static and forward declaration.
2229         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2230         functions.
2231         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2232         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2233         declarations.
2234         * flags.h (flag_modulo_sched): New flag.
2235         * opts.c (common_handle_option): Handle modulo-sched flag.
2236         * params.def (max-sms-loop-number, sms-max-ii-factor,
2237         sms-dfa-history, sms-loop-average-count-threshold): New
2238         parameters.
2239         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2240         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2241         parameters.
2242         * passes.c ("sms", "sms-vcg"): New dumps.
2243         (rest_of_handle_sched): Call sms_schedule.
2244         * rtl.h (sms_schedule): New declaration.
2245         * timevar.def (TV_SMS): New.
2246         * toplev.c (flag_modulo_sched): Initialize.
2247         (f_options): Handle -fmodulo-sched option.
2248         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2249         * docs/passes.texi: Document new SMS pass.
2250
2251 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2252
2253         * Makefile.in (OBJS): Add rtlhooks.o.
2254         (rtlanal.o): Depend on function.h.
2255         (cse.o): Depend on rtlhooks-def.h.
2256         (combine.o): Depend on rtlhooks-def.h.
2257         (rtlhooks.o): New rule.
2258         * combine.c: Include rtlhooks-def.h.
2259         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2260         num_sign_bit_copies, cached_num_sign_bit_copies,
2261         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2262         (reg_nonzero_bits_for_combine,
2263         reg_num_sign_bit_copies_for_combine): New functions holding
2264         the remnants of the above.
2265         (combine_rtl_hooks): New.
2266         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2267         * cse.c: Include rtlhooks-def.h.
2268         (cse_rtl_hooks): New.
2269         (cse_main): Set rtl_hooks instead of gen_lowpart.
2270         * emit-rtl.c (gen_lowpart): Remove.
2271         (gen_lowpart_general): Move to rtlhooks.c.
2272         * rtl.h (nonzero_bits, num_sign_bit_copies,
2273         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2274         (gen_lowpart_general): Remove.
2275         (gen_lowpart): Temporarily redefine as a macro.
2276         * rtlanal.c: Include function.h.
2277         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2278         num_sign_bit_copies, cached_num_sign_bit_copies,
2279         num_sign_bit_copies1): New, from combine.c.
2280         * rtlhooks.c: New file.
2281         * rtlhooks-def.h: New file.
2282
2283 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2284
2285         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2286         to support 32-bit -mint8 mode.
2287
2288         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2289         option in the AVR architecture.
2290
2291 2004-05-24  Mike Stump  <mrs@apple.com>
2292
2293         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2294
2295 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2296
2297         * intl.h (open_quote, close_quote): New.
2298         * intl.c (open_quote, close_quote): New.
2299         (gcc_init_libintl): Set them.
2300         * pretty-print.c: Include "intl.h".
2301         (pp_base_format_text): Support 'q' format flag and %` and %'
2302         formats.  Use ' instead of ` in comments.
2303         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2304         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2305         foramt_types_orig): Describe these new formats.
2306         (decode_format_attr, check_function_format,
2307         check_format_info_main): Use these new formats.
2308         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2309         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2310         check these formats to 3.5.
2311
2312 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2313
2314         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2315         (BACKEND): Reflect this.
2316         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2317         (LIBS): Likewise.
2318
2319 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2320
2321         PR tree-optimization/14197
2322         * builtins.c: Include "tree-gimple.h"
2323         (readonly_data_expr): Use get_base_address.  Make sure to call
2324         decl_readonly_section only on trees it can handle.
2325         * tree-gimple.c (get_base_address): Accept STRING_CST and
2326         CONSTRUCTOR expressions.
2327         * Makefile.in: Update dependencies.
2328
2329 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2330
2331         Move libcpp to the toplevel.
2332         * Makefile.in: Remove references to libcpp files,
2333         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2334         and change hashtable.h to that.
2335         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2336         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2337         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2338         * configure: Regenerate.
2339         * config.in: Regenerate.
2340         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2341         * cppcharset.c: Removed.
2342         * cpperror.c: Removed.
2343         * cppexp.c: Removed.
2344         * cppfiles.c: Removed.
2345         * cpphash.c: Removed.
2346         * cpphash.h: Removed.
2347         * cppinit.c: Removed.
2348         * cpplex.c: Removed.
2349         * cpplib.c: Removed.
2350         * cpplib.h: Removed.
2351         * cppmacro.c: Removed.
2352         * cpppch.c: Removed.
2353         * cpptrad.c: Removed.
2354         * cppucnid.h: Removed.
2355         * cppucnid.pl: Removed.
2356         * cppucnid.tab: Removed.
2357         * hashtable.c: Removed.
2358         * hashtable.h: Removed.
2359         * line-map.c: Removed.
2360         * line-map.h: Removed.
2361         * mkdeps.c: Removed.
2362         * mkdeps.h: Removed.
2363         * stringpool.h: Include symtab.h instead of hashtable.h.
2364         * tree.h: Include symtab.h instead of hashtable.h.
2365         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2366
2367 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2368
2369         * gcc.c (struct prefix_list): Add forward declaration.
2370         (do_spec_path): New function, extracted from...
2371         (do_spec_1) <'D'>: ... here.  Drop support for
2372         SPACE_AFTER_L_OPTION.
2373         (do_spec_1) <'I'>: Use do_spec_path.
2374         (process_command): Do not store the 'include' suffix
2375         in include_prefixes.
2376         * system.h: Poison SPACE_AFTER_L_OPTION.
2377
2378 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2379
2380         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2381         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2382
2383 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2384
2385         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2386         Update based on printed manual.  Enable setting of offsets for
2387         FSFPRINT and move it to gcc-common.texi.
2388         * doc/gcc.texi: Update FSF printing details.
2389         * doc/gccint.texi: Remove FSF printing details.
2390
2391 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2392
2393         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2394
2395 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2396
2397         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2398         expand_builtin_strrchr, expand_builtin_strpbrk,
2399         expand_builtin_mempcpy, expand_builtin_memcmp,
2400         expand_builtin_strcmp, expand_builtin_strncmp,
2401         expand_builtin_strcat, std_expand_builtin_va_start,
2402         std_expand_builtin_va_arg, expand_builtin_va_copy,
2403         expand_builtin_signbit, fold_builtin_cabs,
2404         fold_builtin_logarithm, fold_builtin_mempcpy,
2405         fold_builtin_signbit, fold_builtin_isascii,
2406         fold_builtin_toascii, fold_builtin_isdigit,
2407         fold_builtin_1, build_function_call_expr,
2408         simplify_builtin_strchr, simplify_builtin_strrchr,
2409         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2410         simplify_builtin_memcmp, simplify_builtin_strcmp,
2411         simplify_builtin_strncmp, simplify_builtin_strncat,
2412         simplify_builtin_strspn, simplify_builtin_strcspn,
2413         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2414         to build with calls to build2, build3 or omit_one_operand.
2415
2416 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2417
2418         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2419         section when generating EABI code.
2420
2421 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2422
2423         PR 15546
2424         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2425         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2426
2427 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2428
2429         * c-common.c (c_common_truthvalue_conversion): Handle
2430         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2431         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2432         i.e. set the type to truthvalue_type_node and return.
2433
2434 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2435
2436        * tree.h (struct tree_decl): Add possibly_inlined bit.
2437         (DECL_POSSIBLY_INLINED): New accessor macro.
2438         * cgraph.h: Remove declaration of cgraph_inline_hash.
2439         * cgraph.c: Remove definition of cgraph_inline_hash.
2440         (hash_node): Revert to hashing DECL_UID.
2441         (eq_node): Take two pointers to cgraph_node structures.
2442         Compare DECL_UIDs.
2443         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2444         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2445         hash on DECL_UID.
2446         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2447         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2448         (cgraph_node): Allocate a temporary node on the stack, fill in
2449         its DECL field, and pass that to htab_find_slot.
2450         (cgraph_varpool_node): Likewise.
2451         (cgraph_function_possibly_inlined_p): If global info is ready,
2452         return the DECL_POSSIBLY_INLINED bit.
2453         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2454         instead of mucking with cgraph_inline_hash.
2455
2456 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2457
2458         * doc/contrib.texi: Add g77 contributors.
2459
2460 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2461
2462         * calls.c (initialize_argument_information): Forbid sibcalls if a
2463         callee-copied argument is stored in the current function's frame.
2464
2465 2004-05-22  Eric Christopher  <echristo@redhat.com>
2466
2467         * fix-header.c (read_scan_file): Update for add_path change.
2468
2469 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2470
2471         * c.opt (Wmissing-include-dirs): New.
2472         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2473         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2474         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2475         * c-incpath.h (add_path): Add fourth (bool) argument.
2476         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2477         (add_standard_paths): Likewise.
2478         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2479         is used and the directory was user-supplied via -I.
2480         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2481         using add_cpp_dir_path ().
2482         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2483         (struct cpp_dir): Add user_supplied_p.
2484         * doc/invoke.texi (Warning Options): Document new option.
2485
2486 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2487
2488         * fold-const.c (fold_read_from_constant_string): Convert result to
2489         requested type.
2490
2491 2004-05-21  Richard Henderson  <rth@redhat.com>
2492
2493         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2494         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2495         Don't mark VA_ARG_EXPRs volatile here.
2496         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2497
2498 2004-05-21  Richard Henderson  <rth@redhat.com>
2499
2500         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2501         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2502
2503 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2504
2505         * fold-const.c (fold, fold_relational_hi_lo,
2506         nondestructive_fold_binary_to_constant,
2507         fold_read_from_constant_string): Use fold_convert instead of convert.
2508         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2509         simplify_builtin_strchr, simplify_builtin_strrchr,
2510         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2511
2512 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2513
2514         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2515         is NULL.
2516
2517 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2518
2519         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2520         override sparc.h definition.
2521
2522 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2523
2524         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2525         get_unwidened, get_narrower): Replace build with build2.
2526         * fold-const.c (negate_expr, associate_trees, size_binop,
2527         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2528         pedantic_omit_one_operand, distribute_bit_expr,
2529         make_bit_field_ref, optimize_bit_field_compare,
2530         decode_field_reference, range_binop, make_range,
2531         build_range_check, fold_range_test, fold_truthop,
2532         optimize_minmax_comparison, extract_muldiv_1,
2533         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2534         fold_inf_compare, fold_single_bit_test, fold,
2535         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2536         Likewise replace build with either build2 or build3.
2537
2538 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2539
2540         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2541         * calls.c (prepare_call_address): Don't test
2542         NO_RECURSIVE_FUNCTION_CSE.
2543         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2544         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2545         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2546         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2547         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2548         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2549         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2550         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2551         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2552         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2553         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2554         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2555         Likewise.
2556         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2557         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2558         * doc/tm.texi (Costs): Remove documentation for
2559         NO_RECURSIVE_FUNCTION_CSE.
2560
2561 2004-05-20  Paul Brook  <paul@codesourcery.com>
2562
2563         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2564         * unwind-dw2.c (extract_cie_info): Ditto.
2565         (_Unwind_FrameState): Change retaddr_column to word type.
2566
2567 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2568
2569         PR middle-end/3074
2570         * fold-const.c (strip_compound_expr): Delete function.
2571         (count_cond): Delete function.
2572         (fold_binary_op_with_conditional_arg): Only perform transformations
2573         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2574         when a is constant.  This greatly simplifies this routine.
2575
2576         * tree.c (saved_expr_p): Delete function.
2577         * tree.h (saved_expr_p): Delete function prototype.
2578
2579 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2580
2581         * common.opt (ftree-loop-optimize): Remove.
2582
2583 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2584
2585         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2586         (NM_FOR_TARGET): Use := and $(shell).
2587         (mainversion): Remove unused variable.
2588
2589 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2590
2591         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2592         sequence containing the insn to be deleted, always reemit it.
2593
2594 2004-05-20  Richard Henderson  <rth@redhat.com>
2595
2596         PR 15454
2597         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2598         * function.c (expand_function_start): Expand static_chain_decl by hand.
2599         * gimplify.c (create_tmp_var_name): Export.
2600         * tree-gimple.h (create_tmp_var_name): Declare.
2601
2602 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2603
2604         * rs6000.c (print_operand) <case 'z'>: Call
2605         mark_decl_referenced before assemble_name.
2606
2607 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2608
2609         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2610         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2611         (cgraph_varpool_node): Hash on the pointer to the decl, not
2612         the DECL_UID.  Fixes 64-bit bootstrap failure.
2613
2614 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2615
2616         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2617         we don't earlyclobber operands used in the second insn.
2618
2619 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2620
2621         * tree-mudflap.c: Formatting fixes.
2622
2623 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2624
2625         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2626         * gengtype.c (open_base_files): Include reload.h in ifiles.
2627         * reload.h (reg_equiv_memory_loc_varray): Declare.
2628         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2629         (init_reload): Initialize it.
2630         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2631         reg_equiv_memory_loc_varray to size 0.
2632         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2633         growing reg_equiv_memory_loc_varray to the desired size.
2634         * passes.c (rest_of_handle_old_regalloc): Likewise.
2635         * reload.c: Amend comment on calling init_reload.
2636
2637 2004-05-20  Nick Clifton  <nickc@redhat.com>
2638
2639         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2640         with 'TRAMP' in the body of the macro definition.
2641
2642 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2643
2644         PR target/15383
2645         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2646         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2647         cmptf_libfunc isn't set.
2648         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2649         conventions.
2650         (ia64_sysv4_init_libfuncs): New.
2651
2652         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2653         ia64_sysv4_init_libfuncs.
2654
2655 2004-05-20  Falk Hueffner  <falk@debian.org>
2656
2657         PR other/15526
2658         * libgcc2.c (__mulvsi3): Fix overflow test.
2659
2660 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2661
2662         PR c/14171
2663         * reg-stack.c (nan): Rename to ...
2664         (not_a_num): Here.
2665         (reg_to_stack): Rename nan to not_a_num.
2666         (subst_stack_regs_pat): Likewise.
2667         (convert_regs_entry): Likewise.
2668         (convert_regs_1): Likewise.
2669
2670         * tree-cfg.c (find_case_label_for_value): Replace call to
2671         simple_cst_equal with tree_int_cst_equal.
2672
2673 2004-05-19  Jeff Law <law@redhat.com>
2674
2675         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2676         If the operand is for a use, then strip away the SSA_NAME, do not
2677         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2678         (mark_def_sites): Appropriately pass additional argument to
2679         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2680         then set the VDEF_RESULT to the VDEF_OP.
2681         (set_def_block): Strip away any SSA_NAME to get to the real
2682         underlying variable.
2683
2684         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2685         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2686         BB directly.
2687
2688 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2689
2690         PR c++/15463
2691         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2692         result of inverse.
2693
2694         PR rtl-optimization/15274
2695         * loop-iv.c (determine_max_iter, shorten_into_mode,
2696         iv_number_of_iterations): Handle constants correctly.
2697         * rtl.h (get_mode_bounds): Declaration changed.
2698         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2699         the target mode.
2700
2701         PR rtl-optimization/14692
2702         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2703         (unswitch_single_loop): Work correctly when may_unswitch_on
2704         returns a folded constant.
2705
2706         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2707         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2708         comparisons with mode bounds.
2709
2710         * function.c (struct temp_slot): Add new field prev.
2711         (free_after_compilation, init_temp_slots): Free new fields.
2712         (cut_slot_from_list, insert_slot_to_list,
2713         temp_slots_at_level, max_slot_level, move_slot_to_level,
2714         make_slot_available): New functions.
2715         (assign_stack_temp_for_type, combine_temp_slots,
2716         find_temp_slot_from_address, preserve_temp_slots,
2717         preserve_rtl_expr_result, free_temp_slots,
2718         free_temps_for_rtl_expr, pop_temp_slots): Work with
2719         the new structure of lists.
2720         (mark_all_temps_used): Removed.
2721         * function.h (struct function): Field x_temp_slots
2722         replaced by x_used_temp_slots and x_avail_temp_slots.
2723         (temp_slots): Replaced by ...
2724         (used_temp_slots, avail_temp_slots): New.
2725         * tree.h (mark_all_temps_used): Declaration removed.
2726
2727         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2728         simplify_using_assignment): Take the expression out of
2729         the expr_list wrapper.
2730
2731         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2732         infinite loops.
2733
2734 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2735
2736         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2737         costs should be based on code size when optimizing for size.
2738
2739 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2740
2741         * fold-const.c: Remove non-printable character 160.
2742
2743 2004-05-19  Nick Clifton  <nickc@redhat.com>
2744
2745         * doc/invoke.texi (ARM Options): Fix typo.
2746         Remove descrption of -mshort-load-bytes and
2747         -mno-short-load-bytes.
2748
2749         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2750         missing parenthesis.
2751         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2752         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2753
2754 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2755
2756         * expr.c (store_constructor): Build loop start and end by hand
2757         instead of via loop functions from stmt.c.
2758         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2759         Remove the code to expand them.
2760
2761         * stmt.c (loop_stack): Remove this and everything related.
2762         (struct nesting, enum nesting_desc): Update.
2763         (expand_fixup): Likewise.
2764         (expand_loop_start, expand_start_loop_continue_elsewhere,
2765         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2766         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2767         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2768         expand_exit_something): Remove.
2769         * tree.h: Remove prototypes.
2770
2771 2004-05-18  Mike Stump  <mrs@apple.com>
2772             Devang Patel  <dpatel@apple.com>
2773
2774         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2775         if this label is for eh.
2776         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2777         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2778         * dwarf2out.c (output_call_frame_info): Likewise.
2779         * output.h (default_emit_unwind_label): Likewise.
2780         * target.h (unwind_label): Likewise.
2781         * varasm.c (default_emit_unwind_label): Likewise.
2782
2783         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2784         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2785         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2786         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2787         DEBUG_RANGES_SECTION): Define.
2788
2789 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2790
2791         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2792         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2793         (cgraph_varpool_node):
2794         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2795         (cgraph_function_possibly_inlined_p): Use the decl itself for
2796         the key, not DECL_ASSEMBLER_NAME.
2797         (change_decl_assembler_name): No need to muck with the hash tables.
2798         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2799         Delete.
2800         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2801         for the key, not DECL_ASSEMBLER_NAME.
2802         * cgraph.h: Remove prototypes of deleted functions.
2803         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2804         (mark_decl_referenced): New function.
2805         * tree.h: Prototype mark_decl_referenced.
2806         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2807         mark_decl_referenced before assemble_name.
2808         * c-decl.c (finish_decl): Use mark_decl_referenced.
2809
2810 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2811             Jeff Law <law@redhat.com>
2812
2813         * tree-ssa-phiopt.c (abs_replacement): New function.
2814         (empty_block_p): New function extracted from...
2815         (candidate_bb_for_phi_optimization): Break out empty block test.
2816         (conditional_replacement): Use empty_block_p.
2817         (value_replacement): Similarly.
2818
2819         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2820         * tree-ssa-phiopt.c: Include flags.h.
2821         (conditional_replacement): Remove argument names from prototype.
2822         Minor formatting and comment fixes.
2823         (tree_ssa_phiopt): If conditional_replacement returns false, then
2824         call value_replacement.
2825         (value_replacement): New function.
2826
2827 2004-05-18  Jeff Law  <law@redhat.com>
2828
2829         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2830         from conditional_replacement.
2831         (candidate_bb_for_phi_optimization): Similarly.
2832         (conditional_replacement): Use replace_phi_with_stmt and
2833         candidate_bb_for_phi_optimization.
2834
2835         * tree-ssa-phiopt.c: Fix various formatting issues.
2836
2837 2004-05-18  Steven Bosscher  <stevenb@suse.de>
2838
2839         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2840         s390_expand_cmpmem): Do not use expand_start_loop and
2841         expand_end_loop, instead build the loop manually.
2842
2843 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
2844
2845         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2846         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2847
2848 2004-05-17  Jeff Law  <law@redhat.com>
2849
2850         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2851         * flags.h (flag_delete_null_pointer_checks): Here.
2852         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2853         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2854         (add_phi_arg, remove_phi_arg_num): Similarly.
2855         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2856         property into PHI nodes.
2857         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2858         (record_equivalences_from_phis): If all PHI arguments are known to be
2859         nonzero, then the result must be nonzero as well.
2860         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2861         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2862         appropriately.  Walk the USE-DEF chains and propagate nonzero property
2863         as appropriate.
2864         * tree.h (PHI_ARG_NONZERO): Define.
2865         (phi_arg_d): Add nonzero flag.
2866
2867 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
2868
2869         * f: Entire directory removed
2870
2871         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2872         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2873         (g77_integer_type_node, g77_uinteger_type_node)
2874         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2875         * c-common.c (c_common_nodes_and_builtins): Do not initialize
2876         the above set of variables.
2877
2878         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2879         * doc/invoke.texi, doc/standards.texi: Remove cross-references
2880         to g77 manual.
2881
2882 2004-05-17  Steven Bosscher  <stevenb@suse.de>
2883
2884         PR tree-optimization/15438
2885         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2886         attributed functions as pure or const.
2887
2888 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
2889
2890         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2891         from source code with errors.
2892
2893 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2894
2895         Enable tree browser for all front ends.
2896         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2897         (BACKEND): ...to here.
2898
2899 2004-05-17  Jan Hubicka  <jh@suse.cz>
2900
2901         * i386.c (construct_container): Do not produce BLKmode registers.
2902         (classify_argument): Properly compute alignment of complex types.
2903
2904 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2905
2906         PR target/15084
2907         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2908         and renamed to movdi_insv_1_rex64.
2909         (insv): Support SImode for 32bit and DImode for 64bit.
2910
2911 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2912
2913         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2914         (TARGET_SWITCHES): Remove debugg.
2915         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2916         TARGET_64BIT.
2917         (subdi3): Replace the define_expand with a define_insn, the latter
2918         renamed from subdi3_internal_3.
2919         (negdi2): Likewise negdi2_internal_2.
2920         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2921         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2922         and associated define_splits.
2923         (adddi3_internal): Renamed from adddi3_internal_3.
2924         (ashldi3_internal): Likewise ashldi3_internal4.
2925         (ashrdi3_internal): Likewise ashrdi3_internal4.
2926         (lshrdi3_internal): Likewise lshrdi3_internal4.
2927
2928 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2929
2930         * optabs.c (expand_unop): Try implementing negation using subtraction
2931         from zero.
2932
2933 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2934
2935         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
2936         SAR register.
2937
2938 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
2939
2940         PR target/10982
2941         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2942         (ne_zeroextractsi_shifted): New pattern.
2943         (ite_ne_zeroextractsi): New pattern.
2944         (ite_ne_zeroextractsi_shifted): New pattern.
2945
2946 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2947
2948         * c-gimplify.c (c_genericize):
2949         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2950         * c-parse.in <expr_no_commas>: Likewise.
2951         <if_prefix>: Likewise.
2952         <select_or_iter_stmt>: Likewise.
2953         * expr.c (expand_var, expand_expr_real_1): Likewise.
2954         * expr.h (expand_expr): Make it a static inline function.
2955         Move prototype for expand_expr_real up before this.
2956         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2957         Likewise.
2958         * gimplify.c (gimple_boolify, gimplify_addr_expr,
2959         gimplify_asm_expr, gimplify_expr): Likewise.
2960         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2961         dump_function_to_file): Likewise.
2962         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2963         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2964         * tree-into-ssa.c (dump_tree_ssa): Likewise.
2965         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2966         Likewise.
2967         * tree-optimize.c (execute_one_pass): Likewise.
2968         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2969         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2970
2971         * objc/objc-act.c (objc_build_try_enter_fragment,
2972         objc_build_try_epilogue, objc_build_catch_stmt,
2973         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2974         with lang_hooks.foo ().
2975
2976 2004-05-15  Roger Sayle  <roger@eyesopen.com>
2977
2978         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2979         that simplify_builtin doesn't destructively modify its argument.
2980
2981 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2982
2983         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2984         implementations for ARM and Thumb.
2985         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2986
2987 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
2988
2989         * prefix.c (update_path): Replace PREFIX with KEY only
2990         when it matches a full directory name in PATH.
2991
2992 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2993
2994         * arm.h (TARGET_APCS_32): Delete.
2995         (TARGET_MMU_TRAPS): Delete.
2996         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
2997         define __APCS_26__.
2998         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2999         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3000         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3001         (prog_mode_type): Delete.
3002         (PROMOTE_MODE): Always promote unsigned for HImode.
3003         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3004         (MASK_RETURN_ADDR): Simplify.
3005         * arm.c (arm_prgmode): Delete.
3006         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3007         (print_multi_reg, output_return_instruction): Simplify.
3008         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3009         (arm_return_addr): Simplify.
3010         * arm.md (prog_mode): Delete.
3011         (conds): Simplify.
3012         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3013         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3014         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3015         (loadhi_shiftpredec): Delete.
3016         (peephole for post-increment on HImode load): Delete.
3017         * arm/crtn.asm: (FUNC_END): Simplify.
3018         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3019         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3020         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3021         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3022         MULTILIB_DEFAULTS as required.
3023         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3024         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3025         variables as required.
3026         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3027
3028 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3029
3030         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3031         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3032         count to 8 to handle n_reg > 2.
3033
3034 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3035
3036         * doc/extend.texi: Update WG14 URL.
3037
3038 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3039
3040         * basic-block.h (life_analysis, delete_noop_moves):
3041         Update prototypes.
3042         * bt-load.c (branch_target_load_optimize): Don't take the
3043         insns stream as an argument.  Update the life_analysis calls.
3044         * combine.c (combine_instructions): Update delete_noop_moves
3045         calls.
3046         * flow.c (notice_stack_pointer_modification): Don't take the
3047         insns stream as an argument.  Work on the flow graph.
3048         (life_analysis): Likewise.
3049         (delete_noop_moves): Likewise.
3050         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3051         (rest_of_handle_life): Update life_analysis call.
3052         (rest_of_compilation): Likewise, and also update
3053         branch_target_load_optimize call.
3054         * ra.c (reg_alloc): Update life_analysis call.
3055         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3056         the insns stream as an argument.
3057         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3058         call.
3059         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3060         prototypes.
3061         * value-profile.c (branch_prob): Update life_analysis call.
3062         * web.c (web_main): Work on the CFG, not on the insns stream.
3063
3064         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3065         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3066         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3067
3068 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3069
3070         PR c/15444
3071         * c-format.c (avoid_dollar_number): New function.
3072         (check_format_info_main): Call avoid_dollar_number when operand
3073         numbers might occur but has_operand_number == 0.
3074
3075 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3076
3077         * arm.md (all peephole2 patterns): Use predicates that validate
3078         register classes as appropriate.
3079
3080 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3081
3082         PR opt/14472
3083         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3084         ignore type conversions that do not inhibit tail calling.
3085         (find_tail_calls): Likewise.
3086
3087 2004-05-14  Jeff Law  <law@redhat.com>
3088
3089         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3090         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3091         bypassed virtuals into vars_to_rename just before into-ssa pass.
3092
3093         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3094         so that it picks up more opportunities to eliminate ABS expressions
3095         or turn them into negations.
3096
3097 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3098
3099         * passes.c (rest_of_handle_null_pointer): Remove.
3100         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3101         (rest_of_compilation): Likewise.
3102         * rtl.h (delete_null_pointer_checks): Remove prototype.
3103         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3104         Remove declarations.
3105         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3106         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3107         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3108         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3109         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3110         one_classic_gcse_pass, invalidate_nonnull_info,
3111         delete_null_pointer_checks_1, delete_null_pointer_checks,
3112         expr_reached_here_p_work): Remove.
3113         (gcse_main): Do not perform classic GCSE when optimizing for size.
3114         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3115         are never used.
3116
3117 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3118
3119         PR optimization/14466
3120         * tree-complex.c (make_temp): Remove.
3121         (gimplify_val): Replace make_temp with make_rename_temp
3122         and add NULL as the second argument.
3123         (expand_complex_div_wide): Likewise.
3124         * tree-dfa.c (make_rename_temp): New function.
3125         * tree-flow.h (make_rename_temp): Declare.
3126         * tree-sra.c (make_temp): Remove.
3127         (lookup_scalar): Replace make_temp with make_rename_temp.
3128         (create_scalar_copies): Likewise.
3129         * tree-ssa-phiopt.c (conditional_replacement): When we
3130         get non gimple create a temporary variable to hold the
3131         casted expression.
3132
3133 2004-05-14  Paul Brook  <paul@codesourcery.com>
3134
3135         * stor-layout.c (update_alignment_for_field): Use
3136         targetm.align_anon_bitfield.
3137         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3138         (TARGET_INITIALIZER): Use it.
3139         * target.h (struct gcc_target): Add align_anon_bitfield.
3140         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3141         (TARGET_ALIGN_ANON_BITFIELD): Define.
3142         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3143
3144 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3145
3146         * tree.def (documentation): Remove mention of class 'b'.
3147         (BLOCK): Now in class 'x'.
3148         * c-common.c (verify_tree): Remove case 'b'.
3149         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3150         * calls.c (calls_function_1): Control cannot get past the switch
3151         when exp is a BLOCK.
3152         * print-tree.c (print_node): Move code for class 'b' to the class
3153         'c'/'x' switch, as case BLOCK.
3154         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3155         (unsafe_for_reeval, substitute_placeholder_in_expr)
3156         (stabilize_reference_1): Remove case 'b'.
3157         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3158         of something being 'b' to tests for TREE_CODE of something being
3159         BLOCK.
3160         * tree-ssa-operands.c (get_expr_operands): Likewise.
3161
3162 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3163
3164         * tree-gimple.c: Rename from tree-simple.c.
3165         * tree-gimple.h: Rename from tree-simple.h.
3166         * c-gimplify.c: Rename from c-simplify.c
3167         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3168         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3169         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3170         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3171         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3172         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3173         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3174         Update.
3175
3176 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3177
3178         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3179
3180 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3181
3182         * tree-ssa.c (delete_tree_ssa): XFREE
3183         bitmaps allocated with BITMAP_XMALLOC.
3184
3185         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3186         idfs_cache at the end of the function.
3187
3188         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3189         at the end of the function.
3190
3191         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3192         el at the end of the function.
3193
3194         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3195         bitmaps allocated with BITMAP_XMALLOC.
3196
3197         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3198         the end.
3199
3200         * final.c (shorten_branches): Free uid_shuid before
3201         reallocating it.
3202
3203         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3204
3205 2004-05-13  Jeff Law  <law@redhat.com>
3206
3207         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3208         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3209         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3210
3211         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3212         rather than iterating through the blocks testing each bit in
3213         livein to initialize the worklist.
3214         (mark_def_sites): Remove useless checks of KILLS for virtual
3215         operands.
3216
3217         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3218         new parameters for the statement and variable worklist as well
3219         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3220         worklist recording interesting variables in the variable worklist
3221         and bitmap.  Handle casts between integral and boolean types.
3222         (substitute_single_use_vars): Accept new parameters for the statement
3223         and variable worklist.  When a substitution is made add a new
3224         entry to the statement worklist.  Handle casts between integral
3225         and boolean types.
3226         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3227         worklists to children.  Iterate until the statement worklist
3228         is empty.
3229
3230 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3231
3232         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3233         the end of the block.
3234
3235         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3236         with BITMAP_XMALLOC.
3237
3238         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3239         with BITMAP_XMALLOC.
3240
3241         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3242         Free nonzero_vars at the end of the function.
3243
3244         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3245         need to generate code instead of a NOP_EXPR.
3246
3247 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3248
3249         * gcc.c (default_compilers): Fill out initializers for new Fortran
3250         entries.
3251
3252 2004-05-13  Paul Brook  <paul@codesourcery.com>
3253
3254         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3255
3256 2004-05-13  Paul Brook  <paul@codesourcery.com>
3257
3258         * config/arm/arm.c (arm_default_short_enums): New function.
3259         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3260
3261 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3262
3263         Merge from tree-ssa-20020619-branch.
3264
3265         * Makefile.in (reload1.o-warn): Add.
3266         (tree-alias-ander.o-warn): Add.
3267         (GMPLIBS): Define.
3268         (GMPINC): Define.
3269         (BANSHEELIB): Define.
3270         (BANSHEEINC): Define.
3271         (TREE_DUMP_H): Define.
3272         (TREE_SIMPLE_H): Define.
3273         (TREE_FLOW_H): Define.
3274         (LIBDEPS): Add BANSHEELIB.
3275         (INCLUDES): Add BANSHEEINC and GMPINC.
3276         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3277         c-mudflap.o and c-pretty-print.o.
3278         (C_OBJS): Remove c-pretty-print.o.
3279         (OBJS-common): Remove sibcall.o.
3280         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3281         tree-ssa.o, tree-optimize.o, tree-simple.o,
3282         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3283         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3284         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3285         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3286         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3287         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3288         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3289         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3290         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3291         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3292         tree-profile.o.
3293         (OBJC-archive): Add tree-nomudflap.o.
3294         (cc1): Add dependency on @TREEBROWSER@.
3295         (c-decl.o): Add dependency on TREE_DUMP_H.
3296         (c-dump.o): Likewise.
3297         (c-common.o): Add dependency on tree-iterator.h
3298         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3299         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3300         (tree.o): Add dependency on tree-iterator.h,
3301         BASIC_BLOCK_H and TREE_FLOW_H.
3302         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3303         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3304         (tree-alias-type.o, tree-alias-ander.o,
3305         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3306         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3307         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3308         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3309         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3310         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3311         tree-nested.o, tree-iterator.o, tree-dfa.o,
3312         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3313         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3314         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3315         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3316         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3317         tree-sra.o, tree-complex.o, tree-profile.o,
3318         rtl-profile.o): New rules.
3319         (function.o): Add dependency on basic-block.h
3320         (expr.o): Add dependency on tree-iterator.h.
3321         (sibcall.o): Remove.
3322         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3323         (cfg.o): Add dependency on TIMEVAR_H.
3324         (cfghooks.o): Add dependency on TREE_FLOW_H.
3325         (reg-stack.o): Add dependency on basic-block.h.
3326         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3327         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3328         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3329         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3330         tree-alias-type.h, tree-alias-common.h,
3331         tree-alias-type.c, tree-alias-common.c,
3332         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3333         rtl-profile.c and tree-nested.c.
3334         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3335         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3336         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3337         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3338         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3339         * basic-block.h: Include predict.h
3340         (struct edge_def): Add GTY marker.
3341         Change field 'insns' to be a union of tree and rtx.
3342         (EDGE_TRUE_VALUE): Define.
3343         (EDGE_FALSE_VALUE): Define.
3344         (EDGE_EXECUTABLE): Define.
3345         (struct bb_ann_d): Forward declare.
3346         (struct basic_block_def): Add GTY marker.
3347         Remove fields head_tree and end_tree.
3348         Add fields stmt_list, rbi and tree_annotations.
3349         (struct reorder_block_def): Define.
3350         (basic_block_info): Add GTY marker.
3351         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3352         variables instead of macros.
3353         (flow_call_edges_add): Remove declaration.
3354         (make_eh_edge): Remove declaration.
3355         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3356         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3357         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3358         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3359         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3360         (try_redirect_by_replacing_jump): Modfiy return type to
3361         edge instead of bool.
3362         * bb-reorder.c (copy_bb): Call duplicate_block
3363         instead of cfg_layout_duplicate_bb.
3364         (copy_bb_p): Call can_duplicate_block_p instead of
3365         cfg_layout_can_duplicate_bb_p.
3366         * bitmap.c (bitmap_first_set_bit): Abort if word
3367         wasn't found.
3368         (bitmap_last_set_bit): Likewise.
3369         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3370         (DEF_FUNCTION_TYPE_3): Add.
3371         * builtins.c (c_strlen): Make extern.
3372         (builtin_save_expr): New.
3373         (expand_builtin_nonlocal_goto): New.
3374         (expand_builtin_constant_p): Remove.
3375         (expand_builtin_mathfn): Call builtin_save_expr instead
3376         of save_expr.
3377         (expand_builtin_mathfn_2): Likewise.
3378         (expand_builtin_strcmp): Likewise.
3379         (expand_builtin_strncmp): Likewise.
3380         (expand_builtin_strcat): Likewise.
3381         (fold_builtin_cabs): Likewise.
3382         (expand_builtin_alloca): Don't trigger if -fmudflap is
3383         given.
3384         (build_string_literal): Set TREE_INVARIANT on new node.
3385         (expand_builtin_profile_fun): New.
3386         (round_trampoline_addr): New.
3387         (expand_builtin_init_trampoline): New.
3388         (expand_builtin_adjust_trampoline): New.
3389         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3390         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3391         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3392         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3393         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3394         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3395         Handle.
3396         (fold_builtin_expect): New.
3397         (fold_builtin_isascii): Don't return non-constant results
3398         in GIMPLE form.
3399         (fold_builtin_isdigit): Likewise.
3400         (fold_builtin_1): New.
3401         (fold_builtin): Call it.
3402         (build_function_call_expr): Update call to build a new
3403         CALL_EXPR.
3404         (purge_builtin_constant_p): Remove.
3405         (simplify_builtin, simplify_builtin_memcmp,
3406         simplify_builtin_strcmp, simplify_builtin_strncmp,
3407         simplify_builtin_strpbrk, simplify_builtin_strstr,
3408         simplify_builtin_strchr, simplify_builtin_strrchr,
3409         simplify_builtin_strcat, simplify_builtin_strncat,
3410         simplify_builtin_strspn, simplify_builtin_strcspn,
3411         simplify_builtin_next_arg, simplify_builtin_va_start,
3412         simplify_builtin_sprintf): New.
3413         * builtins.def (BUILT_IN_STACK_ALLOC,
3414         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3415         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3416         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3417         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3418         * c-common.c: Include tree-iterator.h and hashtab.h.
3419         (lang_statement_code_p): Declare.
3420         (lang_gimplify_stmt): Declare.
3421         (fix_string_type): Set TREE_INVARIANT for value.
3422         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3423         (c_type_hash): New.
3424         (c_common_get_alias_set): Handle multiple type nodes
3425         referring to "the same" type, currently for C90 only.
3426         (c_add_case_label): Use create_artificial_label.
3427         (finish_label_address_expr): Don't set TREE_CONSTANT on
3428         result.
3429         (c_expand_expr): Don't handle STMT_EXPR.
3430         (handle_alias_attribute): Marke aliased variables to be
3431         TREE_STATIC.
3432         (handle_nonnull_attribute): Initialize arg_num.
3433         (check_function_nonnull): Likewise.
3434         (c_walk_subtrees): New.
3435         (c_estimate_num_insns_1): Don't handle
3436         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3437         (c_decl_uninit_1): Remove.
3438         (c_decl_uninit): Remove.
3439         (c_warn_unused_result): New.
3440         * c-common.def (ASM_STMT): Change number of operands
3441         to 4.
3442         (FILE_STMT): Remove.
3443         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3444         Remove.
3445         (lang_gimplify_stmt): Add.
3446         (expand_stmt): Remove.
3447         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3448         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3449         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3450         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3451         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3452         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3453         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3454         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3455         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3456         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3457         genrtl_compound_stmt, genrtl_asm_stmt,
3458         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3459         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3460         c_tree_chain_matters_p, c_warn_unused_result,
3461         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3462         Declare.
3463         * c-convert.c (convert): Make convert work when
3464         converting to compatible types across translation unit.
3465         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3466         tree-simple.h, diagnostic.h and tree-dump.h
3467         (merge_decls): Initialize oldtype to NULL.
3468         (finish_decl): Use DECL_HARD_REGISTER instead of
3469         DECL_C_HARD_REGISTER.
3470         (check_bitfield_type_and_width): Check for null
3471         lang_type_specific when check the precision of an enum.
3472         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3473         in a pointer-to-array declarator.
3474         (finish_struct): Clear allocated struct lang_type.
3475         (finish_enum): Set enum_min and enum_max.  Set
3476         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3477         not to the enumerators.
3478         (set_decl_nonlocal): New.
3479         (store_parm_decls): Use it via walk_tree.
3480         (c_finalize): New.
3481         (finish_function): When !targetm.have_ctors_dtors,
3482         record static constructors and destructors here...
3483         (c_expand_body_1): ... not here.
3484         (c_expand_decl): Rename from c_expand_decl_stmt.
3485         Handle all C-specific expansion semantics.
3486         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3487         STMT_LINENO.
3488         * c-format.c (handle_format_arg_attribute): Initialize
3489         format_num.
3490         * c-lang.c: Include tree-inline.h
3491         (LANG_HOOKS_EXPAND_DECL,
3492         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3493         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3494         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3495         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3496         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3497         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3498         (c_types_compatible_p): New.
3499         * c-mudflap.c: New file.
3500         * c-objc-common.c: Include tree-mudflap.h
3501         (start_cdtor, finish_cdtor): Collapse
3502         together into
3503         (build_cdtor): ...here.  Update to construct a complete tree
3504         for the function.  No need to call push_scope, pop_scope, or
3505         clear_last_expr, or set current_function_cannot_inline.
3506         (c_missing_noreturn_ok_p): Change prototype to return
3507         bool.
3508         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3509         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3510         opts.c.
3511         (c_common_post_options): Don't ever use rtl inlining.
3512         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3513         * c-pragma.c (handle_pragma_redefine_extname): Define
3514         always.
3515         (init_pragma): Activate #pragma redefine_extname for mudflap.
3516         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3517         (pp_c_initializer): Accept any type CONSTRUCTOR.
3518         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3519         COMPLEX_TYPE.
3520         (decl_name_str): New local function.
3521         (pp_c_direct_declarator): Call it.
3522         (pp_c_primary_expression): Call it.
3523         (pp_c_id_expression): Call it.
3524         (pp_c_statement): Call it.
3525         (print_c_tree): Create new pp object.
3526         * c-pretty-print.h (pp_c_tree_decl_identifier,
3527         print_c_tree): Declare.
3528         * c-semantics.c: Include langhooks.h
3529         (lang_expand_stmt, lang_expand_decl_stmt,
3530         find_reachable_label_1, find_reachable_label,
3531         expand_unreachable_if_stmt, expand_unreachable_stmt,
3532         genrtl_do_stmt_1): Remove.
3533         (begin_stmt_tree): Don't check for changed filename.
3534         Call annotate_with_locus.
3535         (finish_stmt_tree): Don't set line for end of function.
3536         (build_stmt): Don't check type nodes for
3537         side effects.
3538         (build_stmt): Set TREE_SIDE_EFFECTS.
3539         Set EXPR_LOCUS instead of STMT_LINENO.
3540         (lang_expand_stmt, lang_expand_decl_stmt,
3541         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3542         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3543         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3544         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3545         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3546         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3547         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3548         find_reachable_label_1, expand_unreachable_if_stmt,
3549         expand_unreachable_stmt): Remove.
3550         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3551         * c-simplify.c: New file.
3552         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3553         (struct lang_type): Add fields enum_min and enum_max.
3554         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3555         (c_expand_decl, c_missing_noreturn_ok_p,
3556         c_types_compatible_p): Declare.
3557         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3558         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3559         (default_function_array_conversion): Rely on build to
3560         set TREE_CONSTANT.
3561         (parser_build_binary_op, pointer_diff): Likewise.
3562         (build_unary_op, build_binary_op): Likewise.
3563         (build_array_ref):
3564         (build_external_ref): Set TREE_INVARIANT.
3565         (build_c_cast, pop_init_level): Likewise.
3566         (process_init_element): Use ASM_VOLATILE_P.
3567         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3568         (c_finish_case): Call c_do_switch_warnings.
3569         * c.opt (fdump-): Remove.
3570         * calls.c (try_to_integrate): Remove.
3571         (prepare_call_address): Replace fndecl arg with a
3572         precomputed static chain value.
3573         (emit_call_1): New argument for full call expr.
3574         (flags_from_decl_or_type): Call special_function_p.
3575         (initialize_argument_information): Add argument
3576         may_tailcall.
3577         (purge_reg_equiv_notes): New.
3578         (expand_call): Do not try to expand calls inline.
3579         (fixup_tail_calls): New.
3580         * cfg.c: Include timevar.h and ggc.h.
3581         (bb_pool, edge_pool): Remove.
3582         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3583         (entry_exit_blocks): Remove.
3584         (rbi_pool): Declare.
3585         (init_flow): Do not create pools.
3586         Allocate entry/exit block.
3587         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3588         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3589         (unlink_block): Clear b->prev_bb and b->next_bb.
3590         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3591         (dump_flow_info): Work on trees too.
3592         (dump_cfg_bb_info): New.
3593         (brief_dump_cfg): New.
3594         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3595         (find_edge): New.
3596         * cfgbuild.c (rtl_make_eh_edge): Rename from
3597         make_eh_edge.  Update all users.
3598         (find_basic_blocks): Don't call VARRAY_FREE on
3599         basic_block_info.
3600         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3601         and newpos2.
3602         (delete_unreachable_blocks): Return changed status.
3603         (merge_seq_blocks): New.
3604         * cfghooks.c: Include tree-flow.h
3605         (tree_register_cfg_hooks, ir_type): New.
3606         (redirect_edge_and_branch): Change return type to edge.
3607         (predict_edge, predicted_by_p, can_duplicate_block_p,
3608         duplicate_block, block_ends_with_call_p,
3609         block_ends_with_condjump_p, flow_call_edges_add): New.
3610         * cfghooks.h (redirect_edge_and_branch): Change return
3611         type to edge.
3612         (predict_edge, predicted_by_p, can_duplicate_block_p,
3613         duplicate_block, block_ends_with_call_p,
3614         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3615         (redirect_edge_and_branch): Change return type to edge.
3616         (struct cfg_hooks): Add fields block_ends_with_call_p,
3617         block_ends_with_condjump_p, flow_call_edges_add,
3618         predict_edge, predicted_by_p, can_duplicate_block_p and
3619         duplicate_block.
3620         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3621         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3622         (fixup_reorder_chain): Use initialize_bb_rbi.
3623         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3624         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3625         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3626         (insn_locators_initialize): Use new info about blocks.
3627         * cfglayout.h (typedef struct reorder_block_def): Moved to
3628         basic_block.h.
3629         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3630         removed.
3631         * cfgloop.c: Include tree.h and tree-flow.h.
3632         * cfgloop.h (create_loop_notes): Declare.
3633         * cfgloopmanip.c (create_loop_notes): New.
3634         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3635         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3636         and duplicate_block fields.
3637         (create_basic_block_structure): Don't look at
3638         RTX_INTEGRATED_P.
3639         (rtl_block_ends_with_call_p): New.
3640         (rtl_block_ends_with_condjump_p): New.
3641         (need_fake_edge_p): Moved from cfganal.c.
3642         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3643         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3644         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3645         (cfg_layout_rtl_cfg_hooks): Ditto.
3646         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3647         functions to be reachable.
3648         * cgraphunit.c (decide_is_function_needed):
3649         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3650         inline functions don't need to be output.
3651         (cgraph_assemble_pending_functions): Don't do anything
3652         special for nested functions.
3653         (cgraph_mark_functions_to_output): Likewise.
3654         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3655         (cgraph_analyze_function): Use estimate_num_insns.
3656         (cgraph_mark_functions_to_output): Likewise.
3657         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3658         (cgraph_expand_function): Allow functions to not be
3659         emitted.
3660         (cgraph_remove_unreachable_nodes):
3661         (cgraph_recursive_inlining_p): Simplify.
3662         (lookup_recursive_calls,
3663         cgraph_decide_recursive_inlining): New.
3664         (cgraph_decide_inlining_*): Update calls of
3665         cgraph_mark_inline.
3666         * combine.c (get_pos_from_mask): Always set *plen.
3667         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3668         ftree-based-profiling, ftree-ccp, ftree-ch,
3669         ftree-combine-temps, ftree-copyrename, ftree-dce,
3670         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3671         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3672         ftree-lrs): Add.
3673         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3674         Undefine.
3675         * configure.ac: Add --enable-tree-browser option.
3676         Add --with-libbanshee option.
3677         Add GMPLIBS and GMPINC.
3678         * configure: Regenerate.
3679         * coverage.c (tree_ctr_tables): New.
3680         (coverage_counter_alloc): Use it.
3681         (build_ctr_info_value): Ditto.
3682         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3683         (tree_coverage_counter_ref): New.
3684         * coverage.h (coverage_counter_ref): Remove declaration.
3685         (rtl_coverage_counter_ref): Declare.
3686         (tree_coverage_counter_ref): Declare.
3687         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3688         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3689         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3690         (struct cse_basic_block_data): Rename enum values to not
3691         conflict with profile.h; update all uses.
3692         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3693         in comments.
3694         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3695         * diagnostic.h (debug_output_buffer, dump_generic_node,
3696         print_generic_stmt, print_generic_stmt_indented,
3697         print_generic_expr, print_generic_decl,
3698         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3699         Declare.
3700         * dominance.c: Cache immediate dominators.
3701         * domwalk.c: New file.
3702         * domwalk.h: New file.
3703         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3704         (gen_subprogram_die): Generate a DIE for a named
3705         return value.
3706         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3707         (add_location_or_const_value_attribute): Likewise.
3708         (add_bound_info): Likewise.
3709         (gen_decl_die): Likewise.
3710         * emit-rtl.c (maybe_set_first_label_num): New.
3711         (copy_most_rtx): Don't copy the integrated flag.
3712         Copy the new return_val flag.
3713         * et-forest.c (MAX_NODES): Define.
3714         (record_path_before_1): Abort if len is greater than
3715         MAX_NODES.
3716         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3717         gen_eh_region_catch, gen_eh_region_allowed,
3718         gen_eh_region_must_not_throw, get_eh_region_number,
3719         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3720         set_eh_region_tree_label, expand_resx_expr): New.
3721         (expand_eh_region_start, expand_start_catch): Use them.
3722         (expand_end_catch): Tidy.
3723         (note_eh_region_may_contain_throw): Take region argument.
3724         (note_current_region_may_contain_throw): New.
3725         (get_exception_filter): Export.
3726         (collect_eh_region_array): Export.
3727         (remove_unreachable_regions): Check ERT_TRY based on reachability
3728         of catches, not reachability of continue_label.  Never remove
3729         ERT_MUST_NOT_THROW regions.
3730         (collect_rtl_labels_from_trees): New.
3731         (convert_from_eh_region_ranges): Use it.
3732         (connect_post_landing_pads): Handle dying cleanups.
3733         (struct reachable_info): Add callback data.
3734         (add_reachable_handler): Invoke the callback.
3735         (foreach_reachable_handler): New.
3736         (reachable_handlers): Use it.
3737         (arh_to_landing_pad, arh_to_label): New.
3738         (can_throw_internal_1): Split out from can_throw_internal.
3739         (can_throw_external_1): Similarly.
3740         * except.h: Update.
3741         * explow.c (emit_stack_save): Remove savearea mode check.
3742         (update_nonlocal_goto_save_area): New.
3743         (allocate_dynamic_stack_space): Use it.
3744         (probe_stack_range): Never emit loop notes.
3745         * expmed.c (extract_fixed_bit_field): Always propagate the
3746         target for the shift if it is a REG.
3747         * expr.c: Include tree-iterator.h
3748         (is_zeros_p): Remove.
3749         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3750         (count_type_elements): New.
3751         (mostly_zeros_p): Use them.
3752         (expr_wfl_stack): Remove.
3753         (convert_move): Do nothing if to and from are the same.
3754         (emit_block_move_via_loop): Don't emit LOOP notes.
3755         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3756         (emit_move_insn_1): Don't generate inline warnings.
3757         (expand_vars, expand_var): Split from ...
3758         (expand_expr_1): ... here.
3759         (expand_expr_real, expand_expr_real_1):  Use new macros
3760         EXPR_LOCATION and EXPR_HAS_LOCATION.
3761         * expr.h (simplify_builtin_fputs,
3762         simplify_builtin_strcpy, simplify_builtin_strncpy,
3763         expand_var, fixup_tail_calls,
3764         update_nonlocal_goto_save_area): Declare.
3765         (lookup_static_chain, expand_inline_function,
3766         mark_seen_cases): Remove.
3767         (prepare_call_address): Change type of 2nd argument to
3768         rtx.
3769         * final.c (profile_function): Update static chain test.
3770         (final): Don't look at RTX_INTEGRATED_P.
3771         * flags.h (flag_mudflap, flag_mudflap_threads,
3772         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3773         flag_tree_dce, flag_tree_combine_temps,
3774         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3775         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3776         flag_tree_points_to): Declare.
3777         (enum pta_type): Declare.
3778         * flow.c (lang_missing_noreturn_ok_p): Remove.
3779         (check_function_return_warnings): Remove.
3780         (update_life_info): Update comments.
3781         (free_basic_block_vars): Don't call VARRAY_FREE for
3782         basic_block_info.
3783         (regno_uninitialized): Remove.
3784         * fold-const.c (int_const_binop): Make extern.
3785         (non_lvalue): Rely on build to set TREE_CONSTANT.
3786         (operand_equal_p): Replace only_const argument with
3787         flags.  Allow pure functions if OEP_PURE_SAME.
3788         (fold): Use OEP_ONLY_CONST.
3789         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3790         boolean type.
3791         (fold_relational_hi_lo,
3792         nondestructive_fold_binary_to_constant,
3793         nondestructive_fold_unary_to_constant,
3794         fold_read_from_constant_string): New.
3795         * function.c (struct function): Remove calls_constant_p.
3796         (current_function_calls_constant_p): Remove.
3797         (inline_function_decl): Remove.
3798         (put_var_into_stack): Don't use it.
3799         (fix_lexical_addr): Likewise.
3800         (inline_function_decl): Remove extern declaration.
3801         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3802         (trampolines_created): Move to varasm.c.
3803         (free_after_compilation): Update for removed fields.
3804         (allocate_struct_function): Likewise.
3805         (delete_handlers, lookup_static_chain): Remove.
3806         (fix_lexical_addr): Don't consider non-local variable refs.
3807         (trampoline_address): Remove.
3808         (round_trampoline_addr): Move to builtins.c.
3809         (adjust_trampoline_addr): Remove.
3810         (expand_function_start): Update for changes to static chain
3811         and nonlocal goto handling.
3812         (initial_trampoline): Move to varasm.c.
3813         (expand_function_end): Don't build trampolines or kill
3814         unreferenced nonlocal goto labels.
3815         (free_after_compilation): Don't set it.
3816         (expand_function_end): Likewise.
3817         (setjmp_vars_warning): Rename from
3818         uninitialized_vars_warning, remove uninitialized vars warning.
3819         (uninitialized_vars_warning): Remove old comment
3820         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3821         and do not call the langhook.
3822         (expand_function_start, expand_function_end): Don't do
3823         function instrumentation here.
3824         (clear_block_marks): Rename from reorder_blocks_0, export.
3825         (blocks_nreverse): Export.
3826         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3827         of rtl.
3828         (reset_block_changes, record_block_change, finalize_block_changes,
3829         check_block_change, free_block_changes): New functions.
3830         (assign_parms): Setting of current_function_stdarg
3831         moved ...
3832         (allocate_struct_function): ... here.
3833         * function.h (struct function): Remove x_nonlocal_labels,
3834         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3835         x_context_display, x_trampoline_list, needs_context.
3836         Add static_chain_decl, nonlocal_goto_save_area.
3837         (struct function): Remove x_clobber_return_insn.
3838         Add tail_call_emit field, last_label_uid,
3839         unexpanded_var_list, dont_emit_block_notes,
3840         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3841         (clear_block_marks): Declare.
3842         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3843         (mfwrap_spec, mflib_spec): Declare.
3844         (cpp_unique_options, cc1_options): Ditto.
3845         (default_compilers): Add .F and .f90.
3846         (static_specs): Add mfwrap and mflib.
3847         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3848         CONSTANT_RTX_P.
3849         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3850         Update to match insns field in struct edge_def.
3851         * gdbinit.in (pgs, pge): Define.
3852         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3853         instead of the integrated flag.
3854         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3855         * gengtype-yacc.y (bitfieldlen): Add empty action.
3856         (struct_fields): Accept unnamed bitfields.
3857         (bitfieldlen): Split from ...
3858         (bitfieldopt): ... here.
3859         * gengtype.c (ifiles): Add tree-alias-type.h and
3860         tree-flow.h.
3861         * genrecog.c (validate_pattern): Do not handle
3862         CONSTANT_P_RTX.
3863         * gimple-low.c: New file.
3864         * gimplify.c: New file.
3865         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3866         (restore_line_notes): Do not set RTX_INTEGRATED_P.
3867         * ifcvt.c (dead_or_predicable): Initialize local variable
3868         'earliest'.
3869         * input.h (expr_wfl_stack): Remove.
3870         * integrate.c (INTEGRATE_THRESHOLD): Remove.
3871         (setup_initial_hard_reg_value_integration): Likewise.
3872         (initialize_for_inline): Likewise.
3873         (note_modified_parmregs): Likewise.
3874         (integrate_parm_decls): Likewise.
3875         (process_reg_param): Likewise.
3876         (save_parm_insns): Likewise.
3877         (copy_insn_list): Likewise.
3878         (copy_insn_notes): Likewise.
3879         (compare_blocks): Likewise.
3880         (find_block): Likewise.
3881         (inlining): Likewise.
3882         (function_cannot_inline_p): Likewise.
3883         (parmdecl_map): Likewise.
3884         (in_nonparam_insns): Likewise.
3885         (save_for_inline): Likewise.
3886         (FIXED_BASE_PLUS): Likewise.
3887         (expand_inline_function): Likewise.
3888         (copy_rtx_and_substitute): Don't look at map->integrating,
3889         map->inline_target, and inlining, since we are never copying
3890         for integrating.
3891         Don't abort on RTX_INTEGRATED_P.
3892         (old_fun): Remove.
3893         (output_inline_function): Remove.
3894         * integrate.h (struct inline_map): Remove fields integrating,
3895         block_map, leaf_reg_map, inline_target, and local_return_label.
3896         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3897         copy_loop_headers, never_reached_warning): Removed.
3898         (any_uncondjump_p): Reject nonlocal goto.
3899         * langhooks-def.h (lhd_types_compatible_p,
3900         lhd_expand_decl, lhd_gimplify_expr): Declare.
3901         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3902         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3903         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3904         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3905         LANG_HOOKS_GIMPLIFY_EXPR,
3906         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3907         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3908         LANG_HOOKS_GIMPLIFY_EXPR,
3909         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3910         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3911         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3912         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3913         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3914         LANG_HOOKS_DECL_UNINIT,
3915         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3916         * langhooks.c: Include tree-simple.h.
3917         (lhd_expand_decl): New.
3918         (lhd_types_compatible_p): New.
3919         (lhd_decl_uninit): Remove.
3920         (lhd_gimplify_expr): New.
3921         * langhooks.h (struct lang_hooks_for_rtl_expansion):
3922         Remove.
3923         (struct lang_hooks_for_functions): Add field
3924         missing_noreturn_ok_p.
3925         (struct lang_hooks): Add field expand_decl,
3926         types_compatible_p, gimplify_expr and
3927         gimple_before_inlining.
3928         Remove fields decl_uninit and rtl_expand
3929         * opts.c (decode_options): Set flag_tree_ccp,
3930         flag_tree_dce, flag_tree_dom, flag_tree_dse,
3931         flag_tree_pre, flag_tree_ter,
3932         flag_tree_live_range_split, flag_tree_sra,
3933         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3934         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3935         OPT_fmudflapth, OPT_fmudflapir,
3936         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3937         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3938         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3939         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3940         OPT_ftree_points_to_ and OPT_ftree_pre.
3941         * output.h (regno_uninitialized, find_basic_blocks,
3942         cleanup_cfg, delete_unreachable_blocks,
3943         check_function_return_warnings): Remove.
3944         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3945         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3946         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3947         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3948         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3949         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3950         Define.
3951         * passes.c (rest_of_decl_compilation):
3952         (rest_of_handle_sibling_calls): Remove.
3953         (rest_of_handle_inlining): Remove.
3954         (rest_of_handle_gcse): Do not run
3955         purge_builtin_constant_p.
3956         (rest_of_compilation): Update.
3957         Do not call copy_loop_headers.
3958         Do rtl-based profiling only when
3959         !flag_tree_based_profiling.  Register rtl-based profiling
3960         hooks.
3961         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
3962         (predicted_by_p): Rename to ...
3963         (rtl_predicted_by_p): .. this one; make global
3964         (tree_predicted_by_p): New.
3965         (dump_prediction): Add FILE argument.
3966         (predict_edge): Rename to ...
3967         (rtl_predict_edge): .. this one.
3968         (tree_predict_edge): New.
3969         (combine_predictions_for_insn): Update calls of predict_edge.
3970         (predict_loops): Break out from ...
3971         (estimate_probability): ... here; update comments; move updating
3972         of unknown probabilities from ...
3973         (estimate_bb_frequencies): ... here.
3974         (combine_predictions_for_bb): New.
3975         (tree_predict_by_opcode): New.
3976         (tree_estimate_probability): New.
3977         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3978         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3979         * predict.h: Add include guard.
3980         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3981         * pretty-print.c (pp_write_text_to_stream): Make extern.
3982         * pretty-print.h (pp_write_text_to_stream): Declare.
3983         * print-rtl.c (print_rtx): Don't print the integrated flag.
3984         Print the return_val flag.
3985         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3986         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3987         Remove support for EXPR_WITH_FILE_LOCATION nodes.
3988         (print_node): Print TREE_INVARIANT and TREE_VISITED.
3989         * profile.c: Include cfghooks.h, tree-flow.h.
3990         (profile_hooks): New.
3991         (profile_dump_file): New.
3992         (instrument_edges): Use hooks instead of RTL-specific code.
3993         (instrument_values): Ditto.
3994         (get_exec_counts): Ditto.
3995         (compute_branch_probabilities): Ditto.
3996         (compute_value_histograms): Ditto.
3997         (branch_prob): Ditto.
3998         (find_spanning_tree): Ditto.
3999         (end_branch_prob): Ditto.
4000         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4001         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4002         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4003         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4004         (tree_register_profile_hooks): New.
4005         (rtl_register_profile_hooks): New.
4006         * ra-rewrite.c (rewrite_program): Clear variable info.
4007         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4008         * regs.h: Add include guards.
4009         * reload.c (decompose): Clear val using memset.
4010         * rtl.def (CONSTANT_P_RTX): Remove.
4011         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4012         (copy_loop_headers): Remove.
4013         (struct rtx_def): Replace the integrated flag with the
4014         return_val flag.
4015         (maybe_set_first_label_num): Declare.
4016         (init_branch_prob): Move declaration to value-prof.h.
4017         (end_branch_prob): Ditto.
4018         (branch_prob): Ditto.
4019         (never_reached_warning): Don't declare it.
4020         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4021         (hoist_insn_to_edge): Update to match field insns in
4022         struct edge_def.
4023         * sbitmap.c (sbitmap_realloc): New.
4024         * sbitmap.h (sbitmap_realloc): Declare.
4025         * sibcall.c: Remove file.
4026         * simplify-rtx.c (simplify_rtx): Do not handle
4027         CONSTANT_P_RTX.
4028         * stmt.c (parse_output_constraint): Don't warn for read-write
4029         memory operand.
4030         (tail_recursion_args): Use types_compatible_p langhook.
4031         (force_label_rtx): Don't look at inline_function_decl.
4032         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4033         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4034         (declare_nonlocal_label): Remove.
4035         (expand_goto): Don't handle nonlocal gotos.
4036         (expand_nl_handler_label): Remove.
4037         (expand_nl_goto_receivers): Remove.
4038         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4039         update_nonlocal_goto_save_area.
4040         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4041         (warn_if_unused_value): Likewise.
4042         (expand_start_loop, expand_loop_continue_here,
4043         expand_end_loop): Don't create loop notes.
4044         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4045         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4046         (expand_end_case_type): Don't do warn_switch handling.
4047         (pushcase, pushcase_range) Update add_case_node calls.
4048         (add_case_node): Add dont_expand_label argument.
4049         (same_case_target_p): Don't search rtl.
4050         (expand_start_bindings_and_block, expand_end_bindings):
4051         Don't emit block notes when dont_emit_block_notes.
4052         (using_eh_for_cleanups_p): Export.
4053         (expand_return): Allow any typed rhs.
4054         (expand_stack_alloc): New.
4055         (expand_stack_save, expand_stack_restore): New.
4056         (containing_blocks_have_cleanups_or_stack_level): New
4057         function.
4058         (asm_op_is_mem_input): New fn.
4059         (expand_asm_expr): New fn.
4060         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4061         nodes.
4062         * stor-layout.c (layout_type): Just return if type is
4063         error_mark_node.
4064         (update_alignment_for_field): Export.
4065         (variable_size): We don't care about global_bindings_p if
4066         the frontend doesn't want a list of the expressions.
4067         * system.h: Poison INTEGRATE_THRESHOLD.
4068         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4069         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4070         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4071         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4072         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4073         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4074         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4075         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4076         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4077         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4078         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4079         TV_CONTROL_DEPENDENCES): Define.
4080         * toplev.c: Include tree-alias-common.h
4081         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4082         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4083         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4084         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4085         flag_tree_combine_temps, flag_tree_ter,
4086         flag_tree_live_range_split, flag_tree_dom,
4087         flag_tree_copyrename, flag_tree_dse): Declare.
4088         (f_options): Add tree-based-profiling, tree-gvn,
4089         tree-pre, tree-ccp, tree-dce,
4090         tree-dominator-opts, tree-copyrename, tree-dse,
4091         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4092         (wrapup_global_declarations): Don't output nested inlined functions.
4093         (general_init): Call init_tree_optimization_passes.
4094         (process_options): Sorry for -ftree-based-profiling plus
4095         -ftest-coverage or -fprofile-values.
4096         * toplev.h (init_tree_optimization_passes,
4097         flag_tree_based_profiling): Declare.
4098         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4099         * tree-alias-ander.c: New file.
4100         * tree-alias-ander.h: New file.
4101         * tree-alias-common.c: New file.
4102         * tree-alias-common.h: New file.
4103         * tree-alias-type.c: New file.
4104         * tree-alias-type.h: New file.
4105         * tree-browser.c: New file.
4106         * tree-browser.def: New file.
4107         * tree-cfg.c: New file.
4108         * tree-complex.c: New file.
4109         * tree-dfa.c: New file.
4110         * tree-dump.c (dump_enable_all): New.
4111         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4112         (dump_node): Remove const from field suffix and swtch.
4113         (dump_files): Add null entry, .generic, .nested, .vcg,
4114         .xml and a match-all entry.
4115         (extra_dump_files, extra_dump_files_in_use,
4116         extra_dump_files_alloced): Declare
4117         (dump_option_value_info): Add raw, details, stats,
4118         blocks, vops, lineno, uid and all.
4119         (dump_register): New.
4120         (get_dump_file_info): New.
4121         (dump_begin): Call it.
4122         Do nothing for TDI_none.
4123         (dump_begin): Include phase number in dump filename.
4124         (dump_enable_all): New.
4125         (dump_switch_p_1): Split out from dump_switch_p.
4126         (dump_switch_p): Handle extra_dump_files.
4127         Start our scan at TDI_none + 1.
4128         If -fdump-tree-all was given, call dump_enable_all.
4129         * tree-dump.h: Include splay-tree.h.
4130         (dump_function, dump_function_to_file, dump_register):
4131         Declare.
4132         * tree-eh.c: New file.
4133         * tree-flow-inline.h: New file.
4134         * tree-flow.h: New file.
4135         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4136         * tree-inline.h (walk_tree,
4137         walk_tree_without_duplicates): Move to tree.h.
4138         (estimate_num_insns): Declare.
4139         * tree-into-ssa.c: New file.
4140         * tree-iterator.c: New file.
4141         * tree-iterator.h: New file.
4142         * tree-mudflap.c: New file.
4143         * tree-mudflap.h: New file.
4144         * tree-nested.c: New file.
4145         * tree-nomudflap.c: New file.
4146         * tree-nrv.c: New file.
4147         * tree-optimize.c (dump_flags, vars_to_rename,
4148         in_gimple_form, all_passes, pass_gimple,
4149         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4150         (execute_gimple, execute_rebuild_bind,
4151         gate_all_optimizations, execute_del_cfg,
4152         register_one_dump_file, register_dump_files, dup_pass_1,
4153         init_tree_optimization_passes, execute_todo,
4154         execute_one_pass, execute_pass_list): New.
4155         (clear_decl_rtl): Remove.
4156         (tree_rest_of_compilation): Update to use tree
4157         optimizers.
4158         * tree-outof-ssa.c: New file.
4159         * tree-pass.h: New file.
4160         * tree-phinodes.c: New file.
4161         * tree-pretty-print.c: New file.
4162         * tree-profile.c: New file.
4163         * tree-simple.c: New file.
4164         * tree-simple.h: New file.
4165         * tree-sra.c: New file.
4166         * tree-ssa-alias.c: New file.
4167         * tree-ssa-ccp.c: New file.
4168         * tree-ssa-copy.c: New file.
4169         * tree-ssa-copyrename.c: New file.
4170         * tree-ssa-dce.c: New file.
4171         * tree-ssa-dom.c: New file.
4172         * tree-ssa-dse.c: New file.
4173         * tree-ssa-forwprop.c: New file.
4174         * tree-ssa-live.c: New file.
4175         * tree-ssa-live.h: New file.
4176         * tree-ssa-loop.c: New file.
4177         * tree-ssa-operands.c: New file.
4178         * tree-ssa-operands.h: New file.
4179         * tree-ssa-phiopt.c: New file.
4180         * tree-ssa-pre.c: New file.
4181         * tree-ssa.c: New file.
4182         * tree-ssanames.c: New file.
4183         * tree-tailcall.c: New file.
4184         * tree.c: Include tree-iterator.h, basic-block.h and
4185         tree-flow.h.
4186         (tree_node_kind): Add phi_nodes and ssa names.
4187         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4188         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4189         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4190         <'c'> Set TREE_INVARIANT.
4191         (copy_node_stat): Abort if trying to copy a
4192         STATEMENT_LIST.
4193         Clear TREE_VISITED.
4194         Clear annotation field.
4195         (build_constructor): Copy TREE_INVARIANT from vals.
4196         Don't clear TREE_CONSTANT.
4197         (expr_first, expr_last, expr_length): Remove.
4198         (staticp): Pass unknown component references to the language.
4199         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4200         (skip_simple_arithmetic): Likewise.
4201         (stabilize_reference_1): Likewise.
4202         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4203         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4204         STATEMENT_LIST.
4205         (lhd_unsave_expr_now): Remove.
4206         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4207         (recompute_tree_invarant_for_addr_expr): New.
4208         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4209         Call recompute_tree_invarant_for_addr_expr.
4210         Set TREE_INVARIANT accordingly.
4211         (build2_stat): Don't handle CALL_EXPR.
4212         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4213         (build_expr_wfl): Remove.
4214         (annotate_with_file_line, annotate_with_locus): New.
4215         (simple_cst_equal): Call simple_cst_list_equal to compare
4216         CONSTRUCTOR_ELTS pointers.
4217         (iterative_hash_expr): Don't hash types associated
4218         with conversions.  Instead hash on the signedness of the
4219         toplevel object and the operand of the conversion.
4220         (dump_tree_statistics): Call ssanames_print_statistics
4221         and phinodes_print_statistics.
4222         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4223         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4224         needs_to_live_in_memory): New.
4225         (initializer_zerop): Handle VECTOR_CST.  Don't check
4226         AGGREGATE_TYPE_P for CONSTRUCTOR.
4227         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4228         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4229         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4230         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4231         (CALL_EXPR): Add another operand.
4232         (EXPR_WITH_FILE_LOCATION): Remove.
4233         (SWITCH_EXPR): Add another operand.
4234         * tree.h: Update various comments.
4235         (union tree_ann_d): Forward declare.
4236         (struct tree_common): Add fields nowarning_flag,
4237         invariant_flag and visited.
4238         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4239         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4240         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4241         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4242         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4243         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4244         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4245         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4246         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4247         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4248         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4249         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4250         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4251         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4252         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4253         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4254         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4255         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4256         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4257         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4258         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4259         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4260         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4261         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4262         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4263         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4264         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4265         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4266         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4267         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4268         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4269         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4270         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4271         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4272         TDF_UID,): Define.
4273         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4274         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4275         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4276         EXPR_WFL_SET_LINECOL): Remove.
4277         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4278         make_phi_node, init_phinodes, fini_phinodes,
4279         release_phi_node, phinodes_print_statistics,
4280         init_ssanames, fini_ssanames, make_ssa_name,
4281         release_ssa_name, ssanames_print_statistics,
4282         annotate_with_file_line, build_empty_stmt,
4283         annotate_with_locus, expr_only, categorize_ctor_elements,
4284         count_type_elements, add_var_to_bind_expr, is_essa_node,
4285         expand_stack_alloc, expand_stack_save,
4286         expand_stack_restore, add_case_node, operand_equal_p,
4287         nondestructive_fold_unary_to_constant,
4288         nondestructive_fold_binary_to_constant,
4289         fold_read_from_constant_string, int_const_binop,
4290         strip_float_extensions, simplify_builtin, c_strlen,
4291         recompute_tree_invarant_for_addr_expr,
4292         needs_to_live_in_memory, make_vector,
4293         setjmp_vars_warning, update_alignment_for_field,
4294         expand_asm_expr, asm_op_is_mem_input,
4295         containing_blocks_have_cleanups_or_stack_level,
4296         create_artificial_label, gimplify_function_tree,
4297         get_name, unshare_expr, walk_tree,
4298         walk_tree_without_duplicates, in_gimple_form): Declare.
4299         (struct tree_exp): Add fields locus and block.
4300         (struct tree_ssa_name, struct edge_def, struct
4301         tree_phi_node, struct tree_eref_common, struct
4302         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4303         union alias_var_def, struct tree_statement_list_node,
4304         struct tree_statement_list, enum operand_equal_flag): Declare.
4305         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4306         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4307         TS_STATEMENT_LIST.
4308         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4309         euse and stmt_list.
4310         (function_cannot_inline_p, uninitialized_vars_warning,
4311         save_for_inline, output_inline_function, all_cases_count,
4312         check_for_full_enumeration_handling,
4313         declare_nonlocal_label): Remove.
4314         (enum tree_dump_index): Add TDI_none, TDI_tu,
4315         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4316         * unroll.c (unroll_loop): Don't clear map->inline_target.
4317         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4318         function.
4319         * value-prof.c (value_prof_hooks): New.
4320         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4321         Move rtl-specific bits in from branch_prob.
4322         (value_profile_transformations): Rename to
4323         rtl_value_profile_transformations.
4324         (struct value_prof_hooks): New.
4325         (rtl_value_prof_hooks): New.
4326         (rtl_register_value_prof_hooks): New.
4327         (tree_find_values_to_profile): New stub.
4328         (tree_value_profile_transformations): New stub.
4329         (tree_value_prof_hooks): New stub.
4330         (tree_register_value_prof_hooks): New stub.
4331         (find_values_to_profile): New.
4332         (value_profile_transformations): New.
4333         * value-prof.h: Add multiple inclusion guard.
4334         (struct histogram_value): Change rtx fields to void *.
4335         (rtl_register_value_prof_hooks): New declaration.
4336         (tree_register_value_prof_hooks): New declaration.
4337         (find_values_to_profile): New declaration.
4338         (free_profiled_values): New declaration.
4339         (value_profile_transformations): New declaration.
4340         (struct profile_hooks): New declaration.
4341         (init_branch_prob): Declaration moved from rtl.h.
4342         (branch_prob): Declaration moved from rtl.h.
4343         (end_branch_prob): Declaration mooved from rtl.h.
4344         (tree_register_profile_hooks): New declaration.
4345         (rtl_register_profile_hooks): New declaration.
4346         (tree_profile_hooks): New declaration.
4347         (rtl_profile_hooks): New declaration.
4348         * varasm.c: Include tree-mudflap.h.
4349         (TRAMPOLINE_ALIGNMENT): Remove.
4350         (make_decl_rtl): Call mudflap_enqueue_decl.
4351         (assemble_static_space):
4352         (assemble_trampoline_template): Set and return
4353         TRAMPOLINE_ALIGNMENT.
4354         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4355         Add entry for 'tree *'.
4356         Add entry for struct edge_def *.
4357         (varray_copy): New.
4358         * varray.h (enum varray_data_enum): Add
4359         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4360         VARRAY_DATA_TREE_PTR.
4361         (union varray_data_tag): Corresponding changes.
4362         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4363         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4364         VARRAY_EDGE, VARRAY_TREE_PTR,
4365         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4366         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4367         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4368
4369         * config/*/*: Various updates for changed macros, tree
4370         codes, etc.  Check ChangeLog.tree-ssa.
4371
4372         * doc/cfg.texi: New file.
4373         * doc/tree-ssa.texi: New file.
4374         * doc/c-tree.texi: Document new codes.
4375         * doc/gccint.texi: Include new files.
4376         * doc/install.texi: Document new features.
4377         * doc/invoke.texi: Document new switches.
4378         * doc/passes.texi: Document new passes.
4379         * doc/rtl.texi: Update changed RTL codes.
4380         * doc/sourcebuild.texi: Update build instructions.
4381         * doc/standards.texi: Document Fortran changes.
4382         * doc/tm.texi: Update.
4383
4384 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4385
4386         Replace several arrays with a struct of arrays.
4387         * combine.c (struct reg_stat): New.
4388         (init_reg_last_arrays): Renamed to...
4389         (init_reg_last): ...this.  Callers adjusted.
4390         (reg_stat): New.
4391         (combine_instructions): Allocate it and use it.
4392         (reg_last_death, reg_last_set, reg_last_set_value,
4393         reg_last_set_label, reg_last_set_table_tick,
4394         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4395         reg_last_set_mode, reg_last_set_nonzero_bits,
4396         reg_last_set_sign_bit_copies): Replace throughout
4397         with items of reg_stat.
4398
4399 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4400
4401         PR optimization/15100
4402         * combine.c (distribute_notes): Don't create a dangling
4403         REG_LIBCALL/REG_RETVAL note.
4404
4405 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4406
4407         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4408
4409         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4410         negv2si2.
4411
4412 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4413
4414         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4415
4416 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4417
4418         * doc/gty.texi (GTY Options): Clarify example.
4419
4420 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4421
4422         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4423         Add const qualifier to altivec vector type if one is needed.
4424
4425 2004-05-11  Paul Brook  <paul@codesourcery.com>
4426
4427         * flags.h (flag_short_enums): Update comment.
4428         * opts.c (decode_options): Set flag_short_enums to 2.
4429         * toplev.c (flag_short_enums): Update comment.
4430         (process_options): Call default_short_enums target hook.
4431
4432 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4433
4434         PR target/14063
4435         * config/rs6000/altivec.md (altivec_dssall):
4436         Change to unspec_volatile.
4437         (altivec_dss): Likewise.
4438
4439 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4440
4441         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4442         vnor.
4443         ("one_cmplv8hi2"): Same.
4444         ("one_cmplv4si2"): Same.
4445
4446 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4447
4448         PR target/15130
4449         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4450         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4451         into account.  Compute the correct number of general registers
4452         for the return value.  Generate a special push/pop sequence when
4453         failing to get a temporary register for non SHmedia epilogue.
4454         (sh_expand_epilogue): Add an argument to show whether it's for
4455         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4456         -1 if needed.
4457         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4458         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4459         with 1.
4460         (epilogue): Call sh_expand_epilogue with 0.
4461
4462 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4463
4464         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4465         goto a cleanup label.  After the cleanup, free the allocated memory.
4466
4467 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4468
4469         * config/rs6000/altivec.h (vec_sld): Add overloads for
4470         argument/return types of 'vector bool int', 'vector bool short'
4471         and 'vector bool char'.
4472
4473 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4474
4475         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4476         nested function.
4477
4478 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4479
4480         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4481         treating missing ones as "".
4482         * config/mips/mips.md: Remove constraints from match_operands and
4483         match_scratches if they appear in define_expands (except reload*),
4484         define_peephole2s, define_splits or attribute specifications.
4485         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4486         constraint strings.
4487
4488 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4489
4490         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4491         AltiVec vectors.
4492         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4493         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4494         byte boundary.  Remove useless code.  Add function comment.
4495         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4496         call to where it belongs.
4497         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4498         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4499         (rs6000_va_arg): Adjust for AltiVec change.
4500
4501 2004-05-10  Paul Brook  <paul@codesourcery.com>
4502
4503         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4504         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4505         (TARGET_DOUBLEWORD_ALIGN): Use it.
4506         (WCHAR_TYPE): Define.
4507         (WCHAR_SIZE_TYPE): Define.
4508         (SIZE_TYPE): Define.
4509
4510 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4511
4512         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4513         when size is 8 bytes.
4514         (function_arg_advance): Account for stack space used by AltiVec
4515         args when -mabi=altivec.  Simplify alignment calculations.  For
4516         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4517         (function_arg): Similarly.
4518         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4519         not AltiVec ABI.
4520         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4521         Correct alignment, and align before testing reg count.  Remove
4522         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4523         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4524         TARGET_FPRS here..
4525         (rs6000_function_value): .. not here before call.
4526
4527 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4528
4529         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4530
4531 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4532
4533         PR 15007
4534         * c-decl.c (current_file_decl): Rename to all_translation_units,
4535         adjust comment.
4536         (pop_scope): If popping file_scope, construct a
4537         TRANSLATION_UNIT_DECL and make it the context of all the
4538         symbols in the scope.
4539         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4540         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4541         anything to current_file_decl.
4542         (pushdecl_top_level): Likewise.
4543         (store_parm_decls_newstyle): Adjust check for nested function.
4544         (c_write_global_declarations): Update for renamed variable.
4545
4546 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4547
4548         * config/rs6000/rs6000-protos.h
4549         (rs6000_conditional_register_usage): Protoize.
4550
4551         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4552
4553         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4554         function.
4555
4556 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4557
4558         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4559         where op is a comparison operator and C1 and C2 are integer constants
4560         into a range check.
4561         (fold): Call fold_div_compare.
4562
4563 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4564
4565         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4566         problems with earlier versions of the GNU compiler.
4567
4568 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4569
4570         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4571         Declare.
4572
4573         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4574         (rs6000_hard_regno_mode_ok): New.
4575         (rs6000_init_hard_regno_mode_ok): New.
4576         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4577
4578         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4579         result.
4580
4581 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4582
4583         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4584         define as macros #ifdef __APPLE_ALTIVEC__.
4585
4586 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4587
4588         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4589         Generate appropriate parallels for vector arguments
4590         passed to vararg functions. (function_arg): make the call
4591         to rs6000_mixed_function_arg for vector args as needed.
4592
4593 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4594
4595         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4596         EABI_FLOAT_VARARGS_P.
4597
4598 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4599
4600         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4601         * config/mips/mips.c (override_options): Disable branch likely
4602         instructions if TUNE_MIPS5500.
4603
4604 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4605
4606         * config/mips/mips.c (override_options): Allow the hi and lo registers
4607         to store any integral mode, not just MODE_INTs.
4608
4609 2004-05-07  Paul Brook  <paul@codesourcery.com>
4610
4611         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4612         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4613         (TARGET_DOUBLEWORD_ALIGN): Use it.
4614         (WCHAR_TYPE): Define.
4615         (WCHAR_SIZE_TYPE): Define.
4616         (SIZE_TYPE): Define.
4617
4618 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4619
4620         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4621         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4622
4623 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4624
4625         * loop-doloop.c (doloop_valid_p): Make sure that body
4626         gets freed.
4627
4628 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4629
4630         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4631         declaration.
4632         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4633         (sparc_skip_caller_unimp): New global variable.
4634         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4635         Use it instead of SKIP_CALLERS_UNIMP_P.
4636         * config/sparc/sparc.md (call expander): Add sanity check.
4637         (call_address_struct_value_sp32): Re-sync with expander.
4638         (call_symbolic_struct_value_sp32): Likewise.
4639         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4640         of custom predicate.
4641
4642 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4643
4644         PR c++/14962
4645         * c-pragma.c (handle_pragma_redefine_extname): Only change
4646         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4647
4648 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4649
4650         * optabs.h (enum optab_index): Add new OTI_log1p.
4651         (log1p_optab): Define corresponding macro.
4652         * optabs.c (init_optabs): Initialize log1p_optab.
4653         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4654         patterns.
4655         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4656         using log1p_optab.
4657         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4658         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4659
4660         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4661
4662         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4663         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4664         Prototype here.
4665         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4666         x87's fyl2xp1 instruction.
4667         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4668         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4669         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4670         log1p  and log1pl built-ins as inline x87 intrinsics.
4671
4672 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4673
4674         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4675         * config/arm/freebsd.h: Likewise.
4676         * config/ia64/freebsd.h: Likewise.
4677         * config/sparc/freebsd.h: Likewise.
4678
4679 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4680
4681         PR optimization/15296
4682         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4683         getting last consecutive label at a branch.
4684         (relax_delay_slots): Similar, near top of loop.
4685
4686 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4687
4688         PR target/15202
4689         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4690         register to general register.
4691
4692 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4693
4694         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4695         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4696         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4697         (STACK_BOUNDARY): Delete.
4698
4699 2004-05-06  Stuart Hastings  <stuart@apple.com>
4700
4701         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4702         mistakenly clobbered by 1.423.
4703
4704 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4705
4706         * doc/invoke.texi: Document -mvr4130-align.
4707         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4708         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4709         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4710         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4711         * config/mips/mips.md: Include sched-int.h.
4712         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4713         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4714         (override_options): Enable -mvr4130-align at -O3 and above.
4715         (mips_sim_insn): New variable.
4716         (mips_sim): New structure.
4717         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4718         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4719         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4720         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4721         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4722         (mips_reorg): Call vr4130_align_insns.
4723         (vr4130_last_insn): New variable.
4724         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4725         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4726         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4727         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4728         (mips_use_dfa_pipeline_interface): Return true for the same.
4729         * config/mips/4130.md: New file.
4730         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4731         "mult;mflo" into "mtlo;macc".
4732         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4733         target of maccs.
4734         (*msac_using_macc): New pattern.
4735
4736 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4737
4738         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4739         (ir_vr55_hilo): Split into...
4740         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4741         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4742         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4743         Add various multiplication bypasses.
4744         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4745         multiplication.
4746
4747 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4748
4749         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4750         attribute to "XF".
4751
4752 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4753
4754         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4755         (fmod_optab, drem_optab): Define corresponding macros.
4756         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4757         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4758         using fmod?f3 and drem?f3 patterns.
4759         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4760         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4761         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4762         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4763         flag_unsafe_math_optimizations is set.
4764
4765         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4766         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4767
4768         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4769         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4770         Prototype here.
4771         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4772         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4773         fprem and fprem1 instructions.
4774         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4775         Rename insn definition to x86_fnstsw_1.
4776         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4777         x87 instructions.
4778         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4779         and fmodl built-ins as inline x87 intrinsics.
4780         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4781         and dreml built-ins as inline x87 intrinsics.
4782
4783 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4784
4785         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4786
4787 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4788
4789         PR driver/9822
4790         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4791
4792 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4793
4794         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4795         representation.
4796
4797 2004-05-06  Paul Brook  <paul@codesourcery.com>
4798
4799         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4800         (arm_coproc_mem_operand): ... To this.
4801         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4802         (arm_legitimate_index_p): Ditto.
4803         (vfp_mem_operand): Rename ...
4804         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4805         (vfp_secondary_reload_class): Use it.
4806         (output_move_double): Use doubleword load/store instructions.
4807         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4808         * config/arm/arm.h (TARGET_LDRD): Define.
4809         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4810         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4811         New splitter for invalid doubleword loads.
4812         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4813         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4814         * doc/md.texi: Document Uy constraint.
4815
4816 2004-05-05  Jan Hubicka  <jh@suse.cz>
4817
4818         PR opt/14980
4819         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4820         inline clones.
4821
4822 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4823
4824         PR target/15290
4825         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4826         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4827
4828 2004-05-05  Mike Stump  <mrs@apple.com>
4829
4830         * config/darwin-c.c (add_framework): Copy the directory name as it
4831         can be freed later.  Also, ensure we always allocate enough room
4832         for the cached framework information.
4833         (find_subframework_header): Keep track of the directory where the
4834         subframework header was found.
4835         (framework_construct_pathname): Speed up by not trying to re-add a
4836         framework.
4837         * cppfiles.c (search_path_exhausted): Arrange for the missing
4838         header callback to be able to set the directory where the header
4839         was found.
4840         (cpp_get_dir): Add.
4841         * cpplib.h (missing_header_cb): Add a parameter.
4842         (cpp_get_dir): Add.
4843
4844 2004-05-03  Mike Stump  <mrs@apple.com>
4845
4846         * doc/invoke.texi (Directory Options): Document -iquote.
4847         * doc/cpp.texi: Likewise.
4848         * doc/cppopts.texi: Likewise.
4849         * c-opts.c (c_common_missing_argument): Add -iquote processing.
4850         (c_common_handle_option): Likewise.
4851         * c.opt (iquote): Add.
4852         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4853         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4854
4855         * c-opts.c (case OPT_I): Deprecate -I- support.
4856         * doc/invoke.texi: Likewise.
4857         * doc/cpp.texi: Likewise.
4858         * doc/cppopts.texi: Likewise.
4859
4860 2004-05-05  Steven Bosscher  <stevenb@suse.de>
4861
4862         * basic-block.h (free_basic_block_vars): Update prototype.
4863         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4864         argument.
4865         (life_analysis): Update call.
4866         * ifcvt.c (if_convert): Likewise.
4867         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4868         * passes.c (rest_of_handle_final): Likewise.
4869         (rest_of_compilation): Likewise.
4870         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4871
4872         * emit-rtl.c (next_real_insn): Use INSN_P.
4873         (prev_real_insn): Likewise.
4874
4875 2004-05-05  Eric Christopher  <echristo@redhat.com>
4876
4877         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4878         representation.
4879
4880 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
4881
4882         * config/rs6000/rs6000.c (build_opaque_vector_type):
4883         New function.
4884         (rs6000_init_builtins): Use it.
4885
4886 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
4887
4888         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4889         (func_table): Change type from char ** to vms_func_ref.
4890         (write_rtnbeg):  Update to reflect func_table change.  Use
4891         fde->funcdef_number instead of rtnnum in output.
4892         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4893
4894 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4895             Richard Henderson  <rth@redhat.com>
4896
4897         PR target/14899
4898
4899         * c-common.c (vector_types_convertible_p): New function.
4900         * c-typeck.c (comptypes): Recurse on vector types.
4901         (convert_for_assignment): Use vector_types_convertible_p.
4902         (digest_init): Use vector_types_convertible_p to check
4903         validness of constant vector initializers; otherwise treat
4904         them as scalars.
4905         * tree.c (make_or_reuse_type): New.
4906         (build_common_tree_nodes): Use it.
4907         * cp/call.c (standard_conversion): Likewise.
4908         * cp/typeck.c (comptypes): Recurse on vector types.
4909         (convert_for_assignment): Use vector_types_convertible_p.
4910
4911 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
4912
4913         * config/mips/mips.c (override_options): Default to no
4914         generation of branch-likely operations when tuning for
4915         CPUs where they tend to have a negative performance impact
4916         (e.g., SB-1).
4917
4918 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4919
4920         * expr.c (store_constructor_field): Don't call store_constructor
4921         if bitsize is not a multiple of a byte.
4922
4923 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
4924
4925         * reload1.c (inherit_piecemeal_p): New function.
4926         (emit_reload_insns): When reloading a group of hard registers, use
4927         inherit_piecemeal_p to decide whether the values of individual hard
4928         registers can be inherited.
4929
4930 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4931
4932         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4933         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4934         * config/t-linux (LIB2ADDEHDEP): Likewise.
4935
4936 2004-05-04  Paul Brook  <paul@codesourcery.com>
4937
4938         * config/arm/crti.asm: Push an even number of registers.
4939         * config/arm/crtn.asm: And restore them.  Load via sp.
4940
4941 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4942
4943         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4944         Collect overhead information.
4945         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
4946         parameter and pass it through.
4947         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
4948         MEM_STAT_DECL parameter and pass it through.
4949         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
4950         MEM_STAT_DECL parameter and pass it through.
4951
4952 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4953
4954         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4955
4956         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4957
4958         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4959         rs6000_hard_regno_nregs.
4960
4961 2004-05-03  Eric Christopher  <echristo@redhat.com>
4962
4963         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4964         prologue insn instead of setting up call.
4965         (s390_emit_epilogue): Ditto.
4966         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4967         (define_constants): Add numbers for above patterns.
4968
4969 2004-05-03  Eric Christopher  <echristo@redhat.com>
4970
4971         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4972         * config/s390/s390.c (s390_conditional_register_usage): ...here.
4973         * config/s390/s390-protos.h: Prototype.
4974
4975 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
4976
4977         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4978         assignment.
4979
4980 2004-05-03  Eric Christopher  <echristo@redhat.com>
4981
4982         * config/mips/mips.md: Fix branch length attribute definition.
4983
4984 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4985
4986         * config.gcc: Remove --enable-altivec support.
4987
4988         * config/rs6000/altivec-defs.h: Remove.
4989
4990 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4991
4992         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4993         * fixinc/fixincl.x: Regenerate.
4994
4995 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4996
4997         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4998         definition.
4999         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5000         float_truncate insn.
5001         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5002         (logb?f2): Reimplement expanders with float_truncate insn.
5003
5004 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5005
5006         PR 14718
5007         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5008         force_type_die for CONST_DECL.
5009
5010 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5011             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5012
5013         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5014         tm-dwarf2.h to tm_file.
5015         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5016         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5017         (ASM_DEBUG_SPEC): Delete.
5018
5019 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5020
5021         * optabs.h (enum optab_index): Add new OTI_expm1.
5022         (expm1_optab): Define corresponding macro.
5023         * optabs.c (init_optabs): Initialize expm1_optab.
5024         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5025         patterns.
5026         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5027         using expm1_optab.
5028         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5029         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5030
5031         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5032         to implement expm1, expm1f and expm1l built-ins as inline x87
5033         intrinsics.
5034
5035 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5036
5037         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5038         * config/frv/frv.md (*return_true, *return_false): New patterns.
5039
5040 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5041
5042         * rtl.h (PHI_NODE_P): Remove.
5043
5044 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5045
5046         PR middle-end/14988
5047         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5048         when passed -2 as 'align'.
5049         (put_var_into_stack): Use 'bool' as the type for the three local
5050         predicates.  Adjust calls to put_reg_into_stack.
5051         When passed a CONCAT, instruct put_reg_into_stack to use
5052         a consecutive stack slot for the second part.
5053         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5054         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5055         parameters.  Retrieve the register mode from 'reg'.
5056         When consecutive_p is true, instruct assign_stack_local_1 to use
5057         BITS_PER_UNIT alignment.
5058         (put_addressof_into_stack): Use 'bool' as the type for the two
5059         local predicates. Adjust call to put_reg_into_stack.
5060
5061 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5062
5063         * fold-const.c (fold_convert_const, fold): Add missing
5064         FIX_ROUND_EXPR case.
5065
5066 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5067
5068         * configure.ac (FLEX, BISON): Only use tools from the build tree
5069         if build equals host.
5070         * configure: Rebuilt.
5071
5072         * config/frv/frv-protos.h (frv_expand_epilogue,
5073         frv_expand_fdpic_call): Add bool argument.
5074         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5075         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5076         (frv_expand_epilogue): Use new argument to decide whether to emit
5077         return instruction or copy the return address to LR.
5078         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5079         sibcalls.
5080         (sibcall_operand): New.
5081         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5082         PLUS nor LABEL_REF.  Add sibcall_operand.
5083         * config/frv/frv.md (call, call_value): Pass false to
5084         frv_expand_fdpic_call.
5085         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5086         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5087         sibcall_value_internal, sibcall_value_fdpicdi): New.
5088         (return_unsigned_true, return_unsigned_false): New.
5089         (epilogue): Adjust call to frv_expand_epilogue.
5090         (sibcall_epilogue): New.
5091
5092         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5093         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5094         before redefining them.
5095
5096 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5097
5098         * builtins.c (fold_fixed_mathfn): New function.
5099         (fold_builtin_lround, fold_builtin): Use it.
5100
5101 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5102
5103         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5104         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5105
5106 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5107
5108         * config/cris/cris.h: Revert my "fix comment typos" patch.
5109
5110 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5111
5112         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5113
5114 2004-05-01  Falk Hueffner  <falk@debian.org>
5115
5116         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5117         builtin_insll): Disallow 0 as first input operand.
5118
5119 2004-05-01  Falk Hueffner  <falk@debian.org>
5120
5121         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5122
5123 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5124
5125         PR middle-end/15054
5126         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5127         on a TARGET_EXPR temp.
5128         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5129         TARGET_EXPR temp slots.
5130
5131 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5132
5133         * simplify-rtx.c (simplify_ternary_operation): When
5134         converting an IF_THEN_ELSE to a relational op, return
5135         correct mode.
5136
5137 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5138
5139         * builtins.c (fold_builtin_round): Fix comment typo.
5140         (fold_builtin_lround): New function.
5141         (fold_builtin): Use it.
5142
5143 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5144
5145         PR target/11608
5146         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5147         more like the one in config/dbxelf.h.
5148
5149 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5150
5151         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5152         and adjust definition accordingly.
5153         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5154         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5155         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5156         VECTOR_TYPE.
5157
5158 2004-04-30  Jason Merrill  <jason@redhat.com>
5159
5160         PR c++/14587
5161         * config/i386/winnt.c (associated_type): Look for attributes on
5162         the TYPE_MAIN_VARIANT of *this.
5163         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5164         apply the attributes to the variants.
5165
5166 2004-04-30  Paul Brook  <paul@codesourcery.com>
5167
5168         * config.gcc: Simplify arm --with-{cpu,tune} test.
5169         * config/arm/arm-cores.def: Document whitespace restrictions.
5170
5171 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5172
5173         PR other/1963
5174         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5175
5176 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5177             DJ Delorie  <dj@redhat.com>
5178
5179         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5180         (DWARF2_DEBUGGING_INFO): Define to enable.
5181         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5182         DWARF2.
5183         * configure.ac (Target-specific assembler checks)
5184         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5185         relocs.
5186         * configure: Regenerate.
5187         * config.in: Likewise.
5188
5189         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5190         (ASM_OUPUT_DWARF_OFFSET): Define.
5191
5192 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5193
5194         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5195         (s390_emit_call): New function prototype added.
5196         (s390_tls_get_offset): Function removed.
5197         * config/s390/s390.c (s390_function_ok_for_sibcall,
5198         s390_call_saved_register_used_p): New functions.
5199         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5200         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5201         (s390_emit_tls_call_insn): New function.
5202         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5203         emit_call_insn.
5204         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5205         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5206         added.
5207         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5208         register number used to hold the target address for sibcalls.
5209         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5210         New expanders.
5211         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5212         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5213         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5214         Expanders removed.
5215         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5216         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5217         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5218         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5219         new parameter.
5220
5221 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5222
5223         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5224         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5225         reg-stack.c, varasm.c, config/alpha/ev4.md,
5226         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5227         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5228         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5229         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5230         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5231         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5232         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5233         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5234         comment typos.
5235
5236 2004-04-30  Paul Brook  <paul@codesourcery.com>
5237
5238         * config.gcc: Default ep9312 to hard-float.
5239         * config/arm/arm-cores.def: Add ARCH field.
5240         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5241         (arm_arch_cirrus): New variable.
5242         (all_cores): Set and use arch.
5243         (all_architectures): Ditto.
5244         (arm_arch_name): New variable.
5245         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5246         Set and use arm_arch_cirrus.
5247         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5248         (enum processor_type): Update ARM_CORE define.
5249         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5250         (CPP_SPEC): Remove %(cpp_cpu_arch).
5251         (CPP_ARCH_DEFAULT_SPEC): Remove.
5252         (CPP_CPU_ARCH_SPEC): Remove.
5253         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5254         (FPUTYPE_DEFAULT): Don't define here.
5255
5256 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5257
5258         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5259         updates too.
5260
5261 2004-04-30  Paul Brook  <paul@codesourcery.com>
5262
5263         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5264
5265 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5266
5267         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5268         vec_sububs.
5269         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5270         duplicates.
5271
5272 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5273
5274         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5275         atan2?f3 expanders.
5276
5277 2004-04-29  Nick Clifton  <nickc@redhat.com>
5278
5279         Bug 14093
5280         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5281         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5282         Delete static from definition.
5283         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5284
5285 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5286
5287         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5288         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5289         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5290         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5291
5292 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5293
5294         * commom.opt (Wfatal-errors): Add it.
5295         * diagnostic.c (flag_fatal_errors): Define it.
5296         (diagnostic_action_after_output): Check for flag_fatal_errors.
5297         * flags.h (flag_fatal_errors): Declare it.
5298         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5299         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5300
5301 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5302
5303         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5304         blocks which have kill flag set.
5305
5306 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5307
5308         * configure.ac (--with-as): Abort if user-supplied assembler
5309         cannot be executed.
5310         (--with-ld): Likewise for the linker.
5311         * configure: Regenerate.
5312
5313 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5314
5315         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5316         isn't NULL before using it.
5317
5318 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5319
5320         PR target/15189
5321         * config/mips/mips.md (load_df_low): Use default length.
5322         (load_df_high, store_df_high): Likewise.
5323
5324 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5325
5326         * config/mips/mips.md, config/mips/sb1.md,
5327         config/rs6000/rs6000.c: Fix comment typos.
5328
5329 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5330
5331         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5332         Fix comment typos.
5333
5334 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5335
5336         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5337         (delete_if_ordinary): Use above macro.
5338         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5339         Update copyright.
5340         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5341
5342 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5343
5344         * c-decl.c (get_parm_info): Use the correct tag keywords when
5345         warning about type declarations in prototypes.
5346
5347 2004-04-29  Paul Brook  <paul@codesourcery.com>
5348
5349         * config.gcc: Pull list of cores from arm-cores.def.
5350
5351 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5352
5353         * combine.c (combine_simplify_rtx): Adjust call to use
5354         simplify_relational_operation.  Do not use SELECT_CC_MODE
5355         when a comparison already has a MODE_CC mode.
5356
5357 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5358
5359         (simplify_set): simplify_relational_operation may now
5360         return another relational expression.
5361         * cse.c (fold_rtx): simplify_relational_operation now
5362         takes of computing the comparison mode.
5363         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5364         remove dead code.
5365         (do_compare_rtx_and_jump): Likewise.
5366         * integrate.c (subst_constants): simplify_relational_operation
5367         may now return another relational expression.
5368         * simplify-rtx.c (simplify_gen_relational): Move most code to
5369         the new simplify_relational_operation and
5370         simplify_relational_operation_1 functions.
5371         (simplify_relational_operation): Rewritten.
5372         (simplify_relational_operation_1): New function.
5373         (simplify_ternary_operation): simplify_relational_operation
5374         may now return another relational expression.
5375         (simplify_rtx): Remove unnecessary temp variable.
5376
5377 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5378
5379         * reg-stack.c (swap_to_top): New function.
5380         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5381         swap_to_top().
5382         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5383         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5384         UNSPEC_FSCALE_EXP.
5385
5386         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5387         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5388         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5389         x87's fscale insn.
5390         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5391         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5392         patterns.
5393
5394 2004-04-28  Serge Belyshev  <1319@bot.ru>
5395
5396         PR 14944
5397         * coverage.c (read_counts_file): Fix usage of warning () call.
5398         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5399
5400 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5401
5402         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5403         options with "-" in the option index.
5404         (SPARC Options): Likewise.
5405         (M32R/D Options): Likewise.
5406
5407 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5408
5409         * convert.c (convert_to_integer): Convert (long)round -> lround,
5410         etc.
5411
5412 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5413
5414         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5415         Return false if we do not have fp register.
5416         (addrs_ok_for_quad_peep): Rename to ...
5417         (mems_ok_for_quad_peep): this.
5418         Add check for volatile memory.
5419         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5420         Rename to ...
5421         (mems_ok_for_quad_peep): this.
5422         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5423         to peephole2's.
5424         (lfq_power2): New instruction.
5425         (stfq_power2): Likewise.
5426
5427 2004-04-28  Jan Hubicka  <jh@suse.cz>
5428
5429         PR c/15004
5430         * function.c (do_warn_unused_parameter): Break out form ...
5431         (expand_function_end): ... here; warn only when not using cgraphunit.
5432         * function.h (do_warn_unused_parameter): Declare.
5433         * cgraphunit.c: Include function.h.
5434         (cgraph_finalize_function): Do unused parameter warning.
5435         * Makefile.in (cgraphunit.o): Depend on function.h
5436
5437 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5438
5439         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5440         calling install-info on $(DESTDIR)$(infodir)/dir already being
5441         present.
5442
5443 2004-04-28  Paul Brook  <paul@codesourcery.com>
5444
5445         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5446
5447 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5448
5449         * gcse.c (find_moveable_store): Do not accept store insns with
5450         REG_EH_REGION note.
5451
5452 2004-04-28  Paul Brook  <paul@codesourcery.com>
5453
5454         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5455         * function.c (assign_temp): Ditto.
5456         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5457
5458 2004-04-28  Paul Brook  <paul@codesourcery.com>
5459
5460         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5461
5462 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5463
5464         * var-tracking.c (variable_different_p): Add a parameter
5465         compare_current_location, compare current location of variable parts
5466         if it is true.
5467         (dataflow_set_different_1): Pass compare_current_location == false.
5468         (dataflow_set_different_2): Pass compare_current_location == false.
5469         (emit_notes_for_differences_1): Pass compare_current_location == true.
5470
5471 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5472
5473         * config/s390/s390.md ("casesi"): Mark jump table access as
5474         non-trapping and unchanging.
5475
5476 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5477
5478         PR debug/14829
5479         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5480         callers.
5481         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5482         number for indexing hard_regno_nregs array.
5483
5484 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5485
5486         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5487         * config/darwin-crt2.c: Only have contents on __ppc__.
5488
5489 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5490
5491         * config/xtensa/xtensa.c (call_insn_operand): Check
5492         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5493         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5494         * config/xtensa/xtensa.md (call, call_value): Likewise.
5495
5496 2004-04-27  Wu Yongwei  <adah@sh163.net>
5497
5498         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5499         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5500         (__gthread_mutex_init_function): Replace CreateMutex with
5501         initialization of custom mutex using CreateSemaphore.
5502         (__gthread_mutex_lock): Use InterlockedIncrement.
5503         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5504         (__gthread_mutex_unlock): Use InterlockedDecrement and
5505         ReleaseSemaphore to unlock
5506         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5507         __gthread_mutex_lock, __gthread_mutex_trylock,
5508         __gthread_mutex_unlock): Adjust to match inline versions in
5509         gthr-win32.h.
5510
5511 2004-04-27  Paul Brook  <paul@codesourcery.com>
5512
5513         * config/arm/arm.c (arm_promote_prototypes): New function.
5514         (TARGET_PROMOTE_PROTOTYPES): Use it.
5515
5516 2004-04-27  Paul Brook  <paul@codesourcery.com>
5517
5518         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5519
5520 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5521
5522         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5523         correctly output .pdesc directive before .end.
5524
5525 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5526
5527         Bug 14927
5528         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5529         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5530
5531 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5532
5533         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5534         * config/pa/pa-hpux10.h: Likewise.
5535         * config/pa/pa-hpux11.h: Likewise.
5536
5537 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5538
5539         * doc/invoke.texi (Overall Options): Document default for -o
5540         for PCH files.
5541
5542 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5543
5544         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5545         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5546         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5547
5548 2004-04-26  Paul Brook  <paul@codesourcery.com>
5549
5550         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5551
5552 2004-04-26  Paul Brook  <paul@codesourcery.com>
5553
5554         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5555
5556 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5557
5558         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5559         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5560         X % -1 as 0.
5561
5562 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5563
5564         PR bootstrap/15141
5565         * except.c (connect_post_landing_pads): Delete insns after the
5566         barrier when generating a unwind_resume_libfunc call.
5567
5568 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5569
5570         PR/c++ 15119
5571         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5572         for TARGET_EXPR.
5573
5574 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5575
5576         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5577         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5578         inhibit_libc is defined.
5579
5580 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5581
5582         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5583         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5584         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5585         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5586         (mips_adjust_cost): Move later in file, next to other sched hooks.
5587         (mips_macc_chains_last_hilo): New variable.
5588         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5589         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5590         * config/mips/mips.md (may_clobber_hilo): New attribute.
5591
5592 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5593             Bruce Korb  <bkorb@gnu.org>
5594
5595         * fixinc/inclhack.def (aix_syswait_2): New fix.
5596         * fixinc/fixincl.x: Regenerate.
5597         * fixinc/tests/base/sys/wait.h: Update for new test.
5598
5599 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5600
5601         PR target/14960
5602         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5603         to non_fixed_size, and leave out fixed_size from the sum.
5604         (generate_set_vrsave): Correct clobbers.
5605         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5606         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5607         (rs6000_libcall_value): Likewise.
5608         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5609         (FUNCTION_ARG_REGNO_P): Likewise.
5610
5611 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5612
5613         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5614         is a CONST_INT.
5615         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5616         with NARROW_OP1 instead of OP1.
5617
5618 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5619
5620         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5621         and __s390x__ hosts.
5622
5623 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5624
5625         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5626         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5627         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5628         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5629         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5630         * builtins.c (expand_builtin_fork_or_exec): New.
5631         (expand_builtin): Call it.
5632         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5633         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5634         * c-common.c (PID_TYPE): New macro.
5635         (c_common_nodes_and_builtins): Initialize pid_type_node.
5636         * calls.c (special_function_p): Do not handle fork and exec.
5637         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5638         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5639         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5640         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5641         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5642         * tree.h (enum tree_index): Add TI_PID_TYPE.
5643         (pid_type_node): New macro.
5644         (ECF_FORK_OR_EXEC): Removed.
5645
5646 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5647
5648         PR optimization/13985
5649         * cfgloopmanip.c (fix_loop_placements): New prototype.
5650         Call fix_bb_placements on the preheader of loops that have
5651         been reparented.
5652         (remove_path): Adjust call to fix_loop_placements.
5653
5654 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5655
5656         * config/darwin7.h: New file.
5657         * config.gcc (*-*-darwin*): Add darwin7.h if the
5658         version is greater than 6.
5659         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5660         (MATH_LIBRARY): Wrap in ifdefs.
5661
5662 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5663
5664         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5665         loading iWMMXt registers with a frame pointer.  Use post-increment
5666         without a frame pointer.
5667         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5668
5669 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5670
5671         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5672         mode" rather than "-funit-at-a-time" since -O2 enables it
5673         without requiring -f* options.  Refer to -fprofile-generate and
5674         -fprofile-use correctly.  Move -funit-at-a-time among options
5675         enabled by -O.  Add information about unit-at-a-time caveats.
5676
5677 2004-04-22  Per Bothner  <per@bothner.com>
5678
5679         * line-map.h (struct line_maps):  New field highest_line.
5680         (linemap_position_for_column):  Make non-inline function.
5681         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5682         * line-map.c (linemap_init):  Clear highest_line field.
5683         (linemap_add):  Set highest_line field.
5684         (linemap_line_start):  Minor optimization - use highest_line field.
5685         Reduce maximum column hint to 10000.  Update highest_line field.
5686         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5687         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5688         line_table->highest_line.
5689         (saved_line):  Remove unused field.
5690         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5691         Use  line_table's highest_line field instead of cpp_reader's line.
5692         * cpplib.c (start_directive):  Likewise use highest_line field.
5693         (do_line, do_linemarker):  Likewise just use newest map.
5694         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5695         * cpperror.c (cpp_error):  Likewise use highest_line field.
5696         * cppfiles.c (open_file_failed:  Likewise.
5697         (cpp_make_system_header):  Likewise use newest map and highest_line.
5698         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5699         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5700         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5701         _cpp_lex_direct):  Likewise use highest_line.
5702         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5703         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5704         and use newest map.
5705         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5706         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5707         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5708
5709 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5710
5711         PR bootstrap/14992
5712         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5713         * config/linux.h (USE_LD_AS_NEEDED): Define.
5714         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5715         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5716         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5717         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5718         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5719         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5720         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5721
5722 2004-04-22  Per Bothner  <per@bothner.com>
5723
5724         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5725         Fixes PR preprocessor/15067.
5726
5727 2004-04-23  Andreas Schwab  <schwab@suse.de>
5728
5729         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5730         avoid aliasing warning.
5731
5732 2004-04-22  Jan Hubicka  <jh@suse.cz>
5733             Mostafa Hagog <mustafa@il.ibm.com>
5734
5735       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5736       * cfgloopanal.c (expected_loop_iterations): Change the return value
5737
5738 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5739
5740         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5741         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5742         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5743         traces.
5744
5745 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5746
5747         Revert
5748         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5749
5750                 * var-tracking.c (variable_part_different_p): Variable parts
5751                 differ when the most recent locations differ.
5752
5753 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5754
5755         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5756         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5757         (embedded_pic_offset): Delete.
5758         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5759         MASK_* constants.
5760         (TARGET_EMBEDDED_PIC): Delete.
5761         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5762         (ASM_SPEC): Remove -membedded-pic.
5763         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5764         (ASM_OUTPUT_CASE_LABEL): Likewise.
5765         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5766         * config/mips/windiss.h (ASM_SPEC): Likewise.
5767         * config/mips/mips.c (struct machine_function): Remove
5768         embedded_pic_fnaddr_rtx.
5769         (TARGET_ENCODE_SECTION_INFO): Remove override.
5770         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5771         (override_options): Remove -membedded-pic handling.
5772         (print_operand): Remove handling of '%S'.
5773         (mips_select_section: Remove -membedded-pic handling.
5774         (mips_encode_section_info): Delete.
5775         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5776         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5777         -membedded-pic handling.
5778         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5779
5780 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5781
5782         * var-tracking.c (frame_base_decl): Remove useless GTY.
5783
5784 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5785
5786         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5787         user wants altivec and e500 instructions.
5788
5789 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5790
5791         PR target/14813
5792         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5793         in .init_array section to ...
5794         * config/ia64/crtbegin.asm: Here.
5795
5796         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5797         and hidden if HAVE_INITFINI_ARRAY is defined.
5798
5799 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5800
5801         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5802         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5803         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5804         (fp_register_operand, lo_operand): New.
5805         (mips_rtx_costs): Add TUNE_SB1 support.
5806         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5807         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5808         (mips_multipass_dfa_lookahead): New.
5809         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5810         TUNE_SB1): New.
5811         (TARGET_SWITCHES): Add -mfp-exceptions support.
5812         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5813         (BRANCH_COST): Fix whitespace.
5814         * config/mips/mips.md: Include sb1.md.
5815         * config/mips/sb1.md: New file.
5816         * doc/invoke.texi: Document -mfp-exceptions.
5817
5818         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5819         comment.
5820         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5821         (fixincl.o-warn): Delete.
5822
5823 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5824
5825         * config/rs6000/rs6000 (print_operand) ['z']:
5826         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5827
5828 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5829
5830         * config.gcc: Support --with-arch=iwmmxt for ARM.
5831
5832 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5833
5834         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5835         in two more places; remove unneeded force_reg
5836
5837 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5838
5839         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5840         for TARGET_MACHO.
5841         (print_operand): For TARGET_MACHO check to see if we need a stub
5842         and output one if we need it.
5843
5844         PR debug/15033
5845         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5846         rtl.
5847
5848 2004-04-20  James E Wilson  <wilson@specifixinc.com>
5849
5850         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5851         (vall_value_gp): Likewise.
5852
5853 2004-04-20  DJ Delorie  <dj@redhat.com>
5854
5855         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5856         variables stored in word registers, then in memory.
5857
5858 2004-04-20  Eric Christopher  <echristo@redhat.com>
5859
5860         * cp/parser.c (cp_parser_declaration): Move translate
5861         up before tokens are lexed.
5862
5863 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
5864
5865         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5866         (asin_optab, acos_optab): Define corresponding macros.
5867         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5868         * genopinit.c (optabs): Implement asin_optab and acos_optab
5869         using asin?f2 and acos?f2 patterns.
5870         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5871         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5872         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5873         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5874
5875         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5876         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5877         acos, acosf and acosl built-ins as inline x87 intrinsics.
5878
5879 2004-04-20  Paul Brook  <paul@codesourcery.com>
5880
5881         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5882
5883 2004-04-20  Paul Brook  <paul@codesourcery.com>
5884
5885         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5886
5887 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
5888
5889         Revert part of 2004-04-17 change that moved -frename-registers
5890         to -O1.  -frename-registers is buggy.
5891
5892         * toplev.c (flag_rename_registers): Initialize to 0.
5893         * doc/invoke.texi (Optimize options): Move -frename-registers
5894         to "Not triggered by any -O level" section.  Adjust commentary
5895         accordingly.
5896
5897 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
5898
5899         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5900
5901 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
5902
5903         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5904         for mflo and mfhi instructions.
5905         (mips_output_move): Remove mflo and mfhi handling.
5906         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5907         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5908         Likewise various define_peephole2s.
5909         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5910         alternatives.
5911         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5912         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5913         (mfhilo_di, mfhilo_si): New patterns.
5914
5915 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5916
5917         * function.c (assign_parms): Force
5918         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5919
5920 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5921
5922         * var-tracking.c (variable_part_different_p): Variable parts differ
5923         when the most recent locations differ.
5924
5925 2004-04-19  James E Wilson  <wilson@specifixinc.com>
5926
5927         * rtl.h (reg_set_last): Delete declaration.
5928         * rtlanal.c (reg_set_last): Delete.
5929
5930 2004-04-19  Roger Sayle  <roger@eyesopen.com>
5931
5932         * fold-const.c (fold_convert): Make function extern/public.
5933         * tree.h (fold_convert): Prototype here.
5934         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5935         expand_builtin_strrchr, expand_builtin_strpbrk,
5936         expand_builtin_mempcpy, expand_builtin_bcopy,
5937         expand_builtin_bzero, expand_builtin_memcmp,
5938         expand_builtin_strcmp, expand_builtin_strncmp,
5939         stabilize_va_list, expand_builtin_sprintf,
5940         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5941         fold_builtin_exponent, fold_builtin_mempcpy,
5942         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5943         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5944         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5945
5946 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
5947
5948         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5949         (move_from_CR_gt_bit): New.
5950         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
5951         E500.
5952         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
5953         E500.
5954
5955         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5956         (tstsfeq_gpr): Same.
5957         (cmpsfgt_gpr): Same.
5958         (tstsfgt_gpr): Same.
5959         (cmpsflt_gpr): Same.
5960         (tstsflt_gpr): Same.
5961         (e500_cceq_ior_compare): New.
5962         (e500_flip_gt_bit): New.
5963
5964         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5965         (print_operand): Add 'c' and 'D'.
5966         (rs6000_generate_compare): Rewrite to generate correct rtl.
5967         (rs6000_emit_sCOND): Handle E500.
5968         (output_cbranch): Adjust for changes in rs6000_generate_compare.
5969         (output_e500_flip_gt_bit): New.
5970
5971         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5972         Protoize.
5973
5974 2004-04-19  Eric Christopher  <echristo@redhat.com>
5975
5976         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5977
5978 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
5979
5980         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5981         fix information.
5982
5983 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5984
5985         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5986         download URL.
5987
5988 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
5989
5990         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5991         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
5992
5993 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
5994
5995         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5996         (fold_builtin): Update caller to match.
5997
5998         PR bootstrap/15009
5999         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6000
6001         PR bootstrap/14999
6002         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6003
6004 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6005
6006         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6007
6008         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6009         (expand_mult_highpart_optab): Likewise.
6010         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6011
6012 2004-04-19  Paul Brook  <paul@codesourcery.com>
6013
6014         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6015         floatunssisf2, floatunssidf2): New patterns.
6016
6017 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6018
6019         PR other/14918
6020         * doc/invoke.texi (-fprofile-generate): Document requirement to
6021         use -fprofile-generate when linking.
6022
6023         * doc/extend.texi (Strong Using): Warn users against using this
6024         feature.
6025
6026 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6027
6028         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6029         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6030         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6031         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6032         constant.  Propogate change throughout file.
6033         (struct machine_function): Remove insns_len.
6034         (mips_string_length, mips16_strings, string_constants): Delete.
6035         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6036         when generating mips16 code.  Remove special mips16 treatment of
6037         string constants.
6038         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6039         to have the form LABEL+CONSTANT.
6040         (mips_symbolic_address_p): Fix comment.
6041         (m16_usym8_4, m16_usym5_4): Delete.
6042         (mips_output_function_epilogue): Remove mips16 string handling.
6043         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6044         (mips_select_section, mips_encode_section_info): Remove mips16
6045         string handling.
6046         (struct mips16_constant_pool): New.
6047         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6048         sorted into order of ascending mode size.  Keep track of the highest
6049         possible start address, taking padding and the masking of the base PC
6050         value into account.
6051         (dump_constants_1): New function, split out from dump_constants.
6052         Handle vector constants.  Use gen_consttable_{int,float} rather than
6053         separate functions for each mode.
6054         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6055         rather than separate functions for each alignment.
6056         (mips_find_symbol): Delete.
6057         (mips16_insn_length): New function, split out from
6058         mips16_lay_out_constants.
6059         (mips16_rewrite_pool_refs): New function.
6060         (mips16_lay_out_constants): Rework. Remove string handling.
6061         Always create an inline constant pool.
6062         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6063         (UNSPEC_ALIGN): New constants.
6064         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6065         (UNSPEC_ALIGN_[248]): Delete.
6066         (consttable_int, consttable_float, align): New patterns.
6067         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6068
6069 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6070
6071         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6072         __unn_args_eq.
6073
6074 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6075
6076         PR target/14715
6077         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6078         with STARTING_FRAME_OFFSET.
6079
6080 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6081
6082         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6083         * config/mips/mips.c (macc_msac_operand): New function.
6084         * config/mips/mips.md (*msac): Move after *macc.
6085         (*msac2): New.  Generalize macc-related peepholes so that they apply
6086         to msac too.
6087
6088 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6089
6090         * opts.c (decode_options): Do not enable flag_rename_registers
6091         and flag_web at -O3.
6092         * toplev.c (flag_rename_registers): Initialize
6093         flag_rename_registers and flag_web to
6094         AUTODETECT_FLAG_VAR_TRACKING.
6095         (default_debug_hooks): New global.
6096         (process_options): Initialize default_debug_hooks.  Warn if
6097         -fvar-tracking specified but not supported by the current
6098         debug format.  Do not run var tracking at -O0 or if not
6099         supported by the current debug format, even if
6100         -fvar-tracking was given.  If -fno-rename-registers
6101         is not specified, always run register renaming if var
6102         tracking is supported by the default debugging information
6103         format for the target, and we are at -O1 or higher; similarly
6104         for -fweb, but only at -O2 or higher.
6105         * doc/invoke.texi (Optimize Options): Document this.
6106
6107 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6108
6109         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6110         * configure: Regenerate.
6111
6112 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6113
6114         * gcc.c (used_arg): Check whether an option has been removed.
6115
6116 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6117
6118         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6119         debugging on Solaris 7 and up.
6120
6121 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6122
6123         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6124         IRIX 5 port.
6125         Remove -save-temps workaround, handled automatically.
6126         Require GNU binutils 2.15 for debugging.
6127         Remove SGI make warnings since GNU make is now required.
6128         (Specific, mips-sgi-irix6): Some markup fixes.
6129         Describe MIPSpro C problems and workarounds.
6130         Mention working O32 ABI support.
6131         Recommend GNU as 2.15 for O32 with debugging.
6132         Remove description of fixed structure pass/return bug.
6133
6134 2004-04-16  DJ Delorie  <dj@redhat.com>
6135
6136         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6137         TYPE_FIELDS.
6138         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6139
6140 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6141
6142         * pa.md: Remove unnecessary declarations for asm_out_file.
6143
6144         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6145         SAR register.  Fix comment.
6146         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6147         (%cr11).
6148
6149         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6150
6151 2004-04-16  Nick Clifton  <nickc@redhat.com>
6152
6153         * config/arm/arm.c (arm_override_options): Revert previous patch.
6154         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6155         be safely built.
6156
6157 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6158
6159         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6160         bug.
6161         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6162         TARGET_DEFAULT): Changed. Ditto.
6163         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6164         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6165         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6166         (TARGET_ENDIAN_DEFAULT): Added.
6167
6168 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6169
6170         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6171         ATTR_CONST_NOTHROW_LIST.
6172
6173 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6174
6175         PR/middle-end 14915
6176         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6177         BITS_BIG_ENDIAN.
6178
6179 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6180
6181         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6182
6183 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6184
6185         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6186
6187 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6188
6189         * libada-mk.in: New file.
6190         * configure.ac: Create libada-mk from libada-mk.in.
6191         * configure: Regenerate.
6192
6193 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6194
6195         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6196         (logb_optab, ilogb_optab): Define corresponding macros.
6197         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6198         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6199         using logb?f2 and ilogb?i2 patterns.
6200         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6201         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6202         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6203         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6204
6205         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6206         and UNSPEC_XTRACT_EXP.
6207
6208         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6209         patterns to implement fxtract x87 instruction.
6210         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6211         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6212         intrinsics.
6213         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6214         x87's fxtract insn.
6215
6216 2004-04-14  Eric Christopher  <echristo@redhat.com>
6217
6218         * config/mips/t-elf: Enable multilibs by default.
6219
6220 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6221
6222         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6223         previous fix to check HAVE_return at runtime too.
6224
6225 2004-04-14  Nick Clifton  <nickc@redhat.com>
6226
6227         * config/arm/arm.c (arm_override_options): If the user has not
6228         specified an ABI, then default to AAPCS for the iWMMXt processor.
6229         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6230         * config/arm/t-xscale-coff: Likewise.
6231
6232 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6233
6234         * builtins.c (fold_builtin_isdigit): New.
6235         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6236         * defaults.h: Add TARGET_DIGIT0 and sort.
6237         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6238
6239 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6240
6241         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6242         `mathfn_built_in' to determine the new builtin.
6243         * fold-const.c (fold): Likewise.
6244
6245 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6246
6247         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6248         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6249         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6250         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6251         (ASM_SPEC): Update accordingly.
6252         * config/mips/mips.c: Update after above renaming.
6253         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6254         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6255
6256 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6257
6258         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6259         increment errorcount and return false instead of true.
6260
6261 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6262
6263         * optabs.c (expand_twoval_unop): Reorder function arguments.
6264         * builtins.c (expand_builtin_mathfn_3): Update calls to
6265         expand_twoval_unop.
6266
6267         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6268         and UNSPEC_TAN_TAN. Add missing comment.
6269
6270         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6271         patterns to implement fptan x87 instruction.
6272         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6273         and tanl built-ins as inline x87 intrinsics. Define corresponding
6274         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6275         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6276         x87's fptan insn.
6277
6278 2004-03-13  Richard Henderson  <rth@redhat.com>
6279
6280         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6281         for LABEL_REFs.
6282
6283         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6284         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6285         * doc/invoke.texi: Update to match.
6286
6287         * varasm.c (unlikely_text_section): Use assemble_align instead of
6288         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6289         correct alignment argument.
6290
6291 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6292
6293         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6294         after setting reg_last_reload_reg for optional output reloads.
6295
6296 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6297
6298         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6299         Definition of these two macros are corrected by adding
6300         matchine right paren.
6301
6302 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6303
6304         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6305
6306 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6307
6308         * config/i386/i386.c (output_387_reg_move): New function.
6309         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6310         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6311         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6312         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6313         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6314
6315 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6316
6317         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6318         TYPE_DECL.
6319         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6320         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6321         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6322         Use skip_simple_arithmetic to find SAVE_EXPR.
6323         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6324         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6325         Properly chain multiple pointers.
6326         (copy_tree_r): Copy a TYPE_DECL.
6327         * tree.c (variably_modified_type_p): Add some missing tests and
6328         make some other minor changes.
6329         * tree.h (force_type_save_exprs): New declaration.
6330
6331 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6332
6333         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6334         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6335         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6336         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6337         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6338         x%-1 into 0 (or x&0 if x has side-effects).
6339
6340 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6341
6342         * config/rs6000/rs6000.md: Document why a pattern is not
6343         available.
6344
6345         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6346         of floats on the E500.
6347         (branch_positive_comparison_operator): Do not allow NE even on the
6348         E500.
6349
6350 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6351
6352         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6353         in_text_unlikely_section to in_unlikely_text_section.
6354
6355 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6356
6357         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6358         calling convention to allow a NULL_TREE to be returned.  Factor
6359         sanity checks from callers, return NULL_TREE when appropriate.
6360         (fold): Handle COMPOUND_EXPR operands of binary expressions
6361         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6362         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6363         calls to fold_binary_op_with_conditional_arg.
6364
6365 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6366
6367         * config/mips/iris5.h (current_section_flags):  Add
6368         in_unlikely_executed_text and default case.
6369
6370 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6371
6372         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6373         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6374         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6375         HAVE_return and place it around the place where it is needed.
6376
6377 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6378
6379         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6380         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6381         and NORMAL_TEXT_SECTION_NAME.
6382         (unlikely_text_section): Check targetm.have_named_sections
6383         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6384         instead of SECTION_FORMAT_STRING.
6385         * config/mips/iris5.h (current_section_name): Add
6386         in_unlikely_executed_text case and move the abort into the switch.
6387         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6388         (NORMAL_TEXT_SECTION_NAME): Remove.
6389         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6390         (SECTION_FORMAT_STRING): Remove.
6391         * defaults.h (SECTION_FORMAT_STRING): Remove.
6392         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6393         (SECTION_FORMAT_STRING): Remove.
6394
6395 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6396
6397         * c-typeck.c (common_type): Prefer long long to long when same
6398         precision.
6399
6400 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6401
6402         PR 14887
6403         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6404         mode argument.
6405         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6406         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6407
6408 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6409
6410         * simplify-rtx.c (mode_signbit_p): New function to check whether
6411         an RTX is an immediate constant that represents the most significant
6412         bit of a given machine mode.
6413         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6414         C is the sign bit.
6415         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6416         when C2 is the sign bit.
6417         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6418         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6419         sign bit.
6420
6421 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6422
6423         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6424         TYPE_MODE.
6425
6426 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6427
6428         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6429         of TREE_READONLY for types.
6430
6431 2004-04-09  Caroline Tice  <ctice@apple.com>
6432
6433         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6434         (struct basic_block_def):  Add new field, partition.
6435         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6436         definitions.
6437         (partition_hot_cold_basic_blocks): Add extern function
6438         declaration.
6439         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6440         include statements.
6441         (N_ROUNDS): Increase the maximum number of rounds by 1.
6442         (branch_threshold): Add array value for new round.
6443         (exec_threshold): Add array value for new round.
6444         (push_to_next_round_p): New function.
6445         (add_unlikely_executed_notes): New function.
6446         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6447         (mark_bb_for_unlikely_executed_section): New function.
6448         (add_labels_and_missing_jumps): New function.
6449         (add_reg_crossing_jump_notes): New function.
6450         (fix_up_fall_thru_edges): New function.
6451         (find_jump_block): New function.
6452         (fix_crossing_conditional_branches): New function.
6453         (fix_crossing_unconditional_branches): New function.
6454         (fix_edges_for_rarely_executed_code): New function.
6455         (partition_hot_cold_basic_blocks): New function.
6456         (find_traces):  Add an extra round for partitioning hot/cold
6457         basic blocks.
6458         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6459         and only cold blocks, into the last (extra) round of collecting traces.
6460         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6461         over crossing edges.
6462         (bb_to_key):  Add code to correctly identify cold blocks when
6463         doing partitioning.
6464         (connect_traces): Modify to connect all the non-cold traces first, then
6465         go back and connect up all the cold traces.
6466         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6467         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6468         entry and exit blocks.
6469         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6470         if we are doing hot/cold partitioning.
6471         * cfgcleanup.c (cfglayout.h): Add new include statement.
6472         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6473         that cross section boundaries.
6474         (try_forward_edges): Likewise.
6475         (merge_blocks_move_predecessor_nojumps): Likewise.
6476         (merge_blocks_move_successor_nojumps): Likewise.
6477         (merge_blocks_move): Likewise.
6478         (try_crossjump_to_edge): Modify to not attempt after we have done
6479         the block partitioning.
6480         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6481         cross section boundaries.
6482         (try_optimize_cfg): Likewise.
6483         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6484         jumps that cross section boundaries.
6485         * cfglayout.c (flags.h): Add new include statement.
6486         (update_unlikely_executed_notes):  New function.
6487         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6488         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6489         updated appropriately.
6490         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6491         introduced by this optimization.
6492         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6493         extern function declaration.
6494         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6495         list of notes that can be deleted.
6496         (create_basic_block_structure):  Add initialization for partition field.
6497         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6498         section boundaries.
6499         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6500         cross section boundaries.
6501         (commit_one_edge_insertion): Add code so newly created basic block
6502         ends up in correct (hot or cold) section.  Modify to disallow
6503         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6504         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6505         crosses section boundaries.
6506         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6507         cross section boundaries.
6508         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6509         ends up in correct section, with correct notes attached.
6510         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6511         optimization.
6512         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6513         the end of functions are written into the correct (hot or cold)
6514         section.
6515         (dbx_source_file): Add code so writing debug file information
6516         doesn't incorrectly change sections.
6517         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6518         in partitioning hot/cold basic blocks into separate sections.
6519         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6520         section partitioning.
6521         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6522         conditional branches can span all of memory.
6523         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6524         unconditional branches can span all of memory.
6525         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6526         (final_scan_insn):  Add code to check for NOTE instruction indicating
6527         whether basic block belongs in hot or cold section, and to make sure
6528         the current basic block is being written to the appropriate section.
6529         Also added code to ensure that jump table basic blocks end up in the
6530         correct section.
6531         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6532         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6533         one of the branches has a jump that crosses between sections.
6534         (find_if_case_2): Likewise.
6535         (ifcvt): Modify to not attempt to mark loop exit edges after
6536         hot/cold partitioning has occurred.
6537         * opts.c (decode_options): Code to handle new flag,
6538         flag_reorder_blocks_and_partition; also to turn it off if
6539         flag_exceptions is on.
6540         (common_handle_option): Code to handle new flag,
6541         flag_reorder_blocks_and_partition.
6542         * output.h (unlikely_text_section): New extern function declaration.
6543         (in_unlikely_text_section): New extern function declaration.
6544         * passes.c (rest_of_handle_stack_regs):  Add
6545         flag_reorder_blocks_and_partition as an 'or' condition for calling
6546         reorder_basic_blocks.
6547         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6548         as an 'or' condition for calling reorder_basic_blocks.
6549         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6550         * print-rtl.c (print_rtx): Add code for handling new note,
6551         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6552         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6553         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6554         cross between section boundaries.
6555         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6556         indicating the basic block containing it belongs in the cold section.
6557         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6558         between hot and cold sections.
6559         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6560         initialize this flag, and to tie it to the command-line option
6561         freorder-blocks-and-partition.
6562         * varasm.c (cfglayout.h):  Add new include statement.
6563         (unlikely_section_label_printed):  New global variable, used for
6564         determining when to output section name labels for cold sections.
6565         (in_section):  Add in_unlikely_executed_text to enum data structure.
6566         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6567         NORMAL_TEXT_SECTION_NAME macros.
6568         (unlikely_text_section):  New function.
6569         (in_unlikely_text_section):  New function.
6570         (function_section):  Add code to make sure beginning of function is
6571         written into correct section (hot or cold).
6572         (assemble_start_function):  Add code to make sure stuff is written to
6573         the correct section.
6574         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6575         to an if statement that was checking 'in_text_section'.
6576         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6577         condition to an if statement that was checking 'in_text_section'.
6578         (default_section_type_flags_1):  Add check: if in cold section
6579         flags = SECTION_CODE.
6580         * config/darwin.c (darwin_asm_named_section):  Modify to use
6581         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6582         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6583         specifically for the i386.
6584         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6585         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6586         text string to something more informative.
6587         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6588         (SECTION_FORMAT_STRING):  Add new definition.
6589         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6590         '!in_unlikely_text_section' as an 'and' condition to an if statement
6591         that was already checking '!in_text_section'.
6592         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6593         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6594         sure these are properly defined for linux on ppc.
6595         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6596         for this new flag.
6597         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6598         reg_note.
6599         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6600         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6601         these new macros.
6602
6603 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6604
6605         * function.c (gen_mem_addressof): When changing the RTX from a REG
6606         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6607
6608 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6609
6610         PR target/14888
6611         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6612         truncxfdf2_noop): Provide dummy "fmov" implementations.
6613
6614 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6615
6616         * gcc.c (default_compilers): Add missing initializers.
6617
6618         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6619         Return 1 if file was successfully mapped.
6620
6621 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6622
6623         PR pch/13419
6624         PR pch/14137
6625         Radar #: 3315288
6626         * doc/invoke.texi (Precompiled Headers): Suggest -o
6627         to put an output file in a particular place.  Be more detailed
6628         about which options affect PCH validity and which options
6629         might not work.
6630         * c-pch.c (pch_matching): New.
6631         (MATCH_SIZE): New.
6632         (struct c_pch_validity): New field 'match'.
6633         (pch_init): Handle pch_matching.
6634         (c_common_valid_pch): Check pch_matching.
6635
6636         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6637
6638 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6639
6640         * doc/invoke.texi (Precompiled Headers): Warn about known
6641         problems.
6642
6643 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6644
6645         PR c++/14808
6646         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6647         to 1 if ASM_OUTPUT_DEF is defined.
6648         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6649         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6650         Set to non-zero iff not a one_only decl.
6651
6652 2004-04-08  Paul Brook  <paul@codesourcery.com>
6653
6654         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6655
6656 2004-04-08  Paul Brook  <paul@codesourcery.com>
6657
6658         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6659         PROMOTE_FOR_CALL_ONLY.
6660         * config/arm/arm-protos.h (arm_function_value): Declare.
6661         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6662         (TARGET_PROMOTE_PROTOTYPES): Return false.
6663         (arm_function_value): New function.
6664         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6665         (FUNCTION_VALUE): Call arm_function_value.
6666         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6667         (PROMOTE_FUNCTION_MODE): ... to this.
6668         (PROMOTE_FOR_CALL_ONLY): Remove.
6669         * config/mmix/mmix.h: Likewise.
6670         * config/s390/s390.h: Likewise.
6671         * config/sparc/sparc.h: Likewise.
6672         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6673         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6674         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6675         (PROMOTE_FOR_CALL_ONLY): Remove.
6676
6677 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6678
6679         PR ada/14538
6680         * ada/5rosinte.adb: Remove fake mprotect() body.
6681         * ada/5rosinte.ads: Add SA_SIGINFO.
6682         * ada/5rtpopsp.adb: Rewrite to use new interface.
6683         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6684         is tested before more complex ones which mix UNIX and embedded
6685         systems in the conditional.
6686
6687 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6688
6689         PR ada/14665
6690         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6691         filenames which end in .exe or have versioning suffixes like VMS.
6692
6693 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6694
6695         PR target/10129
6696         * config/darwin.c (darwin_encode_section_info): When the decl has
6697         a DECL_INITIAL, it is only defined also when it is not a common.
6698
6699 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6700
6701         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6702         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6703
6704 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6705
6706         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6707         global register variables.
6708
6709 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6710
6711         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6712         rpc_xdr_lvalue_cast_b): New fixes.
6713         * fixinc/fixincl.x: Regenerate.
6714         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6715
6716 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6717
6718         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6719         to power4 and power5 entries.
6720
6721 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6722
6723         * c-common.h (pending_lang_change): Mark for PCH.
6724
6725 2004-04-07  Caroline Tice  <ctice@apple.com>
6726
6727         * gcc.c (main): Move 'break' in main loops (on an error)
6728         to wait until error processing has occurred.
6729
6730 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6731
6732         * config.gcc: Stop changing enable_threads midstream.
6733         Replace uses of enable_threads_flag with enable_threads.
6734         * configure.ac: Replace uses of enable_threads_flag with
6735         enable_threads.  Improve autoconf quotation in one place.
6736         * configure: Regenerate.
6737
6738 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6739
6740         * builtins.c: Implement support for sincos function.
6741         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6742         BUILT_IN_COS{,F,L}.
6743         (expand_builtin_mathfn_3): New function.
6744         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6745         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6746         flag_unsafe_math_optimization is set.
6747
6748         * optabs.h (enum optab_index): Add new OTI_sincos.
6749         (sincos_optab): Define corresponding macro.
6750
6751         * optabs.c (init_optabs): Initialize sincos_optab.
6752         (expand_twoval_unop): New function.
6753
6754         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6755         patterns.
6756
6757         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6758         and UNSPEC_SINCOS_SIN.
6759
6760         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6761         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6762         built-ins as inline x87 intrinsics. Define splits for
6763         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6764         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6765         sincos patterns.
6766         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6767         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6768
6769         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6770         x87's fsincos insn.
6771
6772 2004-04-06  Devang Patel  <dpatel@apple.com>
6773
6774         PR 14467
6775         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6776
6777 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6778
6779         * doc/install.texi: Update HP-UX 11 installation procedure.
6780
6781 2004-04-06  Paul Brook  <paul@codesourcery.com>
6782
6783         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6784
6785 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6786
6787         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6788         when the TLS address is generated by a function call.
6789         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6790         (tls_local_dynamic): Likewise.
6791
6792 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6793
6794         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6795         and TYPE_VOLATILE.
6796
6797 2004-04-05  Caroline Tice  <ctice@apple.com>
6798
6799         * gcc.c (combine_flag): New global variable, for new driver option.
6800         (struct compiler): Add two new fields, to be used when
6801         combining multiple input files in a single pass (IMA).
6802         (default_compilers):  Add values for the new fields to all
6803         compiler entries. Modify the "@c" compiler entry for doing IMA
6804         properly with "-save-temps" and the "combine" flag.
6805         (option_map):  Add new driver option, "--combine", to tell driver
6806         to pass multiple input files to compiler at one time.
6807         (have_o_argbuf_index): New global variable.
6808         (store_arg): Modify to assign value to have_o_argbuf_index.
6809         (struct infile):  Add three new fields, to help with IMA.
6810         (display_help): Add help for new "combine" option.
6811         (process_command): Remove local variable have_o; add code to check
6812         for new "combine" option; remove assignment to combine_inputs.
6813         (do_spec_1):  Modify to deal with IMA better.
6814         (main): Make variable 'lang_n_infiles' local to entire function
6815         rather than to a single block.  Use flag combine_flag to
6816         determine whether to do IMA or not; Modify loop initializing
6817         infiles to deal properly with linker files.
6818         Add code for doing preprocessing in presence of
6819         IMA with "-save-temps" flag.  Modify "main" loop to handle
6820         multiple input files, in multiple languages, with or without
6821         preprocessing,  gracefully.
6822         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6823         re-set it to same directory it's previously been set to (avoid
6824         irritating, meaningless warning messages when doing IMA with
6825         save-temps).
6826         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6827         remove documentation about IMA that is no longer accurate; Add
6828         documentation explaining what "-combine" does.
6829         * ada/lang-specs.h: Add initialization values for new fields in
6830         "struct compiler".
6831         * cp/lang-specs.h: Likewise.
6832         * f/lang-specs.h: Likewise.
6833         * java/lang-specs.h: Likewise.
6834         * objc/lang-specs.h: Likewise.
6835         * treelang/lang-specs.h: Likewise.
6836
6837 2004-04-05  David Edelsohn
6838
6839         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6840         symbol handling.
6841
6842 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
6843             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6844
6845         PR optimization/13424 (hppa), bootstrap/14462, c/14828
6846         * pa.md: Use replace_equiv_address to retain the attributes of the
6847         memory operands used in the split and peephole2 patterns for optimizing
6848         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6849
6850 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6851
6852         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6853         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6854         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6855         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6856         PARM_DECL.
6857         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6858         for a type.
6859         * print-tree.c (print_node): Properly handle side-effects, readonly,
6860         and constant flags.
6861         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6862         and TREE_CONSTANT if not a type.
6863         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6864         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6865         (NON_TYPE_CHECK): New macro.
6866         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6867
6868 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6869
6870         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6871         to DWARF2_DEBUG unconditionally.
6872         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6873
6874 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
6875             Nathanael Nerode  <neroden@gcc.gnu.org>
6876
6877         PR target/14548
6878         * config.host: Set the shell variable host_can_use_collect2.
6879         Set it to yes by default, and to no for alpha*-dec-*vms*,
6880         i[34567]86-*-mingw32*, and powerpc-*-beos*.
6881         * configure.ac: Set and substitute the shell variable collect2.
6882         Give an error if use_collect2 is yes and host_can_use_collect2 is
6883         no.
6884         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
6885         uses.  Initialize to @collect2@.
6886         (STAGESTUFF): Remove $(USE_COLLECT2).
6887         * config/alpha/x-vms (USE_COLLECT2): Don't set.
6888         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6889         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6890         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6891         * configure: Regenerate.
6892
6893 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6894
6895         * simplify-rtx.c (simplify_binary_operation): Constant fold
6896         DIV, MOD, UDIV and UMOD using div_and_round_double.
6897
6898 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6899
6900         PR c++/14804
6901         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6902         RECORD_TYPEs.
6903
6904 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6905
6906         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6907         documentation.
6908
6909 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6910
6911         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6912         updating the REG_EQUAL note on an insn's libcall_insn.
6913
6914 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6915
6916         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6917
6918 2004-04-03  Roger Sayle  <roger@eyesopen.com>
6919
6920         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6921         with reorder_operands_p.
6922
6923 2004-04-03  Jan Hubicka  <jh@suse.cz>
6924
6925         * md.texi (vec_set, vec_extract, vec_init): Document.
6926
6927 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
6928
6929        * opts.c (decode_options): Do function inlining with very small
6930        max-inline-insns-* parameters when optimizing for size.
6931
6932 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
6933
6934         * config/i386/i386.h (TARGET_NOCONA): New macro.
6935         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6936         (processor_type): Add PROCESSOR_NOCONA.
6937
6938         * config/i386/i386.md (cpu): Add nocona to the attribute values.
6939
6940         * config/i386/i386.c (nocona_cost): New variable.
6941         (m_NOCONA): New macro.
6942         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6943         x86_branch_hints, x86_use_sahf, x86_single_stringop,
6944         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6945         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6946         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6947         x86_decompose_lea, x86_arch_always_fancy_math_387,
6948         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6949         x86_ext_80387_constants, x86_four_jump_limit):
6950         (override_options): Add nocona_cost to processor_target_table.
6951         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6952         (incdec_operand): Prevent inc/dec generation for Nocona too.
6953         (ix86_issue_rate): Add PROCESSOR_NOCONA.
6954
6955 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
6956
6957         * rtlanal.c (find_reg_note): Manually
6958         unswitch the loop.
6959
6960 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
6961
6962         * genemit.c (gen_split): Change prototype of generated code.
6963         * genrecog.c (write_action): Adjust prototype for and calls to
6964         gen_split_*.
6965         * gensupport.c (struct queue_elem): Add split field.
6966         (queue_pattern): Return a value.  Clear the split field.
6967         (process_rtx): Maintain an association between an insn and the
6968         split generated from it for a define_insn_and_split.
6969         (process_one_cond_exec): Generate a new split for a
6970         define_insn_and_split.
6971         * config/arm/arm-protos.h (arm_split_constant): Add insn
6972         parameter.
6973         (emit_constant_insn): New function.
6974         (arm_gen_constant): Use it.
6975         * config/arm/arm.md: Adjust calls to arm_split_constant.
6976
6977 2004-04-02  Jan Hubicka  <jh@suse.cz>
6978
6979         * cgraph.c: Add overall comment.
6980         (cgraph_inline_hash): New global variable.
6981         (cgraph_create_node): Break out from ...
6982         (cgraph_node): ... here.
6983         (cgraph_edge): New function.
6984         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6985         (cgraph_remove_edge): Accept edge, intead of source and destination.
6986         (cgraph_redirect_edge_callee): New.
6987         (cgraph_remove_node): Update all new datastructures.
6988         (cgraph_record_call, cgraph_remove_call): Kill.
6989         (dump_cgraph_node): Break out from ... ; dump new datastructures.
6990         (dump_cgraph): ... here.
6991         (cgraph_function_possibly_inlined_p): Use new hashtable.
6992         (cgraph_clone_edge, cgraph_clone_node): New.
6993         * cgraph.h: Include hashtab.h
6994         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6995         fields, add inlined_to pointer.
6996         (cgraph_node): Add pointer to next_clone.
6997         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6998         (cgraph_remove_call, cgraph_record_call): Kill.
6999         (cgraph_inline_hash): Declare.
7000         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7001         cgraph_redirect_edge_callee): Declare.
7002         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7003         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7004         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7005         * cgraphunit.c: Add overall comment.
7006         (cgraph_optimize_function): Kill.
7007         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7008         (cgraph_finalize_function): Update call of cgraph_remove_node
7009         (record_call_1): Record call sites.
7010         (cgraph_create_edges): Accept node instead of decl argument.
7011         (error_found): New static variable.
7012         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7013         (cgraph_analyze_function): Update for new datastructures.
7014         (cgraph_finalize_compilation_unit): Plug memory leak.
7015         (cgraph_optimize_function): Kill.
7016         (cgraph_expand_function): Do not use cgraph_optimize_function.
7017         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7018         cgraph_inlined_callees): Kill.
7019         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7020         clones.
7021         (estimate_growth): Simplify.
7022         (cgraph_clone_inlined_nodes): New function.
7023         (cgraph_mark_inline_edge): Re-implement.
7024         (cgraph_mark_inline): Likewise.
7025         (cgraph_check_inline_limits): Simplify.
7026         (cgraph_recursive_inlining_p): New.
7027         (update_callee_keys): Break out from ...
7028         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7029         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7030         Likewise.
7031         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7032         list.
7033         (cgraph_preserve_function_body_p): New predicate.
7034         (cgraph_optimize): Verify cgraph.
7035         * function.h (struct function): Add fields saved_tree/saved_args.
7036         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7037         * toplev.c (rest_of_compilation): Do not free cfun.
7038         * tree-inline.c: Include function.h
7039         (struct inline_data): Add saving_p field; replace decl/current_decl by
7040         node/current_node.
7041         (insert_decl_map): New function.
7042         (copy_body_r): Handle saving; update cgraph datastructure.
7043         (copy_body): Handle recursive inlining.
7044         (initialize_inlined_parameters): Likewise.
7045         (expand_call_inline): Propagate node attributes; update cgraph.
7046         (optimize_inline_calls): Verify that datastructure still match.
7047         (save_body): New function.
7048         * tree-inline.h (save_body): New.
7049         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7050         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7051         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7052
7053 2004-04-01  Serge Belyshev  <1319@bot.ru>
7054
7055         PR target/14702
7056         * config/i386/i386.md: fix source operand constraints in
7057         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7058
7059 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7060
7061         * fold-const.c (folda): Preserve types of comparisons.
7062
7063 2004-04-01  Richard Henderson  <rth@redhat.com>
7064
7065         * toplev.c (backend_init): Move init_optimization_passes call ...
7066         (lang_dependent_init): ... here.
7067
7068 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7069             Jakub Jelinek  <jakub@redhat.com>
7070
7071         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7072         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7073         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7074         * configure: Rebuilt.
7075         * config.in: Rebuilt.
7076         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7077         (stage2-start, stage3-start, stage4-start): Likewise.
7078         (stageprofile-start, stagefeedback-start): Likewise.
7079
7080 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7081
7082         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7083         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7084         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7085         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7086         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7087         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7088         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7089         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7090         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7091         * config/sparc/t-linux: Removed.
7092
7093 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7094
7095         PR c++/14755
7096         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7097         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7098
7099 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7100
7101         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7102         * stor-layout.c (layout_decl): Likewise.
7103         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7104         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7105         * print-tree.c (print_node): Handle various used of unsigned_flag.
7106         * tree.def (BIT_FIELD_REF): Update comment.
7107         * tree.h (TREE_UNSIGNED): Deleted.
7108         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7109
7110 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7111
7112         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7113         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7114         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7115         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7116         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7117         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7118         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7119         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7120         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7121         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7122         REAL_TYPE, not INTEGER_TYPE.
7123         (layout_type, case VECTOR_TYPE): Simplify code.
7124         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7125         * tree.h: Update comments.
7126         (STRIP_NOPS): Use TYPE_UNSIGNED.
7127         (TYPE_UNSIGNED): New macro.
7128         (TYPE_TRAP_SIGNED): Remove now redundant check.
7129         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7130
7131 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7132
7133         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7134
7135 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7136
7137         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7138         Add darwin-fpsave.asm, darwin-vecsave.asm,
7139         and darwin-world.asm.
7140         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7141         as the asm files contain altivec instructions.
7142         * config/rs6000/darwin-fpsave.asm: New file.
7143         * config/rs6000/darwin-vecsave.asm: New file.
7144         * config/rs6000/darwin-world.asm: New file.
7145
7146 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7147
7148         * gengtype-yacc.y (option, stringseq): Add missing
7149         terminating semicolon.
7150
7151 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7152
7153         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7154         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7155         tls_dtprel_ha_32, tls_dtprel_ha_64,
7156         tls_dtprel_lo_32, tls_dtprel_lo_64,
7157         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7158         tls_tprel_ha_32, tls_tprel_ha_64,
7159         tls_tprel_lo_32, tls_tprel_lo_64,
7160         tls_got_tprel_32, tls_got_tprel_64,
7161         tls_tls_32, tls_tls_64): Replace register_operand with
7162         gpc_reg_operand.
7163
7164 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7165
7166         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7167         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7168         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7169         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7170         *ctrdi_internal6): Replace register_operand with
7171         nonimmediate_operand.
7172
7173 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7174
7175         * fold-const.c (fold): Reassociate multiply expression
7176         with an adjacent non-multiply expression to use
7177         architecture's multiply-add instruction.
7178
7179 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7180
7181         * gengtype.c (create_option): New function.
7182         * gengtype.h: Prototype it.
7183         * gengtype-yacc.y (stringseq): New rule.
7184         (option): Use create_option.  Add new bare ID production.  Use
7185         stringseq, not STRING directly.
7186
7187         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7188         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7189         * varray.h, config/alpha/alpha.c:
7190         Use new shorter form of GTY markers.
7191
7192         * doc/gty.texi: Rewrite.
7193
7194 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7195
7196         * config/darwin.c (machopic_function_base_name):
7197         Remove current_name and getting the name of the
7198         current function.
7199
7200 2004-03-30  Nick Clifton  <nickc@redhat.com>
7201
7202         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7203         range, and increase the forward branch range, to allow for
7204         the fact that the PC will be off by 4.
7205
7206 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7207
7208         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7209
7210 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7211
7212         * config/rs6000/rs6000.c (output_vec_const_move):
7213         Find all cases of EASY_VECTOR_15_ADD_SELF.
7214         (easy_vector_constant_add_self): Accept
7215         all vector constant loadable by vsplt* and vadd*.
7216         (easy_vector_same): Use easy_vector_splat_const.
7217         (easy_vector_const): Use easy_vector_splat_const.
7218         (easy_vector_splat_const): New function.
7219         (gen_easy_vector_constant_add_self): New function.
7220
7221         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7222         New prototype.
7223
7224         * config/rs6000/altivec.md (movv4si splitter): Change to
7225         emit move insn with halfed vector constant.
7226         (*movv8hi splitter): Likewise.
7227         (*movv16qi splitter): Likewise.
7228
7229 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7230
7231         PR 11591
7232         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7233         Allow any offset to argument pointer in no-strict case.
7234
7235 2004-03-30  Jan Hubicka  <jh@suse.cz>
7236
7237         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7238         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7239         dump file in non-unit-at-a-time mode.
7240
7241 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7242
7243         * config/cris/cris.h: Correct #ifdef to test for
7244         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7245         HAVE_AS_MUL_BUG_ABORT_OPTION.
7246
7247 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7248
7249         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7250         the address inside the old RTL.
7251
7252 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7253
7254         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7255         (struct c_binding, struct c_scope): Add chain_next
7256         attributes to GTY markers.
7257         (struct lang_identifier, struct lang_tree_node): Define
7258         here...
7259         * c-tree.h: ... not here.  No longer need to declare struct
7260         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7261         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7262         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7263
7264         PR 14734, 11944
7265         * c-decl.c (get_parm_info): If error_mark_node is encountered
7266         in the bindings chain, unbind and discard it; don't abort.
7267
7268 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7269             Dorit Naishlos <dorit@il.ibm.com>
7270
7271         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7272         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7273
7274 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7275
7276         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7277
7278         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7279         (m68hc11_attribute_table): New attribute "page0" to mark a global
7280         variable as being allocated from within page0 section.
7281         (m68hc11_encode_label): New function.
7282         (m68hc11_strip_name_encoding): New function.
7283         (m68hc11_page0_symbol_p): New function.
7284         (m68hc11_indirect_p): Accept global variables marked in page0.
7285         (m68hc11_encode_section_info): Lookup "page0" attribute.
7286
7287         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7288         represents access to page0 variables.
7289
7290         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7291         ("*logicalsi3_silshl16_zext"): Likewise.
7292         ("*ashldi3_const32"): Likewise.
7293         (peephole2 ashift): Likewise.
7294
7295 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7296
7297         * c-tree.h (C_DECL_REGISTER): New.
7298         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7299         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7300         (build_array_ref, c_mark_addressable): Set and use it.
7301         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7302         Allow structures with volatile fields to be declared register.
7303         Don't check TREE_ADDRESSABLE before warning about taking address
7304         of register.
7305         * c-decl.c (finish_decl): Don't allow structures with volatile
7306         fields to be placed in named register.
7307         * doc/trouble.texi: Remove reference to structures with volatile
7308         fields in registers.
7309
7310 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7311
7312         * function.c (thread_prologue_and_epilogue): Move
7313         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7314         before the epilogue.
7315
7316 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7317
7318         * expr.c (store_constructor): Use gen_int_mode to correctly
7319         sign-extend CONST_INT value.
7320
7321 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7322
7323         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7324         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7325         * doc/extend.texi: Likewise.
7326
7327 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7328
7329         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7330           with TYPE_ORIG_SIZE_TYPE.
7331
7332 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7333
7334         PR 14219
7335         * c-typeck.c (build_binary_op): Do not allow comparisons of
7336         vectors.
7337
7338 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7339
7340         * config.gcc: Remove sparc-tti-*.
7341         * config/sparc/pbd.h: Delete.
7342
7343         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7344         * config/sparc/aout.h: Likewise.
7345
7346         * config/sparc/sparc.h: Remove if 0'd code.
7347         * config/sparc/sparc.md (call): Remove if 0'd code.
7348         (call_value): Likewise.
7349         (nonlocal_goto): Likewise.
7350         (unimp_insn): Delete.
7351
7352 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7353
7354         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7355         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7356
7357 2004-03-25  Richard Henderson  <rth@redhat.com>
7358
7359         PR 11527
7360         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7361         rather than later.
7362
7363 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7364
7365         * builtins.c (fold_builtin): Fix error in last change.
7366
7367 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7368
7369         * config/mips/mips.h: Formatting fix.
7370
7371 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7372
7373         * builtins.def: Add ctype builtins.
7374         * doc/extend.texi: Likewise.
7375
7376 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7377
7378         * builtins.c (fold_builtin): Add new builtin optimizations for
7379         sqrt and/or cbrt.
7380         * fold-const.c (fold): Likewise.
7381
7382 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7383
7384         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7385         (rs6000_sched_groups): New variable.
7386         (processor_target_table): Add power5.
7387         (rs6000_override_options): Set rs6000_sched_insert_nops,
7388         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7389         from rs6000_sched_groups.
7390         (output_cbranch): Use rs6000_always_hint.
7391         (rs6000_variable_issue): Use rs6000_sched_groups.
7392         (rs6000_adjust_cost): Add CPU_POWER5.
7393         (is_microcoded_insn): Use rs6000_sched_groups.
7394         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7395         Return 2 for POWER5 cracked instructions.
7396         (is_cracked_insn): Use rs6000_sched_groups.
7397         (is_branch_slot_insn): Use rs6000_sched_groups.
7398         (rs6000_issue_rate): Add CPU_POWER5.
7399         (rs6000_sched_finish): Use rs6000_sched_groups.
7400         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7401         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7402         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7403         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7404         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7405         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7406         * config/rs6000/power5.md: New file.
7407         * doc/invoke.texi: Add power5 option.
7408
7409 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7410
7411         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7412         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7413         * doc/invoke.texi: Fix a typo.
7414
7415 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7416
7417         PR optimization/9707.
7418         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7419         of recursing if both children are single-valued cases with no
7420         children.
7421
7422 2004-03-25  Paul Brook  <paul@codesourcery.com>
7423
7424         * config/arm/arm.c (vfp_print_multi): Remove.
7425         (arm_output_fldmx): New function.
7426         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7427         (arm_expand_prologue): Update to match.
7428         (arm_get_vfp_saved_size): New Function.
7429         (arm_get_frame_offsets): Use it.
7430         (arm_output_epilogue): Use new functions.
7431
7432 2004-03-24  Richard Henderson  <rth@redhat.com>
7433
7434         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7435         (reg_known_value, reg_known_value_size): Likewise; make static.
7436         (reg_known_equiv_p): Make static.
7437         (clear_reg_alias_info): Update for new indexing.
7438         (get_reg_known_value, set_reg_known_value): New.
7439         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7440         (canon_rtx): Use them.
7441         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7442         Don't play queer offsetting games with reg_known_value and
7443         reg_known_equiv_p.
7444         (end_alias_analysis): Free reg_known_value with gc.
7445         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7446         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7447         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7448         functions instead.
7449
7450 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7451
7452         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7453         config/i386/mmintrin.h: Update copyright.
7454
7455 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7456
7457         * configure.ac: Add --enable-werror-always (for top level bootstrap
7458         support).
7459         * configure: Regenerate.
7460
7461 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7462
7463         * objc/objc-act.c (objc_comptypes): Treat comparisons
7464         between 'Class' and '<class> *' as explicitly invalid.
7465
7466 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7467
7468         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7469         (-fprofile-values): Add enabled with profile-{generate,use}.
7470         (-fvpt): Same.
7471         (-ftracer): Add enabled with profile-use.
7472         (-funit-at-a-time): Add enabled at -O2,-O3.
7473         (-funroll-loops): Add enabled with profile-use.
7474         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7475         (max-gcse-passes): Mention default.
7476         (max-cse-path-length): Mention default.
7477
7478 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7479
7480         * Makefile.in (STRICT2_WARN): Reorder.
7481         * configure.ac: Check for -Wold-style-definition, and use it
7482         in strict1_warn if it's available.
7483         * configure: Regnerate.
7484
7485 2004-03-24  Paul Brook  <paul@nowt.org>
7486
7487         * config.gcc <arm>: Add --with-abi=
7488         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7489         thumb_far_jump_used): Remove prototypes.
7490         (arm_needs_doubleword_align): Add prototype.
7491         (thumb_compute_initial_elimination_offset): Ditto.
7492         * config/arm/arm.c (arm_get_frame_offsets): New function.
7493         (use_return_insn, output_return_instruction, arm_output_epilogue,
7494         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7495         arm_expand_prologue, thumb_expand_epilogue): Use it.
7496         (arm_abi, target_abi_name, all_arm_abis): New variables.
7497         (arm_override_options): Set them.  Set structure padding for AAPCS.
7498         (arm_return_in_memory): Update ABI check.
7499         (arm_init_cumulative_args): Initialize can_split.
7500         (arm_needs_doubleword_align): New function.
7501         (arm_function_arg): Don't split args after pushing to stack. Handle
7502         doubleword/even reg alignment.
7503         (arm_va_arg): Handle all doubleword aligned args.
7504         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7505         on ABI, not CPU.
7506         (arm_compute_save_reg0_reg12_mask): Fix comment.
7507         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7508         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7509         value for alignment.
7510         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7511         to match.
7512         (thumb_compute_initial_elimination_offset): New function.
7513         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7514         unneccessary rounding.
7515         * config/arm/arm.h (target_abi_name): Declare.
7516         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7517         arm_abi_type, ARM_DEFAULT_ABI): Define.
7518         (ARM_FLAG_ATPCS): Remove.
7519         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7520         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7521         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7522         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7523         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7524         Contitionalize on ABI, not CPU.
7525         (struct arm_stack_offsets): Define.
7526         (struct machine_function): Add stack_offsets.  Remove frame_size.
7527         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7528         pushed.
7529         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7530         doubleword alignment.
7531         (THUMB_INITIAL_ELIMINATION_OFFSET,
7532         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7533         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7534         * config/arm/arm.md (align_8): Enable for all targets.
7535         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7536         (ARM_DEFAULT_ABI): Define.
7537         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7538         -mstructure-size-boundary.
7539
7540 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7541
7542         * configure.ac: Check for -Wno-variadic-macros; don't use
7543         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7544         and if it's available, use it.  Also, clean up check for
7545         -Wno-long-long.
7546         * configure: Regenerate.
7547
7548 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7549
7550         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7551         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7552         (MULTILIB_DEFAULTS): Use it.
7553         (MIPS_CPU_STRING_DEFAULT): Remove.
7554         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7555         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7556         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7557         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7558         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7559         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7560         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7561         accordingly.
7562
7563 2004-03-24  DJ Delorie  <dj@redhat.com>
7564             Richard Sandiford  <rsandifo@redhat.com>
7565
7566         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7567         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7568         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7569         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7570         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7571         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7572         if TARGET_FIX_VR4122.
7573         * config/mips/mips.md (define_attr length): Account for nops inserted
7574         after macc and dmult when using -mfix-vr4122-bugs.
7575         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7576         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7577         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7578         * config/mips/vr4122-div.S: New file.
7579         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7580
7581 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7582
7583         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7584         (TARGET_MIPS4130): New macro.
7585         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7586         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7587         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7588         with PROCESSOR_R4130.
7589         * config/mips/mips.md (define_attr cpu): Add r4130.
7590         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7591
7592 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7593             Richard Sandiford  <rsandifo@redhat.com>
7594
7595         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7596
7597 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7598
7599         PR preprocessor/14438
7600         * cpplib.c (do_pragma): Remove line_change call after pragma
7601         handler.
7602
7603 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7604
7605         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7606         declarations.
7607
7608 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7609
7610         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7611         if flag_unsafe_math_optimizations.
7612         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7613         and TARGET_80387 expand using truncdfsf2_noop pattern.
7614         (truncxfsf2): Likewise using truncxfsf2_noop.
7615         (truncxfdf2): Likewise using truncxfdf2_noop.
7616         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7617
7618 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7619
7620         * hooks.c (hook_constcharptr_tree_null): New hook.
7621         * hooks.h (hook_constcharptr_tree_null): New prototype.
7622         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7623         * target.h (mangle_fundamental_type): New target hook.
7624         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7625         target hook at rs6000_mangle_fundamental_type.
7626         (rs6000_mangle_fundamental_type): New function.
7627         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7628
7629 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7630
7631         PR 12267, 12391, 12560, 13129, 14114, 14133
7632         * c-tree.h: Forward declare struct c_binding.  Declare
7633         c_override_bindings_to_false.  Update prototypes.
7634         (struct lang_identifier): Update comments.  Change fields to be
7635         struct c_binding *.
7636         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7637         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7638         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7639         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7640         * c-common.h: Update prototypes.
7641         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7642         names_last, parms, parms_last, tags, and shadowed fields.  Add
7643         bindings and depth fields.
7644         (scope_freelist): Move to more appropriate location.
7645         (c_print_identifier): Update for changes to struct lang_identifier.
7646         (objc_mark_locals_volatile): Update for new bindings structures.
7647         (global_bindings_p): Honor c_override_global_bindings_to_false.
7648         (pushlevel): Rename to push_scope; take no arguments; use the
7649         scope_freelist; initialize scope->depth and check for overflow.
7650         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7651         structures.
7652         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7653         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7654         Improve some commentary.  Adjust handling of forward parm decls.
7655         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7656         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7657         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7658         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7659         decls.  Rewrite for new bindings structures.  Improve commentary.
7660         Eliminate the copy_node call.
7661         (implicit_decl_warning): Use the "diag" idiom (as seen in
7662         locate_old_decl) to reduce code duplication; call locate_old_decl
7663         if appropriate.  Relocate to remove need for forward declaration.
7664         (implicitly_declare): Adjust for new bindings structures.  Kludge
7665         around Objective-C not-really-builtin functions.
7666         (undeclared_variable): Improve diagnostics.  If current_function_decl
7667         is nonnull but current_function_scope is null, use current_scope.
7668         Use bind.
7669         (lookup_tag): Adjust for new bindings structures.  Kludge around
7670         Objective-C's tag declarations that wind up in the external scope.
7671         (lookup_name): Adjust for new bindings structures.  Kludge around
7672         c-common.c's pseudo-typedefs that wind up in the external scope.
7673         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7674         second argument indicating the scope to examine; rewrite for
7675         new bindings structures.
7676         (c_init_decl_processing): Adjust for renamed functions.  Do not
7677         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7678         First scope pushed is the external scope, not the global scope.
7679         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7680         for new data structures.  Keep track of builtins that should be
7681         made visible automatically.
7682         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7683         expand_decl.
7684         (grokparms): Return 0 if arg_types is error_mark_node.
7685         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7686         reversed sense.  Rewrite for new bindings structures.  Do not
7687         leave any decls in the scope, to prevent pop_scope from doing
7688         contradictory things with them.
7689         (finish_struct, finish_enum): Remove redundant diagnostics.
7690         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7691         Mark location where -pedantic changes the meaning of the program.
7692         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7693         parameter decls into the function's scope structure using bind.
7694         Warn here about function definitions in the wrong style.
7695         Adjust diagnostics.
7696         (store_parm_decls): Correct the determination of whether a
7697         function was defined with a prototype.
7698         (c_write_global_declarations): Operate on all file decls and on
7699         the external scope.  Split body of the loop to...
7700         (c_write_global_declarations_1): ... this new function, to avoid
7701         code duplication.
7702         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7703         (make_scope, pop_scope, in_parm_level_p, set_block)
7704         (any_external_decl, record_external_decl, bind_label, getdecls)
7705         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7706         (c_reset_state): Delete.
7707         (visible_builtins, c_override_global_bindings_to_false)
7708         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7709         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7710         (external_scope, binding_freelist, bind, free_binding_and_advance)
7711         (push_file_scope, pop_file_scope): New.
7712         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7713         (define_label, c_make_fname_decl, finish_decl)
7714         (mark_forward_parm_decls, build_compound_literal)
7715         (grokdeclarator, start_function, check_for_loop_decls)
7716         (identifier_global_value, record_builtin_type): Minor adjustments
7717         for new bindings structures.  Improve diagnostics and commentary.
7718         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7719         pushlevel/poplevel respectively.
7720         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7721         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7722         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7723         correct loop over multiple translation units; call fatal_error if
7724         requested to compile more than one file at once.  (This disables
7725         IMA temporarily - an up-front error being preferable to a crash.)
7726         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7727         (all actions): Adjust calls to pushlevel/poplevel.
7728         (parsing_iso_function_signature): Delete.
7729         (extdef_1): Fold into extdef.
7730         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7731         warn here about function definitions in the wrong style.
7732         (after_tyle_declarator, parm_declarator_starttypename)
7733         (parm_declarator_nostarttypename, notype_declarator): Remove
7734         commented-out productions.
7735         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7736         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7737         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7738         to suppress -Wold-style-definition after this error.
7739         (c_parse_file): Don't clear the binding stack or call
7740         finish_fname_decls here.  Correct comment.
7741         * c-typeck.c (same_translation_unit_p): Export.
7742         (common_type): Use c_override_global_bindings_to_false, not
7743         pushlevel/poplevel/declare_parm_level.
7744         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7745         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7746         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7747         * objc/objc-lang.c: Likewise.
7748         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7749         get_parm_info.
7750         (OBJC_VOID_AT_END): Delete; replace all uses
7751         with void_list_node.
7752         (generate_forward_declaration_to_string_table): Delete.
7753         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7754
7755         * coverage.c (create_coverage): Don't pushdecl anything.
7756         * langhooks.c (lhd_clear_binding_stack): Call
7757         lang_hooks.decls.poplevel, not poplevel.
7758         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7759         circular list rather than going into an infinite loop.
7760
7761 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7762
7763         * optabs.c (expand_binop): When synthesizing double word rotates
7764         from single word shifts, use a new register target if the provided
7765         target is not a REG already.
7766
7767 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7768
7769         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7770         * c-common.c (handle_mode_attribute): Add extra arg to
7771         build_pointer_type_for_mode and build_reference_type_for_mode.
7772         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7773         for INTEGER_CST.
7774         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7775         Chain pointers via TYPE_NEXT_PTR_TO.
7776         (build_reference_type_for_mode): Similarly.
7777         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7778         and build_reference_type_for_mode.
7779         (tree_check4_failed): New function.
7780         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7781         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7782         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7783         Add check.
7784
7785 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7786
7787         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7788         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7789         when both A and B are nonnegative.
7790         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7791         nonzero.
7792
7793 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7794
7795         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7796         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7797
7798 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7799
7800         PR optimization/14669
7801         * fold-const.c (fold): Only unwiden integer comparisons for equality
7802         and inequality operators, or when the signedness doesn't change.
7803
7804 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7805
7806         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7807         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7808         * config/sparc/t-linux: New file.
7809
7810 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7811
7812         * gcse.c (can_assign_to_reg_p): New function, split out from...
7813         (want_to_gcse_p): ...here.
7814         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7815         the rhs of a store.
7816
7817 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7818
7819         * c-typeck.c (same_translation_unit_p): Fix pasto.
7820
7821 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7822
7823         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7824         (PARAM_MAX_SCHED_REGION_INSNS): New.
7825         * sched-rgn.c: Include params.h
7826         (MAX_RGN_BLOCKS): Delete.
7827         (MAX_RGN_INSNS): Delete.
7828         (too_large): Return bool.  Convert to PARAM_VALUE.
7829         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7830         * doc/invoke.texi (param): Document max-sched-region-blocks and
7831         max-sched-region-insns.
7832
7833 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7834
7835         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7836         for base types.
7837
7838 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7839
7840         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7841         change.
7842
7843 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
7844
7845         PR c/14069
7846         * c-decl.c (finish_struct): Change type of incorrect flexible array
7847         field into error_mark_node.
7848
7849 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
7850
7851         PR target/14580
7852         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7853         who are not local for Darwin PIC.
7854
7855 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
7856
7857         * regrename.c (regrename_optimize): Set regs_ever_live for all
7858         registers introduced as replacement.
7859
7860 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7861
7862         PR middle-end/14470
7863         * expr.c (mark_queue): New function.
7864         (emit_insns_enqueued_after_mark): New function replacing
7865         emit_queue.  Clear the body of emitted queued insns.
7866         (emit_queue): Call emit_insns_enqueued_after_mark.
7867         (store_expr): Mark the increment queue on entry.  Emit
7868         only the incrementations queued when expanding the source.
7869
7870 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
7871
7872         * configure.ac: Allow --disable-coverage-flags (for the future benefit
7873         of top level bootstrap, and consistency).  Reindent.
7874         * configure: Regenerate.
7875
7876 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7877
7878         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7879         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7880         unnecessary casts.
7881
7882 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
7883
7884         PR target/14291
7885         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7886         __MINGW32__.
7887
7888 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7889
7890         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7891         to nonimmediate_operand.
7892         ("*doloop_di"): Likewise.
7893
7894 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
7895
7896         * real.h (struct real_value): Use the same type for all
7897         bitfields.  Rename exp to uexp.
7898         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7899         Adjust all uses of exp...
7900         * builtins.c: ... here, ...
7901         * emit-rtl.c: ... here, and ...
7902         * real.c: ... and here.
7903
7904 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7905
7906         * pretty-print.c (pp_base_maybe_space): New function.
7907         * pretty-print.h (pp_base_maybe_space): Declare.
7908         (pp_maybe_space): New macro.
7909
7910 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7911
7912         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7913
7914 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7915
7916         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7917         of using register multiplication cost.
7918         (expand_mult): Adapt choose_mult_variant call.
7919         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7920         of MODE; pass appropriate cost bound.  Adjust result when
7921         performing signed multiplication by a negative constant.
7922         Don't use intermediate modes larger than word_mode.
7923
7924 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7925
7926         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7927         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7928         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7929         * explow.c (expr_size): Likewise.
7930         * expr.h (placeholder_list, find_placeholder): Deleted.
7931         * expr.c (store_constructor): Likewise.
7932         (get_inner_reference): Likewise.  Also don't call find_placeholder.
7933         (placeholder_list, find_placeholder): Deleted.
7934         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7935         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7936         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7937         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7938         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7939         Likewise.
7940         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7941         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7942         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7943         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7944         Clean up by using first_rtl_op.
7945         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7946         (substitute_placeholder_in_expr): New function.
7947         * tree.def (WITH_RECORD_EXPR): Deleted.
7948         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7949         (substitute_placeholder_in_expr): New.
7950
7951 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
7952
7953         * dojump.c (prefer_and_bit_test): Fix which part of
7954         the and_test is replaced.
7955
7956 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
7957
7958         * frontends.texi: Add missing line.
7959
7960 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
7961             Chris Devers  <cdevers@pobox.com>
7962             Joseph S. Myers  <jsm@polyomino.org.uk>
7963
7964         * doc/frontends.texi: Rewrite.
7965         * doc/gcc.texi: Update last modification date.
7966
7967 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
7968
7969         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7970         message before redirecting the edge.
7971
7972 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7973
7974         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7975         flag.
7976         * explow.c (force_not_mem): Set REG_POINTER flag according to
7977         MEM_POINTER one.
7978         * rtl.h (MEM_POINTER): New macro.
7979         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7980         for MEM_POINTER.
7981
7982 2004-03-20  Roger Sayle  <roger@eyesopen.com>
7983
7984         PR target/13889
7985         * cse.c (fold_rtx): Avoid substituting constants into unary
7986         conversion operations.
7987
7988 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7989
7990         * fold-const.c (fold): Replace "expr" with "t".
7991
7992 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
7993
7994         PR c/12373
7995         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7996         DECL_ORIGINAL_TYPE if there isn't one.
7997
7998 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7999
8000         * fold-const.c (fold): Replace "final_type" with "type".
8001         Remove variable "final_type".
8002
8003 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8004
8005         * fold-const.c (fold): Constify "type".
8006         Replace "TREE_TYPE (t)" with "type".
8007
8008 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8009
8010         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8011         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8012         via (*targetm.foo) () with targetm.foo ().
8013
8014 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8015
8016         PR other/14630
8017         * doc/install.texi: Add info directory category and entry.
8018
8019 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8020
8021         * fold-const.c (fold): Replace "t" with "tem" where it is used
8022         as a temporary variable.  Remove "orig_t" and all of its uses.
8023
8024 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8025
8026         * fold-const.c (fold): Remove variable "invert".
8027         Move the handling of relational expressions that can be folded
8028         to a constant ...
8029         (fold_relational_const): ... here.
8030         (tree_expr_nonzero_p): New.
8031
8032 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8033
8034         PR c/14635
8035         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8036         DEF_GCC_BUILTIN.
8037
8038 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8039
8040         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8041         (GTFILES): Add $(srcdir)/dojump.h.
8042         (gt-dojump.h): New dependency.
8043         * dojump.c (and_reg, and_test, shift_test): New static variables.
8044         (prefer_and_bit_test): New function.
8045         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8046
8047 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8048
8049         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8050         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8051         reorg.c, tree.h: Fix comment typos.
8052
8053 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8054
8055         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8056         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8057         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8058         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8059         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8060         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8061         targetm.foo ().
8062
8063 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8064
8065         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8066         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8067         always_inline attribute.
8068         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8069         Treat expansion as completed even if literal argument is
8070         invalid (so that other expansions are not tried in vain).
8071
8072 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8073
8074         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8075         const0_rtx.
8076
8077 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8078
8079         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8080         ...
8081         (fold_abs_const): ... here.
8082
8083 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8084
8085         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8086
8087 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8088
8089         PR target/11520
8090         * config/avr/avr.md ("call_insn"): Handle explicit integer
8091         specially.
8092         (call_value_insn): Likewise.
8093
8094 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8095
8096         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8097
8098 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8099
8100         * fold-const.c (negate_expr): Move the handling of constants
8101         ...
8102         (fold_negate_const): ... here.
8103
8104 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8105
8106         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8107         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8108         * tree.c (debug_no_type_hash): Deleted.
8109         (type_hash_canon): Abort if passed a variant.
8110         Check lang_hooks.types.hash_types.
8111         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8112         (build_array_type): Remove unnecessary allocation of pointer type.
8113         (build_complex_type): Properly qualify resulting type.
8114
8115 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8116
8117         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8118
8119 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8120
8121         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8122         (expand_mult): ...here.
8123         (extract_high_half): New, split out from expand_mult_highpart.
8124         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8125         (expand_highpart): Evaluate the cost of a shift/add sequence,
8126         then see if any of the specialized optabs are cheaper.
8127
8128 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8129
8130         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8131
8132 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8133
8134         * convert.c (convert_to_real): Add more math builtins.
8135
8136 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8137
8138         * convert.c (convert_to_real): Reformat using switch stmt.
8139
8140 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8141
8142         * c-common.c (pointer_int_sum): Do not complain about using
8143         pointers to pointers-to-members.
8144
8145 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8146
8147         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8148         have moved to the target hooks structure".
8149
8150 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8151
8152         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8153         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8154         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8155         Likewise.
8156         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8157         Likewise.
8158         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8159         rm7_fp_quick): Likewise.
8160         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8161         rm9k_fquick): Likewise.
8162         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8163         Likewise.
8164         (ir_sr70_icmp): Delete.
8165
8166 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8167
8168         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8169         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8170         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8171         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8172         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8173         Protect with proper check.
8174         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8175         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8176         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8177         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8178         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8179         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8180         not TYPE_FIELDS.
8181         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8182
8183 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8184
8185         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8186         dest is set between beginning and current insn.
8187
8188 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8189
8190         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8191         visible "static" identifiers "extern" in a local scope.
8192         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8193         post-increments/decrements.
8194
8195 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8196
8197         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8198         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8199         (xtensa_va_start): Remove assignment to current_function_arg_words.
8200
8201 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8202
8203         * alias.c (record_set): Detect the case where a register is assigned
8204         a new value that has the same base term as the old one.
8205
8206 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8207
8208         * doloop.c: Removed.
8209         * loop-doloop.c: New file.
8210         * Makefile.in (doloop.o): Remove.
8211         (loop-doloop.o): New.
8212         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8213         * cfgloopanal.c (get_loop_level): New function.
8214         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8215         is leaved immediatelly.
8216         * loop.c (strength_reduce): Do not call doloop optimization.
8217         * loop.h (LOOP_BCT): Removed.
8218         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8219         (rest_of_handle_loop2): Call doloop_optimize_loops.
8220         (rest_of_compilation): Test for optimizations moved to
8221         rest_of_handle_loop2.
8222
8223 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8224
8225         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8226         for mixed mode.
8227         (rs6000_emit_prologue): Ditto.
8228         (rs6000_emit_epilogue): Ditto.
8229         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8230         macro for mixed mode.
8231
8232 2004-03-18  Jan Hubicka  <jh@suse.cz>
8233
8234         * predict.c (propagate_freq): Compute correctly frequency of
8235         EXIT_BLOCK.
8236
8237 2004-03-17  Eric Christopher  <echristo@redhat.com>
8238
8239         * builtins.c (apply_args_size): Use reg_raw_mode.
8240         (apply_result_size): Ditto.
8241
8242 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8243
8244         PR target/14620
8245         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8246
8247 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8248
8249         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8250         32-bit builds when defaulting to 32-bit.
8251
8252 2004-03-17  Jan Hubicka  <jh@suse.cz>
8253
8254         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8255         array.
8256
8257 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8258
8259         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8260         (hazard_nop): Change type to nop.
8261         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8262         Fix all uses.  Change arith to multi if more than one insn emitted.
8263         * config/mips/5400.md (ir_vr54_arith): Likewise.
8264         * config/mips/5500.md (ir_vr55_arith): Likewise.
8265         * config/mips/7000.md (rm7_int_other): Likewise.
8266         * config/mips/9000.md (rm9k_int): Likewise.
8267         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8268
8269 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8270
8271         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8272         to hold the subtype tree instead of recomputing it several times.
8273
8274 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8275
8276         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8277         CC_INVERT.
8278         * config/mn10300/mn10300.md (cc): Remove "invert".
8279
8280 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8281
8282         * builtins.c (integer_valued_real_p): Add builtin rint.
8283         (fold_builtin): Likewise.
8284         * convert.c (convert_to_real): Likewise.
8285
8286         * convert.c (convert_to_real): Fix typos in `long double'
8287         builtins.
8288
8289 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8290
8291         PR c++/14481
8292         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8293         generated COMPOUND_EXPRs.
8294
8295 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8296
8297         * config/h8300/t-rtems (h8300-*-rtems*): New.
8298
8299 2004-03-16  Eric Christopher  <echristo@redhat.com>
8300
8301         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8302
8303 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8304
8305         * config/i386/i386-protos.h: Add a prototype for
8306         ix86_reverse_condition.
8307         * config/i386/i386.c (ix86_reverse_condition): New.
8308         * config/i386/i386.h (REVERSE_CONDITION): Use
8309         ix86_reverse_condition.
8310         * config/i386/i386.md: Use ix86_reverse_condition instead of
8311         REVERSE_CONDITION.
8312
8313 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8314
8315         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8316
8317 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8318
8319         PR bootstrap/12974
8320         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8321
8322 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8323
8324         * c-common.c (c_common_type_for_mode): Build vector types on
8325         demand.
8326         (handle_mode_attribute): Deprecate using the mode attribute
8327         to create vector types.  Fix indentation.
8328         (vector_type_node_list): Remove.
8329         (handle_vector_size_attribute): Create vector types on demand.
8330         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8331         * c-typeck.c (comptypes): Make vector types compatible if they
8332         have the same underlying mode.
8333         (convert_for_assignment): Use comptypes to convert between
8334         vector types.
8335         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8336         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8337         vector types.
8338         * tree.h: Remove vector types.
8339         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8340         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8341         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8342         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8343         * doc/extend.texi (Vector Types): Document how to use the
8344         vector_size attribute to create vectors, rather than mode.
8345
8346         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8347         * config/i386/emmintrin.h: Likewise.
8348         * config/i386/mmintrin.h: Likewise.
8349         * config/i386/xmmintrin.h: Likewise.
8350         * config/sh/ushmedia.h: Likewise.
8351
8352 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8353
8354         * config/freebsd-spec.h, config/arc/arc-protos.h,
8355         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8356         config/arm/linux-gas.h, config/arm/semi.h,
8357         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8358         config/ia64/freebsd.h, config/mips/7000.md,
8359         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8360         config/sparc/pbd.h: Update copyright.
8361
8362 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8363
8364         PR target/14577
8365         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8366
8367 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8368
8369         * combine.c (combine_simplify_rtx): Remove the "last"
8370         parameter and its documentation.  Adjust recursive calls.
8371         (simplify_logical): Always perform the only simplification
8372         controlled by "last", if the simplified expression is
8373         actually different.
8374         (try_combine): Do not pass the "last" parameter to
8375         combine_simplify_rtx.
8376
8377 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8378
8379         PR target/14599
8380         * config/mips/mips.md (UNSPEC_GP): New constant.
8381         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8382         an UNSPEC instead of (reg $gp).
8383         (mips16_gp_pseudo_reg): Change accordingly.
8384         (print_operand): Print $gp directly when handling CONST_GP_P.
8385
8386 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8387
8388         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8389         * longlong.h: Make code 68060 clean when compiling for m68060.
8390
8391 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8392
8393         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8394         * doc/md.texi: Clarify description of "i" constraint.
8395
8396 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8397
8398         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8399         Split store into store, fpstore, fpidxstore.  Fix all uses.
8400         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8401         Likewise.
8402         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8403         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8404         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8405         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8406         ir_sr70_fstore): Likewise.
8407
8408 2004-03-15  Richard Henderson  <rth@redhat.com>
8409
8410         PR middle-end/14535
8411         * except.c (collect_one_action_chain): Record action for cleanup
8412         outer of exception spec.
8413
8414 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8415
8416         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8417         Fix the check for abort and only do the mmap if we can.
8418
8419 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8420
8421         * config/sparc/sparc.h: Rework comments about the code model
8422         in 64-bit environment and the mode 'Pmode'.
8423         * doc/invoke.texi (SPARC options): Rework description of the
8424         different code models supported in 64-bit environment.
8425
8426 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8427
8428         * defaults.h (REVERSIBLE_CC_MODE): Define.
8429         * jump.c (reversed_comparison_code_parts): Don't check if
8430         REVERSIBLE_CC_MODE is defined.
8431
8432 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8433
8434         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8435         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8436         hosthooks.h, params.h, ra-colorize.c, web.c,
8437         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8438         config/avr/avr-protos.h, config/avr/avr.md,
8439         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8440         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8441         config/i386/freebsd.h, config/i386/freebsd64.h,
8442         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8443         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8444         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8445         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8446         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8447         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8448         config/sparc/aout.h, config/sparc/freebsd.h,
8449         config/sparc/litecoff.h, config/vax/vax-protos.h,
8450         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8451         copyright.
8452
8453 2004-03-15  Paul Brook  <paul@codesourcery.com>
8454
8455         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8456
8457 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8458
8459         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8460         (pp_c_cv_qualifier): Document.
8461         (pp_c_space_for_pointer_operator): Likewise.
8462         (pp_c_integer_constant): Likewise.
8463         (pp_c_identifier): Likewise.
8464         (pp_c_init_declarator): Don't print function body.
8465
8466 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8467
8468         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8469         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8470         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8471         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8472         wording and grammar.
8473
8474 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8475
8476         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8477         with lang_hooks.foo ().
8478         * builtins.c (expand_builtin_va_arg): Likewise.
8479         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8480         c_common_type_for_mode, c_common_nodes_and_builtins,
8481         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8482         * c-convert.c (convert): Likewise.
8483         * c-format.c (check_format_types): Likewise.
8484         * c-objc-common.c (c_tree_printer): Likewise.
8485         * c-typeck.c (build_unary_op, build_conditional_expr,
8486         build_binary_op): Likewise.
8487         * calls.c (try_to_integrate, expand_call,
8488         emit_library_call_value_1): Likewise.
8489         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8490         Likewise.
8491         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8492         cgraph_expand_function): Likewise.
8493         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8494         * coverage.c (build_fn_info_type, build_ctr_info_type,
8495         build_gcov_info, create_coverage): Likewise.
8496         * dbxout.c (dbxout_init): Likewise.
8497         * diagnostic.c (diagnostic_report_current_function): Likewise.
8498         * dojump.c (do_jump): Likewise.
8499         * dwarf2out.c (dwarf2_name): Likewise.
8500         * except.c (init_eh): Likewise.
8501         * explow.c (expr_size, int_expr_size): Likewise.
8502         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8503         Likewise.
8504         * expr.c (store_expr, store_constructor, safe_from_p,
8505         expand_expr_real, do_store_flag, try_casesi): Likewise.
8506         * function.c (push_function_context_to, pop_function_context_from,
8507         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8508         put_var_into_stack, allocate_struct_function, current_function_name):
8509         Likewise.
8510         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8511         Likewise.
8512         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8513         lhd_print_error_function): Likewise.
8514         * opts.c (handle_option, decode_options): Likewise.
8515         * passes.c (open_dump_file): Likewise.
8516         * print-tree.c (print_node): Likewise.
8517         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8518         expand_decl_cleanup, emit_case_nodes): Likewise.
8519         * stor-layout.c (variable_size): Likewise.
8520         * toplev.c (announce_function, wrapup_global_declarations,
8521         check_global_declarations, compile_file, default_tree_printer,
8522         process_options, lang_dependent_init, finalize): Likewise.
8523         * tree-dump.c (dequeue_and_dump): Likewise.
8524         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8525         initialize_inlined_parameters, declare_return_variable,
8526         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8527         walk_tree, copy_tree_r): Likewise.
8528         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8529         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8530         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8531         variably_modified_type_p, dump_tree_statistics): Likewise.
8532         * varasm.c (assemble_variable, compare_constant, copy_constant,
8533         force_const_mem, compute_reloc_for_constant, output_constant,
8534         output_addressed_constants, initializer_constant_valid_p): Likewise.
8535
8536 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8537
8538         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8539
8540 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8541
8542         * doc/install.texi: Reflect autoconf and automake version for
8543         libffi. Update autoconf version to 2.59.
8544
8545 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8546
8547         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8548         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8549         make_range, build_range_check, fold_range_test, unextend,
8550         constant_boolean_node, fold_binary_op_with_conditional_arg,
8551         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8552         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8553         with lang_hooks.foo ().
8554
8555 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8556
8557         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8558
8559 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8560
8561         * doc/install.texi: Note status of -fnew-ra.
8562
8563 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8564
8565         PR middle-end/14470
8566         * expr.c (store_expr): Call emit_queue before generating the move
8567         from the temporary to the original target.  Protect the temporary
8568         from emit_queue.
8569
8570 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8571
8572         PR target/14533
8573         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8574         other than UNSPEC_GOTOFF.
8575
8576 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8577
8578         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8579         to arm_legitimate_index_p.  Update all callers with SET as default
8580         value.
8581         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8582         range if OUTER is a sign-extend operation on QImode.  Correctly
8583         reject shift operations on sign-extended QImode addresses.
8584         (bad_signed_byte_operand): Delete.
8585         (arm_extendqisi_mem_op): New function.
8586         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8587         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8588         constraints.
8589         (CONSTRAINT_LEN): New.
8590         (EXTRA_CONSTRAINT): Delete.  Replace with...
8591         (EXTRA_CONSTRAINT_STR): ... this.
8592         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8593         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8594         is now always default.
8595         (define_splits for bad sign-extend loads): Delete.
8596         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8597         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8598         Rework 'U' constraint to 'Uv'.
8599         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8600         arm_extendqisi_mem_op.
8601         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8602         Add Uq constraint.
8603
8604 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8605
8606         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8607         with targetm version.
8608
8609         PR target/14567
8610         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8611         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8612         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8613         Update all users of RS6000_ARG_SIZE.
8614         (function_arg_advance): Count fregno using mode size.
8615         (function_arg): Handle long double split over regs and memory.
8616         (function_arg_partial_nregs): Likewise.
8617         (rs6000_va_arg): Repackage complex args.
8618
8619 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8620
8621         PR target/14047
8622         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8623         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8624         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8625
8626 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8627
8628         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8629         prototype.
8630         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8631         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8632
8633 2003-03-12  Andrew Pinski  <apinski@apple.com>
8634
8635         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8636         Use ret instead of result. Use addr instead of base.
8637
8638 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8639
8640         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8641         fixes required by libstdc++ and update installation instructions
8642         for libstdc++.a.
8643
8644 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8645
8646         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8647         leading '@' on fastcall symbols before stripping suffix.
8648
8649 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8650
8651         * combine.c (unmentioned_reg_p): New function to check whether an
8652         expression is a "specialization" of another, i.e. that there are
8653         no registers or memory references mentioned in the first that don't
8654         appear in the second.
8655         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8656         (combine_instructions): Also try combining instructions using the
8657         REG_EQUAL note from a preceding log-linked instruction.
8658
8659 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8660
8661         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8662
8663 2004-03-12  Matt Austern  <austern@apple.com>
8664
8665         * target.h (struct gcc_target): New target hook, unwind_label.
8666         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8667         * output.h (default_emit_unwind_label): New function.
8668         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8669         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8670         (TARGET_SUPPORTS_HIDDEN): New target macro.
8671         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8672         that corresponds to this FDE.
8673         (FRAME_BEGIN_LABEL): Allow target to override default label.
8674         (output_call_frame_info): If FDEs are linknonce, then use extra
8675         indirection for FDE encoding, output a label for each FDE, and
8676         output an empty label for each function without an FDE.
8677         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8678         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8679         decls with DECL_ONE_ONLY set, if that macro is defined.
8680         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8681         for a SUPPORTS_ONE_ONLY target.
8682         * config/darwin-protos.h (darwin_unique_section): Declare.
8683         (darwin_asm_named_section): Likewise.
8684         (darwin_section_type_flags): Likewise.
8685         (darwin_non_lazy_pcrel): Likewise.
8686         (darwin_emit_unwind_label): Likewise.
8687         (darwin_make_decl_one_only): Likewise.
8688         * config/darwin.c (machopic_finish): Get rid of tweak that
8689         eliminate stubs for symbols that are defined.
8690         (darwin_encode_section_info): Don't treat weak functions as defined.
8691         (darwin_make_decl_one_only): Define.
8692         (darwin_asm_named_section): Likewise.
8693         (darwin_section_type_flags): Likewise.
8694         (darwin_unique_section): Likewise.
8695         (darwin_emit_unwind_label): Likewise.
8696         (darwin_non_lazy_pcrel): Likewise.
8697         (darwin_asm_output_dwarf_delta): Difference between two labels is
8698         local only if both labels are local.
8699         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8700         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8701         (TARGET_SUPPORTS_HIDDEN): Likewise.
8702         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8703         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8704         (FRAME_BEGIN_LABEL): Likewise.
8705         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8706         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8707         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8708         (TARGET_ASM_UNIQUE_SECTION): Define.
8709         (EH_FRAME_SECTION_NAME): Define.
8710         (EH_FRAME_SECTION_ATTR): Likewise.
8711         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8712         (TARGET_ASM_NAMED_SECTION): Likewise.
8713         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8714         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8715         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8716         TARGET_ASM_EMIT_UNWIND_LABEL.
8717
8718 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8719
8720         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8721         existing exp10* case.
8722         (expand_builtin): Likewise.
8723
8724 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8725
8726         * doc/tm.texi (registers) <Values in Registers>: Add
8727         entry for REGMODE_NATURAL_SIZE.
8728
8729 2004-03-12  Richard Henderson  <rth@redhat.com>
8730
8731         PR target/14547
8732         * target.h (struct gcc_target): Move calls substructure before
8733         booleans.  Add split_complex_arg.
8734         * function.c (assign_parms, split_complex_args): Use it.
8735         * calls.c (expand_call): Likewise.
8736         (split_complex_values): Likewise.  Check for splittable types
8737         before allocating memory.
8738         (split_complex_types): Likewise.
8739         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8740         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8741         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8742         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8743         (TARGET_SPLIT_COMPLEX_ARG): New.
8744         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8745         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8746         (rs6000_override_options): Zap it for non-AIX.
8747         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8748         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8749         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8750         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8751         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8752         SPLIT_COMPLEX_ARGS entry.
8753
8754 2004-03-11  Richard Henderson  <rth@redhat.com>
8755
8756         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8757         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8758         (alpha_emit_xfloating_arith): Update to match.
8759         (alpha_emit_xfloating_compare): Likewise.
8760         (alpha_emit_xfloating_cvt): Likewise.
8761         (alpha_emit_xfloating_libcall): Take already built symbol,
8762         mark call const.
8763         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8764         op1 in a register.
8765
8766 2004-03-11  Richard Henderson  <rth@redhat.com>
8767
8768         PR target/14539
8769         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8770
8771         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8772
8773 2004-03-11  Richard Henderson  <rth@redhat.com>
8774
8775         PR middle-end/14477
8776         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8777
8778 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8779
8780         PR target/14262
8781         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8782         defined, pass small BLKmode values in registers in the low-order part.
8783
8784 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8785
8786         * combine.c (if_then_else_cond): Check for NULL return value of
8787         simplify_gen_subreg.
8788
8789 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8790
8791         PR target/14496
8792         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8793         TARGET_SINGLE_FLOAT.
8794
8795 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8796
8797         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8798         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8799         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8800         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8801
8802 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8803
8804         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8805         -((int)X>>C) where C is an integer constant one bit less than the
8806         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8807         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8808
8809         * simplify-rtx.c (simplify_unary_operation): Also implement the
8810         above transformations at the RTL level.
8811
8812 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8813
8814         * real.c (encode_ibm_extended): Do round low word.
8815
8816 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8817
8818         * config/arm/arm.md (is_xscale): Comment this attribute and move
8819         it a bit further up in the file, closer to related attributes.
8820
8821 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8822
8823         * config/host-solaris.c (sol_gt_pch_use_address): Add
8824         missing terminating marker to comment.
8825
8826 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8827
8828         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8829         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8830         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8831         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
8832         move_operand as source predicate in all cases.
8833         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
8834         Test reg_or_0_operand.  Use move_operand as source predicate.
8835         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
8836         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8837         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
8838         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8839         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
8840         Use move_operand as source predicate.  Remove 'K' constraint.
8841         (*movqi_internal): Likewise movqi_internal.
8842         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
8843         reg_or_0_operand.  Use move_operand as source predicate.
8844         (*movsf_softfloat): Likewise movsf_internal2.
8845         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8846         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8847         (*movdf_softfloat): Likewise movdf_internal2.
8848         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8849         for DImode if !TARGET_64BIT.
8850         (mips_legitimize_move): Simplify accordingly.
8851
8852 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8853
8854         PR/14362
8855         * var-tracking.c (struct variable_def): Added field refcount.
8856         (variable_htab_free): Decrease the refcount and delete variable
8857         only if there are no more references.
8858         (unshare_variable): New function.
8859         (vars_copy_1): Increase refcount instead of copying the variable.
8860         (variable_union): Share the variables where possible, unshare
8861         the variables if needed.
8862         (variable_different_p): Return false if var1 and var2 are
8863         the same structure.
8864         (variable_was_changed): Init the refcount of new variable.
8865         (set_frame_base_location): Unshare variable if needed.
8866         (set_variable_part): Init the refcount of new variable.
8867         Unshare the variables if needed.
8868         (delete_variable_part): Unshare the variables if needed.
8869         (emit_notes_for_differences_1): Init the refcount of new variable.
8870         (vt_add_function_parameters): Do not add function parameters to
8871         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8872         (vt_initialize): Do not add frame_base_decl to IN set of
8873         ENTRY_BLOCK_PTR because it is unused anyway.
8874
8875 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8876
8877         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8878         (vars_copy): Likewise.
8879         (variable_union): Likewise.
8880         (set_variable_part): Likewise.
8881         (delete_variable_part): Likewise.
8882
8883 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
8884
8885         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8886         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8887         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8888         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8889         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8890         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8891         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8892         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8893         config/stormy16/stormy16.c: Fix comment typos and formatting.
8894
8895 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8896
8897         * configure: Regenerate, since I forgot to while committing Paolo's
8898         changes.
8899
8900 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
8901
8902         PR ada/14131
8903         Move language detection to the top level.
8904         * configure.ac: Remove code to detect languages,
8905         it now lives exclusively in the top level.
8906         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8907         top level, renamed to ACX_PROG_GNAT.
8908
8909 2004-03-10  Richard Henderson  <rth@redhat.com>
8910
8911         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8912         extra arguments.
8913         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8914         and host_xmake_file fragments.
8915         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8916         (gt_pch_restore): Similarly for gt_pch_use_address.
8917         (default_gt_pch_get_address): New.
8918         (mmap_gt_pch_get_address): Split out of gt_pch_save.
8919         (default_gt_pch_use_address): Split out of gt_pch_restore.
8920         (mmap_gt_pch_use_address): Likewise.
8921         * hooks.c (hook_voidp_size_t_null): Remove.
8922         (hook_bool_voidp_size_t_false): Remove.
8923         * hooks.h: Likewise.
8924         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8925         default_ or mmap_ definitions.
8926         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8927         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8928         and gt_pch_use_address.
8929         * config/host-linux.c, config/host-solaris.c: New files.
8930         * config/x-linux, config/x-solaris: New files.
8931         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8932         Update for changed definition.
8933         (darwin_rs6000_gt_pch_use_address): Likewise.
8934         * doc/hostconfig.texi: Update docs.
8935
8936 2004-03-10  Richard Henderson  <rth@redhat.com>
8937
8938         PR c/14517
8939         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8940         except for pedantic c90 mode.
8941
8942 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
8943
8944         * configure.ac: Bump AC_PREREQ to 2.59.
8945         * configure: Regenerate.
8946
8947 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
8948
8949         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8950         (exp10_optab, exp2_optab): Define corresponding macros.
8951         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8952         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8953         using exp10?f2 and exp2?f2 patterns.
8954         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8955         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8956         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8957         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8958
8959         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8960         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8961         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8962
8963 2004-03-10  Anthony Green  <green@redhat.com>
8964
8965         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8966
8967 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8968
8969         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8970         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
8971         __LONGDOUBLE128.
8972         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8973         TARGET_OS_AIX_CPP_BUILTINS.
8974         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8975         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8976         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8977         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8978         previous change.
8979
8980 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8981
8982         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8983
8984 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8985
8986         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8987         __LONGDOUBLE128 on AIX.
8988
8989 2004-03-10  Andrew Haley  <aph@redhat.com>
8990
8991         PR optimization/14381
8992         * function.c (expand_function_end): Emit a blockage insn before
8993         the epilogue when -fnon-call-exceptions is used.
8994
8995         * except.c (expand_start_all_catch): Make comment more accurate.
8996
8997 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8998
8999         PR target/14480
9000         * config/rs6000/t-rtems: Add missing file on branch.
9001
9002 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9003
9004         * dbxout.c (dbxout_symbol_location): Do not output references
9005         to optimized-out constant pool symbols.
9006
9007 2004-03-10  Andreas Schwab  <schwab@suse.de>
9008
9009         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9010         twon34_r.
9011
9012 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9013
9014         * alias.c (alias_sets_might_conflict_p): New.
9015         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9016         * common.opt (Wstrict-aliasing=): New.
9017         * flags.h (warn_strict_aliasing): Change type to int.
9018         * opts.c (warn_strict_aliasing): Change type to int.
9019         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9020         * tree.h (alias_sets_might_conflict_p): Declare it.
9021         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9022
9023 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9024
9025         PR bootstrap/12371
9026         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9027         (CALL_USED_REGISTERS): Likewise.
9028         (REG_CLASS_CONTENTS): Likewise.
9029         (REG_ALLOC_ORDER): New.
9030         (REGNO_REG_CLASS): Use regno_reg_class.
9031         * config/m68k/m68k.c: Add regno_reg_class array.
9032
9033 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9034
9035         * config/ia64/ia64.md (divsi3): Fix algorithm.
9036           (udivsi3): Ditto.
9037           (setf_exp_xf): Remove '*' from name.
9038         * testsuite/gcc.dg/20040309-1.c: New test.
9039
9040 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9041
9042         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9043         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9044         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9045         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9046         (sparc_aout_select_rtx_section): Don't check
9047         SUNOS4_SHARED_LIBRARIES.
9048         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9049
9050 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9051
9052         PR other/14474
9053         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9054         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9055         INTERNALS".
9056
9057 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9058
9059         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9060         (LIBGCC_SPEC): Update to match.
9061
9062 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9063
9064         * c-decl.c (last_function_parms, last_function_parm_tags)
9065         (last_function_parm_others, current_function_parms)
9066         (current_function_parm_tags, current_function_parm_others):
9067         Delete.
9068         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9069         New macros.
9070         (grokdeclarator): For function definitions, save the arg-info
9071         block from the declarator in DECL_ARGUMENTS.
9072         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9073         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9074         contains only PARM_DECLs.  Improve diagnostics.
9075         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9076         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9077         (store_parm_decls_newstyle): Take the function to operate on,
9078         and an arg-info block, as arguments; don't get anything from
9079         current_function_* globals.
9080         (store_parm_decls_oldstyle): Likewise.
9081         (store_parm_decls): Pass fndecl and its arg-info block down to
9082         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9083         argument lists through store_parm_decls_newstyle to reduce
9084         overhead.
9085         (pushdecl): Comment on the problems with the call to copy_node.
9086         Clear DECL_ARGUMENTS of the old node after copying it, if it
9087         is an arg-info block instead of a chain of decls.
9088         (start_function): Do not manipulate current_function_parm* or
9089         last_function_parm*.
9090
9091 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9092             Andrew Pinski  <pinskia@physics.uc.edu>
9093
9094         * ifcvt.c (noce_try_sign_mask): New function to transform
9095         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9096         (noce_process_if_block): Call noce_try_sign_mask.
9097
9098 2004-03-09  Andrew Pinski  <apinski@apple.com>
9099
9100         * c-typeck.c (tagged_types_tu_compatible_p):
9101         Fix typo.
9102
9103 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9104
9105         * simplify-rtx.c (simplify_const_relational_operation): New function
9106         renamed from simplify_relational_operation.
9107         (simplify_relational_operation): Change prototype to accept an
9108         additional mode argument.  Call simplify_const_relational_operation.
9109         (simplify_gen_relational): Update simplify_relational_operation call.
9110         (simplify_ternary_operation): Update simplify_relational_operation
9111         subroutine call to use simplify_const_relational_operation instead.
9112
9113         * rtl.h (simplify_const_relational_operation): Prototype here.
9114         (simplify_relational_operation): Add addtional mode argument.
9115
9116         * combine.c (combine_simplify_rtx): Update calls to
9117         simplify_relational_operation.
9118         (simplify_set): Likewise.
9119         (gen_binary): Likewise.
9120         * cse.c (fold_rtx): Likewise.
9121         * dojump.c (compare_from_rtx): Likewise.
9122         (do_compare_rtx_and_jump): Likewise.
9123         * integrate.c (subst_constants): Likewise.
9124         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9125
9126 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9127
9128         * config/m32r/m32r.md: Remove all define_peephole's.
9129
9130 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9131
9132         * config/rs6000/rs6000.md: Remove trailing whitespace.
9133
9134 2004-03-08  Eric Christopher  <echristo@redhat.com>
9135
9136         * Makefile.in (site.exp): Add libiconv variable definition.
9137
9138 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9139
9140         * configure: Regenerate for config/accross.m4 correction.
9141
9142 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9143
9144         PR target/14480
9145         * config/rs6000/t-rtems: Add missing file on branch.
9146
9147 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9148
9149         PR middle-end/14289
9150         * c-typeck.c (c_mark_addressable): A register variable should
9151         be considered global if its not automatic, i.e. TREE_PUBLIC,
9152         TREE_STATIC or DECL_EXTERNAL.
9153         * function.c (put_var_into_stack): Call abort when placing a
9154         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9155
9156 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9157
9158         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9159         ("*extendqisi2_short_displ"): Likewise.
9160
9161 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9162
9163         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9164         (comp_operator): Likewise.
9165         * config/pdp11/pdp11-protos.h: Remove corresponding
9166         prototypes.
9167
9168 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9169
9170         * expr.c (highest_pow2_factor_for_type): Rename into
9171         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9172         TYPE_ALIGN when the target is a COMPONENT_REF.
9173         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9174
9175 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9176
9177         * config/rs6000/rs6000.c: Formatting fix.
9178         (legitimate_offset_address_p): Correct offset range check.
9179
9180         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9181         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9182         and MASK_STRING.
9183
9184 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9185
9186         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9187         for little endian.
9188         ("ashrdi3_no_power"): Disable for little endian.
9189         (ashrdi3): Same.
9190
9191 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9192
9193         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9194         builtins.
9195
9196 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9197
9198         PR target/14471
9199         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9200         case, checking for -no-mul-bug-abort option.
9201         * configure, config.in: Regenerate.
9202         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9203         and -mno-mul-bug-workaround.
9204         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9205         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9206         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9207         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9208         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9209         sure mulu.d is not last on cache-line.
9210         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9211         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9212         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9213         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9214         -mno-mul-bug-workaround.
9215         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9216         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9217         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9218         relation to MULT in head comment.
9219         (cris_op_str): Abort for MULT.
9220         (cris_print_operand) <case '!'>: New case.
9221
9222 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9223
9224         PR debug/11983
9225         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9226         dw_val_class_vec.  Replace use throughout file.
9227         (dw_float_const): Delete.
9228         (dw_vec_const): New.
9229         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9230         throughout file.
9231         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9232         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9233         (size_of_die): Adjust dw_val_class_vec sizing.
9234         (output_die): Output dw_val_class_vec.
9235         (insert_int, extract_int, insert_float): New functions.
9236         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9237         Handle CONST_VECTOR.
9238         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9239
9240 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9241
9242         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9243         AltiVec abi cannot co-exist.
9244
9245         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9246
9247 2004-03-07  Jan Hubicka  <jh@suse.cz>
9248
9249         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9250
9251 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9252
9253         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9254         ("*lshrsi3"): Also accept an immediate for 68HC12.
9255         ("*ashrsi3_const"): Likewise.
9256         ("*ashrsi3"): Likewise.
9257         ("*ashlsi3_const"): Likewise.
9258         ("*ashlsi3"): Likewise.
9259         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9260         comparing with a pop; don't use a split for that.
9261         ("cmphi split"): Disable compare split for 68HC12.
9262
9263         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9264         the status operands if they have side effects.
9265
9266 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9267
9268         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9269         definition.
9270         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9271         config/h8300/h8300.h, config/ia64/ia64.h,
9272         config/mcore/mcore.h, config/mmix/mmix.h,
9273         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9274         config/stormy16/stormy16.h, config/v850/v850.h,
9275         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9276         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9277         definition.
9278
9279 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9280
9281         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9282         <XOR_EXPR>: Fold x ^ x as zero.
9283         <AND_EXPR>: Fold x & x as x.
9284
9285 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9286
9287         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9288         "foo++ == const" into "++foo == const+incr".
9289
9290 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9291
9292         * config/mips/mips.c (mips_in_small_data_p): Return false if
9293         TARGET_ABICALLS.
9294
9295 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9296
9297         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9298         the stack register.
9299         (expand_prologue): Don't make an interrupt or a trap handler a far
9300         symbol.
9301         (m68hc11_initial_elimination_offset): Likewise.
9302
9303 2004-03-06  Richard Henderson  <rth@redhat.com>
9304
9305         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9306
9307 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9308
9309         * config/ns32k/ns32k-protos.h: Add a prototype for
9310         ns32k_notice_update_cc.
9311         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9312         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9313         ns32k_notice_update_cc.
9314
9315 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9316
9317         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9318         "*load_multiple_si"): Allow only if reload_completed.
9319         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9320         Likewise.
9321
9322 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9323
9324         * config/vax/vax-protos.h: Add a prototype for
9325         vax_notice_update_cc.
9326         * config/vax/vax.c (vax_notice_update_cc): New.
9327         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9328         vax_notice_update_cc.
9329
9330 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9331
9332         * collect2.c (main): Only export initfunc and finifunc if
9333         LD_INIT_SWITCH not defined.
9334         (scan_prog_file): Only export constructors and destructors if
9335         LD_INIT_SWITCH not defined.  Only export symbols not found in
9336         shared objects.
9337
9338 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9339
9340         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9341         last.
9342         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9343         from calls to gen_icacheflush.
9344
9345 2004-03-06  Richard Henderson  <rth@redhat.com>
9346
9347         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9348         (TARGET_LONG_DOUBLE_128): New.
9349         (TARGET_SWITCHES): Add long-double-{128,64}.
9350         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9351         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9352         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9353         (WIDEST_HARDWARE_FP_SIZE): New.
9354         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9355         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9356         if TARGET_VAX_FLOAT.
9357         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9358         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9359
9360 2004-03-06  Richard Henderson  <rth@redhat.com>
9361
9362         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9363         botched rtx class conversion.
9364
9365 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9366
9367         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9368         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9369
9370         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9371         macros.
9372         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9373
9374 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9375
9376         PR target/14343
9377         * config/i386/i386.md (movv2di_internal): Conditionalize on
9378         TARGET_SSE, not TARGET_SSE2.
9379
9380 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9381
9382         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9383         duplicated line.
9384
9385 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9386
9387         * builtins.c: Consistently use logN not log* in comments.
9388
9389 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9390
9391         * rtl.h (mem_expr_equal_p): Function prototype added.
9392         * cfgcleanup.c (merge_memattrs): New function.
9393         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9394         * emit-rtl.c (mem_expr_equal_p): New function.
9395
9396 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9397
9398         * objc/objc-act.c (synth_module_prologue): Const-qualify
9399         objc_selector type if using the GNU runtime; fix generated
9400         signatures for objc_msg_lookup and objc_msg_lookup_super
9401         to match what GNU ObjC headers provide; reformat and clean up.
9402         (synth_self_and_ucmd_args): Use previously constructed (and
9403         hence possibly const-qualified) objc_selector type.
9404
9405 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9406
9407         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9408
9409 2004-03-05  Jason Merrill  <jason@redhat.com>
9410
9411         * tree.h (TYPE_HASH): Use TYPE_UID.
9412         (TREE_HASH): New macro with old definition of TYPE_HASH.
9413         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9414         (build_array_type, build_function_type): Likewise.
9415         (build_method_type_directly): Likewise.
9416         (build_offset_type, build_complex_type): Likewise.
9417         (type_hash_list, attribute_hash_list): Likewise. Now static.
9418         * except.c: s/TYPE_HASH/TREE_HASH/.
9419
9420 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9421
9422         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9423         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9424         __va_ndx by 2 words when referencing an argument on the stack.
9425         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9426         words when an arg on the stack is first seen.
9427
9428 2004-03-05  Paul Brook  <paul@codesourcery.com>
9429
9430         * arm.h (ARM_FLAG_VFP): Remove.
9431         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9432         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9433
9434 2004-03-05  Paul Brook  <paul@codesourcery.com>
9435
9436         * function.c (assign_parms): Include pretend alignment offset.
9437
9438 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9439
9440         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9441         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9442
9443 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9444
9445         * configure.ac: When passing --enable-languages to subdir
9446         configure when host != build, make sure we don't pass an empty
9447         value.
9448         * configure: Regenerate.
9449
9450 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9451
9452         PR 13577
9453         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9454         options.
9455
9456 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9457
9458         * simplify-rtx.c (simplify_relational_operation): If
9459         flag_wrapv is set, do not move terms between the two
9460         side of a relational operator.
9461
9462 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9463
9464         * rtlanal.c: Include target.h and output.h
9465         (rtx_cost, address_cost, default_address_cost): Move from...
9466         * cse.c (rtx_cost, address_cost, default_address_cost):
9467         ... this file.
9468         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9469         * Makefile.in: Adjust dependencies.
9470
9471 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9472
9473         * cse.c (cse_end_of_basic_block): Make static.
9474         * local-alloc.c (function_invariant_p): Move to
9475         reload1.c.
9476         * loop.c (libcall_other_reg, record_excess_regs):
9477         Make static.
9478         * reload1.c (function_invariant_p): Moved here
9479         from local-alloc.c, made static.
9480         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9481         libcall_other_reg, record_excess_regs): Remove
9482         declarations.
9483
9484 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9485
9486         * config/m32r/m32r.c (signed_comparison_operator): Add a
9487         missing parenthesis.
9488
9489 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9490
9491         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9492         going to call mmap again.  Read the file into the right place.
9493         Give a fatal error if we have to relocate.
9494
9495 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9496
9497         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9498         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9499
9500 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9501
9502         PR other/14354
9503         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9504         round the same.  When rounding, clear bits that would cause a
9505         second rounding in pack_d.
9506         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9507
9508 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9509
9510         PR c++/14425, c++/14426
9511         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9512         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9513         Change C++ definitions to accept a 'const int' argument;
9514         the prototypes already do.
9515         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9516         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9517         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9518         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9519         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9520         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9521         end in ..._int; change them to accept an int instead of a char
9522         as the last parameter.
9523
9524 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9525
9526         * genmultilib:  Change '=' to '-' when translating option names
9527         to directory names.
9528
9529 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9530
9531         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9532         stack slot for temp used for result of BLKmode but in integral mode.
9533
9534 2004-03-04  Jan Hubicka  <jh@suse.cz>
9535
9536         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9537
9538         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9539         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9540
9541 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9542
9543         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9544         * testsuite/gcc.dg/20040303-1.c: New test.
9545
9546 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9547
9548         * ppro.md: Rewrite as a DFA pipeline description.
9549         * i386.md: Remove all uses of the ppro_uops attribute.
9550         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9551         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9552         ix86_sched_reorder, ix86_variable_issue,
9553         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9554         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9555         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9556         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9557         * athlon.md (athlon_ssecmp_load): Fix comment
9558
9559 2004-03-04  Stuart Hastings  <stuart@apple.com>
9560
9561         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9562
9563 2004-03-04  Stuart Hastings  <stuart@apple.com>
9564
9565         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9566         686, tell Darwin assembler to allow prefetch insns, non-empty def
9567         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9568
9569 2004-03-04  DJ Delorie  <dj@redhat.com>
9570
9571         PR optimization/14282
9572         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9573         between a call and the assignment of its return value.
9574
9575 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9576
9577         * config/h8300/h8300.c: Put a comment for every function.
9578
9579 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9580
9581         * config/h8300/h8300.md: Add comments about peephole2's.
9582
9583 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9584
9585         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9586
9587 2004-03-04  Jan Hubicka  <jh@suse.cz>
9588
9589         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9590         * cselib.c (cselib_record_memory): New static variable.
9591         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9592         Give up on memories when asked for.
9593         (cselib_init): Accept new argument.
9594         * cselib.h (cselib_init): Update prototype.
9595         * gcse.c (local_cprop_pass): Update call of cselib_init.
9596         * loop.c (load_mems): Update call of cselib_init.
9597         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9598         * sched-deps.c (sched_analyze): Update call of cselib_init.
9599
9600 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9601             GP <gp@qnx.com>
9602
9603         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9604         when compiling PIC.
9605
9606 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9607
9608         PR/14362
9609         * var-tracking.c (track_expr_p): Do not track variables which
9610         should be ignored for debugging purposes.
9611
9612 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9613
9614         * real.c (encode_ibm_extended): Don't bother rounding low double.
9615         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9616         when fmt->pnan < fmt->p.
9617
9618 2004-03-04  Eric Christopher  <echristo@redhat.com>
9619
9620         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9621         only range of valid arg registers and fixed_regs.
9622
9623 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9624
9625         PR target/14406
9626         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9627         (abstf2, abstf2_internal): New define_expand.
9628
9629 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9630
9631         PR optimization/14235
9632         * expr.c (convert_move): Copy the source to a new pseudo
9633         when converting from a sub-word source to a larger-than-word
9634         register which conflicts with the source.
9635
9636 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9637
9638         PR 13728
9639         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9640         parameters with the same name, unless one is a forward decl.
9641         Do not issue a redundant-redeclaration warning for forward
9642         decls of parameters.
9643
9644 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9645
9646         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9647         configuration.
9648
9649 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9650
9651         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9652
9653 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9654
9655         * target-def.h (TARGET_OPTF): Delete.
9656         * c-opts.c (TARGET_OPTF): Define.
9657
9658 2004-03-04  Jan Hubicka  <jh@suse.cz>
9659
9660         * cselib.c (cselib_finish): Fix another miss-application of my previous
9661         patch.
9662
9663 2004-03-03  Mike Stump  <mrs@apple.com>
9664
9665         Add framework support for darwin.
9666
9667         * c-incpath.c: Include target.h and machmode.h.
9668         (add_path): Use a consistent style for cpp_dir.  Initialize
9669         p->construct to 0.
9670         (add_cpp_dir_path): New.
9671         (register_include_chains): Add use of extra_includes callback.
9672         (hook_void_int): Add.
9673         (target_c_incpath): Add.
9674         * c-incpath.h (add_cpp_dir_path): New.
9675         (target_c_incpath_s): Add.
9676         (target_c_incpath): Add.
9677         (C_INCPATH_INIT): Add.
9678         * c-opts.c (c_common_missing_argument,
9679         c_common_handle_option): Add -F argument processing.
9680         * c.opt: Add -F argument processing.
9681         * gcc.c (trad_capable_cpp): Add -F argument processing.
9682         * cppfiles.c (find_file_in_dir): Update to use construct
9683         callback.
9684         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9685         cpp_get_prev): New.
9686         (_cpp_find_file): Use search_path_exhausted.
9687         (make_cpp_dir): Initialize construct to 0.
9688         * cpplib.h (missing_header_cb
9689         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9690         (cpp_callbacks): Add missing_header
9691         (cpp_dir): Add construct.
9692         * target-def.h: (TARGET_OPTF): New.
9693         * hooks.c (hook_void_int, hook_void_charptr): Add.
9694         * hooks.h (hook_void_int, hook_void_charptr): Add.
9695         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9696         $(MACHMODE_H) dependencies.
9697         * doc/invoke.texi (Darwin Options): Document -F.
9698         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9699         (TARGET_OPTF): Add.
9700         * fix-header.c (target_c_incpath): Add.
9701
9702         * config/darwin-c.c: Add c-incpath.h include.
9703         (using_frameworks, find_subframework_file,
9704         find_subframework_header, add_system_framework_path,
9705         frameworks_in_use, num_frameworks, max_frameworks,
9706         add_framework, find_framework, struct framework_header,
9707         framework_header_dirs, framework_construct_pathname,
9708         find_subframework_file, add_system_framework_path,
9709         add_framework_path, framework_defaults,
9710         darwin_register_frameworks, find_subframework_header): Add.
9711         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9712         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9713         (CPP_SPEC): Add __APPLE_CC__ support.
9714         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9715
9716 2004-03-04  Jan Hubicka  <jh@suse.cz>
9717
9718         * cselib.c (cselib_finish): Fix miss-application of my previous
9719         patch.
9720
9721 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9722
9723         * hooks.c (hook_tree_tree_identity): New.
9724         * hooks.h: Add a prototype for hook_tree_tree_identity.
9725         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9726         instead of MD_ASM_CLOBBERS.
9727         * system.h (MD_ASM_CLOBBERS): Poison.
9728         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9729         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9730         * target.h (gcc_target): Add md_asm_clobbers.
9731         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9732         (ix86_md_asm_clobbers): New.
9733         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9734         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9735         TARGET_MD_ASM_CLOBBERS.
9736
9737 2004-03-03  Stuart Hastings  <stuart@apple.com>
9738
9739         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9740
9741 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9742
9743         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9744
9745         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9746         (ASM_DOUBLE): Likewise.
9747         (ASM_LONGDOUBLE): Likewise.
9748         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9749
9750 2003-03-03  Richard Henderson  <rth@redhat.com>
9751
9752         PR opt/13862
9753         * cselib.c (cselib_record_sets): Don't record multiple sets in
9754         asm insns.
9755
9756 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9757
9758         * common.opt: Add description of the new -fgcse-after-reload flag.
9759
9760         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9761
9762         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9763         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9764         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9765         get_bb_avail_insn, hash_scan_set_after_reload,
9766         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9767         gcse_after_reload, get_bb_avail_insn): New functions to implement
9768         gcse-after-reload.
9769         (gcse_after_reload_main): New function, the main entry point to
9770         gcse-after-reload.
9771
9772         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9773
9774         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9775
9776         * toplev.c (flag_gcse_after_reload): Initialization.
9777
9778         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9779
9780         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9781         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9782         the gcse after reload optimization.
9783
9784         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9785         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9786         parameters.
9787
9788         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9789
9790 2004-03-03  Nicolas Pitre <nico@cam.org>
9791
9792         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9793         small negative values.
9794
9795 2004-03-03  Jan Hubicka  <jh@suse.cz>
9796
9797         * cselib.c (hash_table):  Remove GTY marker.
9798         (reg_values): Turn into array.
9799         (used_regs): Likewise.
9800         (n_used_regs): New static variable.
9801         (reg_values_old): Kill.
9802         (clear_table): Update uses of arrays.
9803         (cselib_lookup): Likewise.
9804         (cselib_record_set): Likewise.
9805         (cselib_init): Likewise.
9806         (cselib_finish): Likewise.
9807         (cselib_udpate_varray_sizes): Kill.
9808         * cselib.h (cselib_update_varray_sizes): Kill.
9809
9810 2004-03-03  Paul Brook  <paul@codesourcery.com>
9811
9812         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9813
9814 2004-03-03  Jan Hubicka  <jh@suse.cz>
9815
9816         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9817         Rename from ...; make statistics transparent.
9818         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9819         (loc_descriptor): New structure.
9820         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9821         add_statistics):
9822         New static function.
9823         (ggc_record_overhead, dump_statistics): New global function.
9824         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9825         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9826         from ...; accept locations
9827         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9828         ggc_realloc, ggc_alloc_typed):  ... this one.
9829         from ...; accept locations
9830         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9831         ggc_alloc_stat): Rename from ... ; pass locations
9832         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9833         ... this one.
9834         (ggc_alloc_stat): Record overehead.
9835         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9836         ggc_realloc, ggc_alloc_typed):  Turn to macros
9837         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9838         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9839         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9840         * langhooks.h (lhd_make_node): Declare.
9841         (LANG_HOOKS_MAKE_TYPE): Default to new function,
9842         * langhooks.c (lhd_make_node): New.
9843         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9844         locations.
9845         (rtx_alloc, swallow_copy_rtx): ... this one.
9846         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9847         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9848         * toplpev.c (finalize): Dump stats.
9849         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9850         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9851         Rename from ... ; pass locators.
9852         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9853         build?,  build_decl): Declare.
9854         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9855         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9856         Declare.
9857         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9858         build?,  build_decl): New macros.
9859         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9860         * statistics.h: New file.
9861
9862 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9863             Richard Sandiford  <rsandifo@redhat.com>
9864
9865         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9866         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9867         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9868         * config/mips/mips.c (mips_output_division): Fill the branch delay
9869         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
9870         TARGET_FIX_R4400.
9871         (mips_output_division): Adjust accordingly.
9872         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9873         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9874
9875 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
9876
9877         * alias.c (rtx_equal_for_memref_p): Use predicates
9878         to test rtx classes and new rtx class codes, possibly
9879         splitting conditionals that tested against '<' and 'o'.
9880         * caller-save.c (save_call_clobbered_regs): Likewise.
9881         * combine.c (contains_muldiv, find_split_point, subst,
9882         combine_simplify_rtx, simplify_if_then_else,
9883         simplify_set, simplify_logical, expand_compound_operation,
9884         make_compound_operation, if_then_else_cond, known_cond,
9885         apply_distributive_law, cached_nonzero_bits,
9886         cached_num_sign_bit_copies, simplify_shift_const,
9887         gen_binary, simplify_comparison, update_table_tick,
9888         record_value_for_reg, get_lsat_value_validate): Likewise.
9889         * cse.c (mention_regs, find_best_addr, find_comparison_args,
9890         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9891         Likewise.
9892         * emit-rtl.c (copy_insn_1): Likewise.
9893         * expr.c (force_operand): Likewise.
9894         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9895         * flow.c (notice_stack_pointer_modification_1,
9896         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9897         and_reg_cond, elim_reg_cond): Likewise.
9898         * function.c (update_epilogue_consts): Likewise.
9899         * genattrtab.c (attr_rtx_1): Likewise.
9900         * genopinit.c (gen_insn): Likewise.
9901         * integrate.c (subst_constants): Likewise.
9902         * jump.c (reversed_comparison_code_parts,
9903         reversed_comparison_code, delete_related_insns,
9904         rtx_renumbered_equal_p): Likewise.
9905         * local-alloc.c (block_alloc): Likewise.
9906         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9907         canonicalize_condition): Likewise.
9908         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9909         Likewise.
9910         * optabs.c (add_equal_node, expand_binop): Likewise.
9911         * predict.c (estimate_probability): Likewise.
9912         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9913         * recog.c (validate_replace_rtx_1, comparison_operator,
9914         offsettable_address_p, constrain_operands): Likewise.
9915         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9916         Likewise.
9917         * regclass.c (scan_one_insn): Likewise.
9918         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9919         * regrename.c (kill_autoinc_value): Likewise.
9920         * reload.c (find_reusable_reload, find_reloads,
9921         reg_overlap_mentioned_for_reload_p): Likewise.
9922         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9923         * rtl.c (copy_rtx): Likewise.
9924         * rtl.h (CONSTANT_P, INSN_P): Likewise.
9925         * rtlanal.c (commutative_operand_precedence): Likewise.
9926         * sched-deps.c (conditions_mutex_p): Likewise.
9927         * sched-rgn.c (is_cfg_nonregular): Likewise.
9928         * simplify-rtx.c (simplify_gen_binary,
9929         simplify_gen_relational, simplify_replace_rtx,
9930         simplify_unary_operation, simplify_binary_operation,
9931         simplify_ternary_operation, simplify_rtx): Likewise.
9932         * unroll.c (reg_dead_after_loop): Likewise.
9933         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9934         print_operand): Likewise.
9935         * config/arc/arc.c (proper_comparison_operator): Likewise.
9936         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9937         Likewise.
9938         * config/avr/avr.c (_reg_unused_after): Likewise.
9939         * config/frv/frv.c (frv_ifcvt_modify_tests,
9940         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9941         * config/i386/i386.c (ix86_comparison_operator,
9942         ix86_carry_flag_operator, fcmov_comparison_operator,
9943         arith_or_logical_operator, print_operand,
9944         ix86_expand_binary_operator, ix86_binary_operator_ok):
9945         Likewise.
9946         * config/i386/i386.md: Likewise.
9947         * config/ia64/ia64.c (not_postinc_memory_operand,
9948         ia64_print_operand, update_set_flags, errata_emit_nops):
9949         Likewise.
9950         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9951         CONSTRAINT_OK_FOR_S): Likewise.
9952         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9953         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9954         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9955         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9956         Likewise.
9957         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9958         eqne_comparison_operator, signed_comparison_operator):
9959         Likewise.
9960         * config/mips/mips.c (cmp_op, symbolic_expression_p):
9961         Likewise.
9962         * config/mmix/mmix (mmix_foldable_comparison_operator,
9963         mmix_comparison_operator): Likewise.
9964         * config/pa/pa.c (hppa_legitimize_address): Likewise.
9965         * config/rs6000/rs6000.c (stmw_operation,
9966         branch_comparison_operator, trap_comparison_operator,
9967         ccr_bit): Likewise.
9968         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9969         * config/s390/s390.c (s390_alc_comparison,
9970         s390_slb_comparison):L Likewise.
9971         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9972         Likewise.
9973         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9974         noov_compare_op, noov_compare64_op, v9_regcmp_op,
9975         emit_hard_tfmode_operation, reg_unused_after)
9976         * doc/md.texi, doc/rtl.texi: Likewise.
9977
9978         * ra-debug.c: Add 2004 to list of copyright years.
9979         * unroll.c: Likewise.
9980
9981         * combine.c (simplify_logical): Remove dummy test,
9982         (apply_distributive_law): Fix typo in comment.
9983         GET_CODE (x) == AND so x is a commutative binary op.
9984         * jump.c (delete_related_insns): simplify loop
9985         condition, move testing of RTX codes inside the loop.
9986         (rtx_renumbered_equal_p): do not use RTX_CODE.
9987         * rtl.c (rtx_class): Declare as enum rtx_class.
9988         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9989         Move to RTX_COMM_COMPARE class.
9990         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9991         Move to RTX_CONST_OBJ class.
9992         * rtl.h (enum rtx_class): New declaration,
9993         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9994         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9995         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9996         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9997         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9998         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9999         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10000         OBJECT_P): New macros.
10001         * config/sparc/sparc.c (noov_compare_op): Remove register
10002         from parameter.
10003
10004 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10005
10006         * target.h: Remove texi jargons in comments.
10007
10008 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10009
10010         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10011         threshold to 0x4f.
10012
10013         Revert:
10014         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10015         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10016         as well.
10017         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10018         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10019
10020 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10021
10022         * doc/md.texi (cbranchmode4): New.
10023
10024 2004-03-02  Eric Christopher  <echristo@redhat.com>
10025
10026         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10027         fix_trunc.
10028         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10029         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10030         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10031         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10032
10033 2004-03-02  Richard Henderson  <rth@redhat.com>
10034
10035         PR middle-end/11767
10036         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10037         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10038         before the compare, if flag_non_call_exceptions.
10039
10040 2004-03-02  Richard Henderson  <rth@redhat.com>
10041
10042         PR middle-end/14327
10043         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10044         emitting the label, not after.
10045
10046 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10047
10048         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10049         (m68hc11_mov_addr_mode): Likewise.
10050         (m68hc11_override_options): Initialize them based on target.
10051         (register_indirect_p): Allow a MEM for indirect addressing modes and
10052         use flags to control what is allowed.
10053         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10054         supported addressing modes.
10055         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10056         (go_if_legitimate_address_internal): Likewise.
10057         (m68hc11_indirect_p): Likewise and check the mode.
10058         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10059
10060 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10061
10062         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10063         (expand_builtin_setjmp_setup): Use
10064         targetm.builtin_setjmp_frame_value instead of
10065         BUILTIN_SETJMP_FRAME_VALUE.
10066         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10067         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10068         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10069         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10070         * targhooks.c (default_builtin_setjmp_frame_value): New.
10071         * targhooks.h: Add a prototype for
10072         default_builtin_setjmp_frame_value.
10073         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10074         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10075
10076 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10077
10078         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10079         sequences of moves.
10080         (add peepholes): New peepholes to optimize sequences adding small
10081         constants.
10082         (bset peepholes): New peepholes to transform an OR in a bset form
10083         (bclr peepholes): Likewise for bclr form.
10084         (cmp peepholes): New peepholes to avoid register copies when comparing.
10085
10086 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10087
10088         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10089         to separate push from moves.
10090         ("*pushdf_internal"): Likewise.
10091         ("*pushsf_internal"): Likewise.
10092         ("*pushsi_internal"): Likewise.
10093         ("movdi_internal"): Use define_insn_and_split; non push operand.
10094         ("movdf_internal"): Likewise.
10095         ("movsf_internal"): Likewise.
10096         ("movsi_internal"): Likewise.
10097         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10098         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10099         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10100
10101 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10102
10103         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10104         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10105         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10106         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10107         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10108         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10109         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10110         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10111         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10112         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10113         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10114
10115 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10116
10117         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10118         (SOFT_XY_REGNUM): Define.
10119         (cmp split): Use the above instead of hard coded numbers.
10120         (8-bit op split): No need to check the mode; allow Q_REG.
10121         (ashift split): Adjust the first operand if it uses the SP and we
10122         are pushing the shifted value.
10123         (plus shift split): Fix when a source is in register D+X.
10124         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10125
10126 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10127
10128         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10129         comparing with Z register.
10130
10131 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10132
10133         * cfgloop.h (struct loop_desc): Removed.
10134         (struct loop): Fields simple, desc and has_desc removed.
10135         (simple_loop_p, count_loop_iterations): Declaration removed.
10136         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10137         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10138         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10139         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10140         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10141         simple_condition_p, simple_increment, count_strange_loop_iterations,
10142         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10143         Removed.
10144         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10145
10146 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10147
10148         * genattrtab.c: Don't handle MATCH_INSN.
10149         * genrecog.c: Likewise.
10150         * gensupport.c: Likewise.
10151         * rtl.def (match_insn): Remove.
10152         * doc/md.texi (match_insn, match_insn2): Remove.
10153
10154 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10155
10156         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10157         macro results in memory allocation.
10158
10159 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10160
10161         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10162         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10163         %(fbsd_dynamic_linker),
10164         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10165         config/i386/freebsd.h
10166         * config/arm/freebsd.h: Ditto.
10167         * config/i386/freebsd.h: Ditto.
10168         * config/i386/freebsd64.h: Ditto.
10169         * config/ia64/freebsd.h: Ditto.
10170         * config/rs6000/sysv4.h: Ditto.
10171         * config/sparc/freebsd.h: Ditto.
10172
10173 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10174
10175         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10176
10177 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10178
10179         * rtl.def (define_combine): Remove.
10180
10181 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10182
10183         * config/h8300/h8300.md: Tweak formatting.
10184
10185 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10186
10187         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10188         *cmphi_h8300_znvc.
10189         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10190
10191 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10192
10193         PR bootstrap/14356
10194         * gcc.c (process_command): Remove const-qualification from argv.
10195         (main): Likewise.
10196
10197 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10198
10199         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10200         pushqi1_h8300hs_advanced.  Adjust its caller.
10201         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10202         Adjust its caller.
10203
10204 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10205
10206         * Makefile.in (install-libgcc, install-multilib): Pass
10207         mkinstalldirs var to libgcc.mk.
10208
10209 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10210
10211         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10212         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10213
10214 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10215
10216         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10217         * config/h8300/h8300.md: Split several peephole2's, each into
10218         two.
10219
10220 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10221
10222         * dominance.c (recount_dominator): Handle postdominators.
10223
10224 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10225
10226         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10227         (NUM_SYMBOL_TYPES): Likewise.
10228         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10229         (mips_unspec_address): Declare.
10230         (mips_gotoff_page, mips_gotoff_global): Delete.
10231         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10232         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10233         (mips_symbolic_constant_p, mips_symbolic_address_p)
10234         (mips_symbol_insns): Handle new symbol types.
10235         (general_symbolic_operand): New predicate.
10236         (mips_unspec_address): Make extern.
10237         (mips_gotoff_page, mips_gotoff_global): Delete.
10238         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10239         Handle new symbol types.
10240         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10241         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10242         mips_unspec_address directly.
10243         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10244         the documentation of -mexplicit-relocs.
10245
10246 2004-03-01  Jeff Law  <law@redhat.com>
10247
10248         * fold-const.c (fold): An equality comparison of a non-weak object
10249         against zero has a known result.  Similarly an equality comparison
10250         of the address of two non-weak, unaliased symbols has a known result.
10251
10252         * ggc-page.c (struct page_entry): New field PREV.
10253         (ggc_alloc): Update PREV field appropriately.
10254         (sweep_pages): Likewise.
10255         (ggc_free): Likewise.  Use PREV field rather than loop to
10256         improve ggc_free performance.
10257
10258 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10259
10260         * config/mips/mips.c (mips_output_division): Use the division
10261         instruction to fill the delay slot of a zero check.
10262         (mips_idiv_insns): Adjust accordingly.
10263
10264 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10265
10266         * config.gcc: Create a default tmake_file for linux, and use
10267         it in all but two linux clauses.  Comment those two.
10268
10269 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10270
10271         * combine.c (try_combine):  Do not refer to is_replaced.
10272         (gen_lowpart_for_combine):  Perverse subregs now have a
10273         more politically correct name.
10274         * cse.c (cse_insn): Likewise.
10275         * jump.c: Fix bogus reference to delete_insn.
10276
10277 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10278
10279         PR debug/14328
10280         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10281         constants as signed values.
10282
10283         PR middle-end/13448
10284         * c-tree.h (readonly_warning): Rename to ...
10285         (readonly_error): ... this.
10286         * c-typeck.c (build_unary_op): Adjust accordingly.
10287         (readonly_warning): Rename to ...
10288         (readonly_error): ... this and issue errors, not warnings.
10289         (build_modify_expr): Call readonly_error, not readonly_warning.
10290         (c_expand_asm_operands): Likewise.
10291         * tree-inline.c (optimize_inline_calls): Do not inline functions
10292         after errors have occurred.
10293
10294 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10295
10296         * configure.ac: Rearrange some threading code for clarity;
10297         add section comment.
10298         * configure: Regenerate.
10299
10300 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10301
10302         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10303         typos.
10304         * doc/cppopts.texi: Fix a typo.
10305
10306 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10307
10308         * config/i386/i386.md: Fix formatting.
10309
10310 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10311
10312         * configure.ac: Add some comments delineating sections of code.
10313
10314         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10315
10316         * doc/install.texi: Fix idiot typo in previous commit.
10317
10318         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10319
10320 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10321
10322         * config/h8300/h8300.md: Add comments about peephole2's.
10323
10324 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10325
10326         * config/h8300/h8300.md: Tweak operand numbers of some
10327         peephole2's.
10328
10329 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10330
10331         * config/h8300/h8300.md: Tweak comments about peephole2's.
10332
10333 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10334
10335         PR middle-end/14203
10336         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10337         instead of testing whether DECL_RTL is not NULL.
10338
10339 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10340
10341         * config/sh/sh.c: Fix formatting.
10342
10343 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10344
10345         * config/sh/sh.c: Convert to ISO-C.
10346
10347 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10348
10349         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10350         my previous patch.
10351
10352         * config/darwin.h (machopic_finish): Output stub even if the
10353         symbol is already defined.
10354
10355 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10356
10357         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10358
10359 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10360
10361         * genattr.c (main): Don't define
10362         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10363         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10364         (DFA_PIPELINE_INTERFACE): Likewise.
10365         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10366         (DFA_PIPELINE_INTERFACE): Likewise.
10367
10368 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10369
10370         * config/mips/mips.md (tstsi, tstdi): Delete.
10371
10372 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10373
10374         * config/mips/mips.c (override_options): Remove an obsolete
10375         duplicate definition of the "e" constraint.
10376         * config/mips/mips.h: Update a comment accordingly.
10377
10378 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10379
10380         * config/mips/mips.md: Complete the unfinished R4000
10381         multiply/shift errata workaround.  Improve documentation.
10382         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10383         has a hilo hazard.
10384         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10385         (muldi3, muldi3_internal): Likewise.
10386         (muldi3_internal2): Remove, replacing with...
10387         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10388         (mulsidi3): Take the errata into account.
10389         (mulsidi3_32bit): Remove, replacing with...
10390         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10391         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10392         (umulsidi3): Take the errata into account.
10393         (umulsidi3_32bit): Remove, replacing with..
10394         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10395         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10396         TARGET_FIX_R4000.
10397         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10398         (smuldi3_highpart, umuldi3_highpart): Likewise.
10399         * doc/invoke.texi: Document the errata workaround.
10400
10401 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10402
10403         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10404         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10405         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10406         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10407         * config/mips/mips.c (mips_idiv_insns): New function.
10408         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10409         (mips_output_division): Add a workaround for the R4000 divide/shift
10410         errata.
10411         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10412         the length of an "idiv" instruction.
10413         * doc/invoke.texi: Document the new switches.
10414
10415 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10416
10417         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10418         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10419
10420 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10421
10422         PR optimization/14229
10423         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10424
10425 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10426
10427         * fold-const.c (fold): Strip NOPs that change the signedness
10428         for RSHIFT too.  Expand comment.
10429
10430 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10431
10432         PR optimization/7871
10433         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10434         from or to call insns.
10435
10436 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10437
10438         PR optimization/7871
10439         * flow.c (propagate_one_insn): Interpret calls as setting global
10440         registers, not merely clobbering them.
10441
10442 2004-02-27  Dale Johannesen  <dalej@apple.com>
10443
10444         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10445         config/darwin-protos.h:  Ditto.
10446         config/darwin.h:  Remove call to it.
10447         * combine.c (distribute_notes): Do not place a REG_DEAD note
10448         when value is both set and used.
10449
10450 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10451
10452         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10453         as well.
10454         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10455         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10456
10457 2004-02-27  Andrew Pinski  <apinski@apple.com>
10458
10459         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10460         Speedup common case of the type values being in the same order.
10461
10462 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10463
10464         * config/ia64/ia64.h (no-inline-float-divide): New option.
10465         * config/ia64/ia64.h (no-inline-int-divide): New option.
10466         * config/ia64/ia64.h (no-inline-sqrt): New option.
10467         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10468         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10469         * config/ia64/ia64.c (ia64_override_options): Modify error
10470         checking for inlined division/sqrt.
10471
10472 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10473
10474         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10475         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10476         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10477         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10478         copyright.
10479
10480 2004-02-27  Paul Brook  <paul@codesourcery.com>
10481
10482         * function.c (assign_parms): Don't count pretend args for alignment.
10483
10484 2004-02-27  Richard Henderson  <rth@redhat.com>
10485
10486         * passes.c: New file.
10487         * Makefile.in (OBJS-common): Add it.
10488         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10489         * flags.h (rtl_dump_and_exit): ... here.
10490         * output.h (size_directive_output, last_assemble_variable_decl):
10491         Move from toplev.c.
10492         * rtl.h (reg_alloc): Move from toplev.c.
10493         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10494         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10495         open_dump_file, close_dump_file, rest_of_decl_compilation,
10496         rest_of_type_compilation, rest_of_handle_final,
10497         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10498         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10499         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10500         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10501         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10502         rest_of_handle_tracer, rest_of_handle_if_conversion,
10503         rest_of_handle_if_after_combine, rest_of_handle_web,
10504         rest_of_handle_branch_prob,
10505         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10506         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10507         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10508         rest_of_handle_null_pointer, rest_of_handle_combine,
10509         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10510         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10511         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10512         (decode_d_option): Use enable_rtl_dump_file.
10513         (compile_file, finalize, do_compile): Move profile+combine+graph
10514         cleanup to finish_optimization_passes.
10515         * toplev.h (init_optimization_passes, finish_optimization_passes,
10516         enable_rtl_dump_file): Declare.
10517
10518 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10519             Roger Sayle  <roger@eyesopen.com>
10520
10521         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10522         operands to build a tree with swapped operands.
10523         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10524         'unsignedp' predicate to specify the signedness.
10525
10526 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10527
10528         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10529         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10530         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10531         comment typos and formatting.  Follow spelling conventions.
10532
10533 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10534
10535         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10536         fix_truncsfsi2.
10537
10538         * config/rs6000/spe.md: Delete spe_efsctuiz.
10539         Add spe_fixuns_truncsfsi2.
10540         Add spe_fix_truncsfsi2.
10541
10542 2004-02-26  Eric Christopher  <echristo@redhat.com>
10543
10544         * c-lex.c (c_lex_string_translate): New variable.
10545         (lex_string): Use to determine string translation.
10546         * c-pragma.h: Prototype.
10547         * c-parse.in (start_string_translation): New. Set above.
10548         (stop_string_translation): Ditto.
10549         (attribute, attribute_list, asm_def, asm_stmt,
10550         asm_operand): Use above functions.
10551         * cp/parser.c (cp_parser_declaration): Translate strings
10552         unless token is RID_EXTERN. Set c_lex_string_translate
10553         for recursive use.
10554         (cp_parser_asm_definition): Only translate argument strings
10555         to asms.
10556         (cp_parser_asm_operand_list): Ditto.
10557         (cp_parser_attribute_list): Do not translate attribute strings.
10558
10559 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10560
10561         * stmt.c (expand_start_case_dummy): Remove.
10562         * tree.h: Remove the corresponding prototype.
10563
10564 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10565
10566         * builtins.c (apply_args_register_offset): Remove.
10567         * tree.h: Remove the corresponding prototype.
10568
10569 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10570
10571         * stor-layout.c (is_pending_size): Remove.
10572         * tree.h: Remove the corresponding prototype.
10573
10574 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10575
10576         * recog.c (validate_replace_src): Remove.
10577         * recog.h: Remove the corresponding prototype.
10578
10579 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10580
10581         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10582         MAYBE_REG_PARM_STACK_SPACE.
10583         * function.c: Likewise.
10584         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10585         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10586         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10587         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10588
10589 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10590
10591         * c-decl.c (c_expand_deferred_function): Remove.
10592         * c-tree.h: Remove the corresponding prototype.
10593
10594 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10595
10596         * postreload.c (reload_cse_move2add): Generate just a PLUS
10597         instead of an entire SET.
10598
10599 2004-02-26  Jan Hubicka  <jh@suse.cz>
10600
10601         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10602         /pentium4m.
10603         * i386.c (override_options): Add support for new CPUs.
10604         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10605         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10606         constants.
10607         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10608
10609 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10610
10611         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10612
10613 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10614
10615         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10616         (sparc_emit_fixunsdi): New prototype.
10617         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10618         (sparc_emit_fixunsdi): New function.
10619         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10620         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10621         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10622         to sparc_emit_floatunsdi.
10623         (fixuns_truncsfdi2): New expander.
10624         (fixuns_truncdfdi2): Likewise.
10625
10626 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10627
10628         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10629         unless HAVE_cc0.
10630
10631 2004-02-25  Richard Henderson  <rth@redhat.com>
10632
10633         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10634         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10635         use (op0-op1) == 0 if op0 is a pointer.
10636         * config/alpha/alpha.md (cmpdi): Use some_operand.
10637         (three comparison combine splits): Remove.
10638
10639 2004-02-25  Richard Henderson  <rth@redhat.com>
10640
10641         PR c/12794
10642         * c-common.c (handle_alias_attribute): Reject the attribute if
10643         current_function_decl is set.
10644
10645 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10646
10647         * config.gcc: Add comment describing extra_gcc_objs.
10648         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10649         * configure.ac (extra_gcc_objs): New substitution variable.
10650         (host_extra_gcc_objs): Don't substitute.
10651         * configure: Regenerate.
10652         * Makefile.in: Use extra_gcc_objs.
10653
10654 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10655
10656         * doc/contrib.texi: Add an entry for myself.
10657
10658 2004-02-25  Jan Hubicka  <jh@suse.cz>
10659
10660         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10661         * cfgbuild.c (make_eh_edge):  Make global.
10662         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10663         * except.c (build_post_landing_pads, connect_post_landing_pads,
10664         dw2_build_landing_pads, sjlj_emit_function_enter,
10665         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10666         sjlj_build_landing_pads): Update CFG.
10667         (emit_to_new_bb_before): New function.
10668         (finish_eh_generation): Do not rebuild the CFG.
10669
10670 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10671
10672         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10673         target_cpu_default defines.
10674         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10675         * pa.h (TARGET_DEFAULT): Likewise.
10676
10677 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10678
10679         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10680         comparisons with regard to signedness.
10681
10682 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10683
10684         * arm.c (thumb_legitimize_address): New function.
10685         * arm-protos.h: Prototype it.
10686         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10687         (LEGITIMIZE_ADDRESS): Use it.
10688
10689 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10690
10691         * reload1.c (reload): Only spill eliminable register with multiple
10692         adjacent elimination alternatives if all alternatives fail.
10693
10694 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10695
10696         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10697         is -4095...+4095 inclusive.
10698
10699 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10700
10701         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10702         the bootstrap failure with Sun CC 5.4 and 5.5.
10703
10704 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10705
10706         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10707         which modifies NEWREG.
10708         (cse_condition_code_reg): Update the mode of CC_REG in
10709         CC_SRC_INSN on our own.
10710
10711 2004-02-24  Michael Matz  <matz@suse.de>
10712
10713         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10714         regparm attributes.
10715
10716 2004-02-24  Richard Henderson  <rth@redhat.com>
10717
10718         * toplev.c (dump_file_tbl): Rename from dump_file.
10719         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10720         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10721         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10722         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10723         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10724         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10725         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10726         s/rtl_dump_file/dump_file/g.
10727
10728 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10729
10730         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10731         (spe_fixuns_truncsfsi2): Delete.
10732
10733         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10734         (fixuns_truncsfsi2): Delete.
10735
10736 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10737
10738         PR/14240
10739         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10740
10741 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10742
10743         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10744
10745 2004-02-24  Jason Merrill  <jason@redhat.com>
10746
10747         * tree.c (check_qualified_type): New fn.
10748         (get_qualified_type): Use it.  If type already has the desired
10749         quals, just return it.
10750         * tree.h: Declare it.
10751
10752 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10753
10754         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10755         TARGET_SCHED_FINISH_GLOBAL): New macros.
10756
10757         * target.h (md_init_global, md_finish_global): Function
10758         declarations corresponding to new target macros.
10759
10760         * haifa-sched.c (sched_init, sched_finish): Allow target to
10761         call the new schedular hooks.
10762
10763         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10764         call to update_life_info.
10765
10766         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10767         flag_schedule_insns for SH4.
10768
10769         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10770         find_set_regmode_weight, find_insn_regmode_weight,
10771         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10772         sh_variable_issue, high_pressure, ready_reorder,
10773         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10774         functions used to throttle the insn movement in first
10775         scheduling pass for SH.
10776
10777         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10778         TARGET_SCHED_FINISH_GLOBAL.
10779
10780 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10781
10782         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10783         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10784         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10785         symbols in sections named by the user.
10786         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10787         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10788         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10789         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10790         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10791         the above.
10792         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10793         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10794         one more pseudo to further improve code generation.
10795         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10796         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10797         inside UNSPEC.
10798         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10799         * config/frv/frv.c (frv_legitimate_address_p): Added
10800         allow_double_reg_p argument.  Adjust all callers.  Use it to
10801         decide whether to enable double-register indirect addressing.
10802         (frv_funcdesc_alias_set): Remove.
10803         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10804         register.  Emit movdi_ldd.
10805         (ldd_address_operand): New.
10806         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10807         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10808         (PREDICATE_CODES): Add ldd_address_operand.
10809         * config/frv/frv.md (movdi_ldd): New.
10810         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10811         intermediate computations if possible.
10812         (symGOTOFF2reg_i): Fix harmless typo.
10813         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10814         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10815         relocated p_vaddr to vaddr type.
10816         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10817         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10818         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10819         MEM, or use a funcdesc alias set.  Use regular move instead of
10820         ldd.
10821         (dbl_memory_one_insn_operand): Recognize function descriptors by
10822         type or by alias set, and don't split them.
10823         * config/frv/frv.md (call, call_value): Never use call_internal
10824         for fdpic.
10825         (call_internal, call_value_internal): Never match for FDPIC.
10826         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10827         call_value_fdpicsi): Require FDPIC.
10828         (ldd): Removed.
10829         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
10830         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10831         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10832         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10833         FDPIC.  Compute data base address.
10834         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10835         before the other self-specs are processed.
10836         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10837         Build with -fPIC.
10838         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
10839         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10840         inhibit_libc is defined.
10841         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
10842         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10843         __FRV_FDPIC__.
10844         (__RELOC_POINTER): Define.
10845         (_Unwind_IteratePhdrCallback): Use it.
10846         * config/frv/frv.h (Twrite): Define.
10847         (TRANSFER_FROM_TRAMPOLINE): Use it.
10848         * config/frv/linux.h (INVOKE__main): Undefine.
10849         (Twrite): Override.
10850         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
10851         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10852         (-mlibrary-pic): Emphasize that this option generates EABI code.
10853         (-mcpu): Add fr550.
10854         (-mpack): Remove.
10855         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
10856         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10857         and CONSTs in FDPIC mode.
10858         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10859         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10860         * config/frv/frv.c (move_source_operand): Don't accept symbolic
10861         constants.
10862         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10863         rather than 'i' constraint for the 2-instruction alternative.
10864         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10865         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10866         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10867         EXTRA_CONSTRAINT_FOR_Y.
10868         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10869         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10870         (addsi3): Change 'Y' constraint to 'Q'.
10871         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
10872         * reload.c (CONST_POOL_OK_P): New macro.
10873         (find_reloads): Use it to decide whether a constant can be forced
10874         into memory.
10875         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10876         constant satisfies got12_operand.
10877         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10878         (frv_legitimate_address_p): Check for valid unspec offsets using
10879         got12_operand rather than frv_legitimate_fdpic_operand_p.
10880         (frv_legitimate_fdpic_operand_p): Delete.
10881         (frv_emit_movsi): Abort if we try to use the FDPIC register during
10882         or after reload.
10883         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10884         TARGET_FDPIC.
10885         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10886         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
10887         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10888         (frv_fdpic_fptr_operand): Don't declare here.
10889         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10890         rather than fdpic_got12_operand.
10891         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
10892         got12_operand and const_unspec_operand.
10893         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10894         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10895         (symbolic_operand): Remove.
10896         (const_unspec_operand): New predicate.
10897         * config/frv/frv.md (*movsi_got): Use got12_operand.
10898         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10899         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
10900         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10901         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10902         * config/frv/frv.c (frv_unspec): New structure.
10903         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10904         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10905         validate CONST indices.  Use frv_output_const_unspec to print them.
10906         (frv_print_operand): Update call to unspec_got_name.  Use
10907         frv_output_const_unspec to print constant unspecs.
10908         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10909         Reject UNSPECs otherwise.
10910         (unspec_got_name): Take the relocation number as argument, not an
10911         rtx containing it.
10912         (frv_output_addr_const_extra): Remove, replacing with...
10913         (frv_output_const_unspec): ...this new function.
10914         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10915         (gpr_or_int12_operand): Use fdpic_got12_operand.
10916         (dbl_memory_one_insn_operand): Likewise.
10917         (fdpic_got12_operand): Use frv_const_unspec_p.
10918         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10919         are already legitimate.  Use frv_small_data_reloc_p when deciding
10920         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10921         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
10922         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10923         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
10924         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10925         label, for real this time.
10926         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10927         representation of visibility.
10928         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10929         such.
10930         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
10931         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10932         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10933         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10934         it was explicitly disabled.
10935         (frv_stack_info): There is no need to save the link register in every
10936         frame unless TARGET_LINKED_FP is true.
10937         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10938         frame pointer if the stack pointer might change value.
10939         (frv_return_addr_rtx): Check and process "count" argument.
10940         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
10941         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10942         (frv_find_base_term): Declare.
10943         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10944         (FIND_BASE_TERM): Define.
10945         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10946         small_data_register_operand, small_data_symbolic_operand.  Add
10947         symbolic_operand.
10948         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10949         (frv_print_operand_memory_reference, output_move_single): Remove
10950         special handling for unlegitimized sdata addresses.
10951         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10952         and symbolic addresses.
10953         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10954         (frv_find_base_term): New function.
10955         (int_2word_operand): Check specifically for symbolic address constants.
10956         (pic_register_operand, pic_symbolic_operand): Delete.
10957         (small_data_register_operand, small_data_symbolic_operand): Delete.
10958         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10959         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10960         (move_source_operand): Only accept CONSTs if they're a two-insn
10961         symbolic constant.
10962         (fdpic_got12_operand): Don't require TARGET_FDPIC.
10963         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10964         using gen_symGOTOFF2reg*.
10965         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10966         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
10967         themselves a cost of 3 insns.
10968         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10969         Change predicate to symbolic_operand.
10970         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10971         (*movsi_lda_sdata): Delete.
10972         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10973         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
10974         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10975         frv-*-*linux*.
10976         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10977         label.
10978         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10979         -multilib-library-pic.
10980         (LINK_SPEC): Add -z text for -mfdpic.
10981         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10982         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10983         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10984         Override.
10985         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10986         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10987         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10988         crtstuff-generated files.
10989         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
10990         * config.gcc: Add frv-*-*linux*.
10991         * config/frv/linux.h, config/frv/t-linux: New.
10992         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
10993         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10994         when -mfdpic even if a linker script is explicitly listed.
10995         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10996         * config/frv/frv.c (frv_override_options): Clear asm_out
10997         unaligned_op for SImode on FDPIC.
10998         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10999         argument passed to decl_readonly_section.
11000         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11001         whole block run with FDPIC even with -fno-PIC.
11002         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11003         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11004         symbol or label plus offset to memory.
11005         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11006         GOTOFF and GPREL for LABEL_REF.
11007         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11008         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11009         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11010         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11011         * doc/invoke.texi: Document them.
11012         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11013         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11014         (frv_splittable_got_operand): Removed.
11015         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11016         LO_SUM.  Add comments.
11017         (frv_override_options): Moved enabling of FDPIC to
11018         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11019         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11020         (frv_legitimize_fdpic_address): Don't duplicate logic in
11021         frv_emit_movsi.
11022         (frv_gen_GPsym2reg): New.
11023         (unspec_got_name): Added gprel.
11024         (frv_expand_fdpic_call): Add support for inlining PLTs.
11025         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11026         (gpr_or_int12_operand): Added GPREL12.
11027         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11028         (small_data_symbolic_operand): Fail if FDPIC.
11029         (fdpic_splittable_got_operand): Removed.
11030         (fdpic_got12_operand): Added GPREL12.
11031         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11032         when appropriate.  Fix sdata GOTOFF.
11033         (frv_legitimate_constant_p): Require legitimate PIC operand for
11034         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11035         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11036         flag_pic case.
11037         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11038         frv_assemble_integer fails.
11039         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11040         (SUBTARGET_DRIVER_SELF_SPECS): New.
11041         (ASM_SPEC): Don't pass -mno-fdpic.
11042         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11043         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11044         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11045         -multilib-library-pic.
11046         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11047         condexec_si_media_operator, condexec_sf_add_operator and
11048         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11049         and condexec_sf_unary_operator.
11050         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11051         New.
11052         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11053         movsi_internal.  Give them internal names.  movsi_got has type
11054         int.
11055         (fdpic got splitters): Remove.
11056         (symGPREL2reg, symGPREL2reg_hilo): New.
11057         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11058         to -mlibrary-pic.  Map -multilib-library-pic to it.
11059         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11060         Document.
11061         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11062         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11063         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11064         (frv_cannot_force_const_mem): New function.
11065         (const_small_data_p, plus_small_data_p): Update comments on sdata
11066         on FDPIC.
11067         (frv_override_options): Set flag_pie for FDPIC too.
11068         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11069         call-saved registers on FDPIC.
11070         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11071         don't force LR to be preserved.
11072         (frv_expand_prologue): Likewise.
11073         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11074         (frv_frame_pointer_required): Don't force it just because the
11075         FDPIC register is used.
11076         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11077         operand only if !condexec_p.
11078         (frv_legitimize_address): Return the FDPIC-legitimized address.
11079         Don't match small data here on FDPIC.
11080         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11081         symbols.  Use TRUE/FALSE instead of 1/0.
11082         (frv_local_funcdesc_p): New.
11083         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11084         immediates when possible.
11085         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11086         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11087         an UNSPEC_GOT.
11088         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11089         12-bit immediates when possible.
11090         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11091         are not legitimate pic operands.
11092         (frv_in_small_data_p): Re-enable for FDPIC.
11093         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11094         (FRV_GLOBAL_P): Removed.
11095         * config/frv/frv.md: Add modes to CONSTs.
11096         (movsi_got): New.
11097         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11098         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11099         (fdpic splittable operations): Match on flag_pic != 1.
11100         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11101         * config/frv/frv.c (frv_asm_out_constructor,
11102         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11103         bytes, not bits.
11104         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11105         * config/frv/frv.c (frv_assemble_integer): Reject complex
11106         expressions referencing function SYMBOL_REFs.
11107         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11108         (move_source_operand): Reject CONSTs that reference function
11109         SYMBOL_REFs on FDPIC.
11110         (frv_emit_movsi): If we get such a CONST, break it up.
11111         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11112         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11113         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11114         MEM.
11115         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11116         (frv_trampoline_size): Increase for FDPIC.
11117         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11118         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11119         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11120         Disable use of GOTOFF for now.
11121         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11122         Disable use of small data in FDPIC for now.
11123         (frv_asm_output_mi_thunk): Implement for FDPIC.
11124         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11125         * config/frv/frv.c (frv_asm_out_constructor): Use
11126         frv_assemble_integer for FDPIC pointers.
11127         (frv_asm_out_destructor): Likewise.
11128         * config/frv/frv.md (ldd): Fix order of operands.  Use
11129         address_operand for input.
11130         2003-09-18  DJ Delorie  <dj@redhat.com>
11131         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11132         (unspec_got_name): Correct typo.
11133         (frv_emit_movsi): Pre-expand splittable GOTs.
11134         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11135         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11136         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11137         * config/frv/t-frv: Add -mfdpic multilibs.
11138         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11139         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11140         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11141         flag_pic, default to 32-bit pics, require DWORD ops.
11142         (frv_override_options): Add W and Z constraints.
11143         (frv_expand_prologue): No pic prologue for -mfdpic.
11144         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11145         (frv_print_operand_memory_reference): Handle GOT constants.
11146         (frv_legitimate_address_p): Allow GOT constants.
11147         (frv_legitimize_address): Handle GOT addresses too.
11148         (frv_legitimate_fdpic_operand_p): New.
11149         (frv_legitimize_fdpic_address): New.
11150         (unspec_got_name): New.
11151         (frv_output_addr_const_extra): New.
11152         (frv_expand_fdpic_call): New.
11153         (frv_fdpic_fptr_operand): New.
11154         (gpr_or_int12_operand): Handle GOT operands.
11155         (int_2word_operand): Handle GOT operands.
11156         (fdpic_operand): New.
11157         (fdpic_splittable_got_operand): New.
11158         (fdpic_got12_operand): New.
11159         (frv_emit_movsi): Handle GOT operands.
11160         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11161         (frv_print_operand): Support 'g' code for GOT operands.
11162         * config/frv/frv-protos.h: Add prototypes as needed.
11163         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11164         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11165         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11166         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11167         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11168         R_FRV_GOTOFFLO): New.
11169         (movsi_high_got, movsi_lo_sum_got): New.
11170         (*movsi_pic): Don't use this splitter for -mfdpic.
11171         (addsi3): Allow GOT references also.
11172         (call, call_value): Handle -mfdpic separately.
11173         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11174         call_value_fdpicsi): New.
11175         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11176         symGOTOFF2reg_i): New.
11177         * config/frv/frv.h (MASK_FDPIC): New.
11178         (TARGET_FDPIC): New.
11179         (TARGET_SWITCHES): Add -mfdpic.
11180         (FDPIC_FPTR_REGNO): New.
11181         (FDPIC_REGNO): New.
11182         (OUR_FDPIC_REG): New.
11183         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11184         FDPIC_CALL_REGS.
11185         (REG_CLASS_NAMES): Likewise.
11186         (REG_CLASS_CONTENTS): Likewise.
11187         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11188         (EXTRA_CONSTRAINT): Add it here.
11189         (FRV_GLOBAL_P): New.
11190         (OUTPUT_ADDR_CONST_EXTRA): New.
11191
11192 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11193
11194         * config/sparc/sparc.h: Remove commented-out definitions of
11195         TARGET_EDOM and GEN_ERRNO_RTX.
11196
11197 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11198
11199         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11200         df_analyse with df_analyze.
11201
11202 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11203
11204         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11205         beginning of block.
11206
11207 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11208
11209         * calls.c (precompute_arguments): Update comment.
11210
11211 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11212
11213         * et-forest.c: Replace et_occurences with et_occurrences.
11214
11215 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11216
11217         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11218         with iv_analyze.
11219
11220 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11221
11222         * config/i386/i386.c: Rename pni to sse3.
11223         * config/i386/i386.h: Likewise.
11224         * config/i386/i386.md: Likewise.
11225         * config/i386/pmmintrin.h: Likewise.
11226         * doc/extend.texi: Likewise.
11227         * doc/invoke.texi: Likewise.
11228
11229 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11230             Kazu Hirata  <kazu@cs.umass.edu>
11231
11232         Remove -fwritable-strings.
11233         * c-common.c (fix_string_type): Don't check
11234         flag_writable_strings.
11235         (fix_string_type): Likewise.
11236         * c-opts.c (set_std_c89): Don't initialize
11237         flag_writable_strings.
11238         (set_std_c99): Likewise.
11239         * common.opt (fwritable-strings): Remove.
11240         * flags.h: Remove the external declaration of
11241         flag_writable_strings.
11242         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11243         Remove.
11244         * toplev.c (flag_writable_strings): Remove.
11245         (f_options): Remove an entry for writable-strings.
11246         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11247         flag_writable_strings.
11248         (compare_constant) <STRING_CST>: Likewise.
11249         (build_constant_desc): Likewise.
11250         * config/darwin.c (machopic_select_section): Likewise.
11251         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11252         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11253         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11254         * config/mips/mips.c (mips_select_section): Likewise.
11255         (mips_encode_section_info): Likewise.
11256         * config/pa/pa.c (pa_select_section): Likewise.
11257         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11258         * config/v850/v850.c (v850_select_section): Likewise.
11259         * doc/invoke.texi (-fwritable-strings): Remove.
11260         (-fno-const-strings): Don't mention -fwritable-strings.
11261         * doc/trouble.texi: Don't mention -fwritable-strings.
11262
11263 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11264
11265         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11266
11267 2004-02-23  Dale Johannesen  <dalej@apple.com>
11268
11269         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11270         (movdf_hardfloat64):  Ditto.
11271         (movdf_softfloat64):  Ditto.
11272
11273 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11274         * config/rs6000/rs6000.c (function_arg): call to
11275         rs6000_mixed_function_arg for DFmode moved to allow
11276         normal DFmode incoming register assignment.
11277
11278 2004-02-23  Dale Johannesen  <dalej@apple.com>
11279
11280         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11281         (movdf_hardfloat64):  Ditto.
11282
11283 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11284
11285         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11286         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11287         copyright.
11288
11289 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11290
11291         PR c/14156
11292         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11293         to use DECL_P instead.
11294
11295         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11296         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11297
11298 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11299
11300         * Makefile.in (opts.o): Depend on target.h.
11301         * opts.c (decode_options): Use targetm.default_short_enums
11302         instead of DEFAULT_SHORT_ENUMS.
11303         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11304         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11305         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11306         * target.h (gcc_target): Add default_short_enums.
11307         * config/cris/cris.h: Remove a comment about
11308         DEFAULT_SHORT_ENUMS.
11309         * config/ip2k/ip2k.h: Likewise.
11310         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11311         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11312
11313 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11314             Falk Hueffner  <falk@debian.org>
11315
11316         PR c/14188
11317         * builtins.c (expand_builtin_va_arg): Emit an informative message
11318         if a trap is generated.
11319         * c-typeck.c (build_function_call): Likewise.
11320
11321 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11322
11323         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11324         fopen.
11325         * libgcov.c: Include sys/stat.h.
11326         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11327         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11328         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11329         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11330
11331 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11332
11333         * reorg.c: Remove comments about dead ports.
11334
11335 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11336
11337         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11338         extra host object file when targetting cygwin rather than generic
11339         object files.
11340
11341 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11342
11343         Merge from tree-ssa:
11344         2003-11-20  Richard Henderson  <rth@redhat.com>
11345
11346                 * tree-inline.c (insert_decl_map): New.
11347                 (remap_decl, remap_type, remap_block, copy_body_r,
11348                 initialize_inlined_parameters, declare_return_variable,
11349                 remap_save_expr): Use it.
11350
11351         * function.c (copy_body_r): Add mapping from id->ret_label to
11352         id->ret_label.  Revert test for ret_label.
11353
11354 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11355
11356         * genoutput.c (process_template): Strip trailing whitespace in @
11357         templates and issue a warning if there was any.
11358
11359 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11360
11361         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11362         object file when targetting cygwin.
11363         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11364         overridden by top-level Makefile.
11365
11366 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11367
11368         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11369         the x87's load constant instructions when optimizing for size.
11370
11371 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11372
11373         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11374         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11375         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11376         * fold-const.c: Likewise.
11377         * simplify-rtx.c: Likewise.
11378
11379 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11380
11381         * combine.c (can_combine_p): Don't ignore SETs marked with
11382         REG_EH_REGION notes.
11383         (try_combine): When attemting to fix unrecognized insns, don't
11384         split a PARALLEL that contains the original i2.
11385
11386 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11387
11388         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11389         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11390         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11391         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11392         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11393         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11394         portion of header.
11395         (__altivec_link_error_invalid_argument): Remove prototype; will use
11396         __builtin_altivec_compiletime_error("vec_*") instead.
11397         (vec_*): Fix/complete set of available operation overloads given the
11398         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11399         cv-correctness of pointer arguments; in C, always check for correct
11400         argument types before macro expansion.
11401         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11402         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11403         '-W[no-]altivec-long-deprecated' switches.
11404         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11405         '__vector', '__pixel' and '__bool' macros using
11406         '__attribute__((altivec(...)))' types.
11407         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11408         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11409         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11410         New type nodes.
11411         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11412         handling '-W[no-]altivec-long-deprecated'.
11413         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11414         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11415         altivec_expand_dst_builtin): Remove casts from integer literals.
11416         (altivec_expand_builtin): Likewise; handle expansion of new
11417         '__builtin_altivec_compiletime_error' function.
11418         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11419         types, and make them distinct from other vector types; register
11420         '__builtin_altivec_compiletime_error' function.
11421         (print_operand): For 'P', print a full target register name instead of
11422         merely its number.
11423         (rs6000_attribute_table): Add "altivec" attribute.
11424         (rs6000_handle_altivec_attribute): New function.
11425         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11426         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11427         maps to).
11428         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11429         declare.
11430         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11431
11432 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11433
11434         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11435         check.
11436         (shift_mix4left+2): Delete redundant pattern.
11437
11438 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11439
11440         * alias.c (OUTGOING_REGNO): Don't define the default.
11441         * builtins.c (OUTGOING_REGNO): Likewise.
11442         (INCOMING_REGNO): Likewise.
11443         (apply_args_register_offset): Always use OUTGOING_REGNO.
11444         * combine.c (OUTGOING_REGNO): Likewise.
11445         * sibcall.c (OUTGOING_REGNO): Likewise.
11446         * defaults.h (INCOMING_REGNO): Provide the default.
11447         (OUTGOING_REGNO): Likewise.
11448
11449 2004-02-21  Jan Hubicka  <jh@suse.cz>
11450
11451         * params.def (max-peeled-insns, max-completely-peeled-insns,
11452         max-once-peeled-insns): Set to 400.
11453
11454 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11455
11456         PR c++/12007
11457         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11458         are set for parameters before outputing debugging information.
11459
11460 2004-02-20  Falk Hueffner  <falk@debian.org>
11461
11462         PR target/14201
11463         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11464         numbers.
11465
11466 2004-02-20  Per Bothner  <per@bothner.com>
11467
11468         * input.h:  Don't #include line-map.h.  It may cause link problems
11469         with undefined linemap_line_start when line-map.h is included but
11470         line-map.o is not linked, as currently happens with gengtype on
11471         compilers that don't support inline.
11472         * toplev.c:  So we do have to explicitly #include line-map.h here.
11473
11474 2004-02-20  Richard Henderson  <rth@redhat.com>
11475
11476         * doc/invoke.texi: Add -Wvariadic-macros.
11477
11478 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11479
11480         * haifa-sched.c (sched_emit_insn): Remove.
11481         * sched-int.h: Remove the corresponding prototype.
11482
11483 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11484
11485         Revert:
11486         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11487         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11488         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11489         * config/cris/cris.h: Remove a comment about
11490         DEFAULT_SHORT_ENUMS.
11491         * config/ip2k/ip2k.h: Likewise.
11492         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11493
11494 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11495             Tom Tromey  <tromey@redhat.com>
11496
11497         * doc/install.texi: Moved --disable-libgcj and
11498         --with-system-zlib documentation to new section for
11499         Java-specific options.
11500         Added explicit Cross-Compiler-Specific Options subheading.
11501         Added section for Java-specific options.
11502
11503 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11504
11505         * doc/install.texi (Building the Ada compiler): Remove
11506         example.
11507
11508 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11509
11510         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11511
11512 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11513
11514         * gcc.c (process_command): Allow translation of the copyright
11515         symbol but not the rest of the copyright message.
11516         * gcov.c (print_version): Likewise.  Allow translation of the
11517         message about warranty.
11518
11519 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11520
11521         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11522         predicate.
11523         ("*andsi_clear"): Tweak constraints to not match postincrement.
11524         Adjust the predicate to exclude a volatile memory reference.
11525         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11526         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11527
11528 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11529
11530         * move-if-change: Remove.
11531         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11532         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11533         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11534         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11535         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11536         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11537
11538 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11539
11540         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11541         for operand2.  Add condition that requires register_operand operand2
11542         before reload.
11543
11544 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11545             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11546
11547         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11548         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11549
11550 2004-02-19  Richard Henderson  <rth@redhat.com>
11551
11552         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11553         * tree.c (build0, build1, build2, build3, build4): Split out from...
11554         (build): ... here.  Call them.
11555         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11556
11557         * convert.c (convert_to_integer): Remove extra build argument.
11558         * tree-inline.c (expand_call_inline): Likewise.
11559
11560 2004-02-19  Richard Henderson  <rth@redhat.com>
11561
11562         * c-opts.c (warn_variadic_macros): New.
11563         (c_common_handle_option): Set it.
11564         (sanitize_cpp_opts): Copy it to cpp_opts.
11565         * c.opt (Wvariadic-macros): New.
11566         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11567         * cppinit.c (cpp_create_reader): Initialize it.
11568         * cppmacro.c (parse_params): Check it.
11569
11570 2004-02-19  David Daney <ddaney@avtrex.com>
11571
11572         PR preprocessor/14198
11573         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11574         builtin_assert ("machine=mips")
11575
11576 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11577
11578         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11579         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11580         * config/cris/cris.h: Remove a comment about
11581         DEFAULT_SHORT_ENUMS.
11582         * config/ip2k/ip2k.h: Likewise.
11583         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11584
11585 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11586
11587         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11588         when passing single SFmode quantities in general registers,
11589         put them in the high half.
11590
11591 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11592
11593         * doc/md.texi (Standard Names): Document additional dependency on
11594         fix pattern.
11595
11596         * optabs.c (ftruncify): Remove.
11597         (expand_fix): Manually inline ftruncify above.
11598         (can_fix_p): Add FIXME note.
11599
11600 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11601
11602         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11603         spe_fixuns_truncsfsi2.
11604
11605         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11606         fixuns_truncsfsi2.
11607
11608 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11609
11610         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11611         * testsuite/gcc.dg/20040219-1.c: New test.
11612
11613 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11614
11615         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11616         "*subsf3_cconly"): Subtraction is not commutative.
11617
11618 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11619
11620         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11621         (sdbout_symbol): If called before sdbout_init, queue DECL for
11622         later and return.
11623         (sdbout_init): Set sdbout_initialized true, process decls
11624         queued earlier by sdbout_symbol.
11625         (sdbout_finish): Use size_t for index variable.
11626
11627 2004-02-19  Jeff Law  <law@redhat.com>
11628
11629         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11630         for unordered comparison codes.
11631
11632 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11633
11634         * reload1.c (reload): Correct comment.
11635         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11636         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11637         register variables are not used by reload.
11638
11639 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11640
11641         PR target/14209
11642         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11643         constraints to not match postincrement.  Adjust the predicate to
11644         exclude a volatile memory reference.
11645
11646 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11647
11648         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11649
11650 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11651
11652         * hooks.c (hook_void_tree_int): Remove.
11653         (hook_void_constcharptr): Likewise.
11654         (hook_int_void_0): Likewise.
11655         * hooks.h: Remove the prototypes for the above three
11656         functions.
11657         * targhooks.c (hook_bool_machine_mode_true): Remove.
11658         * targhooks.h: Remove the prototype for
11659         hook_bool_machine_mode_true.
11660
11661 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11662
11663         * emit-rtl.c (subreg_realpart_p): Remove.
11664         (reorder_insns_with_line_notes): Likewise.
11665         (end_full_sequence): Likewise.
11666         * rtl.h: Remove the prototype for the above functions.
11667
11668 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11669
11670         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11671         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11672         config/iq2000/iq2000.h, config/m32r/m32r.h,
11673         config/pdp11/pdp11.h, config/sparc/sparc.h,
11674         config/xtensa/xtensa.h: Remove commented-out or useless
11675         definitions of CASE_VECTOR_PC_RELATIVE.
11676
11677 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11678
11679         * loop.c (all_sets_invariant_p): Remove.
11680
11681 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11682
11683         PR target/12916
11684         * config/sparc/sparc.h (NPARM_REGS): Delete.
11685         (BASE_RETURN_VALUE_REG): Likewise.
11686         (BASE_OUTGOING_VALUE_REG): Likewise.
11687         (BASE_PASSING_ARG_REG): Likewise.
11688         (BASE_INCOMING_ARG_REG): Likewise.
11689         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11690         TARGET_ARCH64, not TARGET_V9.
11691         (function_arg_slotno): Dispatch based on the mode class.
11692         Handle vector modes like floating-point modes.
11693         (function_arg_record_value_1): Handle vector types like
11694         floating-point types.
11695         (function_arg_record_value_2): Likewise.
11696         Calculate regno after mode transformation.
11697         (function_arg): Handle vector modes like floating-point modes.
11698         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11699         If ARCH64, do not recheck alignment.
11700         (function_arg_pass_by_reference): Reorder the conditions.
11701         (sparc_return_in_memory): Move after function_arg_padding.
11702         Implement calling conventions for vector modes.
11703         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11704         (function_value): Move scope of 'regbase'.
11705         Implement calling conventions for vector modes.
11706         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11707         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11708         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11709         the argument is passed by reference.
11710         (sparc_type_code): Handle vector types.
11711
11712 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11713
11714         * function.c (assign_parms): When building decl_rtl for
11715         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11716
11717 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11718
11719         * expr.c (is_aligning_offset): Check if we are aligning the
11720         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11721         in bits.
11722
11723 2003-02-18  Matt Austern  <austern@apple.com>
11724
11725         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11726         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11727         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11728         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11729         spec string.
11730         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11731
11732 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11733
11734         * dwarf2out.c (loclabel_num): Move outside #ifdef
11735         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11736         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11737         Mark with GTY(()).
11738         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11739         Allocate memory with ggc_alloc.  No need to copy anything.
11740         (ia64_hpux_file_end): Update to match.
11741
11742 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11743
11744         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11745         by default.
11746
11747 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11748
11749         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11750         ("divmodtisi3"): Likewise.
11751         ("udivmoddi4", "udivmodtidi3"): Likewise.
11752         ("divmodsi4", "divmoddisi3"): Likewise.
11753         ("udivmodsi4", "udivmoddisi3"): Likewise.
11754         ("udivsi3", "umodsi3"): Likewise.
11755
11756 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11757
11758         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11759         placeholder insn when chunkifying the pool.
11760
11761 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11762
11763         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11764         generating PIC code.
11765
11766 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11767
11768         * config/h8300/h8300-protos.h: Add a prototype for
11769         h8300_expand_branch.
11770         * config/h8300/h8300.c (h8300_expand_branch): New.
11771         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11772         bgtu, beq, bne): Call h8300_expand_branch().
11773
11774 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11775
11776         * config/h8300/h8300-protos.h: Add prototypes for
11777         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11778         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11779         (h8300_hard_regno_mode_ok): Likewise.
11780         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11781         h8300_hard_regno_nregs().
11782         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11783
11784 2004-02-18  Per Bothner  <per@bothner.com>
11785
11786         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11787         partly reverts my 2003-10-01 change, because we're back to logically
11788         including <command line> inside the main line.
11789         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11790         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11791         Fixes PR preprocessor/14103.
11792
11793         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11794         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11795         (cpp_push_include):  Don't need to increment pfile's line field.
11796         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11797
11798         * c-ppoutput.c (print struct):  New first_time field.
11799         (init_pp_output):  Set print.first_time.
11800         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11801         which is set also for (say) <command line>.  Clear print.first_time.
11802
11803         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11804         does not match the code, so fix both.
11805         (should_stack_file):  Inline include_pch_p function.
11806         (include_pch_p):  Remove pointless function.
11807
11808         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11809
11810 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11811
11812         * config/h8300/h8300.md (four define_peephole2's): Use
11813         h8300_regs_ok_for_stm().
11814
11815 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11816
11817         * config/h8300/h8300-protos.h: Update the prototype for
11818         expand_a_rotate().
11819         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11820         argument.
11821         * config/h8300/h8300.md: Update all callers.
11822
11823 2004-02-18  Jan Hubicka  <jh@suse.cz>
11824
11825         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11826         floats.
11827         (simplify_binary_operation): Deal with logicals on floats.
11828
11829         * i386.md (SSE fabs splitters): Emit new patterns.
11830         (SSE cmov splitters): Likewise.
11831         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11832         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11833         subregs.
11834         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11835         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11836
11837 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11838
11839         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11840         by hand.
11841         (output_a_rotate): Tweak a comment.
11842         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11843         (*rotlhi3_1): Change to rotlhi3_1.
11844         (*rotlsi3_1): Change to rotlsi3_1.
11845
11846 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
11847
11848         PR target/13866
11849         * arm.c (load_multiple_operation): Don't insist that the source reg
11850         of a post-increment component is the same as the destination.
11851         (store_multiple_operation): Likewise.
11852
11853 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11854
11855         * config/h8300/h8300.md: Move movsf patterns into one section
11856         of the file.
11857
11858 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11859
11860         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11861         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11862         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11863         config/mips/linux64.h, config/pa/pa-64.h,
11864         config/rs6000/aix51.h, config/rs6000/aix52.h,
11865         config/rs6000/spe.md, config/sparc/linux.h,
11866         config/sparc/linux64.h: Update copyright.
11867
11868 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11869
11870         * config/h8300/h8300.md: Move push patterns into one
11871         section of the file.
11872
11873 2004-02-18  Mark Mitchell <mark@codesourcery.com>
11874
11875         PR c++/11326
11876         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11877         fntype.
11878
11879 2004-02-18  Paul Brook  <paul@codesourcery.com>
11880
11881         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11882
11883 2004-02-18  Paul Brook  <paul@codesourcery.com>
11884
11885         PR debug/12934
11886         * dwarf2out.c (loc_descriptor_from_tree): Handle
11887         EXPR_WITH_FILE_LOCATION.
11888
11889 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11890
11891         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11892         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11893         trailing whitespace from instructions.
11894
11895 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
11896
11897         * configure.ac: When generating auto-build.h, pass
11898         --enable-languages to the sub-configure.
11899         Put quotes around ${program_transform_name} when generating
11900         name of as, ld, nm, objdump.
11901         * configure: Regenerate.
11902
11903 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
11904
11905         * Makefile.in (s-check, s-config, s-conditions, s-flags)
11906         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11907         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11908         (s-preds, s-iov): Do not depend on move-if-change.
11909
11910 2004-02-17  James E Wilson  <wilson@specifixinc.com>
11911
11912         * caller-save.c (insert_restore): Pass mem through copy_rtx.
11913         (insert_save): Likewise.
11914
11915 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11916
11917         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11918         warning.
11919
11920 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11921
11922         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11923         *one_cmplsi2_h8300.
11924         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11925
11926 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11927
11928         * config/h8300/h8300-protos.h: Update the prototype of
11929         fix_bit_operand().
11930         * config/h8300/h8300.c (fix_bit_operand): Remove the second
11931         argument "what".
11932         * config/h8300/h8300.md: Update all callers.
11933
11934 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11935
11936         * config/h8300/h8300.c (fix_bit_operand): Change the name of
11937         the last argument to "code" from "type".
11938
11939 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11940
11941         * config/h8300/h8300.c: Remove an extern declaration of
11942         rtx_equal_function_value_matters.
11943
11944 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11945
11946         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11947         by hand.
11948         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11949         (*iorqi3_1): Change to iorqi3_1.
11950         (*xorqi3_1): Change to xorqi3_1.
11951
11952 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11953
11954         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11955         typos.
11956
11957 2004-02-17  Jan Hubicka  <jh@suse.cz>
11958
11959         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11960
11961 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
11962
11963         PR optimization/14119
11964         * combine.c (try_combine): When attemting to fix unrecognized insns,
11965         don't delete SETs marked with REG_EH_REGION notes.
11966
11967 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
11968
11969         * combine.c (simplify_if_then_else): Do not replace
11970         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11971         modes differ.
11972
11973 2004-02017  Steven Bosscher  <stevenb@suse.de>
11974
11975         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11976         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11977         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11978         * ada/utils.c: Likewise.
11979         * cp/decl.c: Likewise.
11980         * f/com.c: Likewise.
11981         * java/class.c: Likewise.
11982
11983 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11984
11985         * config/h8300/h8300.md: Fix comment typos.
11986
11987 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11988
11989         * config/mips/t-iris6gld: Renamed to ...
11990         * config/mips/t-irix-gld: ... this.
11991         * config.gcc (mips-sgi-irix6*): Reflect this
11992         (mips-sgi-irix5*): Use it with GNU ld.
11993
11994         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11995         to ...
11996         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11997         * config/mips/t-irix-gld: Reflect this.
11998         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11999
12000         * config/mips/iris5gld.h: New file.
12001         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12002         Only use collect2 without gas.
12003
12004         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12005         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12006         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12007         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12008
12009         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12010         * config/mips/iris5.h: ... here.
12011
12012         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12013         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12014         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12015
12016         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12017         using irix_startfile_spec, irix_endfile_spec.
12018
12019 2004-02-16  Gunther Nikl  <gni@gecko.de>
12020
12021         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12022
12023 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12024
12025         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12026         insns by hand.
12027
12028 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12029
12030         * cfghooks.c (split_edge): Speed up updating of dominators.
12031
12032 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12033
12034         PR c++/11326
12035         * c-common.c (flag_abi_version): Remove.
12036         * c-common.h (flag_abi_version): Likewise.
12037         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12038         * c.opt (fabi-version): Remove.
12039         * calls.c (expand_call): Always pass a function type to
12040         struct_value_rtx.  Use convert_memory_address.
12041         * common.opt (fabi-version): Add it.
12042         * flags.h (flag_abi_version): Likewise.
12043         (abi_version_at_least): New macro.
12044         * opts.c (common_handle_option): Add OPT_fabi_version.
12045         * toplev.c (flag_abi_version): Define it.
12046         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12047         New function.
12048         (ia64_output_mi_thunk): Use it.
12049         (ia64_struct_value_rtx): Likewise.
12050
12051 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12052
12053         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12054         Don't generate insns by hand.
12055
12056 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12057
12058         PR c++/14178
12059         * doc/invoke.texi (fabi-version): The default is 2 now.
12060
12061 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12062
12063         * loop-iv.c: New file.
12064         * Makefile.in (loop-iv.o): New.
12065         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12066         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12067         num_loop_branches): New functions.
12068         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12069         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12070         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12071         get_simple_loop_desc, free_simple_loop_desc): Declare.
12072         (simple_loop_desc): New inline function.
12073         (struct rtx_iv, struct niter_desc): New.
12074         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12075         * expr.c (force_operand): Handle subregs of expressions created by
12076         loop unroller.
12077         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12078         parts of the initialization to toplev.c
12079         * loop-unroll.c (loop_exit_at_end_p): New.
12080         (unroll_and_peel_loops): Call iv_analysis_done.
12081         (decide_peel_once_rolling, decide_peel_completely,
12082         decide_unroll_stupid, decide_unroll_constant_iterations,
12083         decide_unroll_runtime_iterations, decide_peel_simple,
12084         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12085         unroll_loop_runtime_iterations): Use new simple loop analysis.
12086         * loop-unswitch.c (compare_and_jump_seq): New.
12087         (may_unswitch_on_p): Renamed to ...
12088         (may_unswitch_on): Use new iv analysis.
12089         (reversed_condition): Export.
12090         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12091         * predict.c (estimate_probability): Use new simple loop analysis.
12092         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12093         canon_condition, simplify_using_condition): Declare.
12094         * stor-layout.c (get_mode_bounds): New.
12095         * toplev.c (rest_of_handle_loop2): Some parts of
12096         initialization/finalization moved here from loop-init.c.
12097
12098 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12099
12100         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12101         pointer.
12102         (CALL_USED_REGISTERS): Likewise.
12103         (REG_ALLOC_ORDER): Likewise.
12104         (REG_CLASS) <GENERAL_REGS>: Likewise.
12105
12106 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12107
12108         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12109         in associative operators.
12110         * rtlanal.c (commutative_operand_precedence): Create some new
12111         variables.  Prefer a commutative operand on the left, then
12112         binary expressions, then NEG and NOT.
12113
12114 2004-02-16  Matthias Klose  <doko@debian.org>
12115
12116         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12117         in terms of SHLIB_SOVERSION.
12118         * config/m68k/t-slibgcc-elf-ver: New file.
12119         * config/pa/t-slibgcc-elf-ver: New file.
12120         * config.gcc (m68k-linux, parisc-linux): Use them when not
12121         sjlj exceptions are not configured.
12122
12123 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12124
12125         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12126
12127 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12128
12129         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12130
12131 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12132
12133         * doc/sourcebuild.texi: Mention backends.html.
12134
12135 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12136
12137         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12138         line-map.c, line-map.h, var-tracking.c: Fix comment
12139         formatting.
12140
12141 2004-02-16  Richard Henderson  <rth@redhat.com>
12142
12143         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12144
12145         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12146
12147 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12148
12149         * config/h8300/h8300.md: Remove unnecessary parallels from
12150         all define_insn and define_split patterns.
12151
12152 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12153
12154         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12155         "clobber").
12156
12157 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12158
12159         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12160         '%#'.
12161
12162 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12163
12164         * config/ia64/ia64.c, config/mips/mips.c,
12165         config/mmix/mmix-modes.def: Fix comment typos.
12166
12167 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12168
12169         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12170         (get_directive_line): Remove unused function prototype.
12171
12172 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12173
12174         * tree-inline.c (copy_body_r): Do not replace ret_label.
12175
12176 2004-02-14  Jan Hubicka  <jh@suse.cz>
12177
12178         * i386.c (x86_four_jump_limit): New variable.
12179         (k8_avoid_jump_misspredicts): Rename to ...
12180         (ix86_avoid_jump_misspredicts): .. this one.
12181         (ix86_pad_returns): Break out from ...
12182         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12183         to.
12184         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12185
12186 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12187
12188         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12189         PARALLEL is NULL.
12190
12191 2004-02-14  Per Bothner  <per@bothner.com>
12192
12193         * fix-header.c (line_table):  Move local variable in main to global.
12194         * scan.h (line_table):  Use it.
12195         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12196         line (recently renamed to src_loc) before calling recognized_function.
12197
12198 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12199
12200         * Makefile.in: Fix comment typos.
12201
12202 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12203
12204         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12205         for start_value when it is directly moved into reg, and factorize
12206         the retrieval of GET_MODE (reg).
12207
12208 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12209
12210         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12211         (mips_load_got_global): Delete.
12212         (mips_gotoff_page): Declare.
12213         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12214         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12215         UNSPEC_LOAD_GOT pattern rather than a MEM.
12216         (*load_got[sd]i): New patterns.
12217         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12218         (mips_load_got_page, mips_load_got_global): Delete.
12219         (mips_gotoff_page): New function.
12220         (override_options): Don't initialize mips_got_alias_set.
12221
12222 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12223
12224         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12225         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12226         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12227         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12228         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12229         * config/mips/mips.c: Fix some overly-long lines.
12230         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12231         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12232
12233 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12234
12235         * configure.ac: Search for as, ld below libexec/gcc.
12236         * configure: Regenerate.
12237
12238 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12239
12240         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12241         __builtin_arm_setwcx ().
12242         * config/arm/arm.c (arm_expand_builtin): Generate operands
12243         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12244
12245 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12246
12247         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12248         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12249         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12250         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12251         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12252         (_mm_mulhi_pu16): Likewise.
12253
12254 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12255
12256         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12257         DECL_NAME != 0 before dereferencing.
12258
12259 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12260
12261         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12262         (s390_output_addr_const_extra): Declare.
12263         (s390_output_pool_entry): Remove FILE * argument.
12264         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12265         (s390_output_addr_const_extra): New function.
12266         (print_operand_address): Call output_addr_const instead of
12267         s390_output_symbolic_const.
12268         (print_operand): Likewise.
12269         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12270         Remove FILE * argument.
12271         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12272         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12273         call.
12274
12275 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12276
12277         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12278         (struct edge, struct vertex, struct graph): New.
12279         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12280         free_graph): New functions.
12281
12282 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12283
12284         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12285         Use ".set macro" to avoid warnings about multi-instruction
12286         macros, since they're intentional.
12287
12288 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12289
12290         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12291         comment about STANDARD_EXEC_PREFIX.
12292
12293         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12294         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12295         for installing .1 manpages.  Add rules for installing cpp
12296         and gcov manpages under their installed names.
12297
12298 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12299
12300         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12301         host, but try LD_FOR_TARGET first.
12302         * configure: Rebuilt.
12303
12304 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12305
12306         * dbxout.c: Move declaration of dbxout_type_decl outside
12307         #ifdef DBX_DEBUGGING_INFO.
12308         * c-parse.in: Don't give the asmdef production a type.
12309
12310 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12311
12312         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12313         (debug_nothing_tree_int): Prototype.
12314         (dwarf_debug_hooks): Delete, unused.
12315         * debug.c (do_nothing_debug_hooks): Update.
12316         (debug_nothing_tree_int): New function.
12317         * langhooks.h (struct lang_hooks_for_decls):
12318         Remove builtin_type_decls field.
12319         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12320         (LANG_HOOKS_DECLS): Update.
12321         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12322         Use debug_hooks->type_decl.
12323         * dbxout.c (preinit_symbols): New static.
12324         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12325         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12326         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12327         for symbols to output.
12328         (dbxout_type_decl): New function.
12329         (dbxout_symbol): If called before dbxout_init has run, queue
12330         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12331         to TYPE_DECLs before emitting them.
12332         * xcoffout.c (assign_type_number): Delete.
12333         (xcoff_type_numbers): New static table.
12334         (xcoff_assign_fundamental_type_number): New function.
12335         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12336         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12337         * sdbout.c: Include varray.h.
12338         (deferred_global_decls): New static.
12339         (sdb_debug_hooks): Update.
12340         (sdbout_global_decl): If we can't emit something right now,
12341         remember it in deferred_global_decls.
12342         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12343         (sdbout_init): Initialize deferred_global_decls.
12344         * Makefile.in: Update dependencies of sdbout.o.
12345         * dwarf2out.c (dwarf2out_type_decl): New function.
12346         (dwarf2_debug_hooks): Update.
12347         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12348         * c-decl.c (getdecls): Just return 0.
12349         (check_for_loop_decls): Don't use getdecls.
12350         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12351         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12352
12353 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12354
12355         * config/s390/s390.c (s390_sched_reorder2): Remove.
12356         (TARGET_SCHED_REORDER2): Do not redefine.
12357
12358 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12359
12360         * c-parse.in (maybe_type_qual): Delete.
12361         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12362         (asm_argument): New grammar rules.
12363         (extdef_1): Use asmdef.
12364         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12365         (xexpr): Move up with other expression rules.
12366         (stmt): Use asm_stmt.
12367
12368         * c-typeck.c (build_asm_expr): New function - body mostly
12369         pulled from build_asm_stmt.
12370         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12371         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12372
12373 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12374
12375         PR bootstrap/13617
12376         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12377         (mips_declare_object): Make variadic.
12378         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12379         mips_output_aligned_decl_common.
12380         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12381         (mips_declare_object): Make variadic.
12382
12383 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12384
12385         * function.c (update_epilogue_consts): Teach about binary operations.
12386
12387         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12388         previous MEM_VOLATILE in REF.
12389         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12390         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12391
12392 2004-02-12  Gunther Nikl  <gni@gecko.de>
12393
12394         * config.gcc: Restore support for m68k-openbsd.
12395
12396 2004-02-12  Jan Hubicka  <jh@suse.cz>
12397
12398         * tree-optimize.c (tree_rest_of_compilation): Do not release
12399         DECL_ARGUMENTS.
12400
12401 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12402
12403         * doc/install.texi: Fix the spelling of "explicitly".
12404
12405 2004-02-11  Eric Christopher  <echristo@redhat.com>
12406
12407         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12408         duplicate argument structure of cpp_interpret_string.
12409         * cpphash.h: Move prototype...
12410         * cpplib.h: Here.
12411         * cpplib.c: Fix calls to match new function signature.
12412
12413 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12414
12415         PR c/456
12416         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12417         constant expressions at all outside C99 mode if pedantic.
12418
12419 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12420
12421         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12422         (log10_optab, log2_optab): Define corresponding macros.
12423         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12424         * genopinit.c (optabs): Implement log10_optab and log2_optab
12425         using log10?f2 and log2?f2 patterns.
12426         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12427         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12428         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12429         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12430
12431         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12432         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12433         log2, log2f and log2l built-ins as inline x87 intrinsics.
12434
12435 2004-02-11  Richard Henderson  <rth@redhat.com>
12436
12437         PR target/1532
12438         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12439         dead insn after reload.
12440
12441 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12442
12443         * tree.h (frame_base_decl): Add GTY marker.
12444         * var-tracking.c (frame_base_decl): Likewise.
12445
12446 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12447
12448         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12449         incorrect, hunk.
12450         (add_location_or_const_value_attribute): Use text_section_label,
12451         not TEXT_SECTION_NAME.
12452
12453 2004-02-11  Per Bothner  <per@bothner.com>
12454
12455         Represent column numbers using line-map's source_location.
12456         The "next available source_location" is now managed internally by
12457         line-maps.c rather than by clients.
12458         * line-map.h (struct line_map):  New field column_bits.
12459         <from_line>:  Rename field to start_location.
12460         (struct line_maps):  New fields highest_location and max_column_hint.
12461         (linemap_check_files_exited):  New declaration.
12462         (linemap_line_start):  New declaration.
12463         (linemap_add):  Remove from_line parameter; use highest_location field.
12464         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12465         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12466         (CURRENT_LINE_MAP):  Remove macro.
12467         (linemap_position_for_column):  New inline function.
12468         * line-map.c (linemap_init):  Clear new fields.
12469         (linemap_check_files_exited):  New function, extracted from ...
12470         (linemap_free):  Use linemap_check_files_exited.
12471         (linemap_add):  Remove from_line parameter.  Various updates.
12472         (linemap_line_start):  New function.
12473         (linemap_lookeup):  Update for new field names.
12474         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12475         linemap_position_for_column may unpredictably change the current map,
12476         it is cleaner and simpler for us to not cache it in cpp_reader.
12477         (struct cpp_buffer):  New sysp field.
12478         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12479         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12480         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12481         current map using linemap_lookup.
12482         (do_linemarker):  Also set buffer's sysp field.
12483         (destringize_and_run):  No longer need to decrement current line.
12484         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12485         (search_path_head, open_file_failed):  Use buffer's sysp.
12486         (cpp_make_system_header):  Get current map using linemap_lookup.
12487         Also set buffer's sysp flag.
12488         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12489         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12490         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12491         (struct cpp_reader):  ... and adding saved_line_base field.
12492         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12493         Update accordingly.  Don't adjust line.
12494         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12495         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12496         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12497         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12498         * cpplex.c (_cpp_lex_direct):  Likewise.
12499         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12500         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12501         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12502         Remove col field as it is now subsumed by src_loc.
12503         * cpperror.c:  Update various field, parameter, and macro names.
12504         (print_location):  If col==0, try SOURCE_COLUMN of line.
12505         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12506         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12507         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12508         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12509         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12510         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12511         (_cpp_lex_direct):  Use linemap_position_for_column.
12512         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12513         parameter.  Instead get it from the line_table global.  Adjust callers.
12514         (print):  Remove map field.  Replace line field to src_line.
12515         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12516         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12517         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12518         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12519         * cpptrad.c (copy_comment):  Rename variable.
12520         * c-lex.c (map):  Remove static variable, for same reason we removed
12521         cpp_reader's map field.
12522         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12523         to call linemap_lookup.
12524         (cb_line_change):  Token's line field replaced by src_loc.
12525         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12526         Don't save new_map.
12527
12528         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12529         source_location.
12530
12531 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12532
12533         * config/rs6000/altivec.md (*movv4si_internal): At least one
12534         operand must be register_operand.
12535         (*movv8hi_internal1): Likewise.
12536         (*movv16qi_internal1): Likewise.
12537         (*movv4sf_internal1): Likewise.
12538
12539 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12540
12541         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12542         operand.
12543         (movv4hi_internal): Same.
12544         (movv2sf_internal): Same.
12545         (movv1di_internal): Same.
12546
12547 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12548
12549         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12550         TARGET_OLDABI consistently.
12551         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12552         mips_va_arg,override_options,compute_frame_size,
12553         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12554         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12555         and TARGET_OLDABI consistently.
12556         * config/mips/mips.md (exception_receiver): Likewise.
12557         * config/mips/linux64.h: Likewise.
12558
12559 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12560
12561         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12562         Set AltiVec ABI and vrsave as default for ppc64 linux.
12563         (init_cumulative_args): Post error, if try to return
12564         value in AltiVec register without enable AltiVec.
12565         (function_arg_advance): Ditto for passing arguments.
12566
12567 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12568
12569         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12570         a label before updating its usage count.
12571
12572 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12573
12574         * doc/install.texi: Remove extra cd.
12575
12576 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12577
12578         * c-common.c (vector_size_helper): Remove; call
12579         reconstruct_complex_type() instead.
12580         * tree.c (reconstruct_complex_type): New function
12581         (formerly vector_size_helper() in c-common.c).
12582         (make_vector): Make externally visible.
12583         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12584
12585 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12586
12587         * config/h8300/h8300-protos.h: Add a prototype for
12588         h8300_regs_ok_for_stm.
12589         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12590         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12591         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12592         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12593         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12594         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12595         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12596         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12597         h8300_regs_ok_for_stm().
12598
12599 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12600
12601         PR c/14088
12602         * real.c (real_from_string): Look for 'X' as well as 'x' in
12603         hexfloat strings.
12604
12605 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12606
12607         * config/h8300/h8300.md: Remove an incorrect comment about
12608         peephole2.  Add comments.
12609
12610 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12611
12612         PR/14058
12613         * emit-rtl.c (set_decl_incoming_rtl): New.
12614         * tree.h (set_decl_incoming_rtl): New.
12615         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12616         DECL_INCOMING_RTL.
12617         * ada/misc.c (adjust_decl_rtl): Likewise.
12618
12619 2004-02-10  Per Bothner  <per@bothner.com>
12620
12621         * c-opts.c (c_common_post_options):   Don't emit working directory
12622         in cpp output if -P was specified.
12623
12624 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12625
12626         PR c/14092
12627         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12628         negate_expr back to the original type.
12629
12630 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12631
12632         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12633         bump retaddr here.
12634
12635 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12636
12637         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12638         gen_lowpart_SUBREG): Move under the file in which they
12639         are actually declared.
12640
12641 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12642
12643         * doc/sourcebuild.texi: Add libada documentation.
12644
12645         * doc/install.texi: Update documentation on Ada build, now
12646         that the GNAT lib and tools are built automatically.
12647
12648 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12649
12650         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12651         && TARGET_IRIX.
12652
12653 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12654
12655         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12656         boundaries outside build_component_ref() call (a macro in ObjC++).
12657
12658 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12659
12660         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12661         (init_cumulative_args): Likewise.
12662         (a7_overlap_mentioned_p): Delete prototype.
12663         * config/xtensa/xtensa.c (struct machine_function): Replace
12664         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12665         Add set_frame_ptr_insn field.
12666         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12667         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12668         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12669         at the function entry and replace the operand with the pseudo.
12670         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12671         argument and record this flag in CUMULATIVE_ARGS.
12672         (function_arg): Remove result_mode and special-case code to handle
12673         arguments in a7.  Instead, set need_a7_copy flag when there is an
12674         incoming argument in a7.
12675         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12676         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12677         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12678         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12679         special-case code.
12680         (a7_overlap_mentioned_p): Delete.
12681         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12682         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12683         arguments to init_cumulative_args and pass "incoming" flag instead.
12684         (BLOCK_REG_PADDING): Delete.
12685         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12686         checks for reload_in_progress and reload_completed.  Update calls to
12687         xtensa_copy_incoming_a7.
12688         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12689         to call xtensa_copy_incoming_a7.
12690
12691 2004-02-09  DJ Delorie  <dj@redhat.com>
12692
12693         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12694         longer modify standard_exec_prefix, standard_bindir_prefix, or
12695         standard_startfile_prefix.
12696
12697 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12698
12699         PR c++/11295
12700         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12701         to expand_expr_real call, and pass in alt_rtl as last argument.
12702
12703         PR libstdc++/5625
12704         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12705         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12706         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12707         * except.c (expand_builtin_extend_pointer): New.
12708         * except.h (expand_builtin_extend_pointer): Declare.
12709
12710 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12711
12712         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12713         unaligned loads and stores.
12714
12715 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12716
12717         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12718         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12719
12720         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12721         * config/mips/iris5.h: ... here.
12722         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12723
12724         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12725         * config/mips/iris5.h: ... here.
12726
12727 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12728
12729         * configure.ac: Remove default executable files before AC_PROG_CC.
12730         * configure: Regenerate.
12731
12732 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12733
12734         PR target/13721
12735         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12736         print a operand other than a register.
12737
12738 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12739
12740         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12741         tree code rather than call fold_convert, which doesn't specify a
12742         default floating point to integer conversion.
12743
12744 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12745
12746         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12747         code to support SGS assembler.  Reformat adjacent code where possible.
12748         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12749         definition.
12750         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12751         for '%#'.
12752         * config/m68k/linux.h, config/m68k/m68k.c,
12753         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12754         macros and asm_printf() format strings.
12755         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12756         * config/m68k/linux.h: Update copyright.
12757         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12758
12759 2004-02-08  Andreas Schwab  <schwab@suse.de>
12760             Bernardo Innocenti  <bernie@develer.com>
12761
12762         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12763         REGISTER_PREFIX.
12764         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12765         frame pointer register, overridable by OS targets.
12766         * (M68K_REGNAME): Macro to obtain register name for asm output,
12767         eventually replacing %a6 with M68K_FP_REG_NAME.
12768         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12769         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12770         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12771         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12772         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12773
12774 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12775
12776         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12777         hook_rtx_tree_int_null.
12778         * targhooks.c (default_struct_value_rtx): Remove.
12779         * targhooks.h: Remove the prototype for
12780         default_struct_value_rtx.
12781         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12782         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12783         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12784         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12785         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12786         config/rs6000/rs6000.c, config/s390/s390.c,
12787         config/stormy16/stormy16.c, config/v850/v850.c,
12788         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12789         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12790
12791 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12792
12793         * README.Portability: Change "ISO C89" to "ISO C90".
12794         * c-parse.in (primary, initelt): Likewise.
12795
12796 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12797
12798         * real.c (encode_ibm_extended): Normalize the input value before
12799         converting it to a double.  Handle the case where a normal value
12800         rounds to infinity.
12801
12802 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12803
12804         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12805         warning.
12806         * cse.c (preferrable): Change to preferable. Update all of its
12807         callers.
12808         * genautomata.c (ainsn): Change
12809         first_ainsn_with_given_equialence_num to
12810         first_ainsn_with_given_equivalence_num.  Update all of its
12811         references.
12812
12813 2004-02-08  Jan Hubicka  <jh@suse.cz>
12814
12815         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12816
12817 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12818
12819         * function.c (assign_parms): Fix formatting.
12820
12821 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12822
12823         * default.h (PROMOTE_PROTOTYPES): Remove.
12824         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12825         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12826         EXPAND_BUILTIN_SAVEREGS): Poison.
12827         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12828         hook_bool_tree_false.
12829         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12830         * target.h: Replace SETUP_INCOMING_VARARGS with
12831         targetm.calls.setup_incoming_varargs().
12832         * targhooks.c (default_promote_function_return): Remove.
12833         (default_promote_prototypes): Likewise.
12834         (default_struct_value_rtx): Always abort().
12835         (default_expand_builtin_saveregs): Always print an error
12836         message.
12837         (default_setup_incoming_varargs): Do nothing.
12838         (default_pretend_outgoing_varargs_named): Don't depend on
12839         SETUP_INCOMING_VARARGS.
12840         * targhooks.h: Remove the prototype for
12841         default_promote_function_return and
12842         default_promote_prototypes.
12843
12844 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12845
12846         * system.h (SHARED_SECTION_ASM_OP): Poison.
12847         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12848         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12849
12850 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12851
12852         Bug 13856
12853         * c-decl.c (diagnose_mismatched_decls): Only give special
12854         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12855         is also true.
12856         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12857         DECL_FUNCTION_CODE when defining a built-in function.
12858         Don't update DECL_ESTIMATED_INSNS.
12859         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12860         FUNCTION_DECLs.
12861         * tree.h: Delete DECL_ESTIMATED_INSNS.
12862         * tree-inline.c (struct inline_data): Delete inlined_insns field.
12863         (expand_call_inline, optimize_inline_calls): Don't update
12864         DECL_ESTIMATED_INSNS nor inlined_insns.
12865         * cgraphunit.c (cgraph_analyze_function): Don't update
12866         DECL_ESTIMATED_INSNS.
12867
12868 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12869
12870         * c-common.c (shadow_warning): Delete.
12871         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12872         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12873         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12874         * c-parse.in (free_parser_stacks): Delete.
12875
12876 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12877
12878         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12879         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12880         Use the top level mkinstalldirs, not the one in the gcc subdir.
12881         * mkinstalldirs: Remove (from the gcc subdir).
12882
12883 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12884
12885         PR middle-end/13696
12886         * fold-const.c (fold_convert): New function to provide type
12887         conversion to the middle-end without using convert.
12888         (negate_expr, associate_trees, size_diffop, omit_one_operand,
12889         operand_equal_for_comparison_p, pedantic_omit_one_operand,
12890         invert_truthvalue, optimize_bit_field_compare, range_binop,
12891         decode_field_reference, make_range, build_range_check, unextend,
12892         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12893         fold_binary_op_with_conditional_arg, fold_inf_compare,
12894         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12895         convert with calls to fold_convert.
12896
12897 2004-02-07  Jan Hubicka  <jh@suse.cz>
12898
12899         * genrecog.c (find_operand): add extra argument stop.
12900         (validate_pattern): Verify that mach_dup is duplicating operand
12901         defined lexically earlier.
12902
12903 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12904
12905         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12906         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12907         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12908         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12909         config/ia64/ia64.h, config/ip2k/ip2k.h,
12910         config/iq2000/iq2000.h, config/mips/iris5.h,
12911         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12912         config/rs6000/aix51.h, config/rs6000/aix52.h,
12913         config/rs6000/darwin.h, config/rs6000/rs6000.h,
12914         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12915         config/sparc/linux.h, config/sparc/linux64.h,
12916         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12917         config/xtensa/xtensa.h: Remove the definitions of
12918         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12919         MAX_WCHAR_TYPE_SIZE.
12920         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12921         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12922
12923 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
12924
12925         PR bootstrap/13990
12926         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12927         gen_rtx_NE.
12928
12929 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
12930
12931         * var-tracking.c (vt_add_function_parameters): Surround checkings by
12932         #ifdef ENABLE_CHECKING and #endif.
12933
12934 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12935
12936         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12937         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12938         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12939         integer types and floating point with unsafe_math_optimizations.
12940         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12941         Optimize A - B as A + (-B), if B is easily negated.
12942
12943 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12944
12945         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12946         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12947         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12948         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12949         Update copyright.
12950
12951 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12952
12953         * c-ppoutput.c, var-tracking.c: Fix comment typos.
12954
12955 2004-02-06  James E Wilson  <wilson@specifixinc.com>
12956
12957         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12958         glibc 2.3 or better.
12959
12960 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12961
12962         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12963         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12964
12965 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
12966
12967         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12968         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12969         (SHLIB_MKMAP_OPTS): Delete.
12970         (TARGET_LIBGCC2_CFLAGS): Add -specs.
12971         (bispecs): Add rule.
12972         * config/rs6000/libgcc-ppc64.ver: New file.
12973         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12974         (__floatdidf, __floatdisf): Optimize multiply.
12975         (__fixunstfdi): New function.
12976         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12977         real and imag parts larger than one register.
12978         (function_arg): Correct type of reg used when fp arg split partially
12979         to stack.
12980         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12981         and __MACH__ or __powerpc64__.
12982
12983 2004-02-06  Roger Sayle  <roger@eyesopen.com>
12984             Ulrich Weigand  <uweigand@de.ibm.com>
12985
12986         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12987         of gen_highpart or gen_lowpart when the floating point format is
12988         wider than the result mode.
12989
12990 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
12991
12992         * dwarf2out.c (loclabel_num): Move into #ifdef
12993         DWARF2_DEBUGGING_INFO.
12994
12995 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
12996
12997         * objc/objc-act.c (build_super_template) the 'class' field of
12998         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12999         (get_super_receiver): Likewise.
13000
13001 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13002
13003         * reload1.c (check_eliminable_occurrences): Optimize the reset
13004         of can_eliminate.
13005         (eliminate_regs_in_insn): Likewise.
13006
13007 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13008             Josef Zlomek  <zlomekj@suse.cz>
13009
13010         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13011         at the beginning of function, call dwarf2out_var_location for
13012         NOTE_INSN_VAR_LOCATION note.
13013         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13014         decl_loc_table): New.
13015         (lookup_decl_loc): New function.
13016         (add_var_loc_to_decl): New function.
13017         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13018         only if can_use_fbreg.
13019         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13020         functions.
13021         (loc_descriptor): Likewise. Process VAR_LOCATION.
13022         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13023         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13024         can_use_fbreg == true.
13025         (add_location_or_const_value_attribute): Added parameter enum
13026         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13027         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13028         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13029         with attr == DW_AT_location.
13030         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13031         if frame_base_decl is defined and has a location list.
13032         (gen_variable_die): Call add_location_or_const_value_attribute with
13033         attr == DW_AT_location.
13034         (dwarf2out_var_location): New function.
13035         (dwarf2out_begin_function): New function.
13036         (dwarf2out_init): Create decl_loc_table.
13037
13038 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13039
13040         * loop.c (force_movables): Transitively increase the priorities of
13041         all insns forces by an insn, not just the first one.
13042
13043 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13044             Daniel Berlin <dberlin@dberlin.org>
13045
13046         Josef Zlomek  <zlomekj@suse.cz>
13047         * Makefile.in (var-tracking.o): New.
13048         * common.opt (fvar-tracking): New.
13049         * flags.h (flag_var_tracking): New.
13050         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13051         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13052         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13053         * rtl.c (note_insn_name): Likewise.
13054         * rtl.def (VAR_LOCATION): New.
13055         * rtl.h (NOTE_VAR_LOCATION): New.
13056         (NOTE_VAR_LOCATION_DECL): New.
13057         (NOTE_VAR_LOCATION_LOC): New.
13058         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13059         (variable_tracking_main): New exported function.
13060         * timevar.def (TV_VAR_TRACKING): New.
13061         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13062         (dump_file): "vartrack" was added (-dV).
13063         (flag_var_tracking): New.
13064         (f_options): "var-tracking" was added.
13065         (rest_of_handle_variable_tracking): New function.
13066         (rest_of_compilation): Run variable tracking.
13067         (process_options): If user has not specified flag_var_tracking set it
13068         according to optimize, debug_info_level and debug_hooks.
13069         * tree.h (frame_base_decl): New.
13070         * var-tracking.c: New file.
13071         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13072         (ia64_override_options): Set flags to run variable tracking in machine
13073         dependent reorg instead of toplev.c.
13074         (ia64_reorg): Run variable tracking if wanted.
13075         * doc/invoke.texi: Mention variable tracking in -dV,
13076         add and -fvar-tracking.
13077         * doc/passes.texi: Added variable tracking pass.
13078
13079         Daniel Berlin <dberlin@dberlin.org>
13080         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13081         * dbxout.c (dbx_debug_hooks): Likewise.
13082         (xcoff_debug): Likewise.
13083         * debug.c (do_nothing_debug_hooks): Likewise.
13084         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13085         * dwarfout.c (dwarf_debug_hooks): Likewise.
13086         * sdbout.c (sdb_debug_hooks): Likewise.
13087         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13088         * final.c (final_scan_insn): Call var_location debug hook for each
13089         NOTE_INSN_VAR_LOCATION.
13090
13091 2004-02-06  Jan Hubicka  <jh@suse.cz>
13092
13093         * flow.c (update_life_info): Allocate reg_deaths when called from
13094         scheudler.
13095         (attempt_auto_inc):  Update life ranges accordingly.
13096
13097 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13098
13099         PR debug/11816
13100         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13101
13102 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13103
13104         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13105
13106 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13107
13108         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13109         a separate line info table in use.
13110         Use the correct size for terminators.
13111         (output_die): Use offset, not delta.
13112
13113 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13114
13115         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13116
13117 2004-02-06  Jan Hubicka  <jh@suse.cz>
13118
13119         * recog.c (split_all_insns): Do not update reg info.
13120         * regrename.c (regrename_optimize): Likewise.
13121         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13122         * flow.c (struct propagate_block_info): Add insn_num field.
13123         (reg_deaths): New array.
13124         (life_analysis): Free reg_deaths info.
13125         (allocate_reg_life_data): Allocate reg_deaths array.
13126         (propagate_one_insn): Use new array.
13127         (init_propagate_block): Initialize it.
13128         (free_propagate_block_info): Finish compuation of
13129         REG_LIVE_LENGTH
13130         (attempt_auto_inc): Sanity check that REG_INFO is not
13131         computed at same time.
13132         (mark_used_regs): Update new array.
13133
13134         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13135         substitution.
13136
13137 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13138
13139         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13140         *extendqisi2_short_displ.
13141
13142 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13143
13144         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13145         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13146         (emit_library_call_value_1): Likewise pass nargs.
13147         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13148         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13149         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13150         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13151         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13152         prototype.
13153         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13154         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13155         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13156         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13157         INIT_CUMULATIVE_ARGS.
13158         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13159         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13160         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13161         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13162         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13163         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13164         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13165         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13166         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13167         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13168         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13169         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13170
13171 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13172
13173         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13174         possible.
13175
13176 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13177
13178         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13179         note containing (plus (reg) (const_int)), where reg is an
13180         eliminable reg, then perform the register elimination without
13181         depending on eliminate_regs().
13182
13183 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13184
13185         * config/arc/arc.c (arc_return_in_memory): Check the return
13186         value of int_size_in_bytes against -1.  Don't check
13187         TREE_ADDRESSABLE.
13188         * config/avr/avr.c (avr_return_in_memory): Check the return
13189         value of int_size_in_bytes against -1.
13190         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13191         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13192         Likewise.
13193         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13194         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13195         Likewise.
13196
13197 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13198
13199         * config/frv/frv-protos.h: Remove the prototype for
13200         frv_setup_incoming_varargs.
13201         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13202         (frv_setup_incoming_varargs): Make it static.
13203         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13204
13205 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13206
13207         * config/fr30/fr30-protos.h: Remove the prototype for
13208         fr30_setup_incoming_varargs.
13209         Update the prototypes for fr30_num_arg_regs and
13210         fr30_function_arg_partial_nregs.
13211         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13212         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13213         (fr30_setup_incoming_varargs): Make it static.
13214         Add argument second_time.  Don't do anything when second_time
13215         is nonzero.
13216         (fr30_num_arg_regs): Change the type of the first argument to
13217         enum machine_mode.
13218         (fr30_function_arg_partial_nregs): Change the type of the
13219         second argument to enum machine_mode.
13220         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13221         (SETUP_INCOMING_VARARGS): Remove.
13222
13223 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13224
13225         * config/arc/arc-protos.h: Remove the prototype for
13226         arc_setup_incoming_varargs.
13227         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13228         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13229         (arc_setup_incoming_varargs): Make it static.
13230         (arc_external_libcall): Likewise.
13231         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13232         Remove the commented-out definition of
13233         ASM_OUTPUT_EXTERNAL_LIBCALL.
13234
13235 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13236
13237         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13238         to $$(slibdir) in the installation commands.
13239
13240 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13241
13242         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13243         with inner_regno, not regno.
13244         * rtlanal.c (refers_to_regno_p): Same.
13245
13246 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13247
13248         * config.gcc: Remove i370 support.
13249
13250 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13251
13252         * doc/install.texi:  Update automake and autoconf version
13253         requirements.  Note where to find gcj automake version.
13254
13255 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13256
13257         * Makefile.in (generate-manpages): Move dependencies to ...
13258         (man): here.
13259         * doc/makefile.texi: Document new targets.
13260         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13261
13262 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13263
13264         PR/13485
13265         Makefile.in (srcextra):  Add a level of indirection to ...
13266         (gcc.srcextra): ... here.
13267         (po-generated): Delete.
13268         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13269         options.c.
13270         (start.encap): Remove superfluous lang.srcextra dependency.
13271         objc/Make-lang.in (po-generated):  Delete.
13272
13273 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13274
13275         * config/ia64/ia64.c (REG_GP): Remove.
13276
13277 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13278
13279         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13280
13281 2004-02-05  Devang Patel  <dpatel@apple.com>
13282
13283         * dwarf2out.c (force_type_die): Look up input type itself
13284         instead of root_type() of type.
13285
13286 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13287
13288         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13289         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13290         pre-reload splitters are transformed to post-reload
13291         define_insn_and_split patterns.
13292         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13293
13294 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13295
13296         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13297         TARGET_PROMOTE_PROTOTYPES.
13298
13299 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13300
13301         PR middle-end/13750
13302         Revert:
13303         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13304         PR pch/13361
13305         * c-typeck.c (constructor_asmspec): Delete.
13306         (struct initializer_stack): Delete field 'asmspec'.
13307         (start_init): Delete saving of asmspec.
13308         (finish_init): Don't update constructor_asmspec.
13309         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13310         * stmt.c (expand_asm): Duplicate strings from tree.
13311         (expand_asm_operands): Likewise.
13312         * tree.c (tree_size): Update computation of size of STRING_CST.
13313         (make_node): Don't make STRING_CST nodes.
13314         (build_string): Allocate string with tree node.
13315         * tree.def (STRING_CST): Update comment.
13316         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13317         (tree_string): Place contents of string in tree node.
13318         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13319         from tree.
13320
13321 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13322
13323         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13324         msgid.
13325
13326 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13327
13328         * config/rs6000/altivec.md (*movv4si_internal): At least one
13329         operand must be altivec_register_operand.
13330         (*movv8hi_internal1): Likewise.
13331         (*movv16qi_internal1): Likewise.
13332         (*movv4sf_internal1): Likewise.
13333
13334 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13335
13336         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13337         * configure: Regenerate.
13338
13339 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13340
13341         * doc/install.texi: Update description of --gxx-include-dir to
13342         give correct default value.
13343
13344 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13345
13346         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13347         8 with MAC_REG.
13348
13349 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13350
13351         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13352         gen_rtx_PARALLEL.
13353
13354 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13355
13356         * emit-rtl.c: Update the comment about the file.
13357
13358 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13359
13360         * sourcebuild.texi (Test Idioms): Update testcase naming
13361         conventions.
13362
13363 2004-02-04  Per Bothner  <per@bothner.com>
13364
13365         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13366         * c-ppoutput.c (pp_dir_change):  New function.
13367         * c-common.h (pp_dir_change):  New declaration.
13368         * cpplib.h (struct cpp_options):  Remove working_directory field.
13369         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13370         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13371         Don't handle -fworking_directory here, but in c_common_post_options.
13372         (read_original_directory): Don't back up when done.
13373         Don't clear no-longer used working_directory flag.
13374         * cpplib.h:  Update declarations to match.
13375         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13376         (init_c_lex):  Don't set dir_change callback here, since we want
13377         to set it even if flag_preprocess_only.
13378         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13379         (c_common_post_options):  Set dir_change callback.
13380         Call pp_dir_change if approporiate.
13381         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13382         unneeded parameter and result. Do LC_RENAME for <built-in>.
13383         (c_common_post_options):  Call cpp_read_main_file here instead.
13384         (c_common_init):  Update accordingly.
13385         (push_command_line_include):  Don't cpp_push_main_file.
13386         Do LC_RENAME rather than LC_LEASE to get back to main file.
13387         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13388         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13389         files, but call finish_options for all files.
13390         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13391         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13392         cpp_find_main_file + cpp_push_main_file.
13393         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13394         * opts.c (handle_options):  Only set main_input_filename first time.
13395
13396 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13397
13398         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13399
13400 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13401
13402         * reload.c (find_equiv_reg): When checking for register overlap,
13403         don't index hard_regno_nregs with a pseudo-reg.
13404
13405 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13406
13407         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13408
13409 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13410
13411         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13412         against FIRST_PSEUDO_REGISTER.
13413
13414 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13415
13416         * Makefile.in: Move target, host overrides after per-language
13417         fragments.
13418
13419         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13420         (GNATLIBCFLAGS): Remove -g.
13421
13422 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13423
13424         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13425         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13426         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13427         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13428         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13429         config/sparc/sparc.c, config/vax/vax.c: Revert the
13430         replacements of "FALLTHRU" with "Fall through" done in the
13431         previous patch.
13432
13433 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13434
13435         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13436         config/arm/arm.c, config/arm/arm.md,
13437         config/cris/cris-protos.h, config/fr30/fr30.c,
13438         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13439         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13440         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13441         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13442         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13443         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13444         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13445         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13446         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13447         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13448         config/s390/s390.md, config/sparc/netbsd-elf.h,
13449         config/sparc/openbsd.h, config/sparc/sparc.c,
13450         config/xtensa/lib2funcs.S: Fix comment formatting.
13451
13452 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13453
13454         * config/alpha/alpha.c, config/arc/arc.c,
13455         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13456         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13457         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13458         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13459         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13460         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13461         config/iq2000/iq2000.c, config/m32r/m32r.c,
13462         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13463         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13464         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13465         config/rs6000/rs6000.h, config/sparc/sparc.c,
13466         config/vax/vax.c: Fix comment typos.  Follow spelling
13467         conventions.
13468
13469 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13470
13471         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13472         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13473         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13474         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13475         config/arm/fpa.md, config/arm/iwmmxt.md,
13476         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13477         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13478         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13479         config/sparc/netbsd-elf.h: Update copyright.
13480
13481 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13482
13483         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13484         for all modes whose size is greater than 8 bytes if ARCH32.
13485         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13486         by reference if ARCH32.
13487
13488 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13489
13490         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13491
13492 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13493
13494         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13495         to before adddi3 insn patterns.
13496         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13497         "reload_insi"): Move to before addsi3 insn patterns.
13498
13499 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13500
13501         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13502         parameter.  Use it instead of current_function_is_thunk.
13503         * function.h (struct function): Update documentation for is_thunk.
13504         * tree.h (CALL_FROM_THUNK_P): New macro.
13505         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13506         no_new_pseudos when testing current_function_is_thunk.
13507         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13508
13509 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13510
13511         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13512         TARGET_SETUP_INCOMING_VARARGS.
13513
13514 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13515
13516         * emit-rtl.c (gen_rtx): Remove.
13517         * genattrtab.c: Don't mention gen_rtx in a comment.
13518         * rtl.h: Remove the prototype for gen_rtx.
13519         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13520
13521 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13522
13523         * config/arc/arc.h, config/fr30/fr30.h
13524         (SETUP_INCOMING_VARARGS): Remove the target-independent
13525         comments.
13526         * doc/tm.texi: Don't mention deprecated target macros.
13527
13528 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13529
13530         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13531         target-independent comment.
13532
13533 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13534
13535         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13536         mention deprecated target macros.
13537
13538 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13539
13540         * config.gcc: Remove obsolete ports and configurations.
13541         * config/linux-aout.h, config/netware.h,
13542         config/t-linux-gnulibc1, config/d30v/abi,
13543         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13544         config/d30v/d30v.h, config/d30v/d30v.md,
13545         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13546         config/dsp16xx/dsp16xx-modes.def,
13547         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13548         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13549         config/i370/README, config/i370/i370-c.c,
13550         config/i370/i370-protos.h, config/i370/i370.c,
13551         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13552         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13553         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13554         config/i386/moss.h, config/i386/netware.h,
13555         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13556         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13557         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13558         config/i960/i960-c.c, config/i960/i960-coff.h,
13559         config/i960/i960-modes.def, config/i960/i960-protos.h,
13560         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13561         config/i960/rtems.h, config/i960/t-960bare,
13562         config/m68k/hp310.h, config/m68k/hp320.h,
13563         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13564         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13565         Remove.
13566         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13567         doc/md.texi: Remove mentions of obsolete ports.
13568
13569 2004-02-04  Jan Hubicka  <jh@suse.cz>
13570
13571         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13572         pointer when all VALUE's locations has been invalidated.
13573         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13574
13575 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13576
13577         * doc/invoke.texi (x86 options): Fix spelling/wording.
13578
13579 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13580
13581         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13582         put the original string in a comment.
13583         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13584         * config/mips/mips.c (mips_output_ascii): Likewise.
13585         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13586
13587 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13588
13589         * system.h (GIV_SORT_CRITERION): Poison.
13590         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13591         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13592
13593 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13594
13595         PR target/9348
13596         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13597         multiplies with a multiplication of the wrong signedness, its the
13598         signedness of the multiplication that we've performed that needs to
13599         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13600         if expand_mult_highpart_adjust places the result in target.
13601
13602 2004-02-03  Richard Henderson  <rth@redhat.com>
13603
13604         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13605
13606 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13607
13608         * config.gcc (sh[234]l): Use little endian fragments.
13609
13610 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13611
13612         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13613         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13614         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13615         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13616         floating point format.
13617         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13618         the above functions.
13619         (output_move_quad): Output float values in correct target format.
13620         (legitimate_const_double_p): New function.
13621         * config/pdp11/pdp11.h: Fix typos.
13622         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13623         (TARGET_FLOAT_FORMAT): Ditto.
13624         (pdp11_f_format, pdp11_d_format): Add external declarations.
13625         (MAX_REGS_PER_ADDRESS): Corrected.
13626         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13627         (PRINT_OPERAND): Output float literals in target format.
13628
13629 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13630
13631         PR c++/13975
13632         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13633         TI_PRIVATE.
13634         (access_public_node): Redefine.
13635         (access_protected_node): Likewise.
13636         (access_private_node): Likewise.
13637         * tree.c (build_common_tree_nodes): Create access_public_node,
13638         access_protected_node, and access_private_node.
13639
13640 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13641
13642         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13643         (MASK_INLINE_INT_DIV_THR): Ditto.
13644         (MASK_INLINE_SQRT_LAT): Ditto.
13645         (MASK_INLINE_SQRT_THR): Ditto.
13646         (MASK_DWARF2_ASM): Ditto.
13647         (MASK_EARLY_STOP_BITS): Ditto.
13648
13649 2004-02-02  Paul Brook  <paul@codesourcery.com>
13650
13651         Merge from csl-arm-branch.
13652
13653         2004-01-30  Paul Brook  <paul@codesourcery.com>
13654
13655         * aof.h (REGISTER_NAMES): Add vfp reg names
13656         (ADDITIONAL_REGISTER_NAMES): Ditto.
13657         * aout.h (REGISTER_NAMES): Ditto.
13658         (ADDITIONAL_REGISTER_NAMES): Ditto.
13659         * arm-protos.h: Update/Add Prototypes.
13660         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13661         Only allow 0.0 for VFP.
13662         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13663         (values_fp): Rename from values_fpa.  Update Users.
13664         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13665         Update users.  Only check valid constants for this hardware.
13666         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13667         Only allow consts for FPA.
13668         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13669         Only allow consts for FPA.
13670         (use_return_insn): Check for saved VFP regs.
13671         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13672         (arm_legitimize_address): Ditto.
13673         (arm_general_register_operand): New function.
13674         (vfp_mem_operand): New function.
13675         (vfp_compare_operand): New function.
13676         (vfp_secondary_reload_class): New function.
13677         (arm_float_compare_operand): New function.
13678         (vfp_print_multi): New function.
13679         (vfp_output_fstmx): New function.
13680         (vfp_emit_fstm): New function.
13681         (arm_output_epilogue): Output VPF reg restore code.
13682         (arm_expand_prologue): Output VFP reg save code.
13683         (arm_print_operand): Add 'P'.
13684         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13685         (arm_regno_class): Return classes for VFP regs.
13686         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13687         (arm_get_frame_size): Ditto.
13688         * arm.h (FIXED_REGISTERS): Add VFP regs.
13689         (CALL_USED_REGISTERS): Ditto.
13690         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13691         (FIRST_VFP_REGNUM): Define.
13692         (LAST_VFP_REGNUM): Define.
13693         (IS_VFP_REGNUM): Define.
13694         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13695         (HARD_REGNO_NREGS): Handle VFP regs.
13696         (REG_ALLOC_ORDER): Add VFP regs.
13697         (enum reg_class): Add VFP_REGS.
13698         (REG_CLASS_NAMES): Ditto.
13699         (REG_CLASS_CONTENTS): Ditto.
13700         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13701         (REG_CLASS_FROM_LETTER): Add 'w'.
13702         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13703         (EXTRA_MEMORY_CONSTRAINT): Define.
13704         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13705         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13706         (REGISTER_MOVE_COST): Ditto.
13707         (PREDICATE_CODES): Add arm_general_register_operand,
13708         arm_float_compare_operand and vfp_compare_operand.
13709         * arm.md (various): Rename as above.
13710         (divsf3): Enable when TARGET_VFP.
13711         (divdf3): Ditto.
13712         (movdfcc): Ditto.
13713         (sqrtsf2): Ditto.
13714         (sqrtdf2): Ditto.
13715         (arm_movdi): Disable when TARGET_VFP.
13716         (arm_movsi_insn): Ditto.
13717         (movsi): Only split with general regs.
13718         (cmpsf): Use arm_float_compare_operand.
13719         (push_fp_multi): Restrict to TARGET_FPA.
13720         (vfp.md): Include.
13721         * vfp.md: New file.
13722         * fpa.md (various): Rename as above.
13723         * doc/md.texi: Document ARM w and U constraints.
13724
13725         2004-01-15  Paul Brook  <paul@codesourcery.com>
13726
13727         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13728         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13729         Break out of loop when we find a float-abi.  Fix typo.
13730         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13731         Set -mfloat-abi=.
13732         * doc/install.texi: Document --with-fpu.
13733
13734         2003-01-14  Paul Brook  <paul@codesourcery.com>
13735
13736         * config.gcc (with_arch): Add armv6.
13737         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13738         * config/arm/arm.c (arm_overrride_options): Ditto.
13739
13740         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13741
13742         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13743         (FL_ARCH6): Renamed from FL_ARCH6J.
13744         (arm_arch3m): Renamed from arm_fast_multiply.
13745         (arm_arch6): Renamed from arm_arch6j.
13746         * arm.h: Update all uses of above.
13747         * arm-cores.def: Likewise.
13748         * arm.md: Likewise.
13749
13750         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13751         not arm6j.  Add entry for arch armv6.
13752
13753         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13754
13755         * arm.c (arm_emit_extendsi): Delete.
13756         * arm-protos.h (arm_emit_extendsi): Delete.
13757         * arm.md (zero_extendhisi2): Also handle zero-extension of
13758         non-subregs.
13759         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13760         (thumb_zero_extendhisi2): Only match if not v6.
13761         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13762         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13763         (thumb_extendqisi2): Likewise.
13764         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13765         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13766         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13767         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13768         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13769         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13770         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13771         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13772         (arm_extendqisi2addsi): Likewise.
13773
13774         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13775
13776         Revert this change:
13777         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13778         + REG addressing modes.
13779
13780         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13781         + REG addressing modes.
13782
13783         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13784
13785         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13786         CONSTANT_P_RTX.
13787
13788         2003-30-12  Paul Brook  <paul@codesourcery.com>
13789
13790         * longlong.h: protect arm inlines with !defined (__thumb__)
13791
13792         2003-30-12  Paul Brook  <paul@codesourcery.com>
13793
13794         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13795
13796         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13797
13798         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13799         change.
13800
13801         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13802
13803         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13804         to the virtual incoming args pointer for downward stacks.
13805
13806         2003-12-29  Paul Brook  <paul@codesourcery.com>
13807
13808         * config/arm/arm-cores.def: Add cost function.
13809         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13810         (arm_rtx_costs): Remove
13811         (struct processors): Add rtx_costs field.
13812         (all_cores, all_architectures): Ditto.
13813         (arm_override_options): Set targetm.rtx_costs.
13814         (thumb_rtx_costs): New function.
13815         (arm_rtx_costs_1): Remove cases handled elsewhere.
13816         * config/arm/arm.h (processor_type): Add COSTS parameter.
13817
13818         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13819
13820         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13821         (arm926ejs.md): Include it.
13822         * config/arm/arm926ejs.md: New pipeline description.
13823
13824         2003-12-24  Paul Brook  <paul@codesourcery.com>
13825
13826         * config/arm/arm.c (arm_arch6j): New variable.
13827         (arm_override_options): Set it.
13828         (arm_emit_extendsi): New function.
13829         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13830         * config/arm/arm.h (arm_arch6j): Declare.
13831         * config/arm/arm.md: Add sign/zero extend insns.
13832
13833         2003-12-23  Paul Brook  <paul@codesourcery.com>
13834
13835         * config/arm/arm.c (all_architectures): Add armv6.
13836         * doc/invoke.texi: Document it.
13837
13838         2003-12-19  Paul Brook  <paul@codesourcery.com>
13839
13840         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
13841         insn patterns to match.
13842         * config/arm/arm-generic.md: Ditto.
13843         * config/arm/cirrus.md: Ditto.
13844         * config/arm/fpa.md: Ditto.
13845         * config/amm/iwmmxt.md: Ditto.
13846         * config/arm/arm1026ejs.md: Ditto.
13847         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
13848         for 11_loadb.
13849
13850         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
13851
13852         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13853         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13854         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13855         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13856         arm_no_early_mul_dep): Correctly deal with conditional execution,
13857         parallels and single shift operations.
13858         (arm_no_early_alu_shift_value_dep): Define.
13859         * arm.md (attr type): Replace 'normal' with 'alu',
13860         'alu_shift' and 'alu_shift_reg'.
13861         (attr core_cycles): Adjust.
13862         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13863         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13864         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13865         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13866         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13867         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13868         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13869         attribute appropriately.
13870         * config/arm/arm1026ejs.md (alu_op): Adjust.
13871         (alu_shift_op, alu_shift_reg_op): New.
13872         * config/arm/arm1136.md: Add better bypasses for early
13873         registers. Remove load[234] and store[234] bypasses.
13874         (11_alu_op): Adjust.
13875         (11_alu_shift_op, 11_alu_shift_reg_op): New.
13876
13877         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
13878
13879         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13880         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13881         * config/arm/arm.c (arm_no_early_store_addr_dep,
13882         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13883         * config/arm/arm1026ejs.md: Add load-store bypass.
13884         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13885         Add bypasses between instructions.
13886
13887         2003-12-10  Paul Brook  <paul@codesourcery.com>
13888
13889         * config/arm/arm.c (arm_fpu_model): New variable.
13890         (arm_fload_abi): New variable.
13891         (target_fpe_name): Rename from target_fp_name.
13892         (target_fpu_name): New variable.
13893         (arm_is_cirrus): Remove.
13894         (fpu_desc): New struct.
13895         (all_fpus): Define.
13896         (pf_model_for_fpu): Define.
13897         (all_loat_abis): Define.
13898         (arm_override_options): Set fp arch flags based on -mfpu=
13899         and -float-abi=.
13900         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13901         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13902         (*): Use new TARGET_* flags.
13903         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13904         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13905         (TARGET_SOFT_FLOAT): Ditto.
13906         (TARGET_SOFT_FLOAT_ABI): New.
13907         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
13908         TARGET_HARD_FLOAT.
13909         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13910         (TARGET_OPTIONS): Add -mfpu=.
13911         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13912         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13913         (arm_pf_model): Define.
13914         (arm_float_abi_type): Define.
13915         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
13916         * config/arm/arm.md: Use new TARGET_* flags.
13917         * config/arm/cirrus.md: Ditto.
13918         * config/arm/fpa.md: Ditto.
13919         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13920         * config/arm/semi.h (ASM_SPEC): Ditto.
13921         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13922         (FPUTYPE_DEFAULT): Set to VFP.
13923         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13924
13925         2003-11-22  Phil Edwards  <phil@codesourcery.com>
13926
13927         PR target/12476
13928         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
13929         'bx' instead of 'b' to avoid branch range restrictions.  Output
13930         the thunk immediately before the thunked-to function.
13931         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
13932         .thumb_func if a thunk is being generated.  Emit .code 16 along
13933         with .thumb_func if a thunk is not being generated.
13934
13935         2003-11-15  Nicolas Pitre <nico@cam.org>
13936
13937         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13938         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13939         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13940         (lshrdi3_iwmmxt): Renamed from lshrdi3.
13941         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13942
13943         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
13944             Ian Lance Taylor  <ian@wasabisystems.com>
13945
13946         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13947         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13948
13949         2003-11-05  Phil Edwards  <phil@codesourcery.com>
13950
13951         * config/arm/arm.md (insn):  Add new V6 instruction names.
13952         (generic_sched):  New attr.
13953         * config/arm/arm-generic.md:  Use generic_sched here.
13954         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
13955         stages of pipeline.  Adjust latency counts accordingly.
13956         * config/arm/arm1136jfs.md:  New file.
13957
13958         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
13959
13960         * config/arm/arm.h (processor_type): New enumeration type.
13961         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13962         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13963         (CPP_CPU_ARCH_SPEC): Likewise.
13964         * config/arm/arm.c (arm_tune): New variable.
13965         (all_cores): Use cores.def.
13966         (all_architectures): Add representative processor.
13967         (arm_override_options): Restructure way in which tuning
13968         information is deduced.
13969         * arm.md: Update "insn" and "type" attributes throughout.
13970         (insn): New attribute.
13971         (type): Compute "mult" from "insn" attribute.  Add load2,
13972         load3, load4 alternatives.
13973         (arm automaton): Move to arm-generic.md.
13974         * config/arm/arm-cores.def: New file.
13975         * config/arm/arm-generic.md: Likewise.
13976         * config/arm/arm1026ejs.md: Likewise.
13977
13978 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13979
13980         * doc/invoke.texi (SPARC options): Remove -mflat and
13981         all -mxxx (xxx:chip) options.
13982         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13983         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13984         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13985         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13986         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13987         * config/sparc/sparc.c: Likewise.
13988         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13989         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13990         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13991         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13992         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13993         (sparc_flat_must_save_register_p): Likewise.
13994         (sparc_flat_compute_frame_size): Likewise.
13995         (sparc_flat_save_restore): Likewise.
13996         (sparc_flat_function_prologue): Likewise.
13997         (sparc_flat_function_epilogue): Likewise.
13998         (sparc_flat_epilogue_delay_slots): Likewise.
13999         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14000         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14001         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14002         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14003         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14004         (CONDITIONAL_REGISTER_USAGE): Likewise.
14005         (FRAME_POINTER_REQUIRED): Likewise.
14006         (INITIAL_ELIMINATION_OFFSET): Likewise.
14007         (BASE_RETURN_VALUE_REG): Likewise.
14008         (BASE_OUTGOING_VALUE_REG): Likewise.
14009         (BASE_PASSING_ARG_REG): Likewise.
14010         (BASE_INCOMING_ARG_REG): Likewise.
14011         (INCOMING_REGNO): Likewise.
14012         (OUTGOING_REGNO): Likewise.
14013         (LOCAL_REGNO): Likewise.
14014         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14015         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14016         (EPILOGUE_USES): Likewise.
14017         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14018         ("flat" attribute): Delete.
14019         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14020         handling.
14021         (call followed by jump define_peephole's): Delete.
14022         (exception_receiver): Likewise.
14023         (builtin_setjmp_receiver): Likewise.
14024         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14025
14026 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14027
14028         PR c/11658
14029         PR c/13994
14030         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14031         on langhooks.h.
14032         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14033         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14034         Include langhooks.h.  Replace c_common_truthvalue_conversion
14035         with the truthvalue_conversion language hook throughout.
14036         (expr_no_commas): Call default_conversion before save_expr
14037         for the first term of the production 'x ? : y'.
14038         * c-common.c (c_common_truthvalue_conversion): Remove
14039         obsolete block.  Invoke recursively the hook instead
14040         of this function.
14041         * c-convert.c (convert): handle ERROR_MARK_NODE.
14042         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14043         returned by the truthvalue_conversion language hook.
14044         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14045         c_objc_common_truthvalue_conversion.
14046         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14047         New function.
14048         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14049         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14050         c_objc_common_truthvalue_conversion.
14051
14052 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14053
14054         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14055         of gen_rtx.
14056         (LIBCALL_VALUE): Likewise.
14057         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14058         gen_rtx_CC0 instead of gen_rtx.
14059         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14060         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14061         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14062         gen_rtx.
14063         (m68hc11_emit_logical): Likewise.
14064
14065 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14066
14067         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14068         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14069         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14070         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14071         config/mips/mips.md, config/mmix/mmix.c,
14072         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14073         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14074         config/rs6000/altivec.md, config/s390/s390.c,
14075         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14076         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14077         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14078         constants that are readily available.
14079
14080 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14081
14082         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14083         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14084         instead of GEN_INT (0).  Do the same for other constants that
14085         are readily available.
14086
14087 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14088
14089         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14090         gen_rtx.
14091         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14092         instead of gen_rtx.
14093         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14094         gen_rtx.
14095         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14096         gen_rtx_ASHIFT instead of gen_rtx.
14097         (udivmodqi4): Likewise.
14098
14099 2004-02-02  Richard Henderson  <rth@redhat.com>
14100
14101         PR target/13789
14102         * expr.c (store_expr): Use force_operand before emit_move_insn.
14103
14104 2004-02-02  Jeff Law  <law@redhat.com>
14105             Roger Sayle  <roger@eyesopen.com>
14106
14107         * tree.c (commutative_tree_code, associative_tree_code): New
14108         functions.
14109         (iterative_hash_expr): Use commutative_tree_code.
14110         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14111         * fold-const.c (operand_equal_p): Use commutative_tree_code
14112         rather than inlining the commutativity check.
14113         (fold): Likewise.
14114
14115 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14116
14117         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14118         * config/frv/frv-protos.h: Remove the prototype for
14119         frv_function_arg_keep_as_reference.
14120         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14121         Remove.
14122         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14123         * config/stormy16/stormy16.h: Remove the commented-out
14124         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14125
14126 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14127
14128         PR target/13914
14129         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14130         for retaddr_column.
14131
14132 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14133
14134         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14135         gen_rtx.
14136
14137 2004-02-02  Eric Christopher  <echristo@redhat.com>
14138             Zack Weinberg  <zack@codesourcery.com>
14139
14140         * c-opts.c (c_common_handle_option): Add -finput-charset.
14141         * c.opt: Ditto.
14142         * cppcharset.c (one_iso88591_to_utf8): Remove.
14143         (convert_iso88591_utf8): Ditto.
14144         (conversion_tab): Remove 8859-1 converter.
14145         (_cpp_input_to_utf8): Remove.
14146         (_cpp_init_iconv_buffer): Ditto.
14147         (_cpp_close_iconv_buffer): Ditto.
14148         (_cpp_convert_input): New function.
14149         (_cpp_default_encoding): Ditto.
14150         * cpphash.h: Add/remove prototypes for above.
14151         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14152         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14153         for narrow execution and input character sets.
14154         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14155         * doc/cppopts.texi: Document -finput-charset.
14156
14157 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14158
14159         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14160         against FIRST_PSEUDO_REGISTER.
14161
14162 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14163
14164         * doc/invoke.texi (SPARC options): Further improve.
14165
14166 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14167
14168         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14169         config/h8300/h8300.c, config/ip2k/ip2k.md,
14170         config/iq2000/iq2000.c, config/mips/mips.c,
14171         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14172         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14173         config/v850/v850.md: Fix indentation.
14174
14175 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14176
14177         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14178         arguments on a 16-byte boundary in the parameter array if ARCH64.
14179         Split handling of TFmode.
14180
14181 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14182
14183         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14184         Don't test CONSTANT_P (x).
14185         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14186         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14187         Fix misindentation.
14188
14189 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14190
14191         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14192
14193 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14194
14195         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14196         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14197         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14198         config/iq2000/iq2000.c, config/m32r/m32r.c,
14199         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14200         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14201         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14202         config/stormy16/stormy16.c, config/v850/v850.md,
14203         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14204
14205 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14206
14207         * config/mcore/mcore.c (block_move_sequence): Replace
14208         gen_rtx_CONST_INT with GEN_INT.
14209
14210 2004-02-02  Jan Hubicka  <jh@suse.cz>
14211
14212         * alias.c (record_set): Use hard_regno_nregs.
14213         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14214         * builtins.c (apply_args_size): Likewise.
14215         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14216         mark_set_regs, add_stored_regs, mark_referenced_regs,
14217         insert_restore, insert_save, insert_one_insn): Likewise.
14218         * cfgcleanup.c: Include regs.h
14219         (mark_effect, mentions_nonequal_regs): Likewise.
14220         * cfgrtl.c (mark_killed_regs): Likewise
14221         * combine.c (update_table_tick, record_value_for_reg,
14222         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14223         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14224         reg_bitfield_target_p, distribute_notes): Likewise.
14225         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14226         exp_equiv_p, cse_insn): Likewise.
14227         * cselib.c (cselib_lookup): Likewise.
14228         (cselib_invalidate_regno, cselib_record_set): Likewise.
14229         * df.c (df_ref_record): Likewise.
14230         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14231         Likewise.
14232         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14233         count_or_remove_death_notes_bb): Likewise.
14234         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14235         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14236         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14237         * integrate.c (mark_stores): Likewise.
14238         * jump.c (delete_prior_computation): Likewise.
14239         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14240         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14241         * loop.c (LOOP_REGNO_NREGS): Likewise.
14242         * postreload.c (reload_combine, reload_combine_note_store,
14243         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14244         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14245         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14246         try_recolor_web, insert_coalesced_conflicts, check_colors,
14247         break_precolored_alias): Likewise.
14248         * ra-debug.c: Include regs.h
14249         (ra_print_rtx_object): Likewise.
14250         * ra-rewrite (choose_spill_colors): Likewise.
14251         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14252         * ra.c (init_ra): Likewise.
14253         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14254         peep2_find_free_register): Likewise.
14255         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14256         * regclass.c (hard_regno_nregs): New array.
14257         (init_reg_modes_once): Initialize it.
14258         (choose_hard_reg_mode): Use it.
14259         (record_reg_classes): Likewise.
14260         * regmove.c (mark_flags_life_zones): Likewise.
14261         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14262         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14263         copy_value, maybe_mode_change, find_oldest_value_reg,
14264         copyprop_hardreg_forward_1):
14265         * regs.h (hard_regno_nregs): Declare.
14266         * realod.c (reload_inner_reg_of_subreg): Use it.
14267         (push_reload, combine_reloads, find_dummy_reload,
14268         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14269         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14270         reload_adjust_reg_for_mode): Likewise.
14271         * reload1.c (compute_use_by_pseudos, count_pseudo,
14272         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14273         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14274         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14275         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14276         delete_output_reload): Likewise.
14277         * resource.c (update_live_status, mark_referenced_resources,
14278         mark_set_resources, mark_target_live_regs): Likewise.
14279         * rtlanal.c:  Include regs.h
14280         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14281         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14282         subreg_regno_offset, subreg_offset_representable_p,
14283         hoist_test_store): Likewise.
14284         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14285         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14286         * stmt.c: Include regs.h
14287         (decl_conflicts_with_clobbers_p): Likewise.
14288         * varasm.c (make_decl_rtl): Likewise.
14289         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14290
14291 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14292
14293         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14294         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14295         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14296         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14297         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14298         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14299         config/iq2000/iq2000.h, config/m32r/m32r.c,
14300         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14301         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14302         config/mcore/mcore.c, config/mcore/mcore.h,
14303         config/mcore/mcore.md, config/mips/mips.c,
14304         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14305         config/rs6000/rs6000.c, config/s390/s390.c,
14306         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14307         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14308         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14309
14310 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14311
14312         * config/h8300/h8300.md (two peephole2's): New.
14313
14314 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14315
14316         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14317         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14318         (ASM_CPU_SPEC): Likewise
14319         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14320         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14321
14322 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14323
14324         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14325         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14326         (expand_builtin): Always call expand_builtin_pow.
14327
14328 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14329
14330         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14331         BUILT_IN_SIGNBITL): New GCC builtins.
14332         * builtins.c (expand_builtin_signbit): New function to RTL expand
14333         calls to signbit, signbitf and signbitl as inline intrinsics.
14334         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14335         (fold_builtin_signbit): New function to perform constant folding
14336         of signbit, signbitf and signbitl.
14337         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14338
14339         * doc/extend.texi: Document new signbit{,f,l} builtins.
14340
14341 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14342
14343         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14344
14345 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14346
14347         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14348         "mips_const_double_ok" and "simple_memory_operand", which were
14349         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14350         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14351         for removal of simple_memory_operand.
14352
14353 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14354
14355         * config/c4x/c4x.md: Use GEN_INT instead of
14356         gen_rtx (CONST_INT, ...).
14357
14358 2004-01-31  Richard Henderson  <rth@redhat.com>
14359
14360         * varasm.c (output_constant_pool): Don't zap the pool.
14361
14362 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14363
14364         * genrecog.c (decision_type): Add DT_const_int.
14365         (write_cond) [DT_const_int]: Print a comparison against small
14366         constant.
14367         (write_node): Simplify comparisons against small constants
14368         before printing tests.
14369
14370 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14371
14372         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14373         instead of gen_rtx_CONST_INT.
14374
14375 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14376
14377         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14378         instead of gen_rtx_CONST_INT.
14379
14380 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14381
14382         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14383         hook_bool_CUMULATIVE_ARGS_false.
14384         * targhooks.c (default_strict_argument_naming): Rename to
14385         hook_bool_CUMULATIVE_ARGS_false.
14386         * targhooks.h: Update the prototype for
14387         default_strict_argument_naming.
14388
14389 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14390
14391         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14392         * config/sh/sh.h: Likewise.
14393         * config/sh/sh.md: Likewise.
14394
14395 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14396
14397         * doc/invoke.texi (SPARC options): Restructure and update.
14398
14399 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14400
14401         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14402         STRICT_ARGUMENT_NAMING): Poison.
14403         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14404         hook_bool_tree_false.
14405         * targhooks.c (default_promote_function_args): Remove.
14406         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14407         Don't check incoming.
14408         (default_strict_argument_naming): Don't use
14409         STRICT_ARGUMENT_NAMING.
14410         * targhooks.h: Remove the prototype for
14411         default_promote_function_args.
14412
14413 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14414
14415         * config/i386/i386-protos.h: Remove the prototype for
14416         ix86_setup_incoming_varargs.
14417         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14418         (ix86_setup_incoming_varargs): Make it static.
14419         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14420
14421 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14422
14423         * alloc-pool.c: Fix comment typos.
14424         * builtin-types.def: Likewise.
14425         * builtins.def: Likewise.
14426         * c-pretty-print.c: Likewise.
14427         * df.h: Likewise.
14428         * reload1.c: Likewise.
14429
14430 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14431
14432         * doc/invoke.texi: Follow spelling conventions.
14433         * doc/tm.texi: Likewise.
14434
14435 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14436
14437         * doc/install.texi: Fix typos.
14438         * doc/invoke.texi: Likewise.
14439
14440 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14441
14442         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14443         registers as pointers.
14444         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14445
14446 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14447
14448         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14449         and restore it to gen_lowpart_general on exit.
14450         (gen_lowpart_for_combine): Adjust all callers to go through
14451         gen_lowpart.
14452         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14453         and restore it to gen_lowpart_general on exit.
14454         (gen_lowpart_if_possible): Adjust all callers to go through
14455         gen_lowpart.
14456         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14457         (gen_lowpart): Declare as pointer to function, initialized to
14458         gen_lowpart_general.
14459         * rtl.h (gen_lowpart): Declare as pointer to function.
14460
14461 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14462
14463         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14464         * calls.c: Likewise.
14465         * emit-rtl.c: Likewise.
14466         * function.c: Likewise.
14467         * reload1.c: Likewise.
14468         * config/i386/cygming.h: Likewise.
14469         * config/i386/i386.c: Likewise.
14470         * config/i386/winnt.c: Likewise.
14471
14472 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14473
14474         PR bootstrap/9249
14475         * doc/install.texi: document --enable-__cxa_atexit option.
14476         * configure.ac: Disable __cxa_atexit if not supported.
14477         * configure: Regenerate.
14478
14479 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14480
14481         * ggc-zone.c (ggc_free): New function.
14482
14483 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14484
14485         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14486         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14487         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14488         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14489         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14490         config/alpha/alpha.c, config/alpha/alpha.h,
14491         config/alpha/alpha.md, config/alpha/unicosmk.h,
14492         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14493         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14494         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14495         config/frv/frvend.c, config/i386/cygming.h,
14496         config/i386/djgpp.h, config/i386/emmintrin.h,
14497         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14498         config/i386/i386-protos.h, config/i386/openbsd.h,
14499         config/i386/winnt.c, config/i386/xm-mingw32.h,
14500         config/i386/xmmintrin.h, config/ia64/ia64.md,
14501         config/iq2000/iq2000.md, config/m32r/m32r.md,
14502         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14503         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14504         config/mips/iris5gas.h, config/mips/iris6.h,
14505         config/mips/iris6gas.h, config/mips/linux.h,
14506         config/mips/mips.md, config/mips/netbsd.h,
14507         config/mips/openbsd.h, config/mips/windiss.h,
14508         config/pa/fptr.c, config/rs6000/aix.h,
14509         config/rs6000/altivec.h, config/rs6000/darwin.h,
14510         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14511         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14512         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14513         config/sparc/sol2.h: Update copyright.
14514
14515 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14516
14517         * Makefile.in (abs_docdir, abs_srcdir): Define.
14518         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14519
14520 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14521
14522         * genconfig.c (main): Have CC0_P check its operand even on a
14523         target without cc0.
14524
14525 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14526
14527         * config/alpha/alpha.c: Remove mentions of deprecates macros
14528         in comments, remove some target-independent comments about target
14529         macros, and/or add minimal function comments for target hook
14530         implementations.
14531         * config/avr/avr.c: Likewise.
14532         * config/ia64/ia64.h: Likewise.
14533         * config/ip2k/ip2k.c: Likewise.
14534         * config/iq2000/iq2000.c: Likewise.
14535         * config/m32r/m32r.h: Likewise.
14536         * config/m68hc11/m68hc11.c: Likewise.
14537         * config/mcore/mcore.c: Likewise.
14538         * config/mmix/mmix.c: Likewise.
14539         * config/mn10300/mn10300.c: Likewise.
14540         * config/pa/pa.c: Likewise.
14541         * config/pdp11/pdp11.c: Likewise.
14542         * config/rs6000/rs6000.h: Likewise.
14543         * config/sh/sh.c: Likewise.
14544         * config/sh/sh.h: Likewise.
14545         * config/sparc/sparc.c: Likewise.
14546         * config/sparc/sparc.h: Likewise.
14547         * config/stormy16/stormy16.c: Likewise.
14548         * config/xtensa/xtensa.c: Likewise.
14549
14550 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14551
14552         PR optimization/12147
14553         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14554         RELOAD_FOR_OPADDR_ADDR.
14555         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14556         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14557
14558 2004-01-30  Jan Hubicka  <jh@suse.cz>
14559
14560         * reload.c (get_secondary_mem): Fix updating of
14561         secondary_memlocs_elim_used.
14562
14563 2004-01-30  Richard Henderson  <rth@redhat.com>
14564
14565         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14566         (MAX_RTX_HASH_TABLE): Remove.
14567         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14568         (first_pool, last_pool, pool_offset): Remove.
14569         (struct rtx_constant_pool): Split out from ...
14570         (struct varasm_status): ... here.  Reference one via pointer.
14571         (struct constant_descriptor_rtx): Merge struct pool_constant.
14572         (SYMHASH): Remove.
14573         (decode_rtx_const): Remove.
14574         (const_hash_rtx, compare_constant_rtx): Remove.
14575         (record_constant_rtx): Remove.
14576         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14577         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14578         (const_rtx_hash_1, const_rtx_hash): New.
14579         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14580         (simplify_subtraction): Use simplify_rtx.
14581         (force_const_mem): Rewrite to use new data structures.
14582         (find_pool_constant): Likewise.
14583         (get_pool_constant, get_pool_constant_mark,
14584         get_pool_constant_for_function, get_pool_mode,
14585         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14586         (output_constant_pool_2): Split out from output_constant_pool.
14587         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14588         (output_constant_pool): Zap entire pool datastructure.
14589         (mark_constant): Use new pool datastructures.
14590         (mark_constants): Use for_each_rtx.
14591         (mark_constant_pool): Use new pool datastructures.
14592
14593 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14594
14595         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14596         Copy operands[1] to pseudo for simplify_gen_subreg.
14597
14598 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14599
14600         * gcse.c (bypass_block): Fix a typo in the previous check-in
14601         to the file.
14602
14603 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14604
14605         * toplev.c: Include alloc-pool.h.
14606         * Makefile.in (toplev.c): Update dependencies.
14607
14608 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14609
14610         * combine.c (simplify_shift_const, case XOR): Be careful when
14611         commuting XOR with ASHIFTRT.
14612
14613 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14614             Eric Botcazou  <ebotcazou@libertysurf.fr>
14615
14616         * config/sparc/sparc-protos.h: Remove the prototype for
14617         sparc_builtin_saveregs.
14618         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14619         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14620         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14621         (TARGET_STRUCT_VALUE_RTX): Likewise.
14622         (TARGET_RETURN_IN_MEMORY): Likewise.
14623         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14624         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14625         (sparc_builtin_saveregs): Make it static.
14626         (sparc_promote_prototypes): New.
14627         (sparc_struct_value_rtx): Likewise.
14628         (sparc_return_in_memory): Likewise.
14629         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14630         (PROMOTE_FUNCTION_RETURN): Likewise.
14631         (RETURN_IN_MEMORY): Likewise.
14632         (STRUCT_VALUE): Likewise.
14633         (STRUCT_VALUE_INCOMING): Likewise.
14634         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14635         (STRICT_ARGUMENT_NAMING): Likewise.
14636         (PROMOTE_PROTOTYPES): Likewise.
14637
14638         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14639
14640 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14641
14642         PR c/12818
14643         * varasm.c (const_hash_1) <STRING_CST>: Use the
14644         address to compute the hash value if flag_writable_strings.
14645         (compare_constant) <STRING_CST>: Compare the addresses
14646         if flag_writable_strings.
14647         (build_constant_desc): Do not copy the expression for a
14648         STRING_CST if flag_writable_strings.
14649
14650 2004-01-30  Jan Hubicka  <jh@suse.cz>
14651
14652         * alloc-pool.c: Include hashtab.h
14653         (alloc_pool_descriptor): New structure
14654         (alloc_pool_hash): New global variable.
14655         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14656         (create_alloc_pool): Update statistics.
14657         (free_alloc_pool): Likewise.
14658         (pool_alloc): Likewise.
14659         (output_info): New structure
14660         (print_statistics, dump_alloc_pool_statistics): New function.
14661         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14662         (dump_alloc_pool_statistics): Declare.
14663         * toplev.c (finalize):  Dump statistics.
14664
14665         * reload.c (secondary_memlocs_elim_used): New static variable.
14666         (get_secondary_mem): Update it.
14667         (find_reloads): Use it.
14668
14669 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14670
14671         * toplev.c: Fix broken checkin of 2003-12-30, again.
14672
14673 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14674
14675         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14676         s390*-*-* targets by specifying a 'nop' insn.
14677         * configure: Regenerate.
14678
14679 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14680
14681         PR target/11475
14682         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14683
14684 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14685
14686         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14687         of addr when creating MEM copy.
14688
14689 2004-01-29  Devang Patel  <dpatel@apple.com>
14690
14691         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14692
14693 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14694
14695         PR inline-asm/6162
14696         * reload.c (find_reloads): Only support one pair of commutative
14697         operands.
14698
14699 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14700
14701         PR java/13824
14702         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14703         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14704         recursion.
14705
14706 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14707
14708         * config/frv/frv.c: Don't mention deprecated macros in
14709         comments.  Remove some target-independent comments about
14710         target macros.
14711         * config/frv/frv.h: Likewise.
14712
14713 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14714
14715         * cfghooks.c (split_block): Set probability and count of the
14716         new edge.
14717
14718 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14719
14720         * dwarf2out.c (struct die_struct): Added field decl_id.
14721         (decl_die_table): Changed to hash table.
14722         (decl_die_table_allocated): Deleted.
14723         (decl_die_table_in_use): Deleted.
14724         (DECL_DIE_TABLE_INCREMENT): Deleted.
14725         (decl_die_table_hash): New function.
14726         (decl_die_table_eq): New function.
14727         (lookup_decl_die): Lookup in a hash table.
14728         (equate_decl_number_to_die): Insert into a hash table.
14729         (dwarf2out_init): Init hash table decl_die_table.
14730
14731 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14732
14733         PR optimization/13424
14734         * expr.c (store_constructor): Revert 2003-12-03 change.
14735
14736         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14737         expected before returning early.  Avoid sharing RTL if they
14738         need to be changed.
14739
14740         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14741         handling so that memory attributes are preserved.  Don't call
14742         ix86_set_move_mem_attrs.
14743         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14744         (ix86_expand_clrstr): Rename src argument to
14745         dst.  Rework rep_stos and strset handling so that memory attributes
14746         are preserved.
14747         (ix86_expand_strlen): Pass src argument to
14748         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14749         memory attributes are preserved.
14750         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14751         change_address instead of gen_rtx_MEM.
14752         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14753         expanders.
14754         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14755         strmovqi, strmovqi_rex64): Remove.
14756         (rep_mov*, strmov*): Prefix insn names with *.
14757         (strset, strset_singleop, rep_stos): New expanders.
14758         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14759         strsetqi, strsetqi_rex64): Remove.
14760         (rep_stos*, strset*): Prefix insn names with *.
14761         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14762         to SImode.
14763         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14764         are preserved.
14765         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14766         Prefix insn names with *.
14767         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14768         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14769         (strlenqi_1): New expander.
14770         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14771
14772 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14773
14774         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14775         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14776         verify_flow_info): Declaration removed.
14777         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14778         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14779         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14780         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14781         instead of delete_block.
14782         * cfghooks.c: Include timevar.h and toplev.h.
14783         (cfg_hooks): Define here.
14784         (verify_flow_info, dump_bb): Moved from cfg.c.
14785         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14786         split_block, split_block_after_labels, move_block_after,
14787         delete_basic_block, split_edge, create_basic_block,
14788         create_empty_bb, can_merge_blocks_p, merge_blocks,
14789         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14790         New functions.
14791         * cfghooks.h (struct cfg_hooks): Added fields name,
14792         make_forwarder_block, tidy_fallthru_edge and
14793         move_block_after. Changed type of verify_flow_info, dump_bb,
14794         split_block fields. Renamed cfgh_split_edge and delete_block
14795         fields.
14796         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14797         split_block, delete_block, split_edge, create_basic_block,
14798         can_merge_blocks_p, merge_blocks): Macros removed.
14799         (cfg_hooks): Do not export.
14800         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14801         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14802         move_block_after, delete_basic_block, split_edge, create_basic_block,
14803         create_empty_bb, can_merge_blocks_p, merge_blocks,
14804         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14805         Declare.
14806         (cfg_layout_rtl_cfg_hooks): Declare.
14807         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14808         New functions.
14809         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14810         (redirect_edge_with_latch_update): Removed.
14811         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14812         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14813         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14814         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14815         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14816         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14817         cfghooks.c.
14818         (rtl_create_basic_block): Coding style fix.
14819         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14820         rtl_make_forwarder_block): New functions.
14821         (update_cfg_after_block_merging): Removed.
14822         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14823         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14824         to dump_bb.
14825         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14826         find_if_case_2): Don't update dominators.
14827         * timevar.def (TV_CFG_VERIFY): New.
14828         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14829         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14830         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14831         (remove_bbs): Don't call remove_bbs.
14832         (create_preheader): Use make_forwarder_block.
14833         (mfb_keep_just, mfb_update_loops): New static functions.
14834
14835 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14836
14837         * config/avr/avr.h: Remove target-independent comments about
14838         target macros.
14839
14840 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
14841
14842         * timevar.c (timevar_print): Mention when checking is enabled.
14843
14844 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14845
14846         * c-lex.c (c_lex): Rename to...
14847         (c_lex_with_flags): Add new parameter to get CPP flags.
14848         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14849         * c-pragma.h (c_lex_with_flags): Declare.
14850
14851 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14852
14853         * config/mcore/mcore.c (mcore_external_libcall): Add a
14854         comment.
14855         (mcore_return_in_memory): Likewise.
14856
14857 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14858
14859         * config/mcore/mcore-protos.h: Remove the prototype for
14860         mcore_setup_incoming_varargs.
14861         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14862         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14863         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14864         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14865         (TARGET_STRUCT_VALUE_RTX): Likewise.
14866         (TARGET_RETURN_IN_MEMORY): Likewise.
14867         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14868         (mcore_setup_incoming_varargs): Make it static.  Receive the
14869         first argument by reference.  Add argument second_time.
14870         (mcore_external_libcall): New.
14871         (mcore_return_in_memory): Likewise.
14872         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14873         (PROMOTE_FUNCTION_RETURN): Likewise.
14874         (STRUCT_VALUE): Likewise.
14875         (RETURN_IN_MEMORY): Likewise.
14876         (SETUP_INCOMING_VARARGS): Likewise.
14877         (PROMOTE_PROTOTYPES): Likewise.
14878         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14879
14880 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14881
14882         * config/m32r/m32r-protos.h: Remove the prototype for
14883         m32r_setup_incoming_varargs.
14884         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14885         (TARGET_STRUCT_VALUE_RTX): Likewise.
14886         (TARGET_RETURN_IN_MEMORY): Likewise.
14887         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14888         (m32r_return_in_memory): New.
14889         (m32r_setup_incoming_varargs): Make it static.
14890         * config/m32r/m32r.h: Remove #undef of
14891         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
14892         definitions of PROMOTE_FUNCTION_ARGS and
14893         PROMOTE_FUNCTION_RETURN.
14894         (PROMOTE_PROTOTYPES): Remove.
14895         (RETURN_IN_MEMORY): Likewise.
14896         (STRUCT_VALUE): Likewise.
14897
14898 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14899
14900         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14901         (TARGET_STRUCT_VALUE_RTX): Likewise.
14902         (m68k_struct_value_rtx): Likewise.
14903         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14904         STRUCT_VALUE_REGNUM.
14905         (PROMOTE_PROTOTYPES): Remove.
14906         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14907         STRUCT_VALUE_REGNUM.
14908         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14909         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14910
14911 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14912
14913         * config/stormy16/stormy16.c
14914         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14915         TARGET_BUILD_BUILTIN_VA_LIST.
14916
14917 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14918
14919         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14920         (TARGET_STRUCT_VALUE_RTX): Likewise.
14921         (TARGET_RETURN_IN_MEMORY): Likewise.
14922         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14923         (v850_return_in_memory): Likewise.
14924         (v850_setup_incoming_varargs): Likewise.
14925         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14926         (SETUP_INCOMING_VARARGS): Likewise.
14927         (RETURN_IN_MEMORY): Likewise.
14928         (STRUCT_VALUE): Likewise.
14929
14930 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14931
14932         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14933         (fr30_setup_incoming_varargs): Don't use
14934         STRICT_ARGUMENT_NAMING.
14935         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14936         (STRICT_ARGUMENT_NAMING): Likewise.
14937
14938 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14939
14940         * config/frv/frv-protos.h: Remove the prototype for
14941         frv_expand_builtin_saveregs.
14942         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14943         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14944         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14945         STRUCT_VALUE_REGNUM.
14946         (frv_expand_builtin_saveregs): Make it static.
14947         (frv_struct_value_rtx): New.
14948         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14949
14950 2004-01-29  Jan Hubicka  <jh@suse.cz>
14951
14952         PR c++/12850
14953         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14954         initial pointers.
14955         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14956         for functions that will be only inlined.
14957         (cgraph_mark_function_to_output): Likewise.
14958         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14959         do not clear function body.
14960         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14961         (tree_rest_of_compilation): Reorganize the logic releasing function
14962         body to use callgraph datastructure.
14963
14964 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14965
14966         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14967         to register_operand.
14968
14969 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14970
14971         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14972         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14973         match_operand expressions so that all match_dups appear
14974         lexically after their corresponding match_operands.
14975
14976 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14977
14978         * config/h8300/h8300.c (WORD_REG_USED): Use
14979         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14980         (compute_saved_regs): Likewise.
14981         (h8300_expand_prologue): Likewise.  Allocate locals after
14982         saving registers.
14983         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14984         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
14985         registers.
14986         (h8300_initial_elimination_offset): Adjust for the new frame
14987         layout, which swaps flips the order of locals and saved
14988         registers.
14989         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14990         (HARD_FRAME_POINTER_REGNUM): New.
14991         (ELIMINABLE_REGS): Add an elimination rule from
14992         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14993         (REGISTER_NAMES): Add fp.
14994         * config/h8300/h8300.md (FP_REG): Change to 11.
14995         (HFP_REG): New.
14996
14997 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14998
14999         * genrecog.c (write_node): Remove a useless local variable.
15000
15001 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15002
15003         * Makefile.in (options.c options.h): Use stamp file s-options to
15004         avoid unnecessary rebuilds.
15005         (options.o): New target listing dependencies.
15006         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15007         (STAGESTUFF): Add s-gtyp-gen.
15008
15009 2004-01-28  Richard Henderson  <rth@redhat.com>
15010
15011         * ggc.h (ggc_free): Declare.
15012         * ggc-common.c (ggc_realloc): Use it.
15013         * ggc-page.c: Remove lots of inline markers.
15014         (globals): Add free_object_list.
15015         (ggc_alloc): Tidy.
15016         (ggc_free, validate_free_objects): New.
15017         (poison_pages): Provide default.
15018         (ggc_collect): Call validate_free_objects; emit markers to
15019         the debug file.
15020
15021 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15022             Jim Wilson  <wilson@specifixinc.com>
15023
15024         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15025         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15026         scratch pointer.
15027         (ia64_secondary_reload_class): Delete case GR_REGS.
15028         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15029         Do not allocate a scratch register.
15030         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15031
15032 2004-01-28  Jan Hubicka  <jh@suse.cz>
15033
15034         * gcse.c (bypass_block): Prevent edges to be unified when we are
15035         about to emit compenstation code.
15036
15037 2004-01-28  Nick Clifton  <nickc@redhat.com>
15038
15039         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15040         the setcwx insn into a register.
15041
15042 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15043
15044         * config/fp-bit.c (pack_d): When using paired doubles to implement
15045         a long double, round the high part separately.
15046         (unpack_d): Fix the case in which the high part is a power of two
15047         and the low part is a nonzero value of the opposite sign.
15048
15049 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15050
15051         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15052         (TARGET_STRUCT_VALUE_RTX): Likewise.
15053         (c4x_external_libcall): Likewise.
15054         (c4x_struct_value_rtx): Likewise.
15055         * config/c4x/c4x.h: Remove.
15056         (STRUCT_VALUE_REGNUM): Likewise.
15057         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15058
15059 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15060
15061         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15062         (TARGET_STRUCT_VALUE_RTX): Likewise.
15063         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15064         (STRUCT_VALUE): Likewise.
15065         (PROMOTE_PROTOTYPES): Likewise.
15066
15067 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15068
15069         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15070         CONST_INT before using INTVAL.
15071
15072 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15073
15074         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15075         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15076         frame if !TARGET_BACKCHAIN.
15077         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15078         TARGET_BACKCHAIN.
15079         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15080
15081 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15082
15083         * ia64.c (ia64_function_arg): When placing HFAs in integer
15084         registers, do not special case the mode used for complex
15085         types.  Do not advance int_regs until the current register
15086         is full.
15087
15088 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15089
15090         PR target/7297
15091         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15092
15093 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15094
15095         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15096         slow, unaligned loads and stores while debugging.  Fix formatting.
15097
15098 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15099
15100         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15101         of computing wmode.
15102         (restore_stack_nonlocal): Same.
15103
15104 2004-01-27  Devang Patel <dpatel@apple.com>
15105
15106         * Makefile.in (dwarf2out.o): Depend on input.h
15107         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15108         imported_module_or_decl.
15109         (xcoff_debug_hooks): Same.
15110         * sdbout.c (sdb_debug_hooks): Same.
15111         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15112         * debug.c (do_nothing_debug_hooks): Same.
15113         (debug_nothing_tree_tree): New function.
15114         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15115         * dwarf2out.c: Include input.h.
15116         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15117         (remove_child_TAG): New function.
15118         (dwarf_tag_name): Handle DW_TAG_imported_module.
15119         (gen_subprogram_die): Equate decl number to declaration die. Do not
15120         remove all children dies while reusing declaration die for definition.
15121         Instead, selectively remove only formal parameters.
15122         (gen_variable_die): Equate variable decl to declaration die.
15123         (gen_field_die): Equate field decl to line number.
15124         (force_namespace_die): Replace it with ...
15125         (force_decl_die): ... this.
15126         (force_type_die): New function.
15127         (setup_namespace_context): Replace use of force_namespace_die() with
15128         force_decl_die().
15129         (gen_namespace_die): Same.
15130         (dwarf2out_imported_module_or_decl): New function.
15131
15132 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15133
15134         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15135         on CQImode and CHImode incoming arguments in register a7.
15136         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15137         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15138         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15139         xtensa_copy_incoming_a7 before reload.
15140
15141 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15142
15143         * coverage.c (get_coverage_counts): Give a different message
15144         if flag_guess_branch_prob is set.
15145         * predict.c (counts_to_freqs): Return an int.
15146         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15147         calculate estimates.
15148
15149 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15150
15151         * config/iq2000/iq2000-protos.h: Remove the prototype for
15152         iq2000_setup_incoming_varargs.
15153         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15154         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15155         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15156         (TARGET_STRUCT_VALUE_RTX): Likewise.
15157         (TARGET_RETURN_IN_MEMORY): Likewise.
15158         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15159         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15160         (iq2000_return_in_memory): Likewise.
15161         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15162         first argument by reference.
15163         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15164         (PROMOTE_FUNCTION_RETURN): Likewise.
15165         (PROMOTE_PROTOTYPES): Likewise.
15166         (RETURN_IN_MEMORY): Likewise.
15167         (STRUCT_VALUE): Likewise.
15168         (SETUP_INCOMING_VARARGS): Likewise.
15169         (STRICT_ARGUMENT_NAMING): Likewise.
15170
15171 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15172
15173         * fixinc/fixinc.c (test_test): Initialize res.
15174         (start_flexer): Initialize pz_cmd_save.
15175
15176 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15177
15178         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15179         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15180
15181 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15182
15183         PR 7198
15184         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15185         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15186         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15187         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15188         Possibly rename pattern for consistency.
15189         Remove ??? comments suggesting that this be done.
15190         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15191         New patterns.
15192         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15193         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15194         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15195         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15196         Update to match.
15197
15198 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15199
15200         * config/arm/arm.c (output_return_instruction): Only restore IP
15201         into SP if frame_pointer_needed.
15202
15203 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15204
15205         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15206         for SCmode and DCmode if ARCH32.
15207         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15208         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15209         if ARCH32.
15210         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15211         if ARCH32.
15212         (BASE_OUTGOING_VALUE_REG): Likewise.
15213
15214 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15215
15216         PR target/10904
15217         PR target/13058
15218         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15219         Forbid mode changes from SImode for lower FP regs if ARCH64.
15220
15221 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15222
15223         * Makefile.in (bt-load.o): Depend on except.h.
15224         * bt-load.c (except.h): #include.
15225         (compute_defs_uses_and_gen): If insn at end of BB can throw
15226         within this function, consider registers used by it unavailable for
15227         btr migration.
15228         (move_btr_def): If insn at end of BB can throw, insert before rather
15229         than after.
15230
15231         * flags.h (flag_btr_bb_exclusive): Declare.
15232         * toplev.c (flag_btr_bb_exclusive): New variable.
15233         (f_options): Add btr-bb-exclusive.
15234         * bt-load.c (augment_live_range): Restore old behaviour if
15235         flag_btr_bb_exclusive is set.
15236         * common.opt: Add entry for -fbtr-bb-exclusive.
15237         * opts.c (common_handle_options): Same.
15238         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15239
15240         * bt-load.c (btrs_live_at_end): New variable.
15241         (compute_defs_uses_and_gen): Compute its pointed-to array.
15242         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15243         (augment_live_range): When augmenting with a new dominator,
15244         use only its btrs_live_at_end set, but also add in the full set
15245         of the old dominator.
15246         (btr_def_live_range): Use btrs_live_at_end.
15247         (move_btr_def): Set other_btr_uses_before_def, and move new set
15248         to the end of the basic block, if appropriate.
15249         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15250
15251         * bt-load.c (basic_block_freq): Remove outdated comment.
15252
15253 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15254
15255         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15256         (PREDICATE_CODES): Remove duplicate.
15257         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15258         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15259         (MASK_PROFILE_KERNEL): Adjust define.
15260
15261 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15262
15263         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15264         of long string literals from 32 bytes to sizeof (void *) when !-Os
15265         and to 1 with -Os.
15266
15267 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15268
15269         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15270         constant addresses in the normal mode.
15271
15272 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15273
15274         * system.h (CHAR_BITFIELD): Delete.
15275         (BOOL_BITFIELD): New.
15276         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15277         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15278
15279 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15280
15281         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15282         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15283         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15284         (TARGET_STRUCT_VALUE_RTX): Likewise.
15285         (TARGET_RETURN_IN_MEMORY): Likewise.
15286         (arc_return_in_memory): Likewise.
15287         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15288         (PROMOTE_FUNCTION_RETURN): Likewise.
15289         (RETURN_IN_MEMORY): Likewise.
15290         (STRUCT_VALUE): Likewise.
15291
15292 2004-01-26  Richard Henderson  <rth@redhat.com>
15293
15294         * c-parse.in (extension): Use itype.
15295         (SAVE_EXT_FLAGS): Don't allocate a tree.
15296         (RESTORE_EXT_FLAGS): Don't read a tree.
15297
15298 2004-01-26  Jan Hubicka  <jh@suse.cz>
15299
15300         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15301         to datastructure to be recycled.
15302
15303 2004-01-25  Jan Hubicka  <jh@suse.cz>
15304
15305         * genextract.c (main): Do not output the memset when not checking.
15306
15307 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15308
15309         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15310         switch statement instead of a chain of if statements.
15311
15312 2004-01-26  Jeff Law  <law@redhat.com>
15313
15314         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15315         acute accents for Petur Runolfsson's entry.
15316
15317 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15318
15319         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15320         (TARGET_RETURN_IN_MEMORY): Likewise.
15321         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15322         (RETURN_IN_MEMORY): Likewise.
15323
15324 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15325
15326          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15327          unaligned load/store into smaller loads and stores.
15328
15329 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15330
15331         * function.c (assign_parms): Do not assign
15332         long long argument to memory in prologue if
15333         is it loaded into register.
15334
15335 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15336
15337          PR middle-end/13779
15338          * expr.c (emit_group_load): split constant
15339          correctly into register components of PARALLEL insn.
15340
15341 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15342
15343         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15344         Use adjust_address_nv directly with appropriate mode.
15345         (restore_stack_nonlocal): Ditto.
15346
15347 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15348
15349         * config/xtensa/xtensa-protos.h: Remove the prototype for
15350         xtensa_builtin_saveregs.
15351         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15352         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15353         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15354         (TARGET_STRUCT_VALUE_RTX): Likewise.
15355         (TARGET_RETURN_IN_MEMORY): Likewise.
15356         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15357         (xtensa_builtin_saveregs): Make it static.
15358         (xtensa_return_in_memory): New.
15359         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15360         (PROMOTE_FUNCTION_RETURN): Likewise.
15361         (PROMOTE_PROTOTYPES): Likewise.
15362         (STRUCT_VALUE): Likewise.
15363         (RETURN_IN_MEMORY): Likewise.
15364         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15365
15366 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15367
15368         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15369         (arm_setup_incoming_varargs): Likewise.
15370         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15371
15372 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15373
15374         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15375         (cris_setup_incoming_varargs): Likewise.
15376         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15377
15378 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15379
15380         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15381         (ns32k_struct_value_rtx): Likewise.
15382         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15383         NS32K_STRUCT_VALUE_REGNUM.
15384
15385 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15386
15387         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15388         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15389         (TARGET_STRUCT_VALUE_RTX): Likewise.
15390         (arm_struct_value_rtx): Likewise.
15391         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15392         (STRUCT_VALUE): Likewise.
15393         (STRUCT_VALUE_REGNUM): Likewise.
15394         (PROMOTE_PROTOTYPES): Likewise.
15395
15396 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15397
15398         * config/ia64/ia64-protos.h: Remove the prototype for
15399         ia64_setup_incoming_varargs and ia64_return_in_memory.
15400         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15401         (TARGET_RETURN_IN_MEMORY): Likewise.
15402         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15403         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15404         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15405         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15406         (ia64_return_in_memory): Make it static.  Change the return
15407         type to bool from int.  Add an argument.
15408         (ia64_struct_value_rtx): New.
15409         * config/ia64/ia64.h: Remove commented-out definitions of
15410         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15411         PROMOTE_PROTOTYPES.
15412         (RETURN_IN_MEMORY): Remove.
15413         (STRUCT_VALUE_REGNUM): Likewise.
15414         (STRICT_ARGUMENT_NAMING): Likewise.
15415
15416 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15417
15418         PR target/13666
15419         * config/sparc/sparc.c (function_arg_union_value): New function.
15420         (function_arg): Use it to deal with unions.
15421         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15422         Replace a conditional statement by a simpler one.
15423
15424 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15425
15426         * config/mips/mips.c (mips16_optimize_gp): Delete.
15427         (mips_reorg): Don't call it.
15428
15429 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15430
15431         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15432         (floatunsqihf2): Remove operand 6.
15433         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15434         fix patterns.
15435         (ldi_conditional, ldf_conditional): Validate operands.
15436
15437 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15438
15439         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15440         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15441
15442 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15443
15444         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15445         memory references if TARGET_EXPOSE_LDP nonzero.
15446
15447 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15448
15449         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15450
15451 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15452
15453         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15454         invalid operand combinations.
15455
15456 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15457
15458         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15459         c4x_legitimate_address_p.  Fix post_modify check.
15460
15461         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15462         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15463
15464 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15465
15466         * config/pa/pa-protos.h: Remove the prototype for
15467         hppa_builtin_saveregs.  Add a prototype for
15468         pa_return_in_memory.
15469         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15470         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15471         (TARGET_STRUCT_VALUE_RTX): Likewise.
15472         (TARGET_RETURN_IN_MEMORY): Likewise.
15473         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15474         (pa_struct_value_rtx): Likewise.
15475         (pa_return_in_memory): Likewise.
15476         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15477         PA_STRUCT_VALUE_REGNUM.
15478         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15479         (EXPAND_BUILTIN_SAVEREGS): Remove.
15480         (PROMOTE_PROTOTYPES): Likewise.
15481         (PROMOTE_FUNCTION_RETURN): Likewise.
15482
15483 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15484
15485         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15486         (TARGET_STRUCT_VALUE_RTX): Likewise.
15487         (vax_struct_value_rtx): Likewise.
15488         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15489         VAX_STRUCT_VALUE_REGNUM.
15490         (PROMOTE_PROTOTYPES): Remove.
15491
15492 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15493
15494         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15495
15496 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15497
15498         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15499         and MIPS64 have HI/LO interlocks.  Update comment.
15500
15501 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15502
15503         * config/stormy16/stormy16-protos.h: Remove the prototype for
15504         xstormy16_setup_incoming_varargs.
15505         * config/stormy16/stormy16.c
15506         (xstormy16_setup_incoming_varargs): Remove.
15507         (xstormy16_return_in_memory): New.
15508         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15509         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15510         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15511         (TARGET_STRUCT_VALUE_RTX): Likewise.
15512         (TARGET_RETURN_IN_MEMORY): Likewise.
15513         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15514         (PROMOTE_FUNCTION_RETURN): Likewise
15515         (PROMOTE_PROTOTYPES): Likewise
15516         (RETURN_IN_MEMORY): Likewise
15517         (STRUCT_VALUE): Likewise
15518         (SETUP_INCOMING_VARARGS): Likewise
15519
15520 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15521
15522         * config/mips/mips.c (mips_offset_within_object_p): New function.
15523         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15524         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15525         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15526
15527 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15528
15529         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15530         (PROMOTE_FUNCTION_RETURN): Likewise.
15531
15532 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15533
15534         * config/mn10300/mn10300-protos.h: Remove the prototype for
15535         mn10300_builtin_saveregs.
15536         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15537         (TARGET_STRUCT_VALUE_RTX): Likewise.
15538         (TARGET_RETURN_IN_MEMORY): Likewise.
15539         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15540         (mn10300_return_in_memory): Likewise.
15541         (mn10300_builtin_saveregs): Make it static.
15542         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15543         (RETURN_IN_MEMORY): Likewise.
15544         (STRUCT_VALUE): Likewise.
15545         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15546
15547 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15548
15549         PR bootstrap/13853
15550         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15551
15552 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15553
15554         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15555         using ccr.
15556
15557 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15558
15559         * config/i860/i860-protos.h: Remove the prototype for
15560         i860_saveregs.
15561         * config/i860/i860.c (i860_saveregs): Make it static.
15562         (i860_struct_value_rtx): New.
15563         (TARGET_STRUCT_VALUE_RTX): Likewise.
15564         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15565         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15566         I860_STRUCT_VALUE_REGNUM.
15567         (EXPAND_BUILTIN_SAVEREGS): Remove.
15568
15569 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15570
15571         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15572         (TARGET_RETURN_IN_MEMORY): Likewise.
15573         (m68hc11_struct_value_rtx): Likewise.
15574         (m68hc11_return_in_memory): Likewise.
15575         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15576         of PROMOTE_PROTOTYPES.
15577         (RETURN_IN_MEMORY): Remove.
15578         (STRUCT_VALUE_REGNUM): Likewise.
15579
15580 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15581
15582         * config/mmix/mmix-protos.h: Remove the prototype for
15583         mmix_setup_incoming_varargs.
15584         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15585         (TARGET_STRUCT_VALUE_RTX): Likewise.
15586         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15587         (mmix_setup_incoming_varargs): Make it static.
15588         (mmix_struct_value_rtx): New.
15589         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15590         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15591         (STRUCT_VALUE_REGNUM): Remove.
15592         (SETUP_INCOMING_VARARGS): Likewise.
15593
15594 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15595
15596         * config/mips/mips-protos.h: Remove the prototypes for
15597         mips_setup_incoming_varargs and mips_return_in_memory.
15598         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15599         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15600         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15601         (TARGET_STRUCT_VALUE_RTX): Likewise.
15602         (TARGET_RETURN_IN_MEMORY): Likewise.
15603         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15604         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15605         (mips_setup_incoming_varargs): Match the prototype for
15606         TARGET_SETUP_INCOMING_VARARGS.
15607         (mips_return_in_memory): Make it static.  Add argument fntype.
15608         (mips_strict_argument_naming): New.
15609         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15610         (PROMOTE_FUNCTION_ARGS): Likewise.
15611         (PROMOTE_FUNCTION_RETURN): Likewise.
15612         (STRUCT_VALUE): Likewise.
15613         (RETURN_IN_MEMORY): Likewise.
15614         (SETUP_INCOMING_VARARGS): Likewise.
15615         (STRICT_ARGUMENT_NAMING): Likewise.
15616
15617 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15618
15619         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15620         (TARGET_RETURN_IN_MEMORY): Likewise.
15621         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15622         (ip2k_return_in_memory): Likewise.
15623         (ip2k_setup_incoming_varargs): Likewise.
15624         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15625         (STRUCT_VALUE): Likewise.
15626         (STRUCT_VALUE_INCOMING): Likewise.
15627         (SETUP_INCOMING_VARARGS): Likewise.
15628
15629 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15630
15631         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15632         (TARGET_RETURN_IN_MEMORY): Likewise.
15633         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15634         (avr_return_in_memory): Remove.
15635         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15636         (STRUCT_VALUE): Likewise.
15637         (STRUCT_VALUE_INCOMING): Likewise.
15638         (STRICT_ARGUMENT_NAMING): Likewise.
15639
15640 2004-01-25  Jan Hubicka  <jh@suse.cz>
15641
15642         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15643
15644 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15645
15646         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15647         (mips_regno_mode_ok_for_base_p): Declare.
15648         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15649         (FRAME_POINTER_REGNUM): Renumber to 78.
15650         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15651         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15652         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15653         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15654         (REG_MODE_OK_FOR_BASE_P): Likewise.
15655         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15656         entry for 77 to "$arg" and entry for 78 to "$frame".
15657         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15658         (mips_reg_mode_ok_for_base_p): Remove.
15659         (mips_regno_mode_ok_for_base_p): New function, derived from old
15660         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15661         restrictions unless we're being strict.
15662         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15663
15664 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15665
15666         * c-common.h: Fix comment typos.
15667         * c-decl.c: Likewise.
15668         * cgraphunit.c: Likewise.
15669         * combine.c: Likewise.
15670         * et-forest.c: Likewise.
15671         * flow.c: Likewise.
15672         * function.c: Likewise.
15673         * ifcvt.c: Likewise.
15674         * integrate.c: Likewise.
15675         * jump.c: Likewise.
15676         * postreload.c: Likewise.
15677         * varray.c: Likewise.
15678
15679 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15680
15681         * doc/frontends.texi: Update copyright.
15682         * doc/gcov.texi: Likewise.
15683         * doc/gty.texi: Likewise.
15684         * doc/sourcebuild.texi: Likewise.
15685         * doc/standards.texi: Likewise.
15686
15687 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15688
15689         PR target/12978
15690         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15691         Remove movstrqi_small because it conflicts with movstrqi_large.
15692
15693 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15694
15695         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15696         (TARGET_STRUCT_VALUE_RTX): Likewise.
15697         (cris_struct_value_rtx): Likewise.
15698         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15699         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15700         STRUCT_VALUE_REGNUM.
15701         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15702
15703 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15704
15705         PR bootstrap/13848
15706         * cse.c (cse_cc_succs): Change the mode of the source expression
15707         as soon as decide we need a new mode.  Don't permit changing modes
15708         if we found a match in a successor block.
15709         (cse_condition_code_reg): Save original mode of source expression
15710         so that we know whether we have to change the mode in other
15711         insns.
15712
15713 2004-01-24  Jan Hubicka  <jh@suse.cz>
15714
15715         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15716         widen_memory_access):  Return early when there is nothing to change.
15717
15718 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15719
15720         * simplify-rtx.c (simplify_relational_operation): Don't
15721         simplify address == constant into address + -constant == 0.
15722
15723 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15724
15725         * gcc.c (process_command): Don't internationalize the
15726         Copyright message.
15727         * mips-tfile.c (main): Likewise.
15728
15729 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15730
15731         * cse.c: (cse_cc_succs) Fix comparison warning.
15732
15733 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15734
15735         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15736
15737 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15738
15739         * config/h8300/h8300-protos.h: Provide prototypes for
15740         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15741         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15742         (h8300_rtx_ok_for_base_p): Likewise.
15743         (h8300_legitimate_address_p): Likewise.
15744         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15745         h8300_legitimate_constant_p.
15746         (RTX_OK_FOR_BASE_P): Remove.
15747         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15748
15749 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15750
15751         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15752         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15753         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15754         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15755         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15756         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15757         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15758         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15759
15760 2004-01-24  Jan Hubicka  <jh@suse.cz>
15761
15762         * cselib.c (remove_useless_values):  Do not access discarded values.
15763
15764 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15765
15766         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15767         arrays.
15768
15769 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15770
15771         * recog.c: Fix a typo in copyright.
15772
15773 2004-01-23  Andrew Pinski  <apinski@apple.com>
15774
15775         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15776         (call_value): Likewise.
15777
15778 2004-01-23  Richard Henderson  <rth@redhat.com>
15779
15780         PR opt/12941
15781         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15782         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15783         if SHIFT_COUNT_TRUNCATED is set.
15784
15785 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15786
15787         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15788         separate real and imaginary parts.
15789         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15790
15791 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15792
15793         PR target/13674
15794         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15795         loading into GPR.
15796
15797 2004-01-23  Jan Hubicka  <jh@suse.cz>
15798
15799         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15800         change.
15801
15802         * alloc-pool.c (align_four): Kill.
15803         (create_alloc_pool): Align size to eight.
15804         (free_alloc_pool, free_pool): Invalidate deallocated data.
15805
15806 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15807
15808         PR gcc/1532
15809         * cse.c (cse_change_cc_mode): New static function.
15810         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15811         (cse_condition_code_reg): New function.
15812         * rtl.h (cse_condition_code_reg): Declare.
15813         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15814         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15815         cc_modes_compatible.
15816         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15817         (TARGET_CC_MODES_COMPATIBLE): Define.
15818         (TARGET_INITIALIZER): Add new initializers.
15819         * targhooks.c (default_cc_modes_compatible): New function.
15820         * targhooks.c (default_cc_modes_compatible): Declare.
15821         * hooks.c (hook_bool_intp_intp_false): New function.
15822         * hooks.h (hook_bool_intp_intp_false): Declare.
15823         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15824         (TARGET_CC_MODES_COMPATIBLE): Define.
15825         (ix86_fixed_condition_code_regs): New static function.
15826         (ix86_cc_modes_compatible): Likewise.
15827         * doc/tm.texi (Condition Code): Document new hooks.
15828
15829 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15830
15831         * fixinc/inclhack.def (bad_lval): Renamed to ...
15832         (alpha_bad_lval): ... this.
15833         Removed file list.
15834         Restrict to alpha*-dec-osf*.
15835         * fixinc/fixincl.x: Regenerate.
15836         * fixinc/tests/base/dirent.h: Remove, moving test ...
15837         * fixinc/tests/base/testing.h: ... here, reflecting new name.
15838
15839 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
15840
15841         PR c/13814
15842         * c-decl.c (diagnose_mismatched_decls): Also discard a
15843         built-in if we encounter an old-style definition with the
15844         same name.
15845
15846 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
15847
15848         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15849         set to default{32,64}.
15850
15851 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15852
15853         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15854         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15855
15856 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
15857             Olivier Hainque  <hainque@act-europe.fr>
15858
15859         * fold-const.c (fold_binary_op_with_conditional_arg): Only
15860         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15861
15862 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
15863
15864         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15865         size for minipool references.
15866
15867 2004-01-23  Roger Sayle  <roger@eyesopen.com>
15868
15869         * real.c (real_floor, real_ceil): Tweak to allow input and output
15870         arguments to overlap.
15871         (real_round): New function to implement round(3m) semantics.
15872         * real.h (real_round): Prototype here.
15873         * builtins.c (fold_builtin_round): New function to constant fold
15874         round, roundf and roundl.
15875         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15876
15877 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
15878
15879         PR optimization/13819
15880         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15881         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15882         (sh_handle_sp_switch_attribute): Remove warning.
15883
15884 2003-11-30  Jan Hubicka  <jh@suse.cz>
15885
15886         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
15887
15888 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
15889
15890         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15891         may or may not return non-NIL.
15892         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15893         check CANNOT_CHANGE_MODE_CLASS
15894
15895 2004-01-23  Jan Hubicka  <jh@suse.cz>
15896
15897         * basic-block.h (PROP_POSTRELOAD): New macro.
15898         (CLEANUP_LOG_LINKS): New.
15899         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15900         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
15901
15902         * cselib.c (value_pool): New.
15903         (new_cselib_val): Use pool.
15904         (cselib_init): Initialize value_pool
15905         (cselib_finish): Free pool.
15906
15907 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
15908
15909         * config/sparc/sparc.c (scan_record_type): New function.
15910         (function_arg_slotno): Use it to determine which kinds of
15911         registers the record can be passed in.
15912
15913 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
15914
15915         * config/pa/fptr.c: Fix old-style definition.
15916
15917 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
15918
15919         PR optimization/13724
15920         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
15921         represents the zero bits produced by a ZERO_EXTEND operation.
15922
15923 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15924
15925         PR optimization/13821
15926         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15927         correctly calculate the lowpart offset of the contracted subreg.
15928
15929 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
15930
15931         * doc/invoke.texi (Optimize Options): Note that --param arguments
15932         are subject to change without notice.
15933
15934 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15935
15936         * config.gcc (mips-sgi-irix6*o32): Removed.
15937         * config/mips/iris6-o32-as.h: Likewise.
15938         * config/mips/iris6-o32-gas.h: Likewise.
15939         * config/mips/iris6-o32.h: Likewise.
15940
15941 2004-01-22  Jan Hubicka  <jh@suse.cz>
15942
15943         * cfgcleanup.c (first_pass): New static variable.
15944         (try_forward_edges):  Add work limiting check for threading.
15945         (try_crossjump_bb):  Add work limiting check for crossjumping.
15946         (try_optimize_cfg):  Maintain first pass variable.
15947
15948 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
15949
15950         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15951         handles complex and vector modes.
15952
15953 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15954
15955         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15956         (REG_OK_FOR_BASE_P_STRICT): Likewise.
15957         (STRICT): Likewise.
15958
15959 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15960
15961         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15962         (genrtl_for_stmt): Remove emit_nop calls.
15963
15964 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15965
15966         PR target/13713
15967         PR target/13324
15968         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15969         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15970         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15971
15972 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15973
15974         * config/arm/arm.c: Include "debug.h".
15975         (thumb_pushpop): Take two new arguments.  Add some commentary.
15976         Output frame information when pushing.
15977         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15978         thumb_pushpop.
15979         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
15980         offset, and pass it to thumb_pushpop.  Output CFI information.
15981         (thumb_expand_prologue): Add some frame-related markers and notes.
15982
15983 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15984
15985         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15986         for TARGET_64BIT.
15987         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15988         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15989
15990 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15991             Paolo Bonzini  <bonzini@gnu.org>
15992
15993         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15994         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15995         * rtl.h (subreg_lsb_1): Prototype here.
15996         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15997         sign extensions.
15998
15999 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16000
16001         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16002         macro need not be defined if jump-tables should contain
16003         relative addresses only when -fPIC or -fPIC is in effect.
16004
16005 2004-01-22  Jan Hubicka  <jh@suse.cz>
16006
16007         * alias.c (reg_base_value): Turn into varray.
16008         (reg_base_value_size): Kill.
16009         (old_reg_base_value): New deletable varray.
16010         (alias_invariant_size): New variable.
16011         (REG_BASE_VALUE): Update to use varray.
16012         (find_base_value): Likewise.
16013         (record_set): Likewise.
16014         (record_base_value): Likewise.
16015         (memrefs_conflict_p): Likewise.
16016         (record_set): Likewise
16017         (record_base_value): Likewise.
16018         (memrefs_conflict_p): Use alias_invariant_size.
16019         (init_alias_analysis): Use varray; set alias_invariant_size;
16020         rescale other arrays to be sized by maxreg.
16021         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16022
16023 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16024
16025         * config/sparc/sparc.c (function_arg_slotno): Use
16026         FLOAT_TYPE_P to detect FP fields in structures.
16027         (function_arg_record_value_1): Likewise.
16028         (function_arg_record_value_2): Likewise.
16029
16030 2004-01-22  Jan Hubicka  <jh@suse.cz>
16031
16032         * function.c (allocate_struct_function): Do not initialize expr, emit
16033         and varasm.
16034         (prepare_function_start): Do it here.
16035         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16036
16037 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16038
16039         PR target/13559
16040         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16041         to 'word_mode' once the first slot has been filled.
16042
16043 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16044
16045         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16046         computation of the number of integer registers required.
16047
16048 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16049
16050         * config/i386/i386.md: Simplify certain comparisons of
16051         const_int.
16052
16053 2004-01-21  Andrew Pinski  <apinski@apple.com>
16054
16055         PR target/13785
16056         * config/rs6000/rs6000.md (call_value): Force operand
16057         1 not operand 0 into a register.
16058
16059 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16060
16061         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16062         unwind-dw2-fde.h: Update copyright.
16063
16064 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16065
16066         * pa-protos.h: Update copyright.
16067         * pa.h: Likewise.
16068         * pa.md: Likewise.
16069
16070 2004-01-21  Caroline Tice  <ctice@apple.com>
16071
16072         PR target/12308
16073         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16074         flags register.
16075         (fix_truncdfdi2): Likewise.
16076         (fix_truncsfdi2): Likewise.
16077         (*fix_truncdi_1): Likewise.
16078         (fix_truncxfsi2): Likewise.
16079         (fix_truncdfsi2): Likewise.
16080         (fix_truncsfsi2): Likewise.
16081         (*fix_truncsi_1): Likewise.
16082         (fix_truncxfhi2): Likewise.
16083         (fix_truncdfhi2): Likewise.
16084         (fix_truncsfhi2): Likewise.
16085         (*fix_trunchi_1): Likewise.
16086
16087 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16088
16089         * alias.c, basic-block.h, c-common.c, c-common.h,
16090         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16091         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16092         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16093         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16094         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16095         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16096         genautomata.c, genconditions.c, genemit.c, genflags.c,
16097         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16098         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16099         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16100         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16101         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16102         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16103         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16104         unwind.h, varray.c, varray.h: Update copyright.
16105
16106 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16107
16108         * config/h8300/coff.h: Update copyright.
16109         * config/h8300/elf.h: Likewise.
16110         * config/h8300/h8300-protos.h: Likewise.
16111         * config/h8300/h8300.c: Likewise.
16112         * config/h8300/h8300.h: Likewise.
16113         * config/h8300/h8300.md: Likewise.
16114
16115 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16116
16117         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16118         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16119         ultrix_unistd): New hacks.
16120         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16121         ULTRIX_CONST2_CHECK): Add checks.
16122         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16123         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16124         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16125         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16126         * fixinc/tests/base/locale.h: New file.
16127         * fixinc/fixincl.x: Rebuilt.
16128
16129 2004-01-21  Andreas Jaeger  <aj@suse.de>
16130             Michael Matz  <matz@suse.de>
16131
16132         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16133
16134 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16135
16136         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16137         _Jv_RegisterClasses through a function pointer.
16138
16139 2004-01-21  Falk Hueffner  <falk@debian.org>
16140
16141         PR target/12898
16142         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16143         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16144         which need multiple instructions to emit.
16145
16146 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16147
16148         * config/m32r/m32r.h (CPP_SPEC): Define.
16149
16150 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16151
16152         * c-decl.c (merge_decls): Kill different_binding_level and
16153         different_tu arguments; simplify throughout.
16154         (duplicate_decls): Likewise.
16155         (pushdecl, merge_translation_unit_decls): Update calls to
16156         duplicate_decls.
16157
16158 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16159
16160         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16161         $(SYSTEM_H).
16162         (print-rtl1.o): Depend on $(SYSTEM_H).
16163
16164 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16165
16166         PR bootstrap/12730
16167         * configure.ac: Delete definition and subsitution of docdir.
16168         Add info, man, srcman and srcinfo to target hooks. Create doc/
16169         directory.
16170         * configure: Regenerate.
16171         * Makefile.in: Don't substitute docdir and delete all references
16172         throughout.
16173         (MAKEINFOFLAGS): Define.
16174         (stmp-docobjdir): Delete.
16175         (INFOFILES, MANFILES): Define.
16176         (info): Call lang.info, srcinfo and lang.srcinfo.
16177         (generated-manpages): Call lang.man, srcman and lang.srcman.
16178         (srcinfo, srcman): New rules to copy back files to source directory.
16179         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16180         (install-man): Revamp rule.
16181         (clean): Update dvi directory.
16182         (distclean): Delete TAGS from front end directorys.
16183         (maintainer-clean): Delete all document files in source directory.
16184
16185         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16186         (objc.srcman, objc.srcinfo): Likewise.
16187
16188 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16189
16190         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16191         (matherr_decl): rename & relocate as exception_structure.
16192         This fix must precede the math_exception fix.
16193
16194 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16195
16196         * fold-const.c (fold_convert): Rename to fold_convert_const.
16197         (fold_convert_const): Change arguments to take a tree_code,
16198         a type and the operand/expression to be converted.  Return
16199         NULL_TREE if no simplification is possible.  Add support for
16200         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16201         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16202         Adjust call to fold_convert to match new fold_convert_const.
16203         Avoid modifying the tree passed to fold in-place.
16204
16205 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16206
16207         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16208         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16209         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16210
16211 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16212
16213         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16214         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16215         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16216         (emit_move_sequence): Check scratch_reg first in various if statements.
16217         Extend source simplification to handle all 64-bit CONST_INTs.
16218         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16219         frame size.
16220         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16221         frame offset calculations.
16222         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16223         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16224         LEGITIMATE_64BIT_CONST_INT_P): Define.
16225         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16226         any CONST_INT as legitimate during and after reload.
16227         (VAL_32_BITS_P, INT_32_BITS): Define.
16228         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16229
16230 2004-01-20  Jan Hubicka  <jh@suse.cz>
16231
16232         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16233         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16234         containing hard regs are shared.
16235         (gen_hard_reg_clobber): New function.
16236         (hard_reg_clobbers): New array.
16237         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16238         (copy_rtx): Do not copy clobbers containing hard regs.
16239         * rtl.h (gen_hard_reg_clobber): Declare.
16240
16241 2004-01-20  Jan Hubicka  <jh@suse.cz>
16242
16243         * varray.c:  Include hashtab.h
16244         (varray_descriptor): New structure.
16245         (hash_descriptor, eq_descriptor, varray_descriptor,
16246         print_statistics): New static functions
16247         (varray_init, varray_grow): Update statistics
16248         (dump_varray_statistics): New function.
16249         * varray.h (dump_varray_statistics): Declare.
16250         * toplev.c (finalize): Call it.
16251         * Makefile.in (varray.o): Add dependency.
16252
16253 2004-01-20  Jan Hubicka  <jh@suse.cz>
16254
16255         * cselib.c: Include alloc-pool.h
16256         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16257         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16258         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16259         unchain_one_elt_loc_list_pool, unchain_one_value,
16260         new_cselib_val): Simplify using allocpool.
16261         (cselib_init): Initialize allocpools.
16262         (cselib_finish): Finish allocpools.
16263         * Makefile.in (cselib.o): Depend on alloc-pool.h
16264
16265 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16266
16267         * config/mips/mips.c (mips_load_call_address): Make the call insn
16268         use $gp if it could be calling a lazy binding stub.
16269
16270 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16271
16272         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16273         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16274         (TARGET_STRUCT_VALUE_RTX): Likewise.
16275         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16276         (PROMOTE_FUNCTION_RETURN): Remove.
16277         (STRUCT_VALUE): Remove.
16278
16279 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16280
16281         PR bootstrap/13735
16282         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16283         register as pointer after reload.
16284
16285 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16286
16287         PR optimization/12440
16288         * loop.c: Include ggc.h.
16289         (loop_optimize): Run garbage collector between optimization of loops.
16290         * Makefile.in (loop.o): Add GGC_H dependency.
16291
16292 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16293
16294         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16295         vector register special in function without prototype.
16296         (function_arg_advance): Vector parameters get always
16297         GPRs allocated for the linux64 target.
16298
16299 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16300
16301         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16302         not TARGET_M32RX_MASK.
16303
16304 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16305
16306         PR target/13557
16307         * config/sparc/sparc.c (function_arg): Reorder the cases.
16308
16309 2004-01-19  Per Bothner  <per@bothner.com>
16310
16311         Move cpp_reader's line_maps field to a shared global.
16312         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16313         and change the type to a pointer rather than a struct.
16314         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16315         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16316         Likewise.
16317         * cppfiles.c (validate_pch):  Likewise.
16318         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16319         Likewise.
16320         * cpperror.c (print_location):  Likewise.
16321         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16322         * cppinit.c (cpp_create_reader):  Handle new parameter.
16323         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16324         * input.h (line_table):  New variable.
16325         * toplev.c (line_table):  Declare variable.
16326         (general_init):  Initialize line_table.
16327         * c-opts.c (c_common_init_options):  Pass line_table to
16328         cpp_create_reader.
16329         * fix-header.c (read_scan_file):  New local variable line_table.
16330         Initialize, and pass it to cpp_create_reader.
16331         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16332         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16333
16334 2004-01-19  Per Bothner  <per@bothner.com>
16335
16336         Implement a cache for linemap_lookup.
16337         * line-map.h (struct_line_maps):  Add cache field.
16338         * line-map.c (linemap_init):  Zero cache field.
16339         (linemap_add):  Set cache field to offset of newly allocated map.
16340         (linemap_lookup):  Use and set cache field.
16341
16342 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16343
16344         PR optimization/13567
16345         * cse.c (cse_basic_block): Call cse_insn with a non-null
16346         libcall_insn for the last SET insn of a no-confilict block.
16347
16348 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16349
16350         * Makefile.in (target_noncanonical, program_transform_name): Use
16351         immediate define instead of deferred.
16352         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16353         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16354         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16355         deferred backquote.
16356
16357 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16358
16359         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16360         true unconditionally.
16361         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16362         Remove.
16363         (build_unary_op, build_modify_expr): Don't handle extended
16364         lvalues.
16365         (build_component_ref, build_conditional_expr): Call non_lvalue
16366         instead of pedantic_non_lvalue.
16367         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16368         * fold-const.c (fold): Don't check pedantic directly for
16369         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16370         passed to pedantic_non_lvalue.
16371         * doc/extend.texi: Remove documentation of extended lvalues.
16372
16373 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16374
16375         PR optimization/5263
16376         * simplify-rtx.c (associative_constant_p): Delete.
16377         (simplify_associative_operation): Rewrite to linearize terms, and
16378         attempt to simplify new term against both left and right subterms.
16379         (simplify_binary_operation): Call swap_commutative_operands_p on
16380         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16381         trueop0 and trueop1 down to where first needed.
16382         (simplify_relational_operation): Likewise.
16383         * rtlanal.c (commutative_operand_precedence): Also order constant
16384         operands using avoid_constant_pool_reference.
16385
16386 2004-01-19  Richard Henderson  <rth@redhat.com>
16387
16388         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16389         don't check memory mode.
16390         (unaligned_memory_operand): Likewise.
16391         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16392         abort for op0 not MEM.
16393
16394         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16395         is not a reg, copy to a scratch first.
16396         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16397         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16398         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16399         (reload_inqi, reload_inhi): Fix mode of op0.
16400         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16401         reload_outhi_help): Likewise.  Use define_insn_and_split.
16402
16403         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16404         as well as $29 dead.
16405
16406 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16407
16408         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16409         "tls_object" for thread-local objects.
16410         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16411         "#tls" for thread-local sections.
16412         * configure.ac (thread-local checks): Specify --fatal-warnings in
16413         every binutils-specific checks.  For sparc*-*-*, test whether the
16414         OS is Solaris and the tools are native and act accordingly.
16415         * configure: Rebuild.
16416
16417 2004-01-19  Jeff Law  <law@redhat.com>
16418
16419         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16420         Jerry Quinn and Petur Runolfsson.
16421
16422 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16423
16424         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16425         size, don't use the larger zero-extending loads.
16426
16427 2004-01-19  Richard Henderson  <rth@redhat.com>
16428
16429         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16430         * alpha.md (UNSPEC_NT_LDA): Remove.
16431         (UNSPEC_CVTLQ, cvtlq): New.
16432         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16433         (extendsidi2_fix): Remove.
16434         (extendsidi2 splitter): Use cvtlq.
16435         (extendsidi2 fp peepholes): Remove.
16436         (cvtql): Use SFmode instead of SImode.
16437         (fix_trunc?fsi): Update to match.
16438         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16439         (movsi): Rename from movsi_nofix, remove f alternatives.
16440         (movsi_nt_vms): Similarly.
16441         (movsi_fix, movsi_nt_vms_fix): Remove.
16442         (nt_lda): Remove.
16443         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16444
16445 2004-01-19  Jan Hubicka  <jh@suse.cz>
16446
16447         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16448         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16449         list.
16450         (cgraph_remove_unreachable_nodes): New function
16451         (cgraph_decide_inlining_of_small_function): Fix pasto.
16452         (cgraph_decide_inlining_incrementally): Fix pasto.
16453         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16454
16455 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16456
16457         * gengtype.c (header_file): Make it static.
16458         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16459         * gengtype.h (header_file): No longer extern.
16460
16461 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16462
16463         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16464         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16465         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16466
16467 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16468
16469         * stmt.c (HAVE_casesi): Define it not already defined.
16470         (HAVE_tablejump): Likewise.
16471         (expand_end_case_type): Resort to the binary tree method if
16472         neither casesi or tablejump is available.
16473
16474 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16475
16476         * final.c (final_scan_insn): Make non-static again.
16477         * output.h (final_scan_insn): Re-add prototype.
16478         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16479         to final_scan_insn call.
16480         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16481         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16482         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16483         * config/sh/sh.c (print_slot): Likewise.
16484         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16485         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16486
16487 2004-01-18  Jan Hubicka  <jh@suse.cz>
16488
16489         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16490         * cfgcleanup.c (try_optimize_cfg): Use it.
16491         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16492         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16493         Kill hack.
16494         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16495
16496         Revert:
16497         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16498
16499                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16500                 even after reload, just don't remove the actual jump tables.
16501
16502 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16503
16504         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16505
16506 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16507
16508         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16509         the size of a pointer in bytes.
16510
16511 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16512
16513         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16514         live "next" variable, which could lead to an infinite loop.
16515
16516 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16517
16518         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16519         block.
16520
16521         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16522         Check for NULL in the chain and remove repeated code.
16523
16524 2004-01-18  Jan Hubicka  <jh@suse.cz>
16525
16526         * coverage.c (checksum_string): Rename to ...
16527         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16528         names containing random number and zero the number out in order to get
16529         match.
16530
16531 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16532
16533         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16534
16535 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16536
16537         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16538         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16539         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16540         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16541         doc/trouble.texi: Remove trailing whitespace.
16542
16543 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16544
16545         PR target/7618
16546         * config/mips/mips.c: Include cfglayout.h.
16547         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16548         (mips_unspec_offset_high): Add temporary register argument.
16549         (mips_load_call_address): New function, split out from...
16550         (mips_expand_call): ...here.
16551         (mips_output_cplocal): New function.
16552         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16553         (mips_emit_loadgp): New function, split out from...
16554         (mips_expand_prologue): ...here.
16555         (mips_output_mi_thunk): New function.
16556
16557 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16558
16559         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16560         mcpu32): Remove redundant checks for implied target predefines.
16561
16562 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16563
16564         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16565         Return type is unsigned int not int.
16566         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16567         Likewise.
16568
16569 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16570
16571         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16572         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16573         "GNU/Linux" and "Microsoft Windows" terminology.
16574
16575 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16576
16577         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16578         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16579         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16580         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16581         @smallexample instead of @example.
16582
16583 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16584
16585         * objc/objc-act.c (build_objc_method_call): Use target
16586         hooks instead of macros to determine if ..._stret
16587         dispatchers should be used (NeXT runtime only).
16588
16589 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16590
16591         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16592         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16593
16594 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16595
16596         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16597         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16598         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16599         macros.
16600         * reload1.c (emit_reload_insns): Use them.
16601         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16602         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16603         for NULL PATTERN.
16604
16605 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16606
16607         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16608         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16609         a line note after the prologue.  Make static.
16610         (line_note_exists): Remove.
16611         (final): Don't initialize line_note_exists.  Update call to
16612         final_scan_insn.
16613         * output.h (final_scan_insn): Remove prologue.
16614         * function.c (set_insn_locators): Update comment.
16615         (thread_prologue_and_epilogue_insns): Add a comment.
16616
16617 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16618
16619         PR target/10781
16620         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16621         Prototype.
16622         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16623         New function.
16624         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16625         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16626         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16627
16628 2004-01-17  Jan Hubicka  <jh@suse.cz>
16629
16630         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16631         commit.
16632
16633         * toplev.c (HAVE_conditional_execution): Provide default.
16634         (rest_of_handle_reorder_blocks): For conditional_execution target
16635         update liveness once after all transformations
16636         (rest_of_compilation): Do crossjumping before ce3.
16637
16638 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16639
16640         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16641         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16642         for PCH.
16643         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16644         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16645         (get_TOC_alias_set): Mark 'set' for PCH.
16646
16647 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16648
16649         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16650         even after reload, just don't remove the actual jump tables.
16651
16652 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16653
16654         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16655         Remove checks for is_ada() and TREE_UNSIGNED.
16656         (subrange_type_die): Emit a byte_size attribute if the subrange
16657         type size is different from the base type size.
16658         (modified_type_die): Replace call to is_ada_subrange_type() by
16659         call to is_subrange_type().
16660
16661 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16662
16663         * config/sh/sh.c: Include ggc.h.
16664
16665 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16666
16667         * Makefile.in (MD5_H): New.
16668         (fold-const.o): Depend on md5.h.
16669         (dwarf2out.o): Likewise.
16670         (cppfiles.o): Likewise.
16671         * cppfiles.c: Include md5.h.
16672         (should_stack_file): Check against list read from PCH file.
16673         (struct pchf_data): New.
16674         (pchf): New variable.
16675         (struct pchf_adder_info): New.
16676         (pchf_adder): New.
16677         (pchf_save_compare): New.
16678         (_cpp_save_file_entries): New.
16679         (_cpp_read_file_entries): New.
16680         (struct pchf_compare_data): New.
16681         (pchf_compare): New.
16682         (check_file_against_entries): New.
16683         * cpphash.h (_cpp_save_file_entries): Prototype.
16684         (_cpp_read_file_entries): Prototype.
16685         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16686         (cpp_read_state): Read the list of headers.
16687
16688 2004-01-17  Jan Hubicka  <jh@suse.cz>
16689
16690         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16691         builtin_expect specially.
16692         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16693         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16694         * invoke.texi (max-inline-insns-single): Set to 100.
16695         (large-function-insns): Set to 3000.
16696
16697 2004-01-16  Eric Christopher  <echristo@redhat.com>
16698             Chandrakala Chavva <cchavva@redhat.com>
16699
16700         * cppcharset.c (one_iso88591_to_utf8): New function.
16701         (convert_iso88591_utf8): Ditto. Use.
16702         (conversion_tab): Use.
16703         (_cpp_input_to_utf8): New function.
16704         (_cpp_init_iconv_buffer): Ditto.
16705         (_cpp_close_iconv_buffer): Ditto.
16706         * cpphash.h: Prototype new functions.
16707         (cpp_buffer): Add input_cset_desc.
16708         * cppinit.c: Add input_charset default.
16709         * cpplib.c (cpp_push_buffer): Support init and
16710         close of iconv.
16711         * cpplib.h (cpp_options): Add input_charset.
16712
16713 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16714
16715         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16716         * config/alpha/unicosmk.h: Remove a commented-out definition
16717         of ASM_OUTPUT_SECTION_NAME.
16718         * config/stormy16/stormy16.h: Likewise.
16719
16720 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16721
16722         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16723         (alpha___extern_prefix_sys_stat): ... this.
16724         Apply to <sys/mount.h>, too.
16725         Tweak to match more variations.
16726         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16727
16728         * fixinc/inclhack.def (alpha___extern_prefix,
16729         alpha___extern_prefix_standards): New hacks to obey
16730         __PRAGMA_EXTERN_PREFIX.
16731         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16732         test.
16733         * fixinc/tests/base/standards.h: Likewise.
16734
16735         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16736         variations.
16737         New testcase.
16738         * fixinc/tests/base/pthread.h: Handle it.
16739
16740         * fixincl/inclhack.def (bad_lval): Sort file list.
16741         Add many missing files up to Tru64 UNIX V5.1B.
16742         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16743         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16744         order.
16745
16746         * fixinc/fixincl.x: Regenerate.
16747
16748 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16749
16750         * version.c (version_string): Change to 3.5.0.
16751         * doc/include/gcc-common.texi (version-GCC): Likewise.
16752
16753 2004-01-16  Jan Hubicka  <jh@suse.cz>
16754
16755         * i386.md (load_tp_di): Fix pasto.
16756
16757         PR opt/13608
16758         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16759
16760         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16761         pp_c_character_constant, pp_c_floating_constant,
16762         pp_c_additive_expression, pp_c_shift_expression,
16763         pp_c_equality_expression, pp_c_and_expression,
16764         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16765         pp_c_logical_and_expression): Remove inline modifier.
16766         * dwarf2out.c (get_AT): Likewise.
16767         * et-forest.c (et_splay): Likewise.
16768         * ra.h (ra_alloc, ra_calloc): Likewise
16769
16770 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16771
16772         * config/frv/frv-protos.h: Fix comment formatting.
16773         * config/frv/frv.c: Likewise.
16774         * config/frv/frv.h: Likewise.
16775         * config/frv/frv.md: Likewise.
16776         * config/frv/frvbegin.c: Likewise.
16777         * config/frv/frvend.c: Likewise.
16778
16779 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16780
16781         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16782         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16783         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16784         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16785
16786 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16787
16788         PR 11864
16789         * postreload.c (reload_cse_simplify_operands): Don't remove
16790         implicit extension from LOAD_EXTEND_OP.
16791
16792 2004-01-16  Jan Hubicka  <jh@suse.cz>
16793
16794         PR opt/11350
16795         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16796         after reload.
16797         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16798         rtl_try_redirect_by_replacing_branch): Likewise.
16799
16800 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16801
16802         PR pch/13689
16803         * alias.c (struct alias_set_entry): Mark for GC.
16804         (alias_sets): Make static, mark for GC.
16805         (record_alias_subset): Use GC to allocate alias structures.
16806         * varray.c (element): Make generic varrays GCed.
16807
16808         PR pch/13361
16809         * c-typeck.c (constructor_asmspec): Delete.
16810         (struct initializer_stack): Delete field 'asmspec'.
16811         (start_init): Delete saving of asmspec.
16812         (finish_init): Don't update constructor_asmspec.
16813         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16814         * stmt.c (expand_asm): Duplicate strings from tree.
16815         (expand_asm_operands): Likewise.
16816         * tree.c (tree_size): Update computation of size of STRING_CST.
16817         (make_node): Don't make STRING_CST nodes.
16818         (build_string): Allocate string with tree node.
16819         * tree.def (STRING_CST): Update comment.
16820         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16821         (tree_string): Place contents of string in tree node.
16822         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16823         from tree.
16824
16825         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16826         altivec operands.
16827
16828 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16829
16830         * c-common.h: Fix comment formatting.
16831         * c-cppbuiltin.c: Likewise.
16832         * c-pragma.c: Likewise.
16833         * calls.c: Likewise.
16834         * collect2.c: Likewise.
16835         * cppcharset.c: Likewise.
16836         * cpptrad.c: Likewise.
16837         * dbxout.c: Likewise.
16838         * defaults.h: Likewise.
16839         * dwarf2out.c: Likewise.
16840         * fold-const.c: Likewise.
16841         * genautomata.c: Likewise.
16842         * genconditions.c: Likewise.
16843         * genflags.c: Likewise.
16844         * gengtype.c: Likewise.
16845         * integrate.c: Likewise.
16846         * loop.c: Likewise.
16847         * predict.c: Likewise.
16848         * sdbout.c: Likewise.
16849
16850 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
16851
16852         * config/ia64/ia64.md (*movti_internal): C output template
16853         extracted to ia64.c.
16854         (*movti_internal_reg): Delete.
16855         (reload_inti, reload_outti): Use the correct mode on operand 2
16856         in the first place, don't fix it up in the output template.
16857         (movtf, reload_ointf, reload_outtf): New expanders.
16858         (*movtf_internal): New define_insn_and_split.
16859         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16860         make static; do not hand TFmode CONST_DOUBLEs to split_double.
16861         (ia64_split_tmode_move): New function, body mostly pulled
16862         from ia64.md:*movti_internal.
16863         (ia64_function_arg_words): New function, extracted common
16864         logic from ia64_function_arg et seq.
16865         (ia64_function_arg_offset): Likewise.  Handle correctly the
16866         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16867         (ia64_function_arg, ia64_function_arg_partial_nregs)
16868         (ia64_function_arg_advance): Use ia64_function_arg_words and
16869         ia64_function_arg_offset.
16870         (ia64_function_value): TCmode does not go in float regs.
16871         (ia64_secondary_reload_class): Also handle TFmode.
16872         * config/ia64/ia64-protos.h: Remove prototype for
16873         ia64_split_timode; add prototype for ia64_split_tmode_move.
16874
16875 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16876
16877         * Makefile.in (MAINT): Make it an immediate assignment.
16878
16879 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16880
16881         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16882
16883 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16884
16885         * config/h8300/coff.h: Replace Hitachi with Renesas.
16886         * config/h8300/elf.h: Likewise.
16887         * config/h8300/h8300-protos.h: Likewise.
16888         * config/h8300/h8300.c: Likewise.
16889         * config/h8300/h8300.h: Likewise.
16890         * config/h8300/h8300.md: Likewise.
16891         * config/h8300/lib1funcs.asm: Likewise.
16892
16893 2004-01-15  Andrew Pinski  <apinski@apple.com>
16894
16895         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16896         around it.
16897
16898 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16899
16900         * config/h8300/h8300.c (h8300_return_in_memory): New.
16901         (TARGET_STRUCT_VALUE_RTX): Likewise.
16902         (TARGET_RETURN_IN_MEMORY): Likewise.
16903         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16904         (RETURN_IN_MEMORY): Likewise.
16905
16906 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16907
16908         PR optimization/13375
16909         * gcse.c (handle_avail_expr): Just return if the source is not a
16910         single set.
16911
16912 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16913             Daniel Jacobowitz  <drow@mvista.com>
16914
16915         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16916         (EQUIV): Define.
16917         (ARM_FUNC_ALIAS): New macro.
16918         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16919         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16920
16921 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16922
16923         PR optimization/12372
16924         * calls.c (expand_call): Add call_fusage data for stack arguments in
16925         constant calls.
16926
16927 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
16928
16929         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
16930         (rs6000_elf_declare_function_name): Formatting.
16931         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16932
16933 2004-01-15  Jan Hubicka  <jh@suse.cz>
16934
16935         PR bootstrap/13692
16936         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16937         previous patch.
16938
16939 2004-01-15  Richard Henderson  <rth@redhat.com>
16940
16941         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16942         integer regs of the same call-savedness.
16943
16944 2004-01-15  Andreas Schwab  <schwab@suse.de>
16945
16946         PR bootstrap/13562
16947         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16948         status for NOTB/NOTW/NEGW methods.
16949
16950 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16951
16952         * doc/invoke.texi: Update dump file names.  Fix a typo.
16953
16954 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16955
16956         * builtins.c (expand_builtin_va_end): Don't use
16957         EXPAND_BUILTIN_VA_END.
16958         * system.h (EXPAND_BUILTIN_VA_END): Poison.
16959         * config/d30v/d30v.h: Remove a commented-out definition of
16960         EXPAND_BUILTIN_VA_END.
16961         * config/stormy16/stormy16.h: Likewise.
16962
16963 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16964
16965         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16966         * targhooks.c (default_struct_value_rtx): Don't use
16967         STRUCT_VALUE_INCOMING_REGNUM.
16968
16969 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16970
16971         PR bootstrap/12744
16972         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16973         GENINSRC and not parsedir.  Define srcextra as a langhook.
16974         * configure: Regenerate.
16975         * Makefile.in: Suppress default .l.c rule.  Don't substitute
16976         parsedir and delete all references throughout.  Conditionally define
16977         rule for srcextra dependent on GENINSRC.
16978         (stmp-docobjdir): Delete.
16979         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16980         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16981         and gengtype-yacc.h back to source directory.
16982         (maintainer-clean): Delete all parse files in source directory.
16983         (distclean): Delete generated files.
16984
16985         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16986         (objc-parse.c, objc-parse.y): Don't use parsedir.
16987         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16988         directory if requested.
16989         (po-generated): Don't use parsedir.
16990         (objc.maintainer-clean): Delete above files from source directory.
16991
16992 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16993
16994         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16995
16996 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16997
16998         * doc/tm.texi: Replace RETURN_IN_MEMORY with
16999         TARGET_RETURN_IN_MEMORY.
17000
17001 2004-01-15  Jan Hubicka  <jh@suse.cz>
17002
17003         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17004         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17005         functions accepting SSE arguments
17006         (function_arg): Warn only when asked to warn.
17007         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17008
17009 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17010
17011         * c-parse.in (stmts_and_decls): Make label at end of compound
17012         statement a hard error.
17013
17014 2004-01-14  Jan Hubicka  <jh@suse.cz>
17015
17016         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17017         * cgraph.h (cgraph_local_info): Sort fields by size; add
17018         redefined_extern_inline
17019         (cgraph_global_info): Sort fields by size.
17020         (cgraph_node): Likewise.
17021         * cgraphunit.c (cgraph_finalize_function): Se
17022         local.redefined_extern_inline on redefinition.
17023         (cgraph_analyze_function): Use it; fix formating.
17024
17025 2004-01-14  Jan Hubicka  <jh@suse.cz>
17026
17027         PR c++/10776
17028         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17029         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17030         bitmaps
17031         (cache_size): New variable
17032         (add_dependence): Update use; canonize early memory locations
17033         (sched_analyze_1): Likewise.
17034         (sched_analyze_2): Likewise.
17035         (init_dependency_caches): Initialize bitmaps.
17036         (free_dependency_caches): Free bitmaps
17037
17038 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17039
17040         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17041         targetm.calls.strict_argument_naming().
17042         * target.h: Likewise.
17043
17044 2004-01-14  Richard Henderson  <rth@redhat.com>
17045
17046         PR debug/13231
17047         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17048         instructions.
17049
17050 2004-01-14  Richard Henderson  <rth@redhat.com>
17051
17052         PR c++/12491
17053         * except.c (struct eh_region): Add u.fixup.resolved.
17054         (resolve_one_fixup_region): Split out from ...
17055         (resolve_fixup_regions): ... here.
17056
17057 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17058
17059         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17060
17061 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17062
17063         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17064         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17065         (STRUCT_VALUE): Remove.
17066
17067 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17068
17069         * system.h: Poison PROMOTED_MODE
17070         * integrate.c (expand_inline_function): Don't mention the
17071         PROMOTED_MODE.
17072         * loop.c (update_giv_derive): Same.
17073         * tree.h (DECL_RTL): Same.
17074
17075 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17076
17077         PR target/9365
17078         * sh.c (gen_block_redirect): Add special handling of RETURN.
17079         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17080         far branch target (i.e. it's a return).
17081
17082 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17083
17084         * regrename.c (find_oldest_value_reg): Fix a warning.
17085
17086 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17087
17088         PR bootstrap/12527
17089         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17090         Move linux-gas.h and linux-elf.h before aout.h.
17091         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17092         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17093
17094 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17095
17096         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17097         (CONST_INT, VOIDmode, ...).
17098
17099 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17100
17101         * regrename.c (find_oldest_value_reg): If the replacement uses
17102         multiple hard registers, check that all of them are in CLASS.
17103
17104 2004-01-14  Jan Hubicka  <jh@suse.cz>
17105
17106         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17107         impossible.
17108
17109 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17110
17111         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17112
17113 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17114
17115         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17116         Calculate always vrsave_mask if TARGET_ALTIVEC.
17117         (rs6000_emit_prologue): Emit code for vrsave
17118         only if TARGET_ALTIVEC_VRSAVE.
17119         (rs6000_emit_epilogue): Likewise.
17120
17121 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17122
17123         * config/sparc/sparc.md (tie_add32): Fix pasto.
17124         (tie_add64): Likewise.
17125
17126 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17127
17128         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17129
17130 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17131
17132         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17133         * config/iq2000/iq2000.c: Likewise.
17134         * config/iq2000/iq2000.md: Likewise.
17135
17136 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17137
17138         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17139         (subrange_type_die): Add handle for nameless subrange types.
17140
17141 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17142
17143         * config/h8300/h8300-protos.h: Replace do_movsi with
17144         h8300_expand_movsi.
17145         * config/h8300/h8300.c (do_movsi): Change to
17146         h8300_expand_movsi.
17147         * config/h8300/h8300.md (movsi): Replace do_movsi with
17148         h8300_expand_movsi.
17149         (movsf): Likewise.
17150
17151 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17152
17153         * config/h8300/h8300.c (dosize): Change to
17154         h8300_emit_stack_adjustment.  Update callers.
17155
17156 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17157
17158         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17159         the source being post_inc.  Tighten the predicate for the
17160         destination to register_operand.
17161         (movstricthi): Likewise.
17162
17163 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17164
17165         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17166         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17167         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17168
17169 2004-01-14  Jan Hubicka  <jh@suse.cz>
17170
17171         Partial fix PR c++/12850
17172         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17173         at zero nest level.
17174
17175 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17176
17177         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17178         pseudo-register.
17179
17180 2004-01-13  Devang Patel <dpatel@apple.com
17181
17182         PR debug/7078
17183         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17184         NAMESPACE_DECL memebers.
17185
17186 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17187
17188         PR c++/12709
17189         * c-common.c (finish_fname_decls): Use the chain only if the
17190         tree is an expr_stmt.
17191
17192 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17193
17194         * rtl.def: Add comment about new option in automata_option.
17195
17196         * genautomata.c (PROGRESS_OPTION): New macro.
17197         (progress_flag): New global variable.
17198         (gen_automata_option): Process `progress'.
17199         (transform_insn_regexps, check_unit_distributions_to_automata,
17200         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17201         expand_automata, write_automata): Print about the progress only if
17202         progress_flag.  Remove fflush.
17203         (initiate_automaton_gen): Process command line flag `-progress'.
17204
17205         * doc/md.texi: Describe the new option.
17206
17207 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17208
17209         * cfg.c (dump_bb): Dump entry edges.
17210
17211 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17212
17213         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17214         references from SImode.
17215         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17216
17217 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17218
17219         * system.h (TEXT_SECTION): Poison.
17220         * varasm.c (text_section): Don't use TEXT_SECTION.
17221         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17222         * doc/tm.texi (TEXT_SECTION): Remove.
17223
17224 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17225
17226         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17227
17228 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17229
17230         * unwind-libunwind.c: Delete.
17231
17232 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17233
17234         PR 13656
17235         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17236         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17237         them at the very end.
17238         (validate_proto_after_old_defn): Restructure for comprehensibility;
17239         make error messages clearer.
17240
17241 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17242
17243         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17244         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17245         * varray.c: No need to prototype error.
17246         (varray_check_failed): Wrap long string onto two lines.
17247         (varray_underflow): New function.
17248
17249 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17250
17251         PR c++/13376
17252         * function.h (struct function): Kill `name' field.
17253         (current_function_name): Make it an extern function.
17254         * function.c (current_function_name): New function.
17255         * graph.c: Update all uses of current_function_name.
17256         * gcse.c: Likewise.
17257         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17258         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17259         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17260         instead of a strcmp with "main".
17261
17262 2004-01-13  Jan Hubicka  <jh@suse.cz>
17263
17264         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17265
17266         * cgraphunit.c (cgraph_optimize_function):  Always do
17267         optimize_inline_calls when there is always_inline callee.
17268         (cgraph_decide_inlining): Fix formating.
17269         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17270         functions.
17271         (expand_call_inline): Likewise.
17272         * toplev.h (sorry): Fix prototype.
17273
17274 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17275
17276         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17277         conditional jumps that drop through to unconditional jumps or the
17278         end of the sequence.
17279
17280 2004-01-13  Jan Hubicka  <jh@suse.cz>
17281
17282         * alias.c (new_alias_set): Construct the alias_set varray.
17283         (init_alias_once): Don't do it here.
17284
17285 2004-01-12  Marc Espie <espie@openbsd.org>
17286
17287         * system.h: handle YYBYACC like YYBISON.
17288
17289 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17290
17291         PR target/10847
17292         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17293         building on sparc64-*-openbsd*.
17294
17295 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17296
17297         PR debug/13539
17298         * dbxout.c (dbxout_type): Protected inheritance is not
17299         private but protected.
17300
17301 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17302
17303         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17304
17305 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17306
17307         PR optimization/12508.
17308         * combine.c (try_combine): Remove a dead set in a parallel
17309         even if its destination is a subreg.
17310
17311         Revert:
17312         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17313         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17314         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17315
17316 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17317
17318         * real.c: Update copyright date.
17319         * emit-rtl.c: Likewise.
17320         * rtl.h: Likewise.
17321         * dwarf2out.c: Likewise.
17322         * config/rs6000/darwin-ldouble.c: Likewise.
17323         * config/rs6000/rs6000.md: Likewise.
17324
17325 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17326
17327         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17328         TFmode to SImode libfuncs.
17329
17330 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17331
17332         PR middle-end/11397
17333         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17334
17335 2004-01-12  Jan Hubicka  <jh@suse.cz>
17336
17337         PR opt/12826
17338         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17339         stored.
17340
17341         PR opt/12863
17342         * cfgcleanup.c (label_is_jump_target_p): Move to...
17343         * rtlanal.c (label_is_jump_target_p): ... here.
17344         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17345         edges unified with branch edges.
17346
17347 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17348
17349         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17350         high word of an integral CONST_DOUBLE.
17351
17352 2004-01-12  Paul Brook  <paul@codesourcery.com>
17353
17354         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17355
17356 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17357
17358         PR target/13585
17359         * sh-protos.h (check_use_sfunc_addr): Declare.
17360         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17361         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17362
17363 2004-01-12  Jan Hubicka  <jh@suse.cz>
17364
17365         * alias.c:  Invlude varray.h
17366         (alias_sets): Turn into varray.
17367         (get_alias_set_entry): Use VARRAY; mark inline.
17368         (mems_in_disjoint_alias_sets_p): Mark inline.
17369         (record_alias_subset): Use varray.
17370         (init_alias_once): Initialize varray.
17371         (new_alias_set): Grow array.
17372         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17373
17374 2004-01-12  Jan Hubicka  <jh@suse.cz>
17375
17376         Partial fix for PR opt/10776 II
17377         * cselib.c: Include params.h
17378         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17379         locations.
17380         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17381         * Makefile.in (cselib.o): Depend on params.h
17382
17383 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17384
17385         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17386         simplify_unary_operation if the operand has a known mode.
17387
17388 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17389
17390         PR target/13534
17391         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17392         predicate to handle 'ld' conform addresses.
17393         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17394         contraint.
17395         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17396         are memory contraints.
17397         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17398         New prototype.
17399         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17400         Change 'o' to 'Y' constraint.
17401         (*movdf_softfloat64): Ditto.
17402
17403 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17404
17405         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17406         brace-enclosed syntax in all C output statements.
17407
17408 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17409
17410         PR target/13401
17411         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17412         Objective-C language type value is 14.
17413
17414 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17415
17416         PR c/12148
17417         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17418         `int' in a number of places to make sure we always have a SImode
17419         and not a HImode.  Add a 'L' suffix to a number of constants.
17420
17421 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17422
17423         * pa.c: Don't include obstack.h.
17424
17425         * pa.md: Correct constraint in pattern for loading PIC label address.
17426
17427 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17428
17429         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17430          before defining.
17431
17432 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17433
17434         PR fortran/9972
17435         * toplev.c (rest_of_handle_inline): Also consider functions
17436         for deferral if the language is GNU F77.
17437
17438 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17439
17440         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17441         diagnostic messages.
17442
17443 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17444
17445         PR middle-end/13392
17446         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17447         to drop through label.  Don't fall back to SCC even when conditional
17448         jump has not been found.
17449
17450 2004-01-11  Jan Hubicka  <jh@suse.cz>
17451
17452         * invoke.texi: Fix syntax error in previous patch.
17453
17454         Partial fix for PR opt/10776
17455         * Makefile.in (reload.o): Include param.h
17456         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17457         * reload.c: Include params.h.
17458         (find_equiv_reg): Work limiting check.
17459         * invoke.texi: Document.
17460
17461 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17462
17463         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17464         out-of-bounds accesses to string constants.  Simplify mips16
17465         case accordingly.
17466
17467 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17468
17469         PR optimization/13469
17470         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17471         reload_cse_regs (-fnon-call-exceptions only).
17472
17473 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17474
17475         * config/mcore/lib1.asm: Fix comment formatting.
17476         * config/mcore/mcore-elf.h: Likewise.
17477         * config/mcore/mcore.c: Likewise.
17478         * config/mcore/mcore.h: Likewise.
17479         * config/mcore/mcore.md: Likewise.
17480
17481 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17482
17483         * c-decl.c (duplicate_decls): Break apart into...
17484         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17485         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17486         ... these new functions.  Restructure for comprehensibility.
17487         Remove various archaic special cases.  Always report the
17488         location of the previous declaration when a diagnostic is issued.
17489         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17490         (match_builtin_function_types): Delete unnecessary forward declaration.
17491
17492 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17493
17494         * genautomata.c (make_automaton, NDFA_to_DFA):
17495         Print progress bars with '.' characters instead of '*'.
17496         (build_automaton): Change notes to match.
17497
17498 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17499
17500         * config/m32r/m32r.md: Use define_constants for unspec and
17501         unspec_volatile.
17502
17503 2004-01-10  Jan Hubicka  <jh@suse.cz>
17504
17505         PR opt/11635
17506         * expr.c (expand_expr_real):  More curefully expand union casts.
17507
17508 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17509
17510         * config/m32r/m32r.md (flush_icache): Use 1 for
17511         unspec_volatile.
17512
17513 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17514             James E Wilson  <wilson@specifixinc.com>
17515
17516         PR debug/12860
17517         * dbxout.c (dbxout_symbol): Remove initialization of
17518         current_sym_code, current_sym_value, and current_sym_addr.
17519         (dbxout_symbol_location): Same.
17520         (dbxout_prepare_symbol): Zero current_sym_code,
17521         current_sym_value, and current_sym_addr.
17522
17523 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17524
17525         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17526         check is done first.
17527
17528 2004-01-09  Eric Christopher  <echristo@redhat.com>
17529
17530         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17531         if we're running mark_constant_function.
17532
17533 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17534
17535         PR target/12561
17536         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17537
17538 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17539
17540         PR debug/11231
17541         * dbxout.c (dbxout_type_fields): Return if any item is
17542         error_mark_node or the type is error_mark_node.
17543
17544 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17545
17546         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17547         exactly what is expected as a 'long double'.
17548         (_xlqadd): When a value to be returned is representable as a
17549         'double', just return it directly, do not construct it using a union.
17550         Also, correct final fixup.
17551         (_xlqmul): Likewise.
17552         (_xlqdiv): Likewise.
17553         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17554
17555         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17556
17557 2004-01-09  Richard Henderson  <rth@redhat.com>
17558
17559         * recog.c (constrain_operands): Validate mem operands.
17560
17561 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17562
17563         * gcc.c (init_spec): Remove -lunwind from shared case.
17564         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17565
17566 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17567
17568         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17569         * configure: Regenerate
17570
17571 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17572
17573         PR c/11234
17574         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17575         between function and object pointers.
17576         (digest_init): When comparing a pointer to function type to the
17577         target type, only apply TREE_TYPE once to the pointer to function
17578         type.
17579         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17580         function pointer rather than casting it to a function pointer.
17581         (for_each_eh_label): Update caller.
17582         * recog.h (struct insn_data): Use a struct or union for output.
17583         * genoutput.c (output_insn_data): Update.
17584         * final.c (get_insn_template): Update.
17585
17586 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17587
17588         * expr.h (expand_expr): Make it a macro, not a function.
17589         (expand_expr_real): New function.
17590         * expr.c (store_expr): Adjust logic for deciding whether or not to
17591         copy the value returned by expand_expr.
17592         (expand_expr): Rename to ...
17593         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17594         calls to language hooks.
17595         * c-common.h (c_expand_expr): Adjust prototype.
17596         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17597         * langhooks-def.h (lhd_expand_expr): Change prototype.
17598         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17599         * langhooks.h (lang_hooks): Change type of expand_expr.
17600         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17601         (last_expr_alt_rtl): Likewise.
17602         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17603         (clear_last_expr): Clear it.
17604         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17605         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17606         * tree.def (RTL_EXPR): Give it an additional operand.
17607         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17608
17609 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17610
17611         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17612         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17613
17614 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17615
17616         PR target/13380.
17617         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17618         or (ne:SI (reg:CC 17) (const_int 0)).
17619         Be specific about modes wherever possible.
17620
17621 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17622
17623         * config/m32r/m32r.c (m32r_expand_block_move): Call
17624         gen_movestrsi_internal with two more arguments.
17625         (m32r_output_block_move): Adjust operand numbers.
17626         Properly update the source and destination pointers.
17627         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17628         'r+'.  Change the set detinations to match_operand.
17629
17630 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17631
17632         * final.c (FIRST_INSN_ADDRESS): Remove.
17633         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17634         * system.h (FIRST_INSN_ADDRESS): Poison.
17635         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17636         * config/m32r/m32r-protos.h: Remove the prototype for
17637         m32r_first_insn_address.
17638         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17639         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17640         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17641
17642 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17643
17644         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17645         we just created.
17646         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17647         emitted as subrange types too.
17648         (subrange_type_die): Add handling of enumeration subtypes.
17649
17650 2004-01-08  Richard Henderson  <rth@redhat.com>
17651
17652         PR opt/12441
17653         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17654         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17655         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17656         (ix86_address_cost): Be prepared for SUBREGed registers.
17657         (legitimate_address_p): Accept SUBREGed registers.
17658
17659 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17660
17661         * Makefile.in: Rename configure.in to configure.ac
17662         * doc/sourcebuild.texi: Likewise.
17663         * configure: Regenerate.
17664         * config.in: Regenerate.
17665
17666 2004-01-08  Stuart Hastings  <stuart@apple.com>
17667
17668         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17669
17670 2004-01-08  Jan Hubicka  <jh@suse.cz>
17671
17672         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17673
17674 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17675
17676         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17677         (UNSPEC_FIX_TRUNC_TF): New constant.
17678         (movtf_internal): Make splitter active only when insn is active.
17679         (extenddftf2): Rewrite to properly load zero into low part.
17680         (extenddftf2_internal): New.
17681         (extendsftf2): Rewrite.
17682         (truncdftf2): Correct length.
17683         (floatditf2): Delete.
17684         (fix_trunc_helper): New.
17685         (fix_trunctfdi2): Use fix_trunc_helper.
17686         (fix_trunctfsi2): Likewise.fix_trunc
17687         (fix_trunctfsi2_internal): New.
17688
17689         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17690         addresses are legitimate on Darwin even when flag_pic.
17691         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17692         non-offsettable addresses for loads of TFmode constants.
17693
17694 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17695
17696         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17697         variables in the appropriate bss section.
17698
17699 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17700
17701         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17702         target_flags has MASK_POWERPC64 when -m64.
17703         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17704         to 620, 630, power3, power4 and rs64a entries.
17705         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17706
17707 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17708
17709         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17710         floating-point constants.
17711
17712 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17713
17714         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17715         Create the subrange_type DIE using the given context DIE.
17716         (modified_type_die): Update call to subrange_type_die.
17717
17718 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17719
17720         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17721         Add multiple-include guard.
17722
17723 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17724
17725         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17726         all vector constant loadable by vsplt*.
17727         (output_vec_const_move): Likewise.
17728
17729 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17730
17731         PR c/6024
17732         * c-typeck.c (comptypes): Only treat enumerated types in the same
17733         translation unit as compatible with each other when they are the
17734         same type.
17735         * doc/extend.texi: Update.
17736
17737 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17738
17739         PR c/12165
17740         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17741         array type from the array element type.
17742
17743 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17744
17745         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17746         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17747         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17748         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17749         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17750
17751 2004-01-06  Eric Christopher  <echristo@redhat.com>
17752
17753         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17754         (DWARF2_DEBUGGING_INFO): Define.
17755         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17756         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17757         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17758         for irix as.
17759         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17760         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17761         * config/mips/iris5gas.h: Ditto.
17762         (DBX_DEBUGGING_INFO): Remove.
17763         (DWARF2_DEBUGGING_INFO): Ditto.
17764         (MIPS_DEBUGGING_INFO): Ditto.
17765         (PREFERRED_DEBUGGING_TYPE): Ditto.
17766         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17767         (PREFERRED_DEBUGGING_TYPE): Ditto.
17768         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17769         * config/mips/elf64.h: Ditto.
17770
17771 2004-01-06  Jan Hubicka  <jh@suse.cz>
17772
17773         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17774         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17775
17776 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17777
17778         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17779         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17780         * config/rs6000/darwin-ldouble.c: New.
17781
17782         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17783         for constants.
17784         (constant_subword): Delete.
17785         * rtl.h (constant_subword): Delete prototype.
17786         (immed_double_const): Is not in varasm.c.
17787         * simplify-rtx.c (simplify_immed_subreg): New.
17788         (simplify_subreg): Use simplify_immed_subreg.
17789
17790         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17791         than trying to generate RTL directly.
17792         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17793         RTL directly.
17794
17795         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17796
17797 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17798
17799         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17800         function into a separate macro.
17801         (read_only_data_section): Add void argument.
17802         (private_data_section): Same.
17803         (read_only_private_data_section): Same.
17804         (toc_section): Same.
17805
17806 2004-01-06  Jan Hubicka  <jh@suse.cz>
17807
17808         * invoke.texi:  Remove typo in last change.
17809
17810         PR target/10301
17811         * config.gcc: Accept opteron and athlon-64 as variants
17812         of k8.
17813         * i386.c (override_options): Likewise.
17814         * invoke.texi (i386 -mtune): Expand documentation.
17815
17816 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17817
17818         * alias.c: Fix comment typos.
17819         * builtins.c: Likewise.
17820         * cfg.c: Likewise.
17821         * df.c: Likewise.
17822         * dominance.c: Likewise.
17823         * dwarf2out.c: Likewise.
17824         * emit-rtl.c: Likewise.
17825         * expr.c: Likewise.
17826         * final.c: Likewise.
17827         * fold-const.c: Likewise.
17828         * gcse.c: Likewise.
17829         * genattrtab.c: Likewise.
17830         * genrecog.c: Likewise.
17831         * gensupport.c: Likewise.
17832         * ggc-zone.c: Likewise.
17833         * integrate.c: Likewise.
17834         * local-alloc.c: Likewise.
17835         * loop.c: Likewise.
17836         * recog.c: Likewise.
17837         * regmove.c: Likewise.
17838         * reg-stack.c: Likewise.
17839         * reorg.c: Likewise.
17840         * rtlanal.c: Likewise.
17841         * rtl.h: Likewise.
17842         * sched-ebb.c: Likewise.
17843         * simplify-rtx.c: Likewise.
17844         * toplev.c: Likewise.
17845         * varasm.c: Likewise.
17846
17847 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17848
17849         * doc/install.texi: Fix typos.
17850         * doc/invoke.texi: Likewise.
17851         * doc/md.texi: Likewise.
17852
17853 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17854
17855         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17856
17857 2004-01-06  Jan Hubicka  <jh@suse.cz>
17858
17859         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
17860         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
17861         of MMX_REGPARM.
17862         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
17863         add MMX_REGPARM.
17864         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17865         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17866         (MMX_REGPARM_MAX): Similarly for -mmmx.
17867
17868 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17869
17870         * config/sh/linux.h: Fix comment formatting.
17871         * config/sh/netbsd-elf.h: Likewise.
17872         * config/sh/sh.c: Likewise.
17873         * config/sh/sh.h: Likewise.
17874         * config/sh/vxworks.h: Likewise.
17875
17876 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17877
17878         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17879         * toplev.c (output_file_directive): Don't use
17880         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17881
17882 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
17883
17884         * toplev.c: Fix broken checkin of 2003-12-30.
17885
17886 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
17887
17888         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17889         (USING_MMAP): We don't support non-mmap.
17890         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17891         large objects.
17892         (struct page_entry): Remove bytes_free.
17893         (struct page_table_chain): Remove.
17894         (struct globals): Remove page_table member.
17895         (loookup_page_table_entry): Function deleted.
17896         (set_page_table_entry): Ditto.
17897         (ggc_allocated_p): No longer need page table lookups.
17898         (ggc_marked_p): Ditto.
17899         (alloc_small_page): Don't care about bytes_free anymore.
17900         (alloc_large_page): Round up size.
17901         (ggc_alloc_zone_1): Mark large objects as such, and calculate
17902         their size the new way.
17903         Remove page table lookups and setting.
17904         (ggc_get_size): Calculate large object size the new way.
17905         (sweep_pages): Redo to account for fact that we no longer have
17906         bytes_free.
17907         (ggc_collect): No longer need to reincrement bytes_free.
17908         (ggc_pch_alloc_object): Handle new large objects properly.
17909         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17910
17911 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17912
17913         * doc/invoke.texi: Remove a page break.
17914
17915 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17916
17917         * config/avr/avr.c (avr_output_function_prologue): Remove an
17918         extra pair of curly braces.
17919
17920 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17921
17922         * config/mn10300/mn10300.c: Fix comment formatting.
17923         * config/mn10300/mn10300.h: Likewise.
17924
17925 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17926
17927         * tree.h: Update documentation on nothrow_flag.
17928         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17929         types.
17930
17931 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17932
17933         * doc/invoke.texi: Remove traces of dead ports.
17934
17935 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17936
17937         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17938         option.
17939
17940 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17941
17942         PR target/12945
17943         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17944         counter labels.
17945         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17946         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17947         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
17948         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17949         (mips_symbol_insns): Don't trust the local/global classification.
17950         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17951         (override_options): Make -mabicalls -fno-unit-at-a-time imply
17952         -mno-explicit-relocs.
17953         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17954         between local and global symbols.
17955
17956 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17957
17958         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17959         (mips_preferred_reload_class): Declare.
17960         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17961         (EXTRA_CONSTRAINT): Update accordingly.
17962         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17963         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17964         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
17965         mips_dangerous_for_la25_p.
17966         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17967         if mips_dangerous_for_la25_p.
17968
17969 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
17970
17971         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17972         warning.
17973
17974 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
17975
17976         * configure.ac: Use AC_PROG_CPP_WERROR.
17977         * configure: Regenerate.
17978
17979 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
17980
17981         * .cvsignore: Add autom4te.cache.
17982
17983 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
17984
17985         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
17986         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17987         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
17988         then architecture options, then ABI options.  General rewording.
17989
17990 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
17991
17992         PR c/3414
17993         * doc/extend.texi: Clarify definition of malloc attribute.
17994
17995 2004-01-04  Jan Hubicka  <jh@suse.cz>
17996
17997         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17998         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17999         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18000         (cgraph_inline_p): Add extra argument reason.
18001         * cgraphunit.c: Minor formating fixes.
18002         cgraph_first_inlined_callee): New functions.
18003         (record_call_1): Record builtins too.
18004         (cgraph_analyze_function): Update inline_failed messages.
18005         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18006         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18007         (cgraph_check_inline_limits): Likewise; Add argument reason.
18008         (cgraph_set_inline_failed): New static function.
18009         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18010         reasons.
18011         (cgraph_inline_p): Add new argument reason.
18012         * tree-inline.c (expand_call_inline):  Update warning.
18013
18014 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18015
18016         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18017         with modern equivalents.
18018         * configure: Regenerate.
18019
18020         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18021         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18022         * configure: Regenerate.
18023
18024         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18025
18026         * configure.in: Rename to configure.ac.
18027         * configure.ac: Renamed from configure.in; make minimum necessary
18028         changes for autoconf 2.5x.
18029         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18030         * configure: Regenerate with autoconf 2.57.
18031
18032 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18033
18034         * config/mips/linux.h: Fix comment formatting.
18035         * config/mips/mips.c: Likewise.
18036         * config/mips/mips.h: Likewise.
18037         * config/mips/mips.md: Likewise.
18038         * config/mips/netbsd.h: Likewise.
18039         * config/mips/windiss.h: Likewise.
18040
18041 2004-01-02  Richard Henderson  <rth@redhat.com>
18042
18043         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18044         for sse and 387; add suppression for mmx.
18045
18046 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18047
18048         * loop.c (loop_optimize): Free all loops_info's mems.
18049
18050         * c-typeck.c (finish_init): Free spelling_base before
18051         setting it again.
18052
18053         * cfgloop.c (flow_loops_find): Always free the sbitmap
18054         headers.
18055
18056         * predict.c (estimate_probability): Free bbs after being
18057         done with it.
18058
18059 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18060
18061         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18062         const_8bit_operand and call_address_operand.
18063
18064 2004-01-02  Jan Hubicka  <jh@suse.cz>
18065
18066         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18067         when there is nothing to inline but warnings are requested.
18068         (cgraph_decide_inlining):  Fix memory leak.
18069
18070 2004-01-02  Jan Hubicka  <jh@suse.cz>
18071
18072         * expr.c (store_constructor):  Fix pasto in previous patch.
18073
18074 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18075
18076         * config/i386/cygming.h: Fix comment formatting.
18077         * config/i386/djgpp.h: Likewise.
18078         * config/i386/gthr-win32.c: Likewise.
18079         * config/i386/i386-interix.h: Likewise.
18080         * config/i386/i386.c: Likewise.
18081         * config/i386/i386.h: Likewise.
18082         * config/i386/openbsd.h: Likewise.
18083         * config/i386/winnt.c: Likewise.
18084         * config/i386/xm-mingw32.h: Likewise.
18085
18086 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18087
18088         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18089         copyright and last modification dates.
18090
18091 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18092
18093         * doc/install.texi (Specific): Mention x86_64.
18094
18095 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18096
18097         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18098         Call force_operand on plus_constant result.
18099
18100 2004-01-01  Jan Hubicka  <jh@suse.cz>
18101
18102         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18103         * expr.c (store_constructor): Use vec_init pattern.
18104         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18105         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18106         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18107         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18108         New patterns.
18109         (sse2_unpc?pd): Fix pattern.
18110         (sse2_movlpd): Kill.
18111         (sse2_movsd): Deal with movlpd too.
18112         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18113         (ix86_expand_vector_init): New.
18114         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18115         * md.texi (vec_set, vec_extract): Document
18116
18117 2003-12-31  Jan Hubicka  <jh@suse.cz>
18118
18119         PR opt/13473
18120         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18121         ASM input operands
18122
18123         PR opt/12617
18124         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18125         (dump_file): Likewise.
18126         (rest_of_compilation): Likewise.
18127
18128         PR debug/13367
18129         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18130         flag_really_no_inline we inline always_inline functions.
18131         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18132         for non-always_inline functions when there is flag_really_no_inline.
18133         (cgraph_decide_inlining): Limit work done when not inlining.
18134         (cgraph_decide_inlining_incrementally): Likewise.
18135         (cgraph_optimize_function): Check whether something got inlined.
18136         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18137         extern inline functions when not inlining.
18138
18139         * opts.c (decode_options):  Disable crossjumping at -O1
18140         * invoke.texi (-O1): Document change.
18141
18142 See ChangeLog.10 for earlier changes.