OSDN Git Service

* config/alpha/alpha.c (small_symbolic_operand): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-09-13  Richard Henderson  <rth@redhat.com>
2
3         * config/alpha/alpha.c (small_symbolic_operand): New.
4         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
5         (some_operand, input_operand): Don't handle HIGH.
6         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
7         (alpha_expand_mov): Likewise.
8         (print_operand) [H]: Just print HIGH symbol.
9         (print_operand_address): Handle small data.
10         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
11         (TARGET_SWITCHES): Add -msmall-data/large-data.
12         (PIC_OFFSET_TABLE_REGNUM): New.
13         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
14         (PREDICATE_COES): Update.
15         * config/alpha/alpha.md (adddi_er_high): New.
16         (adddi_er_low): Handle small data.
17         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
18         prefer .sdata to .rodata.
19         (SELECT_RTX_SECTION): Likewise.
20
21 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
22
23         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
24         defining __size_t and leaving size_t undefined.
25         
26 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
27
28         * basic-block.h (expunge_block): Declare.
29         * cfg.c (expunge_block): Remove static declaration.
30
31 2001-09-12  Richard Henderson  <rth@redhat.com>
32
33         * integrate.c (copy_insn_list): Copy label name from
34         NOTE_INSN_DELETED_LABEL.
35
36 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
37
38         * c-common.c (c_tree_code_name): Const-ification.
39         * c-decl.c (c_decode_option): Likewise.
40         * c-typeck.c (warn_for_assignment): Likewise.
41         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
42         Likewise.
43         * cppinit.c (output_deps): Likewise.
44         * dependence.c (dependence_string, direction_string): Likewise.
45         * dwarf2out.c (output_ranges): Likewise.
46         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
47         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
48         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
49         standard_startfile_prefix, standard_startfile_prefix_1,
50         standard_startfile_prefix_2, tooldir_base_prefix,
51         standard_bindir_prefix, find_a_file): Likewise.
52         * genattrtab.c (make_length_attrs): Likewise.
53         * gencheck.c (tree_codes): Likewise.
54         * genemit.c (gen_split): Likewise.
55         * genrecog.c (special_mode_pred_table): Likewise.
56         * graph.c (graph_ext): Likewise.
57         * protoize (default_include): Likewise.
58         * reload.c (reload_when_needed_name): Likewise.
59         * sched-vis.c (visualize_stall_cycles): Likewise.
60         * tlink.c (recompile_files): Likewise.
61         * toplev.c (decode_g_option): Likewise.
62         * tradcpp.c (output_deps): Likewise.
63         * varasm.c (decode_reg_name): Likewise.
64         
65         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
66         Const-ification.
67         * arm.md: Likewise.
68         * avr.c (avr_regnames, encode_section_info): Likewise.
69         * c4x.c (float_reg_names): Likewise.
70         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
71         * elfos.h (const_section): Likewise.
72         * i386.c (ix86_comp_type_attributes): Likewise.
73         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
74         * ia64/aix.h (UNIQUE_SECTION): Likewise.
75         * ia64.c (type_names): Likewise.
76         * m68hc11.c (reg_class_names): Likewise.
77         * m88k.c (m_options): Likewise.
78         * mips.c (mips_output_conditional_branch, mips_unique_section):
79         Likewise.
80         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
81         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
82         ultra_code_names): Likewise.
83         * sparc.h (OVERRIDE_OPTIONS): Likewise.
84
85 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
86
87         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
88         Use --fatal-warnings option for gas.
89         * configure: Rebuilt.
90
91 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
92
93         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
94
95 2001-09-11  Jim Wilson  <wilson@redhat.com>
96
97         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
98
99 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
100
101         * builtins.c (c_strlen): Treat an offset too large for a
102         HOST_WIDE_INT as out of range.
103
104 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
105
106         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
107         (EDGE_CRITICAL_P): New predicate.
108         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
109         handling.
110         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
111         (dump_edge_info): Remove "crit".
112         * cfganal.c (mark_critical_edges): Kill.
113         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
114         * cfgcleanup.c (cleanup_cfg): Likewise.
115         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
116         (find_spanning_tree): Likewise.
117         * reg-stack.c (convert_regs_1): Likewise.
118         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
119
120         * basic-block.h (create_basic_block_structure): New.
121         (create_basic_block): Update prototype.
122         (force_nonfallthru): New.
123         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
124         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
125         handle updating of block_for_insn, creating of empty BBs and BBs at
126         the end of INSN chain.
127         (create_basic_block): New function.
128         (split_block): Use create_basic_block.
129         (force_nonfallthru_and_redirect): Break out from ...; cleanup
130         (redirect_edge_and_branch_force): ... here.
131         (force_nonfallthru): New.
132         (split_edge): Rewrite to use force_nonfallthru and create_block.
133         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
134         (find_basic_blocks): Free basic_block_for_insn.
135         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
136
137         * cfg.c: Fix formating.
138         * cfgcleanup.c: Fix formating.
139         (merge_blocks, tail_recursion_label_p): Return bool.
140         (merge_blocks_move_predecessor_nojumps,
141          merge_blocks_move_successor_nojumps): Return void.
142
143 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
144
145         * configure.in: Check whether assembler supports section merging.
146         * config.in: Rebuilt.
147         * configure: Rebuilt.
148         * varasm.c (variable_section, output_constant_pool): Pass alignment
149         to SELECT_SECTION and SELECT_RTX_SECTION.
150         (mergeable_string_section): New.
151         (mergeable_constant_section): New.
152         (default_elf_asm_named_section): Output SECTION_MERGE and
153         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
154         * output.h (mergeable_string_section): New.
155         (mergeable_constant_section): New.
156         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
157         * toplev.c (flag_merge_constants): New.
158         (f_options): Add -fmerge-constants and -fmerge-all-constants
159         options.
160         (toplev_main): Default to -fno-merge-constants if not optimizing.
161         * flags.h (flag_merge_constants): Add extern.
162         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
163         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
164         argument.
165         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
166         Define if assembler has working .subsection -1 support.
167         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
168         Put constant into special SHF_MERGE sections if the linker should
169         attempt to merge duplicates.
170         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
171         macro argument.
172         Put constant into special SHF_MERGE sections if the linker should
173         attempt to merge duplicates.
174         * config/alpha/elf.h: Likewise.
175         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
176         has working .subsection -1 support.
177         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
178         SELECT_SECTION.
179         * config/svr3.h: Likewise.
180         * config/darwin.h: Likewise.
181         * config/arm/aof.h: Likewise.
182         * config/arm/linux-elf.h: Likewise.
183         * config/avr/avr.h: Likewise.
184         * config/c4x/c4x.h: Likewise.
185         * config/d30v/d30v.h: Likewise.
186         * config/i386/dgux.h: Likewise.
187         * config/i386/osfrose.h: Likewise.
188         * config/i386/sco5.h: Likewise.
189         * config/i386/svr3gas.h: Likewise.
190         * config/ia64/aix.h: Likewise.
191         * config/m32r/m32r.h: Likewise.
192         * config/m68k/m68k.h: Likewise.
193         * config/m88k/dgux.h: Likewise.
194         * config/m88k/m88k.h: Likewise.
195         * config/mcore/mcore-pe.h: Likewise.
196         * config/mips/mips.h: Likewise.
197         * config/pa/pa.h: Likewise.
198         * config/pa/pa-linux.h: Likewise.
199         * config/romp/romp.h: Likewise.
200         * config/rs6000/sysv4.h: Likewise.
201         * config/rs6000/xcoff.h: Likewise.
202         * config/s390/linux.h: Likewise.
203         * config/sparc/sparc.h: Likewise.
204         * config/sparc/sysv4.h: Likewise.
205         * config/stormy16/stormy16.h: Likewise.
206         * config/v850/v850.h: Likewise.
207         * config/vax/vms.h: Likewise.
208         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
209         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
210         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
211         default_elf_asm_named_section for SHF_MERGE sections.
212
213 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
214
215         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
216         is OK.
217
218 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
219
220         * c-common.c (split_specs_attrs): Allow for empty attributes with
221         empty TREE_PURPOSE.  Fixes PR c/4294.
222
223 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
224
225         * basic-block.h (cached_make_edge, make_single_succ): New.
226         (make_edge): Remove first parameter.
227         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
228         * cfg.c (cached_make_edge): Rename from make_edge; return newly
229         created edge; use obstack allocation.
230         (make_edge, make_single_succ_edge): New.
231         (first_removed_edge): New static variable.
232         (init_flow): Initialize first_removed_edge and n_edges.
233         (clear_edges): Use remove_edge.
234         (flow_delete_block): Likewise.
235         (remove_edge): Add removed edges to the removed edges list.
236         (split_block, redirect_edge_and_branch_force, split_edge):
237         Use make_edge.
238         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
239         (add_noreturn_fake_exit_edges): Likewise.
240         (connect_infinite_loops_to_exit): Liekwise.
241         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
242         Use cached_make_edge.
243         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
244         * profile.c (branch_prob): Update make_edge call.
245         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
246
247 2001-09-11  Richard Henderson  <rth@redhat.com>
248
249         * config/alpha/alpha.c: Tidy formatting.
250         (local_symbolic_operand): Verify mode.
251         (alpha_sa_mask): Ignore unicos for eh_return.
252         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
253         * config/alpha/alpha.md (umk divsi patterns): Remove.
254         (extendsfdf2): Remove unicos check.
255         (tablejump): Merge vms and unicos code; always use direct set
256         plus label_ref use.
257
258 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
259
260         * config.gcc (alpha*-*-unicosmk*): New target.
261
262         * config/alpha/alpha-protos.h (symbolic_operand,
263         unicosmk_add_call_info_word, unicosmk_add_extern,
264         unicosmk_defer_case_vector, unicosmk_unique_section,
265         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
266         unicosmk_asm_file_start, unicosmk_asm_file_end,
267         unicosmk_output_common): Declare.
268
269         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
270         direct_return, function_arg, alpha_va_start, alpha_va_arg,
271         alpha_does_function_need_gp, alpha_end_function): Support Cray
272         Unicos/Mk.
273         (alpha_init_machine_status, alpha_mark_machine_status,
274         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
275         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
276         unicosmk_asm_named_section, unicosmk_insert_attributes,
277         unicosmk_section_type_flags, symbolic_operand,
278         unicosmk_output_module_name, unicosmk_output_default_externs,
279         unicosmk_output_dex, unicosmk_output_externs,
280         unicosmk_output_addr_vec, unicosmk_ssib_name,
281         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
282         unicosmk_asm_file_end, unicosmk_output_common,
283         unicosmk_section_type_flags, unicosmk_unique_section,
284         unicosmk_add_call_info_word, unicosmk_text_section,
285         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
286         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
287         unicosmk_dex_count, unicosmk_special_name): New.
288         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
289         TARGET_ABI_UNICOSMK.
290         (get_aligned_mem, alpha_expand_unaligned_load,
291         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
292         alpha_expand_unaligned_store_words): Support big-endian mode.
293         (print_operand): Likewise. New format specifier 't'. Use
294         TARGET_AS_SLASH_BEFORE_SUFFIX.
295         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
296         (alpha_pv_save_size): Update with above change.
297         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
298         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
299         Unicos/Mk.
300
301         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
302         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
303         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
304         (EXTRA_CONSTRAINT): New constraint 'U'.
305         (PREDICATE_CODES): Add symbolic_operand.
306
307         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
308         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
309         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
310         (integer division and modulus patterns): Split in default and
311         Unicos/Mk versions.
312         (*divmodsi_internal, *divmoddi_internal): Disable for
313         TARGET_ABI_UNICOSMK.
314         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in 
315         little-endian and big-endian versions.
316         (ext, ins, msk): Likewise.
317         (extv, extzv, insv): Support big-endian mode.
318         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
319         (call_umk, call_value_umk, *call_umk, tablejump_umk,
320         *tablejump_umk_internal, *call_value_umk): New.
321         (*movdi_nofix): Add pattern for loading an address into a register on
322         TARGET_ABI_UNICOSMK.
323         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
324         (umk_mismatch_args, arg_home_umk): New.
325         (various insns): Don't use mov, fmov, nop, fnop and unop.
326         (realign): Support TARGET_ABI_UNICOSMK.
327
328         * config/alpha/unicosmk.h: New file.
329         * config/alpha/t-unicosmk: New file.
330
331         * fixinc/inclhack.def (unicosmk_restrict): New.
332         * fixinc/fixincl.x: Regenerate.
333
334         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
335         (wchar_t): Check for and define __WCHAR_T__.
336
337 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
338
339         * combine.c (simplify_shift_const): Treat shifts by the mode
340         size as undefined.
341
342 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
343
344         * cpphash.h (struct tokenrun): New.
345         (struct cpp_context): New member bol.
346         (struct cpp_reader): New members.
347         (_cpp_init_tokenrun): New.
348         * cppinit.c (cpp_create_reader): Set up the token runs.
349         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
350         (lex_token): New internalised version of _cpp_lex_token.  Don't
351         handle directives or the multiple include opimisation here any
352         more.  Simply lex a token.
353         * cpplib.c (run_directive): Clear bol.
354         (_cpp_pop_buffer): Set bol.
355         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
356         arguments.
357
358 2001-09-11  Michael Meissner  <meissner@redhat.com>
359
360         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
361         give an error if the user uses -mfp32.
362         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
363         default options.
364         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
365         floating point register size.
366         (EXTRA_SPECS): Add CPP_FPR_SPEC.
367
368         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
369         HOST_WIDE_INT_PRINT_DEC to properly print the result of
370         int_size_in_bytes.
371         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
372         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
373
374 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
375
376         * dbxout.c (dbxout_parms): Fix typo in comment.
377         * unroll.c (loop_find_equiv_value): Ditto.
378         * toplev.c (rest_of_compilation): Ditto.
379         * loop.c (scan_loop): Ditto.
380         * dwarf2out.c (struct dw_fde_struct): Ditto.
381
382 2001-09-10  Zack Weinberg  <zackw@panix.com>
383
384         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
385         copying identifier when we're just going to throw it away.
386         (parse_identifier_slow): New routine to handle abnormal cases.
387         (_cpp_lex_token): Update call site.
388
389         * hashtable.c (ht_lookup): Don't assume that the string we've
390         been given is NUL-terminated.
391         * system.h: #define __builtin_expect(a, b) to (a) if not
392         GCC >=3.0.
393
394 2001-09-10  Michael Meissner  <meissner@redhat.com>
395
396         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
397         binutils, gdb.
398
399 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
400
401         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
402
403 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
404
405         * builtins.c (c_getstr): Correct thinko in last change and further
406         cleanup.
407
408 2001-09-10  Tim Freeman <tim@fungibole.com>
409
410         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
411         into varray's and register them as roots with the garbage
412         collector so they are not collected too soon.
413
414 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
415
416         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
417         New.
418         * basic-block.h (flow_obstack, label_value_list,
419         tail_recursion_label_list): Declare
420         (tidy_fallthru_edges): Declare.
421         (expunge_block, last_loop_beg_note): Delete.
422         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
423         * cfg.c: New file
424         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
425         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
426         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
427         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
428         expunge_block, flow_delete_block, compute_bb_for_insn,
429         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
430         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
431         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
432         try_redirect_by_replacing_jump, last_loop_beg_note,
433         redirect_edge_and_branch, redirect_edge_and_branch_force,
434         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
435         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
436         commit_edge_insertions, dump_flow_info, debug_flow_info,
437         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
438         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
439         Move here from flow.c
440         * cfganal.c: New file.
441         (forwarder_block_p, can_fallthru, mark_critical_edges,
442          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
443          find_unreachable_blocks, create_edge_list, free_edge_list,
444          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
445          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
446          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
447          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
448          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
449          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
450         Move here from flow.c
451         * cfgbuild.c: New file
452         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
453          make_edges, find_basic_blocks_1, find_basic_blocks,
454          find_sub_basic_blocks): Move here from flow.c
455         * cfgcleanup.c: New file.
456         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
457          merge_blocks_move_predecessor_nojumps,
458          merge_blocks_move_successor_nojumps, merge_blocks,
459          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
460          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
461         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
462         if succeeded.
463         * cfgloop.c: New file
464         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
465          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
466          flow_loop_exit_edges_find, flow_loop_nodes_find,
467          flow_loop_pre_header_scan, flow_loop_pre_header_find,
468          flow_loop_tree_node_add, flow_loops_tree_build,
469          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
470          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
471         Move here from flow.c
472         * flow.c: Remove everything moved elsewhere
473         * output.h (cleanup_cfg): Return bool.
474
475         * bb-reorder.c (reorder_block_def): Remove 'index'.
476         (insert_intra_1): Add argument BB, set block for new note.
477         (make_reorder_chain): Do not depdent on BB indexes.
478         (make_reorder_chain_1): Do not use BB indexes.
479         (label_for_bb): Likewise; set BB for new insn.
480         (emit_jump_to_block_after): Likewise.
481         (fixup_reoder_chain): Sanity check that all basic blocks
482         are chained; verify newly created insn chain; remove
483         undocnitional jump simplifying; Do not use BB indexes;
484         properly initialize count and frequency information;
485         dump reordered sequence.
486         (insert_intra_bb_scope_notes): update call of insert_intra_1.
487         (insert_inter_bb_scope_notes): Set block for new insn.
488         (reorder_basic_blocks): Dump flow info before reoredering.
489
490 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
491
492         * alias.c (clear_reg_alias_info): Use K&R format definition.
493         Avoid unsigned warning.
494         * builtins.c: Use "unsigned int", not "unsigned".
495         (target_char_cast): Use host_integerp and tree_low_cst.
496         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
497         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
498         (c_getstr): Likewise.
499         (std_expand_builtin_va_arg): Use int_size_in_bytes.
500         (builtin_memcpy_read_str): Avoid unsigned warning.
501         (expand_builtin_memcpy): Alignments are unsigned.
502         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
503         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
504         * predict.c (expensive_function_p): LIMIT now unsigned.
505         * resource.c (mark_target_live_regs): Make some vars unsigned.
506         * sdbout.c: Use "unsigned int", not "unsigned".
507         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
508         (sdbout_source_line): Likewise.
509         (sdbout_record_type_name): Remove "const" for NAME declaration.
510         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
511
512 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
513
514         * calls.c (store_one_arg): Expand comment.
515
516 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
517
518         * calls.c (store_one_arg): Make sure that the entire argument is
519         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
520
521 2001-09-09  Richard Henderson  <rth@redhat.com>
522
523         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
524
525 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
526
527         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
528
529 2001-09-09  Richard Henderson  <rth@redhat.com>
530
531         * config/alpha/alpha.c (alpha_next_sequence_number): New.
532         (alpha_this_literal_sequence_number): New.
533         (alpha_this_gpdisp_sequence_number): New.
534         (some_operand, input_operand): Add HIGH.
535         (local_symbolic_operand): New.
536         (alpha_encode_section_info): New.
537         (alpha_legitimate_address_p): Allow LO_SUM.
538         (alpha_legitimize_address): Generate HIGH+LO_SUM.
539         (alpha_expand_mov): Likewise.
540         (secondary_reload_class): Check memory_operand not general_operand
541         for FP_REGS test.
542         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
543         (alpha_expand_unaligned_store): Likewise.
544         (alpha_expand_unaligned_load_words): Likewise.
545         (alpha_expand_unaligned_store_words): Likewise.
546         (alpha_expand_block_clear): Likewise.
547         (print_operand): Handle %#, %*, %H.
548         (print_operand_address): Handle LO_SUM.
549         (find_lo_sum): New.
550         (alpha_does_function_need_gp): Use it.
551         (alpha_expand_block_move): Fix signed compare warnings.
552         (alpha_sa_mask, alpha_align_insns): Likewise.
553         * config/alpha/alpha-protos.h: Update.
554         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
555         (MASK_EXPLICIT_RELOCS): New.
556         (TARGET_SWITCHES): Add -mexplicit-relocs.
557         (EXTRA_CONSTRAINT): Add 'T'.
558         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
559         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
560         (ENCODE_SECTION_INFO): Out line.
561         (REDO_SECTION_INFO_P): New.
562         (STRIP_NAME_ENCODING): New.
563         (ASM_OUTPUT_LABELREF): New.
564         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
565         (PREDICATE_CODES): Update.
566         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
567         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
568         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
569         builtin_setjmp_receiver_er, exception_receiver_1_er,
570         call_value_osf_1_er): New patterns.
571         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
572         (movqi, movhi, movsi): Add explicit $31 base register to lda.
573         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
574         (FINAL_PRESCAN_INSN): New.
575
576 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
577
578         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
579
580 2001-09-08  Andreas Jaeger  <aj@suse.de>
581
582         * i386.h (TARGET_SWITCHES): Fix description.
583
584 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
585
586         * rs6000.c (num_insns_constant): Compute number of instructions
587         more accurately.
588
589         * doc/install.texi: Explain AIX exception handling work-around.
590         Update URL for AIX fixes.
591
592 2001-09-07  Jim Wilson  <wilson@redhat.com>
593
594         * alias.c (clear_reg_alias_info): New.
595         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
596         * rtl.h (clear_reg_alias_info): Declare.
597
598 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
599
600         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
601         available.
602         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
603         (m16m,edivm,emulm): Change declaration to match definition.
604
605 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
606
607         * reload.c (push_reload): Check for subreg_lowpart_p instead of
608         SUBREG_BYTE being 0 when determining if the inner part of a subreg
609         can be reloaded.
610
611 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
612
613         * c-common.c (signed_or_unsigned_type): Handle machine mode types
614         which have no corresponding C type.
615         * fold_const.c (target_isinf,target_isnan,target_negative): Update
616         the representation of 64-bit doubles to work with 64-bit ints.
617
618 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
619
620         * config/mips/mips.c (override_options): Do not override ISA when ABI
621         specified if MIPS_CPU_STRING_DEFAULT was specified.
622
623 2001-09-07  Richard Henderson  <rth@redhat.com>
624
625         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
626         (express_from_1): Wrap lines.
627         * rtlanal.c (commutative_operand_precedence): Rename from
628         operand_preference; export.
629         * rtl.h: Declare it.
630         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
631         (simplify_binary_operation): Invoke simplify_plus_minus on
632         (CONST (PLUS ...)) as well.
633         (struct simplify_plus_minus_op_data): New.
634         (simplify_plus_minus_op_data_cmp): New.
635         (simplify_plus_minus): Use them.  Avoid infinite recursion with
636         simplify_binary_operation wrt CONST.
637
638 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
639
640         * h8300-protos.h (general_operand_dst_push): Remove.
641         * h8300.c (general_operand_dst_push): Likewise.
642         * h8300.h (OK_FOR_T): Likewise.
643         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
644         * h8300.md (pushqi_h8300): New.
645         (pushqi_h8300hs): Likewise.
646         (pushqi): Likewise.
647         (pushhi_h8300): Likewise.
648         (pushhi_h8300hs): Likewise.
649         (pushhi): Likewise.
650
651 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
652
653         * genattrtab.c (attr_printf): First arg is unsigned.
654         Clean up formatting of callers.
655
656 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
657
658         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
659         registers.
660
661 2001-09-07  Andreas Jaeger  <aj@suse.de>
662
663         * i386.h (TARGET_SWITCHES): Fix descriptions.
664
665 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
666
667         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
668
669 2001-09-06  Ira Ruben  <ira@apple.com>
670
671         Remove OP_IDENTIFIER.
672         * tree.def (OP_IDENTIFIER): Remove.
673         * tree.c (tree_node_kind enum): Remove op_id_kind.
674         (tree_node_kind_names): Remove "op_identifiers".
675         (make_node): Remove OP_IDENTIFIER test.
676         (build_op_identifier): Removed because it isn't being used.
677         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
678         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
679
680 2001-09-06  Richard Henderson  <rth@redhat.com>
681
682         * simplify-rtx.c (simplify_binary_operation): Revert last change.
683
684 2001-09-06  Richard Henderson  <rth@redhat.com>
685
686         * simplify-rtx.c (simplify_binary_operation): Simplify contents
687         of CONST.
688
689 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
690
691         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
692         number used for CR register.
693
694 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
695                           Joern Rennecke (amylaar@cygnus.com)
696
697         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
698         * h8300.c (initial_offset): Handle offset between RP and FP.
699         (h8300_return_addr_rtx): New function.
700         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
701         return register.
702         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
703         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
704         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
705         (CAN_ELIMINATE, REGISTER_NAMES):
706         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
707
708 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
709
710         Remove TYPE_NONCOPIED_PARTS.
711         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
712         (struct tree_type): Remove noncopied_parts.
713         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
714         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
715         (fixed_type_p): Remove.
716         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
717         (expand_expr, MODIFY_EXPR): Likewise.
718         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
719         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
720
721 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
722
723         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
724         compiler warnings.
725         (mask64_operand): Likewise.
726         (includes_rldic_lshift_p): Likewise.
727         (includes_rldicr_lshift_p): Likewise.
728
729 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
730
731         * objc/objc-act.c (build_message_expr): If a class method cannot
732         be found, do not issue a warning if a corresponding instance
733         method exists in the root class.
734
735 2001-09-05  Richard Henderson  <rth@redhat.com>
736
737         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
738
739 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
740
741         * function.c (ggc_mark_struct_function): Mark f->outer.
742         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
743         * integrate.c (output_inline_function): ... not here.
744
745 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
746
747         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
748
749         * i386.c (size_cost): New static variable.
750         (override_function): Use size_cost when -Os is specified.
751
752         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
753         properly;  Use current_function_calls_eh_return.
754         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
755         use leave to avoid depdendancy chain.
756
757         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
758         get BB loop_depth instead of computing it from LOOP notes.
759
760         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
761
762 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
763
764         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
765         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
766         UNALIGNED_DOUBLE_INT_ASM_OP): Define
767
768 2001-09-05  Jeffrey A Law  (law@cygnus.com)
769             Jason Merrill (jason@redhat.com)
770
771         * stor-layout.c (layout_type): Complain if an array's size can
772         not be represented in a size_t.
773
774         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
775
776 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
777
778         * gcc.c: (process_command) Add parentheses around assignment
779         used as truth value.
780
781 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
782
783         * config/mips/mips.c (save_restore_insns): Don't mark any register
784         save slots as unchanging if current_function_calls_eh_return.
785
786 2001-09-05  Richard Henderson  <rth@redhat.com>
787
788         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
789         * config/alpha/alpha-protos.h: Declare it.
790         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
791         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
792         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
793         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
794         (REG_OK_FOR_BASE_P): Select one of the above.
795
796 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
797
798         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
799         (crti.o): Prefix name of object file with $(T).
800         (crtn.o): Likewise.
801
802 2001-09-05  David S. Miller  <davem@redhat.com>
803
804         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
805         * config/sparc/linux64.h: Likewise.
806
807 2001-09-05  Andreas Jaeger  <aj@suse.de>
808
809         * doc/invoke.texi (i386 Options): -mwide-multiply is not
810         available anymore, remove the documentation.
811         (i386 Options): Fix typo, cleanup index entries.
812
813         * prefix.c (concat): Remove, we can use the version from liberty.
814
815 2001-09-05  Richard Henderson  <rth@redhat.com>
816
817         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
818         New functions split out of md file expanders.
819         * config/alpha/alpha-protos.h: Declare them.
820         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
821
822 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
823
824         * cppmacro.c (funlike_invocation_p): No need to restore context.
825
826 2001-09-04  Richard Henderson  <rth@redhat.com>
827
828         * reload.c (push_reload): Export.
829         * reload.h (push_reload): Declare it.
830
831         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
832         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
833         * config/alpha/alpha.c (alpha_legitimize_address): New.
834         (alpha_legitimize_reload_address): Likewise.
835         * config/alpha/alpha-protos.h: Declare them.
836
837 2001-09-04  Stan Shebs  <shebs@apple.com>
838
839         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
840         * config/darwin.c (machopic_stub_name): Account for internally
841         generated lib calls such as memcpy.
842
843 2001-09-04  Richard Henderson  <rth@redhat.com>
844
845         * unwind.h (_UA_END_OF_STACK): New flag.
846         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
847
848 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
849
850         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
851
852 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
853
854         * config/mips/mips.c (save_restore_insns): Change base_offset to
855         fp_offset in second call to mips_emit_frame_related_store.
856
857 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
858
859         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
860         sometimes be represented as a NOTE of type
861         NOTE_INSN_DELETED_LABEL.
862         (Insns): Document NOTE_INSN_DELETED_LABEL.
863
864 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
865
866         * c-common.h (tree_dump_index): Add more comments.
867         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
868         (dump_option_value_info): New struct.
869         (dump_options): New array.
870         (dump_switch_p): Parse switch options symbolically.
871         * doc/invoke.texi (-fdump-ast): Rename to ...
872         (-fdump-tree): ... here. Document that options are symbolic, and
873         not all are applicable.
874
875 2001-09-04  David S. Miller  <davem@redhat.com>
876
877         * config/sparc/sparc.md (define_splits): Kill constraints.
878
879         Cleanup redundant and unused insn attributes.
880         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
881         binary, and move.  Mark ialu as default.
882         (commented out define_function_unit "alu"): Kill.
883         (define_attr "use_clobbered"): Kill.
884         (whole file): Kill address insn type references.  Replace
885         all unary/binary/move references with ialu.
886         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
887         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
888         TYPE_IALU.
889
890         Simplify length insn attribute and make more judicious use
891         of insn attribute defaulting.
892         * config/sparc/sparc.md (all insns with length > one): Mark as
893         insn type multi if real instructions, else use default if
894         it is a forced splitter.
895         (all insns with length == one): Use default insn length.
896         (all insns of type ialu): Use default insn type.
897
898         Fix erroneous insn attribute settings.
899         (addx): Set insn type to misc.
900         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
901         const_umulsidi3_sp64): Set insn type to imul.
902
903         Track SFmode vs DFmode insns according to UltraSPARC
904         scheduling rules.
905         * config/sparc/sparc.md ("fptype"): New attribute, default
906         to "single".
907         (all DFmode single insns): Mark as fptype "double".
908
909 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
910
911         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
912
913 2001-09-03  Richard Henderson  <rth@redhat.com>
914
915         * function.h (struct function): Add arg_pointer_save_area_init.
916         * function.c (expand_function_end): Init arg_pointer_save_area.
917         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
918         when called from a nested function.
919
920 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
921
922         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
923         is enabled.
924
925 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
926
927         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
928
929 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
930
931         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
932         (emit_push_insn): Use specified padding direction when
933         STACK_PUSH_CODE is POST_INC.
934
935         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
936
937 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
938
939         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
940
941 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
942
943         * cppinit.c (cpp_start_read): Free the imacros list as we
944         traverse it.  Don't free the chains before returning.
945         (_cpp_push_next_buffer): Only try pushing buffers if we've
946         completed -imacros handling.
947
948 2001-08-31  Eric Christopher  <echristo@redhat.com>
949
950         * gcc.c (handle_braces): Add explaination for abort.
951
952 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
953
954         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
955         move adjustment of bitpos instead.
956
957 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
958
959         * function.c: Remove all_functions.  Make outer_function_chain
960         static.
961         (init_function_start): Don't add new function structure to
962         all_functions.
963         (find_function_data, push_function_context_to,
964         pop_function_context_from, put_var_into_stack,
965         trampoline_address): Update for changed structure element names.
966         (push_function_context_to): Disentangle.
967         (free_after_compilation): Also free F.
968         (expand_dummy_function_end): Don't free cfun here.
969         (put_var_into_stack): Comment why we can't use find_function_data here.
970         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
971         (mark_function_chain): Split into maybe_mark_struct_function and
972         ggc_mark_struct_function.  Export the latter.
973         (init_function_once): Mark from cfun and outer_function_chain;
974         not all_functions.
975
976         * function.h (struct function): Kill next_global.  Rename next
977         to outer.  All users updated to match.
978         (all_functions, outer_function_chain): Don't declare.
979
980         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
981         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
982         don't touch f->inlinable, after calling rest_of_compilation.
983
984         * tree.h: Forward-declare struct function.  Prototype
985         ggc_mark_struct_function.
986
987 2001-08-31  Kazu Hirata  <kazu@hxi.com>
988
989         * config/h8300/h8300.md (*andorhi3): Fix typos.
990
991 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
992
993         * calls.c (emit_library_call_value): Don't use a fixed
994         argument after VA_CLOSE, i.e. out of scope in traditional C.
995
996         * emit-rtl.c (gen_rtvec): Likewise.
997
998 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
999
1000         * Makefile.in (c-pragma.o): Depend on output.h.
1001         (reorg.o): Depend on except.h.
1002
1003         * c-pragma.c: Include output.h.
1004
1005         * reorg.c: Include except.h.
1006
1007         * unwind-dw2.c: Call __builtin_alloca, not alloca.
1008
1009 2001-08-31  Richard Henderson  <rth@redhat.com>
1010
1011         * sched-deps.c (add_dependence): Don't elide dependancy if the
1012         conditional used by insn is modified in elem.
1013
1014 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
1015
1016         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
1017
1018 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
1019
1020         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
1021         dump_switch_p.
1022
1023 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
1024
1025         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
1026         function.
1027         (stormy16_asm_out_constructor): New function.
1028         (TARGET_ASM_CONSTRUCTOR): Define.
1029         (TARGET_ASM_DESTRUCTOR): Define.
1030
1031 2001-08-31  Andreas Jaeger  <aj@suse.de>
1032
1033         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
1034         * loop.c (add_label_notes): Likewise.
1035         * reload.c (find_reloads): Likewise.
1036         * config/sh/sh.c (machine_dependent_reorg): Likewise.
1037
1038 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
1039
1040         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
1041         code here.  Take _Unwind_{W,Sw}ord*.
1042         (read_encoded_value_with_base): Use them.
1043         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
1044         words.
1045         (extract_cie_info): Simplify read_?leb128 handling.
1046         (execute_stack_op, execute_cfa_program): Likewise.
1047         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
1048
1049 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
1050
1051         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
1052         the frame pointer to pop the stack if convenient.
1053
1054         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
1055         Don't use post-increment before combine.
1056         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
1057         a call-saved register.
1058
1059 2001-08-31  Andreas Jaeger  <aj@suse.de>
1060
1061         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
1062         code was correct.
1063
1064 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
1065
1066         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
1067         not DIV/MOD, of course.
1068
1069 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
1070
1071         * rtl.def: Undo my patch commited 2001-08-27.
1072
1073         * genattrtab.c: Ditto.
1074
1075         * rtl.h: Ditto.
1076
1077         * sched-int.h: Ditto.
1078
1079         * target-def.h: Ditto.
1080
1081         * target.h: Ditto.
1082
1083         * haifa-sched.c: Ditto.
1084
1085         * sched-rgn.c: Ditto.
1086
1087         * sched-vis.c: Ditto.
1088
1089         * Makefile.in: Ditto.
1090
1091         * doc/md.texi: Ditto.
1092
1093         * doc/tm.texi: Ditto.
1094
1095         * doc/contrib.texi: Ditto.
1096
1097         * doc/gcc.texi: Ditto.
1098
1099         * genattrtab.h: Remove it.
1100
1101         * genautomata.c: Remove it.
1102
1103         * genattr.c: Undo my patch and Richard Henderson's patch commited
1104         2001-08-27.
1105
1106 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
1107
1108         * config.gcc (h8300-*-elf*): New case.
1109         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
1110         (SUBTARGET_CPP_SPEC): Define.
1111         (EXTRA_SPECS): Define.
1112         (SUBTARGET_EXTRA_SPECS): Define.
1113         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
1114         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
1115
1116 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
1117
1118         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
1119         (LIB2FUNCS_EXTRA): Define.
1120         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
1121         config/h8300/fixunssfsi.c: New file.
1122
1123 2001-08-30  Kazu Hirata  <kazu@hxi.com>
1124
1125         * config/h8300/h8300.md (zero_extendqihi2): Changes to
1126         define_expand to accomodate target-specific attributes.
1127         (anonymous zero_extendqihi2 patterns): New.
1128
1129 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
1130
1131         * h8300.md (*andorhi3): New pattern.
1132
1133 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
1134
1135         * h8300.c (dosize): Fix test for "sub".
1136
1137 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
1138
1139         * c-typeck.c (pointer_diff): Try to eliminate common term before
1140         doing conversions.
1141
1142 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
1143
1144         * config/arm/arm.c (arm_compute_initial_elimination_offset):
1145         Account for the saves of the FP registers.
1146
1147         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
1148         (TEXT_SECTION_ASM_OP): Define.
1149         (INIT_SECTION_ASM_OP): Define.
1150         (FINI_SECTION_ASM_OP): Define.
1151         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
1152         (RDATA_SECTION_FUNCITON): Provide prototype.
1153
1154 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
1155
1156         * reload1.c (move2add_note_store): Correct typo checking for
1157         argument pushes.
1158
1159 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
1160
1161         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
1162         note should not be considered outside the libcall block.
1163
1164 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1165
1166         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
1167
1168 2001-08-29  Kazu Hirata  <kazu@hxi.com>
1169
1170         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
1171
1172 2001-08-29  Kazu Hirata  <kazu@hxi.com>
1173
1174         * config/h8300/h8300-protos.h: Add a prototype for
1175         emit_logical_op.
1176         * config/h8300/h8300.c (emit_logical_op): New.
1177         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
1178         (andsi3): Likewise.
1179         (iorhi3): Likewise.
1180         (iorsi3): Likewise.
1181         (xorhi3): Likewise.
1182         (xorsi3): Likewise.
1183
1184 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1185
1186         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
1187         comparison with rtx INTVAL.
1188         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
1189         expression.
1190         * pa.h (FUNCTION_ARG_SIZE): Likewise.
1191
1192 2001-08-29  Kazu Hirata  <kazu@hxi.com>
1193
1194         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
1195         comment typos.
1196
1197 2001-08-29  Kazu Hirata  <kazu@hxi.com>
1198
1199         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
1200         (reg n) to (mem (pre_dec (reg n))
1201         (anonymous movsi pattern): Likewise.
1202
1203 2001-08-29  Kazu Hirata  <kazu@hxi.com>
1204
1205         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
1206
1207 2001-08-29  Kazu Hirata  <kazu@hxi.com>
1208
1209         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
1210         several special constants.
1211
1212 2001-08-29  Kazu Hirata  <kazu@hxi.com>
1213
1214         * config/h8300/lib1funcs.asm: Fix comment typos.
1215
1216 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1217
1218         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
1219         Fix format specifier warnings.
1220
1221         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
1222         inet_makeaddr, semctl): Prototype.
1223
1224         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
1225         (save_restore_insns): Use base_offset, not gp_offset.
1226
1227         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
1228         (ASM_OUTPUT_BYTE): Fix format specifier warning.
1229
1230 2001-08-29  Richard Henderson  <rth@redhat.com>
1231
1232         * bb-reorder.c (function_tail_eff_head): New.
1233         (record_effective_endpoints): Set it.
1234         (fixup_reorder_chain): Use it.
1235
1236 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1237
1238         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
1239
1240 2001-08-28  Dale Johannesen  <dalej@apple.com>
1241
1242         * config/darwin.c (machopic_function_base_name): Add const
1243         qualifier to a string.
1244         (darwin_encode_section_info): Ditto.
1245
1246 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1247
1248         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
1249         function definition.
1250
1251 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
1252
1253         * df.h (struct df): Add rts_order variable.
1254
1255         * df.c (df_visit_next_rts): New function.
1256         (df_visit_next): Renamed to df_visit_next_rc
1257         (df_analyse_1): Allocate/compute/free rts_order as well.
1258         (df_rd_global_compute): Use df_visit_next_rc instead of
1259         df_visit_next.
1260         (df_ru_global_compute): Use df_visit_next_rts instead of
1261         df_visit_next.
1262
1263         * flow.c (flow_reverse_top_sort_order_compute): New function.
1264
1265         * basic-block.h: Add prototype.
1266
1267 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
1268
1269         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
1270         blocks, the BB_REACHABLE is now set, rather than aux being
1271         non-NULL. Update the test to reflect this.
1272
1273 2001-08-28  Eric Christopher  <echristo@redhat.com>
1274
1275         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
1276         config/mips/crti.asm: Ditto.
1277
1278 2001-08-28  Eric Christopher <echristo@redhat.com>
1279             Richard Henderson <rth@redhat.com>
1280
1281         * c-pragma.h (add_weak): Move prototype from here...
1282         * output.h (add_weak): ... to here.
1283         * varasm.c (add_weak): Fix typo.
1284         * config/mips/crti.asm: New file.
1285         * config/mips/crtn.asm: Ditto.
1286         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
1287         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
1288         (INVOKE__main): Ditto.
1289         (INIT_SECTION_ASM_OP): New.
1290         (FINI_SECTION_ASM_OP): Ditto.
1291         (STARTFILE_SPEC): Add crti.
1292         (ENDFILE_SPEC): Add crtn.
1293         * config/mips/elf64.h: Same.
1294         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
1295         Remove.
1296         * config/mips/vxworks.h: Ditto.
1297         * config/mips/t-elf: Support crti and crtn.
1298
1299 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
1300
1301         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
1302         INSN_LIST.
1303
1304 2001-08-28  Richard Henderson  <rth@redhat.com>
1305
1306         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
1307         (one_cmplbi2 splitter): Remove redundant test.
1308
1309 2001-08-28  Dale Johannesen  <dalej@apple.com>
1310
1311         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
1312
1313 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
1314
1315         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
1316
1317 2001-08-28  Stan Shebs  <shebs@apple.com>
1318
1319         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
1320         (UNALIGNED_SHORT_ASM_OP): Define.
1321         (UNALIGNED_INT_ASM_OP): Define.
1322
1323 2001-08-28  Will Cohen  <wcohen@redhat.com>
1324
1325         * config/rs6000/rs6000.md (store_multiple): Correct RTL
1326         generation for first set.
1327
1328 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
1329
1330         * flow.c (redirect_edge_succ_nodup): Return new edge.
1331         (try_simplify_condjump): Use new edge.
1332         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
1333
1334         * cse.c (cse_basic_block): Skip note instructions.
1335
1336 2001-08-27  Richard Henderson  <rth@redhat.com>
1337
1338         * combine.c (combine_simplify_rtx): Don't reverse condition
1339         if there is no reverse for the condition.
1340         (simplify_comparison): Don't simplify subregs from INT to FP.
1341
1342         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
1343         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
1344         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
1345         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
1346         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
1347         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
1348
1349 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
1350
1351         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
1352         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
1353         (pushqi1): New.
1354         (adddi_dilshr32, adddi_dishl32): Only data register can be
1355         source for mem destination.
1356
1357         * expmed.c (store_bit_field): Ignore adjustment to bitpos
1358         and use bitnum to decide about register move.
1359
1360 2001-08-27  Richard Henderson  <rth@redhat.com>
1361
1362         * genattr.c (main): Emit state_t even when not doing scheduling.
1363
1364 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
1365             Richard Henderson  <rth@redhat.com>
1366
1367         * gcse.c (reg_first_set, reg_last_set): Replace with ...
1368         (reg_avail_info, current_bb): ... these.
1369         (oprs_unchanged_p, record_last_reg_set_info): Use them.
1370         (compute_hash_table): Likewise.
1371
1372 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
1373
1374         * flow.c (verify_flow_info): Use checksums to verify edges.
1375
1376 2001-08-27  Richard Henderson  <rth@redhat.com>
1377
1378         * genautomata.c (expand_automata): Always create a description.
1379
1380 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
1381
1382         * optabs.c (expand_binop): Correctly handle the carry in multiword
1383         add/subtract operations.
1384
1385 2001-08-27  Fred Fish  <fnf@be.com>
1386
1387         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
1388         __SIZE_TYPE__.
1389
1390 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
1391
1392         * reload.c (find_reloads_toplev): Back out this change:
1393
1394         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
1395
1396         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
1397         mem if the address is a mode_dependent_address_p.
1398
1399 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
1400
1401         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
1402         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
1403         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
1404         RTL constructions.
1405
1406         * genattr.c (main): New variable num_insn_reservations.  Increase
1407         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
1408         pipeline hazard recognizer interface.
1409
1410         * genattrtab.h: New file.
1411
1412         * genattrtab.c: Include genattrtab.h.
1413         (attr_printf, check_attr_test, make_internal_attr,
1414         make_numeric_value): Move protypes into genattrtab.h.  Define them
1415         as external.
1416         (num_dfa_decls): New global variable.
1417         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
1418         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
1419         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
1420         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
1421
1422         * genautomata.c: New file.
1423
1424         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
1425
1426         * sched-int.h: (curr_state): Add the external definition for
1427         automaton pipeline interface.
1428         (haifa_insn_data): Add comments for members blockage and units.
1429
1430         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
1431         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
1432         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
1433         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
1434         TARGET_SCHED_DFA_POST_CYCLE_INSN,
1435         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
1436         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
1437         macros.
1438         (TARGET_SCHED): Use the new macros.
1439
1440         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
1441         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
1442         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
1443         dfa_bubble): New members in gcc_target.sched.
1444
1445         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
1446         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
1447         (insn_queue): Redefine it as pointer to array.
1448         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
1449         INSN_QUEUE_SIZE.
1450         (max_insn_queue_index_macro_value): New variable.
1451         (curr_state, dfa_state_size, ready_try): New varaibles for
1452         automaton interface.
1453         (ready_element, ready_remove, max_issue): New function prototypes
1454         for automaton interface.
1455         (choose_ready): New function prototype.
1456         (insn_unit, blockage_range): Add comments.
1457         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
1458         FUNCTION_UNITS_SIZE == 0.
1459         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
1460         actual_hazard, potential_hazard): Add comments.
1461         (insn_cost): Use cost -1 as undefined value.  Remove
1462         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
1463         pipeline interface.
1464         (ready_element, ready_remove): New functions for automaton
1465         interface.
1466         (schedule_insn): Add new code for automaton pipeline interface.
1467         (queue_to_ready): Add new code for automaton pipeline interface.
1468         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
1469         (debug_ready_list): Print newline when the queue is empty.
1470         (max_issue): New function for automaton pipeline interface.
1471         (choose_ready): New function.
1472         (schedule_block): Add new code for automaton pipeline interface.
1473         Print ready list before scheduling each insn.
1474         (sched_init): Add new code for automaton pipeline interface.
1475         Initiate insn cost by -1.
1476         (sched_finish): Free the current automaton state and finalize
1477         automaton pipeline interface.
1478
1479         * sched-rgn.c: Include target.h.
1480         (init_ready_list, new_ready, debug_dependencies): Add new code for
1481         automaton pipeline interface.
1482
1483         * sched-vis.c: Include target.h.
1484         (get_visual_tbl_length): Add code for automaton interface.
1485         (target_units, print_block_visualization):  Add comments.
1486
1487         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
1488         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
1489         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
1490         (getruntime.o, genautomata.o): New entries.
1491         (genattrtab.o): Add new dependency file genattrtab.h.
1492         (genattrtab): Add new dependencies.  Link it with `libm.a'.
1493         (getruntime.o, hashtab.o): New entries for canadian cross.
1494
1495         * doc/md.texi: Description of automaton based model.
1496
1497         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
1498         Add comments.
1499         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
1500         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
1501         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
1502         TARGET_SCHED_DFA_POST_CYCLE_INSN,
1503         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
1504         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
1505         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
1506         hook descriptions.
1507         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
1508         MAX_DFA_ISSUE_RATE): New macro descriptions.
1509
1510         * doc/contrib.texi: Add dfa based scheduler contribution.
1511
1512         * doc/gcc.texi: Add more information about genattrtab.
1513
1514 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
1515
1516         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
1517         an RTL basic block.
1518
1519 2001-08-27  Richard Henderson  <rth@redhat.com>
1520
1521         * function.c (expand_function_end): Don't init arg_pointer_save_area.
1522         (get_arg_pointer_save_area): New.  Create an init it here.
1523         (fix_lexical_addr): Use it.
1524         * function.h: Declare it.
1525         * builtins.c (expand_builtin_setjmp_receiver): Use it.
1526         * stmt.c (expand_nl_goto_receiver): Use it.
1527
1528 2001-08-27  Richard Henderson  <rth@redhat.com>
1529
1530         * final.c (final_scan_insn): Don't enter APP_ON mode for
1531         empty asm strings.
1532
1533         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
1534         alignment for assemble_integer for DW_EH_PE_aligned.
1535         * except.c (output_function_exception_table): Likewise.
1536
1537 2001-08-26  Andreas Jaeger  <aj@suse.de>
1538
1539         * c-tree.h: Add prototyp for c_sizeof_nowarn.
1540
1541 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
1542
1543         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
1544
1545 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
1546
1547         * config/rs6000/rs6000.c (mask_operand): Rewrite without
1548         bit-shifting loop.
1549         (mask64_operand): Likewise.
1550         (rldic_operand): Delete.
1551         (includes_lshift64_p): Delete.
1552         (includes_rldic_lshift_p): New function.
1553         (includes_rldicr_lshift_p): New function.
1554         (print_operand): Don't call rldic_operand in case 'W'.
1555         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
1556         (includes_lshift64_p): Remove.
1557         (includes_rldic_lshift_p): Declare.
1558         (includes_rldicr_lshift_p): Declare.
1559         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
1560         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
1561         Replace match_operand rldic_operand predicate with
1562         const_int_operand.  Replace includes_lshift64_p condition with
1563         includes_rldic_lshift_p.
1564         <ashldi3_internal 64 bit rldicr patterns>: New.
1565
1566 2001-08-27  Andreas Jaeger  <aj@suse.de>
1567
1568         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
1569         * errors.c: Likewise.
1570         * final.c: Likewise.
1571         * dwarf2asm.c: Likewise.
1572         * doprint.c (checkit): Likewise.
1573         * diagnostic.c: Likewise.
1574         * collect2.c: Likewise.
1575         * calls.c: Likewise.
1576         * c-semantics.c (build_stmt): Likewise.
1577         * c-format.c (status_warning): Likewise.
1578         * c-errors.c (pedwarn_c99): Likewise.
1579         * builtins.c (validate_arglist): Likewise.
1580         * config/pj/pj.c (pj_printf): Likewise.
1581         * fix-header.c: Likewise.
1582         * gcc.c: Likewise.
1583         * gcov.c (fnotice): Likewise.
1584         * gensupport.c (message_with_line): Likewise.
1585         * mips-tfile.c: Likewise.
1586         * protoize.c (notice): Likewise.
1587         * read-rtl.c (fatal_with_file_and_line): Likewise.
1588         * rtl-error.c: Likewise.
1589         * tradcpp.c: Likewise.
1590         * tree.c: Likewise.
1591         * cp/tree.c (build_min_nt): Likewise.
1592         (build_min): Likewise.
1593         * cp/lex.c: Likewise.
1594         * cp/errfn.c: Likewise.
1595         * cp/rtti.c (create_pseudo_type_info): Likewise.
1596
1597 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
1598
1599         * df.c (df_uses_record): Return after recording all uses
1600         in ASM_OPERANDS.
1601
1602 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
1603
1604         * df.c (df_insn_modify): Realloc the INSN table here, if
1605         necessary, here, too.
1606
1607 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
1608
1609         * config/mips/mips.c (mips_function_value): Handle complex return
1610         values.
1611
1612 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
1613
1614         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
1615         unshared.
1616         * reload.c (make_memloc): Copy result if it is still
1617         reg_equiv_memory_loc[regno] on return.
1618         (subst_reloads) [ENABLE_CHECKING]: Check that none of
1619         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
1620         reg_equiv_mem are modified by the substitutions.
1621
1622 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
1623
1624         * predict.c (expensive_function_p): New.
1625         * rtl.h (expensive_function_p): Declare.
1626         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
1627         (use_fast_prologue_epilogue): New static variable.
1628         (expand_prologue): Set it; emit short prologues if unset.
1629         (expand_epilogue): Likewise.
1630
1631 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
1632
1633         * config.gcc: Add stormy16-*-elf case.
1634         * config/stormy16/stormy-abi: New file.
1635         * config/stormy16/stormy16-lib2.c: New file.
1636         * config/stormy16/stormy16-protos.h: New file.
1637         * config/stormy16/stormy16.c: New file.
1638         * config/stormy16/stormy16.h: New file.
1639         * config/stormy16/stormy16.md: New file.
1640         * config/stormy16/t-stormy16: New file.
1641
1642 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
1643
1644         * i386.h (no-accumulate-outgoing-args): Use proper mask.
1645
1646 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
1647
1648         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
1649         descriptor members are pointer size, not constant 4.
1650         * config/rs6000/rs6000.md (define_splits): Remove more unused
1651         constraints.
1652
1653 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1654
1655         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
1656
1657 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
1658
1659         * cp/rtti.c (VPARAMS): Fix parameter.
1660
1661 2001-08-24  Zack Weinberg  <zackw@panix.com>
1662
1663         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
1664         to zero.
1665         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
1666         to switch.
1667         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
1668         in if controlling use of insv.
1669         (extract_bit_field): Likewise, for extv and extzv.
1670
1671 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
1672
1673         * i386.md (movcc peep2): Fix load of 0.
1674
1675 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1676
1677         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
1678         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
1679
1680 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
1681
1682         * c-pragma.h: Move weak_syms and weak_decls...
1683         * varasm.c: ...here.  Now static.
1684         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
1685         depend on HANDLE_PRAGMA_WEAK.
1686
1687         * c-common.c (c_alignof, c_alignof_expr): Move here...
1688         * c-typeck.c: ...from here.
1689         * c-tree.h, c-common.h: Adjust.
1690
1691 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
1692
1693         * config/ia64/ia64.c (rws_update): If !pred, set write_count
1694         instead of incrementing it.
1695
1696         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
1697         asm ready, don't try to move them all into the same array element.
1698
1699 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
1700
1701         * function.c (thread_prologue_and_epilogue_insns): Avoid
1702         fallthru flag on edge to exit.
1703
1704         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
1705
1706         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
1707         dead edges.
1708
1709 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
1710
1711         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
1712         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
1713         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
1714         Remove prototype.
1715
1716 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
1717
1718         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
1719         replace "GNU CC" with "GCC".
1720
1721 2001-08-23  Richard Henderson  <rth@redhat.com>
1722
1723         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
1724         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
1725         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
1726         Need GR between FR and not GR_AND_FR.
1727         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
1728         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
1729         AR regs before GR regs.
1730         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
1731         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
1732         (REGISTER_MOVE_COST): Update.
1733         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
1734
1735 2001-08-23  Richard Henderson  <rth@redhat.com>
1736
1737         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
1738         a register class.
1739
1740 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
1741
1742         * reload1.c (emit_reload_insns): Don't look for notes
1743         on a NULL store_insn.
1744
1745 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1746
1747         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
1748         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
1749         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
1750         format specifier warnings.
1751         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
1752
1753 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
1754
1755         * config/i386/i386-protos.h: Correct declaration of
1756         i386_pe_asm_named_section.
1757
1758 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1759
1760         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
1761         variable i.
1762         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
1763
1764 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1765
1766         * cpperror.c (print_location): Don't show _Pragma.
1767         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
1768         and file change callback generation here.
1769         (stack_include_file): Update use of cpp_push_buffer.
1770         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
1771         (struct cpp_buffer): Remove type, pfile members.
1772         * cppinit.c (cpp_handle_option): Use free_chain.
1773         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
1774         (skip_escaped_newlines, get_effective_char, lex_percent): Take
1775         a cpp_reader rather than a cpp_buffer.
1776         (skip_escaped_newlines, get_effective_char, skip_block_comment,
1777         skip_line_comment, parse_string, lex_percent, lex_dot,
1778         _cpp_lex_token): Update accordingly.
1779         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
1780         generation here.
1781         (cpp_push_buffer): Update prototype.
1782         (run_directive): Update use of cpp_push_buffer.
1783         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
1784         handle_assertion): Update use of run_directive.
1785         * cpplib.h (enum cpp_buffer_type): Remove.
1786         (cpp_push_buffer): Update prototype.
1787         * fix-header.c (read_scan_file): Update.
1788
1789 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1790
1791         * gcc.c (struct prefix_list): Change prefix to const char *.
1792
1793 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1794
1795         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
1796
1797 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
1798
1799         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
1800         from a new MEM.
1801
1802         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
1803         a squeezable note.
1804         * rtl.h: Adjust.
1805         * ifcvt.c (dead_or_predicable): Adjust.
1806         * loop.c (find_and_verify_loops): Adjust.
1807         * stmt.c (expand_end_case): Adjust.
1808         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
1809         head and end insn pointers in the basic block, not just local copies.
1810         (merge_blocks_move_predecessor_nojumps): Likewise.
1811
1812 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
1813
1814         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
1815         bitmap.h, builtin-types.def, builtins.c, builtins.def,
1816         c-aux-info.c, c-common.c, c-common.def, c-common.h,
1817         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
1818         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
1819         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
1820         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
1821         conditions.h, config.gcc, configure.frag, configure.in,
1822         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
1823         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
1824         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
1825         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
1826         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
1827         emit-rtl.c, errors.c, errors.h, except.c, except.h,
1828         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
1829         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
1830         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
1831         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
1832         gencheck.c, gencodes.c, genconfig.c, genemit.c,
1833         genextract.c, genflags.c, gengenrtl.c, genmultilib,
1834         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
1835         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
1836         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
1837         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
1838         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
1839         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
1840         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
1841         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
1842         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
1843         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
1844         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
1845         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
1846         params.h, predict.c, predict.def, predict.h, prefix.c,
1847         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
1848         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
1849         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
1850         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
1851         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
1852         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
1853         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
1854         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
1855         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
1856         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
1857         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
1858         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
1859         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
1860         xcoffout.h: replace "GNU CC" with "GCC".
1861
1862 2001-08-21  Richard Henderson  <rth@redhat.com>
1863
1864         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
1865         (final_scan_insn): Consider jump tables data even if we have no
1866         independant text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
1867         ADDR_VEC_ALIGN.
1868         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
1869         (ASM_OUTPUT_CASE_END): Remove.
1870         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
1871         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
1872         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
1873
1874 2001-08-21  Richard Henderson  <rth@redhat.com>
1875
1876         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
1877         at barrier insns.  Emit stop bits before barriers.
1878
1879         * flow.c (flow_find_cross_jump): Don't consider unconditional
1880         return insns for commoning.
1881
1882         * final.c (compute_alignments): Fix typo.
1883
1884         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
1885         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
1886         (store_bit_field): Use mode_for_extraction more places.
1887         (extract_bit_field): Likewise.
1888
1889 2001-08-21  Zack Weinberg  <zackw@panix.com>
1890
1891         * caller-save.c: Don't include insn-codes.h.
1892         (reg_save_code, reg_restore_code): Make arrays of int.
1893         All uses updated to match.
1894         (insert_save, insert_restore): No need to initialize "code"
1895         variable upon declaration.
1896         * Makefile.in: update dependencies; fix typo in clean rule.
1897
1898 2001-08-21  Richard Henderson  <rth@redhat.com>
1899
1900         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
1901         (merge_if_block): Handle fallout from same.
1902
1903 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1904
1905         * builtins.c (type_to_class): Fix typo in last change.
1906
1907 2001-08-21  Richard Henderson  <rth@redhat.com>
1908
1909         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
1910         ia64_asm_output_label.
1911
1912         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
1913         copy of gp while the real gp register contains garbage.
1914
1915 2001-08-21  Zack Weinberg  <zackw@panix.com>
1916
1917         * expmed.c (mode_for_extraction): New function.
1918         (store_bit_field, extract_bit_field): Use it.
1919         * expr.h: Prototype it and provide an enum for its first argument.
1920
1921         * combine.c, function.c, recog.c: Don't include insn-codes.h.
1922         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
1923         and digging through the insn_data tables.
1924         * Makefile.in: Update dependencies.
1925
1926 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1927
1928         * cppfiles.c (stack_include_file): line-map.c now handles include
1929         depth.
1930         (handle_missing_handler): Similarly.
1931         (_cpp_execute_include): Similarly.
1932         (_cpp_pop_file_buffer): Similarly.
1933         * cpphash.h (struct cpp_reader): Remove system_include_depth,
1934         buffer_stack_depth and include_depth.
1935         * cpplib.c (do_include_common): line-map.c now handles include depth.
1936         (cpp_push_buffer): Similarly.
1937         (_cpp_pop_buffer): Similarly.
1938         * cppmacro.c (builtin_macro): Update.
1939         * line-map.c (init_line_maps): Set depth.
1940         (add_line_map): Increment "used" earlier.  Update and use the
1941         include depth.
1942         (trace_include): Use the include depth.
1943         * line-map.h (struct line_maps): New member depth.
1944
1945 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1946
1947         * cppfiles.c (stack_include_file): Don't handle -H here.
1948         * cppinit.c (cpp_start_read): Set include tracing after
1949         cpp_post_options and after stacking the main file.
1950         * line-map.c (trace_include): New.
1951         (init_line_maps, add_line_map): Update.
1952         * line-map.h (struct line_maps): New member trace_includes.
1953
1954 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1955
1956         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
1957         * cppfiles.c (stack_include_file): Only stack a file if there
1958         is something to do.  Return a boolean indicating whether a
1959         buffer was stacked or not.
1960         (_cpp_execute_include): Similarly.
1961         (_cpp_read_file): Similarly.
1962         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
1963
1964 2001-08-21  Sam Steingold  <sds@gnu.org>
1965
1966         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
1967         (RECACHE): keep obufp_before_macroname up to date
1968
1969 2001-08-21  Zack Weinberg  <zackw@panix.com>
1970
1971         * stmt.c: Don't include insn-codes.h.
1972         (expand_end_case): Machine specific logic moved to expr.c.
1973         No need to worry about __builtin_classify_type.
1974         (check_for_full_enumeration_handling, emit_case_nodes):
1975         Kill #if 0 blocks.
1976
1977         * builtins.o (expand_builtin_classify_type): Split up so code
1978         can be shared with fold_builtin_classify_type.
1979         (type_to_class, fold_builtin_classify_type): New functions.
1980         (fold_builtins): Handle __builtin_classify_type.
1981
1982         * expr.c (do_tablejump): Now static.
1983         (case_values_threshold, try_casesi, try_tablejump): New;
1984         code mostly from stmt.c (expand_end_case).
1985         (expr.h): Update prototypes.
1986
1987         * Makefile.in (stmt.o): Update dependencies.
1988
1989 2001-08-21  Will Cohen  <wcohen@redhat.com>
1990
1991         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
1992         declaration of variable i.
1993         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
1994         declaration of variable i.
1995
1996 2001-08-21  Richard Henderson  <rth@redhat.com>
1997
1998         * crtstuff.c: Fix thinko last change.  Move list tails to start
1999         of CRT_END section.  Tidy ifdefs.
2000         (__EH_FRAME_BEGIN__): Always static for ELF.
2001         (__do_global_ctors_1): Rename from __frame_dummy.
2002         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
2003         name change; don't hide __EH_FRAME_BEGIN__.
2004
2005 2001-08-21  Richard Henderson  <rth@redhat.com>
2006
2007         * gdbinit.in: Move break on exit after break on fancy_abort.
2008
2009         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
2010         sized types.
2011
2012 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2013
2014         * cpphash.h (_cpp_push_next_buffer): New.
2015         * cppinit.c (do_includes): Remove.
2016         (push_include, free_chain, _cpp_push_next_buffer): New.
2017         (cpp_start_read): Use them to rework command line option handling.
2018         (cpp_handle_option): Combine handling of -include and -imacros.
2019         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
2020         appropriate.  Always insert missing \n at EOF.
2021         * cpplib.c (start_directive): Get the directive position right.
2022         * cppmain.c (cb_file_change): Always print the first line, unless
2023         preprocessed.
2024
2025 2001-08-20  Andreas Jaeger  <aj@suse.de>
2026
2027         * profile.c (compute_branch_probabilities): Remove extra new-line
2028         in error message.
2029         * flow.c (verify_flow_info): Likewise.
2030
2031 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
2032
2033         * basic-block.h (basic_block): Add new field 'flags'.
2034         (BB_REACHABLE): Define.
2035         (expunge_block): Declare.
2036         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
2037         (EXIT_BLOCK_PTR): Ditto.
2038         (expunge_block): Remove static declaration.
2039         (cleanup_cfg): Clear bb->aux on every basic block.
2040         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
2041         computing reachability.
2042         (delete_unreachable_blocks): Delete block b if b->flags has
2043         BB_REACHABLE unset.
2044
2045 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
2046
2047         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
2048
2049 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2050
2051         * sparc.c (sparc_variable_issue): Fix typo in last change.
2052
2053 2001-08-20  Richard Henderson  <rth@redhat.com>
2054
2055         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
2056
2057 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2058
2059         * pa.h (RETURN_IN_MEMORY): Improve comment.
2060
2061 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
2062
2063         * doc/invoke.texi (Profiling options): Clarify the interactions
2064         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
2065
2066 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
2067
2068         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
2069         command.
2070
2071 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2072
2073         * gcc.c (make_relative_prefix): Allocate a sufficiently large
2074         buffer.
2075
2076 2001-08-20  Richard Henderson  <rth@redhat.com>
2077
2078         * final.c (end_final): Fix typo last change.
2079
2080 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2081
2082         * cppinit.c (init_standard_includes): The returned buffer
2083         is already malloc-ed.
2084         * gcc.c (add_prefix): Similarly.
2085         * prefix.c (translate_name): Update to support clear buffer
2086         ownership rules.
2087         (update_path): Similarly.  Be sure to free any newly allocated
2088         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
2089         (tr): New function.
2090         * prefix.h (update_path): Update prototype and document.
2091         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
2092         up and update to new buffer ownership rules.
2093         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
2094
2095 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
2096
2097         * final.c (compute_alignments): New function.
2098         (init_insn_lengths): Do not care label_align.
2099         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
2100         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
2101         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
2102         (shorted_branches): Realloc label_align array; do
2103         not call init_insn_lengths; Do not care about loop alignments.
2104         * output.h (compute_alignments): Declare.
2105         * toplev.c (rest_of_compilation): Call compute_alignments.
2106         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
2107
2108         * predict.c (block_info_def): Add npredecesors, remove nvisited;
2109         change visited to tovisit.
2110         (propagate_freq): Use faster traversing algorithm.
2111         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
2112         to tovisit; reverse meaning.
2113
2114         * predict.c (struct block_info_def): Remove nvisited.
2115         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
2116         (estimate_bb_frequencies): Call mark_dfs_back_edges.
2117
2118 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
2119
2120         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
2121         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
2122         (TARGET_FUSED_MADD): New.
2123         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
2124         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
2125         the multiply-add instructions.
2126
2127 2001-08-19  Richard Henderson  <rth@redhat.com>
2128
2129         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
2130         is aligned to pointer size.
2131
2132 2001-08-19  Richard Henderson  <rth@redhat.com>
2133
2134         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
2135         display markers during final schedule.
2136
2137 2001-08-19  Richard Henderson  <rth@redhat.com>
2138
2139         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
2140
2141 2001-08-19  Richard Henderson  <rth@redhat.com>
2142
2143         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
2144         in the same string.
2145         (ASM_NAME_TO_STRING): Remove.
2146         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
2147         in the same string.  Remove support for expressions.
2148
2149 2001-08-19  Richard Henderson  <rth@redhat.com>
2150
2151         * config/i386/i386.md (tablejump): Make an expander; handle
2152         pic relative addressing here.
2153         (tablejump_1): Rename from tablejump_pic.
2154         (casesi): Remove.
2155
2156 2001-08-19  Richard Henderson  <rth@redhat.com>
2157
2158         * regclass.c (fix_register): Fix typo.
2159
2160 2001-08-18  Richard Henderson  <rth@redhat.com>
2161
2162         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
2163         (struct _Unwind_Context): Expand br_loc to hold it.
2164         (uw_frame_state_for): Handle leaf functions better.
2165         (uw_update_reg_address): Update for br_loc change.
2166
2167 2001-08-18  Richard Henderson  <rth@redhat.com>
2168
2169         * crtstuff.c: Move list heads before code that uses them.
2170         (__JCR_LIST__): Remove initial null.
2171         (frame_dummy, __frame_dummy): Do java registration here ...
2172         (__do_global_ctors_aux): ... not here.
2173
2174         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
2175         (__do_global_dtors_aux): Update to match.
2176         (__JCR_LIST__, __do_jv_register_classes): New.
2177         (.init): Call it.
2178         * config/ia64/crtend.asm (__JCR_END__): New.
2179         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
2180         instead of an indirect LTOFF22 reloc.
2181
2182 2001-08-18  Richard Henderson  <rth@redhat.com>
2183
2184         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
2185         * regclass.c (init_reg_sets_1): Fix typo.
2186         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
2187         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
2188         (ia64_compute_frame_size): Make ar.unat live when in use.
2189         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
2190         for ar.pfs; remove ar.unat handling.
2191         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
2192         call-saved.
2193         (PREDICATE_CODES): Add ar_pfs_reg_operand.
2194         * config/ia64/ia64-protos.h: Update decls.
2195         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
2196         (sibcall_pic): Likewise.
2197
2198 2001-08-18  Richard Henderson  <rth@redhat.com>
2199
2200         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
2201         pred_rel_mutex when searching for insn_group_barrier.
2202         * config/ia64/ia64.md (cycle_display): Combine the expander
2203         and insn patterns.
2204
2205         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
2206         bit before asm as needed.
2207
2208 2001-08-18  Richard Henderson  <rth@redhat.com>
2209
2210         * timevar.def (TV_MACH_DEP): New.
2211         * toplev.c (rest_of_compilation): Use it.
2212         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
2213
2214 2001-08-18  Zack Weinberg  <zackw@panix.com>
2215
2216         * unwind-dw2.c (execute_stack_op): Add default aborts to
2217         the inner switches to prevent warnings.
2218
2219 2001-08-18  Richard Henderson  <rth@redhat.com>
2220
2221         * timevar.h (struct timevar_time_def): Change element type to float.
2222         (ticks_to_msec, clocks_to_msec): Likewise.
2223         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
2224         (get_time): Likewise.
2225         (timevar_print): Adjust zero check and printing to match.
2226
2227 2001-08-18  Zack Weinberg  <zackw@panix.com>
2228
2229         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
2230         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
2231         Eliminate overfull or underfull hboxes.
2232
2233 2001-08-18  Zack Weinberg  <zackw@panix.com>
2234
2235         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
2236
2237 2001-08-18  Zack Weinberg  <zackw@panix.com>
2238
2239         * haifa-sched.c: Convert to target hooks.  Macros replaced
2240         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
2241         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
2242         MD_SCHED_FINISH, and HAVE_cycle_display.
2243         * target-def.h (TARGET_SCHED_ADJUST_COST,
2244         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
2245         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
2246         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
2247         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
2248         New hook #defines to be overridden.
2249         (TARGET_SCHED): Bring them all together.
2250         (TARGET_INITIALIZER): Update.
2251         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
2252         instead of 'struct rtx_def *' throughout.
2253         (struct sched): New set of hooks for the scheduler.
2254         * Makefile.in (haifa-sched.o): Depend on target.h.
2255         * doc/tm.texi: Document the new scheduler hooks, together in
2256         their own section, instead of scattered around.
2257         Fix a bunch of underfull/overfull hboxes.
2258
2259         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
2260         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
2261         sparc.h: Don't define any of the old scheduler macros.
2262
2263         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
2264         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
2265         sparc.c: Create hook functions from code extracted from
2266         corresponding target header, or make existing hooks static, as
2267         appropriate.  Set the appropriate entries in targetm.
2268
2269         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
2270         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
2271         rs6000-protos.h, s390-protos.h, sparc-protos.h:
2272         Remove prototypes for functions which are now static.
2273
2274         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
2275         related gunk; the Haifa scheduler is now the only choice.
2276
2277 2001-08-18  Zack Weinberg  <zackw@panix.com>
2278
2279         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
2280         * genopinit.c: Put floating point divide insns in sdiv_optab.
2281         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
2282         * config/gofast.h, config/c4x/c4x.h,
2283         config/ia64/hpux_longdouble.h, config/mips/mips.h,
2284         config/pa/long_double.h, config/rs6000/sysv4.h,
2285         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
2286         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
2287         (init_optabs): Use init_optabv for overflow-trapping optabs.
2288         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
2289         cmp_optab RTX codes so have_insn_for can find them.
2290
2291         * optabs.c (expand_simple_binop, expand_simple_unop,
2292         have_insn_for, gen_sub3_insn): New interfaces.
2293         * expr.h: Prototype new functions.
2294         (enum optab_methods): Move here from optabs.h.
2295
2296         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
2297         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
2298         Use new functions instead of working directly with optabs.
2299         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
2300         unroll.c: Don't include optabs.h.
2301         * caller-save.c, combine.c, function.c, stmt.c: Just include
2302         insn-codes.h, not optabs.h.
2303         * Makefile.in: Update dependencies.
2304
2305         * combine.c (make_compound_operation, simplify_comparison):
2306         Fix typos testing for this or that instruction.
2307
2308 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
2309
2310         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
2311         generating libgcc.a.
2312
2313 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2314
2315         * except.c (TYPE_HASH): Delete.
2316
2317         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
2318         HOST_WIDE_INT.
2319
2320         * tree.c (TYPE_HASH): Delete.
2321
2322         * tree.h (TYPE_HASH): Define.
2323
2324 2001-08-18  Graham Stott  <grahams@redhat.com>
2325
2326         * config/mips/mips.md (adddi3_internal_2+1): Remove contraints from
2327         define_split.
2328         (adddi3_internal_2+2): Likewise.
2329         (eh_set_lr_di+1): Likewise.
2330
2331 2001-08-17  Richard Henderson  <rth@redhat.com>
2332
2333         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2334         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
2335         * dwarf2asm.c: ... here.
2336         * dwarfout.c: Remove them.
2337
2338         * varasm.c (assemble_integer): Add align parameter.
2339         (assemble_real, output_constant, output_constructor): Likewise.
2340         * output.h: Update decls.
2341         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
2342         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
2343         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
2344         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
2345         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
2346         Update all callers.
2347
2348         * final.c (end_final): Abort profile block generation if we
2349         havn't layed it out properly.
2350         * output.h (assemble_eh_integer): Remove stale decl.
2351         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
2352         (min_align): New.
2353         (assemble_integer): Handle unaligned data.
2354         (assemble_real): Abort on unaligned data.
2355         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
2356         anything useful.
2357         (default_dtor_section_asm_out_destructor): Use assemble_align.
2358         (default_named_section_asm_out_constructor): Likewise.
2359         (default_ctor_section_asm_out_constructor): Likewise.
2360         * config/darwin.c (machopic_asm_out_constructor): Likewise.
2361         (machopic_asm_out_destructor): Likewise.
2362         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
2363         (nextstep_asm_out_destructor): Likewise.
2364         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
2365         (vms_asm_out_destructor): Likewise.
2366
2367 2001-08-17  Richard Henderson  <rth@redhat.com>
2368
2369         * config/mips/iris6.h (TARGET_IRIX6): New.
2370         (current_section_name, current_section_flags): New.
2371         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
2372         (MAX_OFILE_ALIGNMENT): New.
2373         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
2374         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
2375         (copy_file_data): Split out from
2376         (mips_asm_file_end): ... here.
2377         (mips_asm_file_start): Remove extra .section directive.  Use
2378         tmpfile instead of mips_make_temp_file.
2379         (mips_unique_section): Use const char * as needed for warnings.
2380         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
2381         re-add align parameter.
2382         (iris6_asm_named_section): New.
2383         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
2384         (iris6_asm_output_align, iris6_section_align_1): New.
2385         (iris6_asm_file_start, iris6_asm_file_end): New.
2386         * config/mips/mips-protos.h: Update decls.
2387
2388 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
2389
2390         * doc/install.texi (Install GCC): Add links to build status pages.
2391         (Specific): Ditto.
2392         (Final install): Ditto; request updates for specific info
2393
2394 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2395
2396         * cpperror.c (print_location):  Don't take a file name; use the
2397         line map instead.
2398         (_cpp_begin_message): Similarly.
2399         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
2400         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
2401         (cpp_pedwarn_with_file_and_line): Remove.
2402         * cppfiles.c (stack_include_file): Update; set filename to stdin
2403         here when appropriate.
2404         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
2405         (_cpp_begin_message): Don't take a file name.
2406         * cppinit.c: Add comment.
2407         * cpplex.c: Fix end-of-directive indicator.
2408         * cpplib.c: Don't include intl.h.
2409         (run_directive, do_diagnostic): Update.
2410         (do_line): Update to not use nominal_fname.
2411         (cpp_push_buffer): Don't take a filename.
2412         * cpplib.h (struct ht): Remove.
2413         (cpp_push_buffer): Don't take a filename.
2414         (cpp_pedwarn_with_file_and_line): Remove.
2415         * cppmacro.c (struct cpp_macro): Remove file.
2416         (builtin_macro): Update.
2417         (_cpp_create_definition): Update.
2418         * cppmain.c: Correct comment.
2419         * fix-header.c (read_scan_file): Update.
2420
2421 2001-08-17  Kazu Hirata  <kazu@hxi.com>
2422
2423         * sbitmap.c: Fix comment formatting.
2424         * sched-deps.c: Likewise.
2425         * sibcall.c: Likewise.
2426         * simplify-rtx.c: Likewise.
2427         * ssa.c: Likewise.
2428         * ssa-ccp.c: Likewise.
2429         * stor-layout.c: Likewise.
2430         * timevar.c: Likewise.
2431         * toplev.c: Likewise.
2432         * unwind-dw2.c: Likewise.
2433         * unwind-dw2-fde.c: Likewise.
2434         * varasm.c: Likewise.
2435
2436 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2437
2438         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
2439         or larger than an integer in memory.
2440
2441 2001-08-17  Zack Weinberg  <zackw@panix.com>
2442
2443         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
2444         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
2445         * rtl.h: Don't forward-declare union tree_node here.  Don't
2446         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
2447         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
2448         and tree respectively.
2449         * tree.h: Don't forward-declare struct rtx_def here.  Don't
2450         typedef tree here.  Change all uses of struct rtx_def *,
2451         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
2452         and tree respectively.
2453
2454 2001-08-17  Richard Henderson  <rth@redhat.com>
2455
2456         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
2457         config/mips/openbsd.h: Fix typos last change.
2458
2459 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2460
2461         * doc/invoke.texi (Optimize Options): The default for
2462         -finline-limit is 600.
2463
2464 2001-08-17  Richard Henderson  <rth@redhat.com>
2465
2466         * varasm.c (text_section): Allow TEXT_SECTION to override the
2467         printing of TEXT_SECTION_ASM_OP.
2468         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
2469         (DATA_SECTION, BSS_SECTION): Remove.
2470         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
2471         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
2472         Rename from s/_NAME//.
2473         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
2474         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
2475         (TEXT_SECTION): ... here.  New.
2476         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
2477         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
2478         * config/mips/openbsd.h: Likewise.
2479         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
2480         (mips_asm_file_end): Likewise test.
2481         (mips_output_function_epilogue): Likewise.  Switch back to data
2482         section after emitting the function.
2483
2484         * doc/tm.texi (Sections): Document TEXT_SECTION.
2485
2486 2001-08-17  Richard Henderson  <rth@redhat.com>
2487
2488         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
2489         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
2490
2491 2001-08-17  Richard Henderson  <rth@redhat.com>
2492
2493         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
2494         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
2495         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
2496         Add aligned attribute.
2497
2498 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
2499
2500         * config/sh/sh.md: Add modes to unspecs in first insn to match
2501         those in the second.
2502
2503         * Makefile.in: Fix collect2 copy for Cygwin.
2504
2505 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
2506
2507         Install the proper patch.
2508         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
2509         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
2510         (expand_function_start): Likewise.
2511         * stmt.c (expand_decl): Likewise.
2512         * varasm.c (make_decl_rtx): Likewise.
2513
2514 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
2515
2516         * final.c: Undo my previous accidental checkin.
2517         * output.h: Likewise.
2518         * tm.texi: Likewise.
2519
2520 2001-08-16  Richard Henderson  <rth@redhat.com>
2521
2522         * varasm.c (named_section_flags): Remove align parameter.
2523         * varasm.c, dwarf2out.c: Update all callers.
2524         * output.h: Update prototypes.
2525
2526         * target.h (target.asm_out.named_section): Remove align parameter.
2527         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
2528         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
2529         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
2530         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
2531         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
2532
2533         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
2534         (get_named_section_flags, set_named_section_flags): New.
2535         (named_section_flags): Use them.
2536         (named_section): Do decl vs section flags check here...
2537         (default_section_type_flags): ... not here.
2538         (init_varasm_once): Create in_named_htab.
2539         (resolve_unique_section): Mark reloc unused.
2540
2541 2001-08-16  Richard Henderson  <rth@redhat.com>
2542
2543         * varasm.c (force_const_mem): Keep pool alignment in bits.
2544         (output_constant_pool): Use assemble_align.
2545
2546 2001-08-16  Zack Weinberg  <zackw@panix.com>
2547
2548         * doc/tm.texi: Remove extra @table command.
2549
2550 2001-08-16  Zack Weinberg  <zackw@panix.com>
2551
2552         * final.c (shorten_branches): Clear the end of the label_align
2553         array only if we made it larger.  Break up messy expressions
2554         for clarity.
2555
2556         * diagnostic.c (internal_error): Check for error recursion
2557         before doing ICE suppression.
2558
2559         * timevar.c: Timing variables now count in milliseconds.
2560         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
2561         (get_time): Not here.
2562         (timevar_print): Don't print any timer whose user, cpu, and
2563         wall times are all zero as displayed.
2564         * timevar.h: Update comment aboout units.  Make timevar
2565         counters unsigned.
2566
2567 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
2568
2569         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
2570         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
2571         (expand_function_start): Likewise.
2572         * stmt.c (expand_decl): Likewise.
2573         * varasm.c (make_decl_rtx): Likewise.
2574
2575 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
2576
2577         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
2578         (finalize_record_size): Don't set TYPE_USER_ALIGN.
2579
2580 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2581
2582         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
2583         variables.
2584
2585 2001-08-16  Andreas Jaeger  <aj@suse.de>
2586
2587         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
2588         prototype.
2589
2590 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
2591
2592         * rtl.h (only_sets_cc0_p): New prototype.
2593         * jump.c (sets_cc0_p): Handle INSN.
2594         (only_sets_cc0_p): New function.
2595         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
2596         (tidy_fallthru_edge): Likewise.
2597         * integrate.c (copy_insn_list): Likewise.
2598         * unroll.c (unroll_loop): Likewise.
2599         (copy_loop_body): Likewise.
2600
2601 2001-08-15  Jason Eckhardt  <jle@redhat.com>
2602
2603         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
2604
2605 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
2606
2607         * predict.c (struct block_info_def): Remove nvisited.
2608         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
2609         (estimate_bb_frequencies): Call mark_dfs_back_edges.
2610
2611         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
2612         (ix86_adjust_cost): Teach scheduler that latency to load operand can
2613         be masked.
2614
2615 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
2616
2617         * predict.def: Update hitrates.
2618
2619 2001-08-15  Richard Henderson  <rth@redhat.com>
2620
2621         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
2622
2623 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
2624
2625         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
2626         note from its associated jump.
2627
2628 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
2629
2630         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
2631         also on 64-bit s390x targets.
2632
2633 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
2634
2635         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
2636         function.
2637         (arm_expand_prologue): Handled nested functions which take a
2638         variable argument list.
2639         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
2640         macro with an invocation of
2641         arm_compute_initial_elimination_offset.
2642         * config/arm/arm-protos.h: Prototype
2643         arm_compute_initial_elimination_offset.
2644
2645 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2646
2647         * doc/install.texi (Specific, avr): Fix markup.
2648         (Specific, c4x): Ditto.
2649
2650 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2651
2652         * predict.c (dump_prediction): Change `bool' parameter to `int'.
2653
2654 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
2655
2656         * Makefile.in (OBJS): Add rtl-error.o
2657         (rtl-error.o): New rule.
2658         (diagnostic.o): Adjust dependency.
2659         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
2660         error_for_asm, _fatal_insn, _fatal_insn_not_found,
2661         warning_for_asm): Move to...
2662         rtl-error.c: ...here.  New file.
2663
2664 2001-08-14  Richard Henderson  <rth@redhat.com>
2665
2666         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
2667         if USING_SJLJ_EXCEPTIONS.
2668
2669 2001-08-14  Steve Ellcey <sje@cup.hp.com>
2670
2671         * tlink.c (scan_linker_output): Check string for unsatisfied in
2672         addition to undefined and unresolved.
2673
2674 2001-08-14  Graham Stott  <grahams@redhat.com>
2675
2676         * libgcc2.c (*): Replace EH_FRAME_SECTION with
2677         EH_FRAME_SECTION_NAME.
2678
2679 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
2680
2681         * genattrtab.c (simplify_test_exp_in_temp): New function.
2682         (simplify_test_exp): Avoid explicit use of temporary obstack.
2683         (simplify_cond, insert_right_side, evaluate_eq_attr,
2684         simplify_and_tree, simplify_or_tree, eliminate_known_true):
2685         Use simplify_test_exp_in_temp.
2686         (optimize_attrs): Iterate until expression stabilizes.
2687
2688 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
2689
2690         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
2691         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
2692
2693 2001-08-13  Richard Henderson  <rth@redhat.com>
2694
2695         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
2696         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
2697         * config/arm/conix-elf.h: Likewise.
2698
2699 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
2700
2701         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
2702         in gcc.c.
2703         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
2704
2705         * gcse.c (hash_scan_set): Expressions that are set as part of
2706         jump instructions are not available.
2707
2708 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
2709
2710         * config/s390/s390.c (print_operand, s390_function_prologue,
2711         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
2712
2713 2001-08-13  Richard Henderson  <rth@redhat.com>
2714
2715         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
2716         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
2717         * doc/tm.texi (Exception Region Output): Document it.
2718
2719 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
2720
2721         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
2722         DWARF2 instead of stabs by default.
2723
2724 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
2725
2726         * config/rs6000/rs6000.c: Include optabs.h.
2727
2728 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
2729
2730         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
2731         save/restore routines.
2732         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
2733
2734 2001-08-13  Andreas Jaeger  <aj@suse.de>
2735
2736         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
2737         the english is correct.
2738
2739 2001-08-13  Zack Weinberg  <zackw@panix.com>
2740
2741         * expr.h: Split out optab- and libfunc-related code to...
2742         * optabs.h, libfuncs.h: ... these new headers.
2743
2744         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
2745         (OPTABS_H): New.
2746         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
2747         dependencies.
2748         * mkconfig.sh: Don't include insn-codes.h from config.h.
2749
2750         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
2751         enum insn_code is available.  Move reload_in_optab and
2752         reload_out_optab array declarations to optabs.h.
2753         * regmove.c (gen_add3_insn): Move to optabs.c, export from
2754         there, prototype in expr.h.
2755         * gencodes.c: Cleanup: zap global variables, don't use
2756         printf where puts will do, don't bother defining MAX_INSN_CODE
2757         which nothing uses, let CODE_FOR_nothing get its value implicitly.
2758
2759         * genemit.c, genopinit.c: Include optabs.h in generated file.
2760         * genoutput.c: Include insn-codes.h in generated file.
2761         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
2762         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
2763         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
2764         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
2765         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
2766         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
2767         Include optabs.h.
2768         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
2769         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
2770         config/m88k/m88k.c, config/sparc/sparc.c:
2771         Include libfuncs.h.
2772         * reload.c: Include expr.h and optabs.h before reload.h.
2773         * config/alpha/alpha.c: Include tree.h before reload.h.
2774         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
2775         and reload.h in that order.
2776         * config/sparc/sparc.c: Include debug.h.
2777         * recog.c: Include insn-codes.h.
2778
2779 2001-08-13  Andreas Jaeger  <aj@suse.de>
2780
2781         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
2782         s390*linux.
2783
2784 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2785
2786         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
2787         * gcc.c (init_spec): Fix typo in comment.
2788         * varasm.c (data_section): Fix typo in comment.
2789
2790 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
2791
2792         * predict.c (dump_prediction): New argument "USED".
2793         (combine_predictions_for_insn): Determine the used heuristics,
2794         output the case no heuristic applied.
2795         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
2796
2797 2001-08-13  Andreas Jaeger  <aj@suse.de>
2798
2799         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
2800         register %rip.
2801
2802 2001-08-13  Kazu Hirata  <kazu@hxi.com>
2803
2804         * jump.c: Fix formatting.
2805
2806 2001-08-13  Kazu Hirata  <kazu@hxi.com>
2807
2808         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
2809         length.
2810
2811 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
2812
2813         * loop.c (check_dbra_loop): Use condjump_label to compute
2814         jump_label.
2815
2816         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
2817         to better document the files they're in.
2818
2819 2001-08-12  Zack Weinberg  <zackw@panix.com>
2820
2821         * recog.h (struct insn_operand_data): Shrink 'mode' field
2822         to 16 bits.
2823
2824 2001-08-12  Kazu Hirata  <kazu@hxi.com>
2825
2826         * gcc.c: Fix comment formatting.
2827         * gccspec.c: Likewise.
2828         * gcov.c: Likewise.
2829         * gcse.c: Likewise.
2830         * genemit.c: Likewise.
2831         * gengenrtl.c: Likewise.
2832         * genrecog.c: Likewise.
2833         * gensupport.c: Likewise.
2834         * ggc-page.c: Likewise.
2835         * global.c: Likewise.
2836         * graph.c: Likewise.
2837         * ifcvt.c: Likewise.
2838         * integrate.c: Likewise.
2839         * lcm.c: Likewise.
2840         * libgcc2.c: Likewise.
2841         * loop.c: Likewise.
2842         * mbchar.c: Likewise.
2843         * optabs.c: Likewise.
2844         * predict.c: Likewise.
2845         * prefix.c: Likewise.
2846         * profile.c: Likewise.
2847         * protoize.c: Likewise.
2848         * real.c: Likewise.
2849         * recog.c: Likewise.
2850         * regclass.c: Likewise.
2851         * regmove.c: Likewise.
2852         * reg-stack.c: Likewise.
2853         * reload1.c: Likewise.
2854         * resource.c: Likewise.
2855         * rtlanal.c: Likewise.
2856         * rtl.c: Likewise.
2857
2858 2001-08-12  Kazu Hirata  <kazu@hxi.com>
2859
2860         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
2861         a tree representing a constant is passed to the macro.
2862
2863 2001-08-12  Richard Henderson  <rth@redhat.com>
2864
2865         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
2866         (rs6000_elf_asm_out_destructor): New.
2867         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
2868         (DTORS_SECTION_ASM_OP): Remove.
2869         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2870         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
2871
2872 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
2873
2874         Revert:
2875         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2876         * gcc.c (set_collect_gcc_options): New function, split out from
2877         main.
2878         Ignore elided switches.
2879         (do_spec_1): Invoke before executing command.
2880         (set_input): Export.
2881         Move declaration ...
2882         * gcc.h (set_input): ... here.
2883         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
2884         file.
2885
2886 2001-08-12  Richard Henderson  <rth@redhat.com>
2887
2888         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
2889         thinko wrt TARGET_RELOCATABLE.
2890
2891 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
2892
2893         * fix-header.c (cb_file_change): Update prototype.
2894
2895 2001-08-11  Zack Weinberg  <zackw@panix.com>
2896
2897         * toplev.c (set_float_handler): Make static.
2898         * toplev.h: Don't prototype set_float_handler.
2899
2900         * simplify-rtx.c: Don't include setjmp.h.
2901         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
2902         New functions.
2903         (simplify_unary_operation, simplify_binary_operation): Use them,
2904         via do_float_handler.
2905
2906         * fold-const.c: Don't include setjmp.h.
2907         (exact_real_inverse_1): New function.
2908         (exact_real_inverse): Use it, via do_float_handler.
2909
2910         * varasm.c: Don't include setjmp.h.
2911         (assemble_real_1): New function.
2912         (assemble_real): Use it, via do_float_handler.
2913         Call internal_error if we get a trap here.
2914
2915         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
2916         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
2917
2918 2001-08-11  Zack Weinberg  <zackw@panix.com>
2919
2920         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
2921         STACK_BOUNDARY if not already defined.
2922
2923         * calls.c, function.c, reload1.c, explow.c: Don't default
2924         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
2925         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
2926
2927         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
2928         to run-time test.
2929
2930         * doc/tm.texi: Document that STACK_BOUNDARY is required;
2931         clarify difference between it and PREFERRED_STACK_BOUNDARY.
2932
2933 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2934
2935         * cppmacro.c (enter_macro_context): Push macro expansions even
2936         if empty.
2937
2938 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2939
2940         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
2941         (rs6000_elf_section_type_flags): Actually return a value.
2942
2943 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
2944
2945         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
2946         Clean up code: add missing comments and prototypes, fix warnings,
2947         remove obsolete code, fix spacing to conform to coding style.
2948
2949 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
2950
2951         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
2952         and TARGET_ASM_CLOSE_PAREN.
2953         (regclass_map): CC register belongs to class NO_REGS.
2954         (legitimize_pic_address): Don't generate unnecessary moves
2955         (to avoid confusing loop optimization).
2956         (check_and_change_labels): Replace jump_long by indirect_jump.
2957         (s390_final_chunkify): Don't start a new literal pool on section
2958         switch in 64-bit code.
2959         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
2960
2961         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
2962         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
2963         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
2964         modes correctly.
2965         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
2966         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
2967         (CONST_COSTS): Fixed incorrect costs.
2968
2969         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
2970         Use emit_jump instead of emit_jump_insn (gen_jump).
2971         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
2972         (to avoid confusing flow analysis).
2973         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
2974         (casesi, casesi_jump): New.
2975         (jump_long): Removed.  Functionality merged into indirect_jump.
2976         (indirect_jump): Accept address_operand, not just register_operand.
2977         (cjump_long, icjump_long): Use same logic as indirect_jump.
2978         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
2979         Fixed broken setjmp/longjmp handling.
2980         (do_builtin_setjmp_setup): Removed.
2981
2982         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
2983         broken GNU as versions that don't accept .quad with large
2984         negative values.  Use hexadecimal output instead.
2985         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
2986         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
2987         FUNCTION_EPILOGUE): Removed.  Now in targetm.
2988
2989         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
2990
2991         * config/s390/fixdfdi.h: Add missing copyright statement.
2992         Fix type conflicts on 64-bit.  Add missing SFmode routines.
2993
2994         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
2995         email address.
2996
2997 2001-08-11  Richard Henderson  <rth@redhat.com>
2998
2999         * rtl.h (REG_EH_RETHROW): Remove.
3000         * rtl.c (reg_note_name): Update.
3001         * combine.c (distribute_notes): Don't check for it.
3002
3003 2001-08-11  Richard Henderson  <rth@redhat.com>
3004
3005         * combine.c (distribute_notes): Place REG_SETJMP.
3006
3007 2001-08-11  Richard Henderson  <rth@redhat.com>
3008
3009         * doc/extend.texi (Arrays and pointers implementation): Discourage
3010         relying on sign-extension of pointers.
3011
3012 2001-08-11  H.J. Lu <hjl@gnu.org>
3013
3014         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
3015         in_dtors.
3016         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
3017         RDATA_SECTION_ASM_OP.
3018
3019 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3020
3021         * doc/install.texi (Specific, c4x): Fix cross-reference to the
3022         main manual to work both for info and HTML versions.
3023
3024 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3025             Matt Kraai <kraai@alumni.carnegiemellon.edu>
3026
3027         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
3028         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
3029         (struct cpp_pool): New member first.
3030         * cppinit.c (append_include_chain): Plug memory leaks.
3031         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
3032         Allocate pragma structures from the (aligned) macro pool to
3033         avoid leaking memory.
3034         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
3035         so we don't leak memory.
3036         * hashtable.c (ht_destroy): New.
3037         * hashtable.h (ht_destroy): New.
3038
3039 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3040             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3041
3042         * c-lex.c (map): Make const.
3043         (cb_file_change): Update for callback passing a line map.
3044         Don't assume we have a previous map.  Remove sanity check
3045         about popping too many files.
3046         * cpperror.c (print_location): Make map const.
3047         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
3048         (cpp_make_system_header): Similarly.
3049         (search_from): Similarly.
3050         (_cpp_execute_include): Don't remember where we came from.
3051         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
3052         (struct cpp_reader): Make map const.
3053         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
3054         * cpplib.c (do_line): Update; line maps now hold sysp.
3055         (cpp_push_buffer): Similarly.
3056         (_cpp_do_file_change): Similarly; callback with map instead.
3057         (cpp_get_line_maps): Constify return value.
3058         (_cpp_pop_buffer): Update.
3059         * cpplib.h (struct cpp_file_change): Remove.
3060         (struct cpp_callbacks): Update.
3061         (cpp_get_line_maps): Constify return value.
3062         * cppmacro.c (_cpp_create_definition): Update.
3063         * cppmain.c (struct printer): Constify map.
3064         (maybe_print_line): Similarly.
3065         (print_line): Similarly.  Deduce flags 1 and 2 here.
3066         (cb_file_change): Update.
3067         * line-map.c (free_line_maps): Warn regardless.
3068         (add_line_map): Return pointer to const.  When passed NULL to_file
3069         with LC_LEAVE, use the obvious values for the return point so the
3070         caller doesn't have to figure them out.
3071         (lookup_line): Return pointer to const.
3072         (print_containing_files): Take pointer to const.
3073         * line-map.h (struct line_map): New members reason, sysp.
3074         (add_line_map): Return pointer to const.
3075         (lookup_line): Similarly.
3076         (print_containing_files): Take pointer to const.
3077
3078 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
3079             Richard Henderson  <rth@redhat.com>
3080
3081         * regmove.c (regmove_optimize): Avoid setting a register twice in
3082         a parallel set.
3083
3084 2001-08-10  Richard Henderson  <rth@redhat.com>
3085
3086         * doc/extend.texi (Arrays and pointers implementation): Document
3087         behavior of pointer/integer conversion.
3088
3089 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
3090
3091         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
3092
3093 2001-08-10  Richard Henderson  <rth@redhat.com>
3094
3095         * doc/extend.texi (C Implementation): New chapter.
3096         * doc/gcc.texi (Top): Link it in.
3097
3098 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
3099
3100         * doc/install.texi (Specific): Fix CVS merge botch.
3101
3102 2001-08-10  Richard Henderson  <rth@redhat.com>
3103
3104         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
3105         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
3106
3107 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
3108
3109         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
3110         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
3111         this macro is now required.
3112
3113         * cselib.c (cselib_process_insn), flow.c (propagate_block),
3114         loop.c (find_and_verify_loops), reload.c (reload): Check
3115         for rtx code of CALL_INSN, not CALL, when deciding if we
3116         need to check for REG_SETJMP note.
3117
3118         * gcse.c (compute_hash_table, compute_store_table): Update
3119         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
3120         logic.
3121
3122         * config/avr/avr.c: Fix typo.
3123         * config/convex/convex.c (expand_movstr): Use adjust_address.
3124         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
3125         variable.
3126         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
3127         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
3128         Fix typo.
3129         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
3130         Do define STACK_BOUNDARY.
3131         * config/i370/i370.c: Include expr.h.
3132         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
3133         config/pa/som.h, config/v850/v850.h: Take in_ctors and
3134         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
3135         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
3136         * config/m88k/m88k.c: Include c-tree.h after expr.h.
3137         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
3138         * config/romp/romp.c: Include expr.h after tree.h.
3139         Include toplev.h.
3140         (output_fpop): Use xmalloc, not oballoc.
3141         * config/we32k/we32k.c: Include expr.h.
3142
3143 2001-08-10  Kazu Hirata  <kazu@hxi.com>
3144
3145         * config/h8300/h8300.h: Fix formatting.
3146
3147 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
3148
3149         * c-common.h (RETURN_NULLIFIED_P): Lose.
3150         * c-semantics.c (genrtl_return_stmt): Don't check it.
3151
3152 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
3153
3154         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
3155         (mips_annotate_frame_insn): New function.
3156         (mips_emit_frame_related_store): New function.
3157         (save_restore_insns): Don't mark instructions that set up the base
3158         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
3159         the store instructions instead.
3160         (mips_expand_prologue): If the stack size is moved into a temporary
3161         register, do not mark that move as frame-related.  Add a
3162         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
3163
3164 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
3165
3166         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
3167         stack slot as unchanging if current_function_calls_eh_return.
3168
3169 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
3170
3171         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
3172         access the second half of the TFmode scratch operand.
3173
3174 2001-08-10  Anthony Green  <green@redhat.com>
3175
3176         * java/class.c (emit_register_classes): Conditionalize code on
3177         JCR_SECTION_NAME.
3178
3179 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3180
3181         * doc/install.texi (Specific, avr): Fix cross-reference to the
3182         main manual to work both for info and HTML versions.
3183
3184 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3185
3186         * stmt.c (expand_null_return_1): Remove code to generate simple returns
3187         and "use_goto" argument.
3188         (expand_null_return, expand_value_return): Update all callers.
3189         * function.c (expand_function_end): Remove code to generate simple
3190         return.
3191         * config/vax/vax.md (epilogue): New expander for function return.
3192         * doc/md.texi (epilogue): Remove "if defined".
3193
3194 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
3195
3196         * Makefile.in: Partially revert my previous change:
3197         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
3198         of the hashtab.o and safe-ctype.o rules.
3199
3200 2001-08-09  Richard Henderson  <rth@redhat.com>
3201
3202         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
3203         (USE_COLLECT2): Remove duplicate definition.
3204         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
3205         (use_collect2): Remove dead code.
3206         * configure.in (use_collect2): Remove will_use_collect2 and
3207         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
3208         * configure: Rebuild.
3209
3210         * target.h (targetm.asm_out.constructor): New.
3211         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
3212         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
3213         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
3214         * varasm.c (in_ctors, in_dtors): New.
3215         (assemble_constructor, assemble_destructor): Remove.
3216         (default_stabs_asm_out_destructor): New.
3217         (default_named_section_asm_out_destructor): New.
3218         (dtors_section, default_dtor_section_asm_out_destructor): New.
3219         (default_stabs_asm_out_constructor): New.
3220         (default_named_section_asm_out_constructor): New.
3221         (ctors_section, default_ctor_section_asm_out_constructor): New.
3222         * output.h: Update declarations.
3223         * c-decl.c (c_expand_body): Use target hooks instead of
3224         assemble_constructor and assemble_destructor.
3225         * profile.c (output_func_start_profiler): Likewise.
3226         * objc/objc-act.c (finish_objc): Likewise.
3227         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
3228         for the constructor.
3229         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
3230
3231         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
3232         (DTORS_SECTION_ASM_OP): Likewise.
3233         (__CTOR_LIST__): Use attribute section when possible.
3234         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
3235
3236         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
3237         ASM_OUTPUT_CONSTRUCTOR.
3238
3239         * config/darwin.c (machopic_asm_out_constructor): New.
3240         (machopic_asm_out_destructor): New.
3241         * config/darwin-protos.h: Update declarations.
3242         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3243         (ASM_OUTPUT_DESTRUCTOR): Remove.
3244         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
3245         * config/nextstep.c (nextstep_asm_out_constructor): New.
3246         (nextstep_asm_out_destructor): New.
3247         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3248         (ASM_OUTPUT_DESTRUCTOR): Remove.
3249         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
3250         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
3251         ASM_OUTPUT_*STRUCTOR.
3252         * config/i386/aix386ng.h: Likewise.
3253
3254         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
3255         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
3256         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
3257         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
3258         * config/lynx.h: Likewise.
3259         * config/netware.h: Likewise.
3260         * config/psos.h: Likewise.
3261         * config/alpha/alpha-interix.h: Likewise.
3262         * config/alpha/elf.h: Likewise.
3263         * config/arc/arc.h: Likewise.
3264         * config/arm/aof.h: Likewise.
3265         * config/arm/coff.h: Likewise.
3266         * config/arm/elf.h: Likewise.
3267         * config/c4x/c4x.h: Likewise.
3268         * config/h8300/h8300.h: Likewise.
3269         * config/i386/cygwin.h: Likewise.
3270         * config/i386/djgpp.h: Likewise.
3271         * config/i386/i386-coff.h: Likewise.
3272         * config/i386/i386-interix.h: Likewise.
3273         * config/i386/sco5.h: Likewise.
3274         * config/i386/vsta.h: Likewise.
3275         * config/i386/win32.h: Likewise.
3276         * config/i960/i960-coff.h: Likewise.
3277         * config/ia64/sysv4.h: Likewise.
3278         * config/m68hc11/m68hc11.h: Likewise.
3279         * config/m68k/coff.h: Likewise.
3280         * config/m68k/mot3300.h: Likewise.
3281         * config/m88k/m88k.h: Likewise.
3282         * config/mcore/mcore-pe.h: Likewise.
3283         * config/mcore/mcore.h: Likewise.
3284         * config/mips/elf.h: Likewise.
3285         * config/mips/elf64.h: Likewise.
3286         * config/mips/iris6.h: Likewise.
3287         * config/pa/pa64-hpux.h: Likewise.
3288         * config/rs6000/sysv4.h: Likewise.
3289         * config/sh/sh.h: Likewise.
3290         * config/sparc/litecoff.h: Likewise.
3291
3292         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
3293         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
3294         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
3295         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3296         (ASM_OUTPUT_DESTRUCTOR): Remove.
3297         * config/a29k/a29k.c: Move include of tree.h.
3298         * config/a29k/udi.h: Delete file.
3299         * config/alpha/alpha.c (vms_asm_out_constructor): New.
3300         (vms_asm_out_destructor): New.
3301         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
3302         (EXTRA_SECTION_FUNCTIONS): Likewise.
3303         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
3304         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
3305         * config/c4x/c4x.c: Move include of tree.h.
3306         * config/clipper/clipper.c (clix_asm_out_constructor): New.
3307         (clix_asm_out_destructor): New.
3308         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3309         (ASM_OUTPUT_DESTRUCTOR): Remove.
3310         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
3311         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3312         (TARGET_ASM_CONSTRUCTOR): New.
3313         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
3314         (sco_asm_out_constructor): New.
3315         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
3316         * config/i386/svr3gas.h: Remove stack grows up code.
3317         Remove code duplicated from i386/sysv3.h.
3318         (TARGET_ASM_CONSTRUCTOR): New.
3319         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
3320         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
3321         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3322         (TARGET_ASM_CONSTRUCTOR): New.
3323         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
3324         (m68hc11_asm_out_destructor): New.
3325         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
3326         (TARGET_ASM_DESTRUCTOR): New.
3327         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
3328         * config/m68k/dpx2.h: Properly undef all the bits inherited from
3329         config/svr3.h pertaining to section manipulation.
3330         * config/m68k/dpx2g.h: Remove #if 0 code.
3331         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
3332         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
3333         (ASM_OUTPUT_CONSTRUCTOR): Remove.
3334         (TARGET_ASM_CONSTRUCTOR): New.
3335         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
3336         (m88k_svr3_asm_out_constructor): New.
3337         (m88k_svr3_asm_out_destructor): New.
3338         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3339         (ASM_OUTPUT_DESTRUCTOR): Remove.
3340         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
3341         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
3342         * config/rs6000/aix.h: Likewise.
3343         * config/mips/rtems64.h: Don't undef removed constructor related bits.
3344         * config/mips/vxworks.h: Likewise.
3345         * config/rs6000/lynx.h: Likewise.
3346         * config/sh/elf.h: Likewise.
3347         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
3348         (DTORS_SECTION_ASM_OP): New.
3349         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3350         (ASM_OUTPUT_DESTRUCTOR): Remove.
3351         * config/sparc/sol2-sld-64.h: Likewise.
3352         * config/vax/vax.c (vms_asm_out_constructor): New.
3353         (vms_asm_out_destructor): New.
3354         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
3355         (ASM_OUTPUT_DESTRUCTOR): Remove.
3356         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
3357
3358         * doc/tm.texi (@node Initialization): Update.
3359
3360 2001-08-09  Richard Henderson  <rth@redhat.com>
3361
3362         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
3363         (__do_global_dtors_aux): Use gp-relative static data to avoid
3364         one dynamic relocation.
3365         (__do_frame_setup): Register Java classes.
3366         * config/alpha/crtend.asm (__JCR_END__): New.
3367
3368 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
3369
3370         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
3371         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
3372         (GEN, STAGESTUFF): Add new files.
3373         (insn-constants.h, s-constants, tm-preds.h, s-preds,
3374         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
3375         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
3376         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
3377         as well as insn-codes.h and insn-flags.h in config.h; and no
3378         extra headers in tconfig.h and hconfig.h.
3379
3380         * gencodes.c: Eliminate code to generate predicate declarations
3381         or #defines for md-file constants.
3382         * genconstants.c, genpreds.c: New files.
3383
3384         * i386.md: Re-order guard expressions such that TARGET_64BIT
3385         comes first, when this permits better optimization.  Add
3386         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
3387         why this is desirable.
3388
3389 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
3390
3391         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
3392         (find_fde_for_dso): Remove.
3393         (_Unwind_IteratePhdrCallback): New.
3394         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
3395         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
3396
3397 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3398
3399         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
3400         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
3401
3402 2001-08-09  Graham Stott  <grahams@redhat.com>
3403
3404         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
3405         (vis_no_unit): Use it.
3406         (visualize_no_unit): Add the insn only if room exists.
3407
3408 2001-08-09  Graham Stott  <grahams@redhat.com>
3409
3410         * predict.c (estimate_probability): Replace magic numbers with
3411         appropriate enumeration.
3412
3413 2001-08-09  Graham Stott  <grahams@redhat.com>
3414
3415         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
3416         parameter.
3417         (EXTRACT_FLAGS): Likewise.
3418
3419 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
3420
3421         * config/mips/mips.c    (mips_legitimate_address_p): Check for
3422         CONST_INT in last patch.
3423
3424 2001-08-08  Anthony Green  <green@redhat.com>
3425
3426         * java/class.c (emit_register_classes): Use assemble_jcr if
3427         possible.  Keep the original mechanism as a fallback.
3428         * defaults.h (JCR_SECTION_NAME): Define if we have named section
3429         and weak symbol support.
3430         * crtstuff.c (__JCR_LIST__): Define.
3431         (__JCR_END__): Define.
3432         (_Jv_RegiserClasses): Define weak symbol if possible.
3433         (__do_global_ctors_aux): Register classes for ELF targets with
3434         weak symbol support.
3435
3436 2001-08-08  Kazu Hirata  <kazu@hxi.com>
3437
3438         * dbxout.c: Fix comment formatting.
3439         * dependence.c: Likewise.
3440         * df.c: Likewise.
3441         * diagnostic.c: Likewise.
3442         * dominance.c: Likewise.
3443         * doprint.c: Likewise.
3444         * dwarf2out.c: Likewise.
3445         * dwarfout.c: Likewise.
3446         * emit-rtl.c: Likewise.
3447         * except.c: Likewise.
3448         * explow.c: Likewise.
3449         * expmed.c: Likewise.
3450         * expr.c: Likewise.
3451         * flow.c: Likewise.
3452         * fold-const.c: Likewise.
3453         * function.c: Likewise.
3454
3455 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3456
3457         * global.c (retry_global_alloc): Avoid shadowing allocno.
3458
3459 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
3460
3461         * except.c (remove_fixup_regions): Fix typo.
3462
3463 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
3464
3465         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
3466         unsigned HOST_WIDE_INT to avoid warning.
3467         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
3468         * flow.c (set_block_for_new_insns): Likewise.
3469
3470 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
3471
3472         * sibcall.c (return_value_pseudo): New static variable.
3473         (skip_copy_to_return_value): Handle return_value_pseudo.
3474         (call_ends_block_p): Ensure that return_value_pseudo is set.
3475         (optimize_sibling_and_tail_recursive_call): Discover the
3476         load of pseudo return value in alternate exit block.
3477
3478 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
3479
3480         * calls.c (ECF_ALWAYS_RETURN): New constant.
3481         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
3482         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
3483         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
3484         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
3485         * rtl.c (reg_note_name): New name.
3486         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
3487
3488 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
3489
3490         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
3491
3492 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
3493
3494         * alias.c (get_alias_set): Return a previously calculated
3495         alias set for a VAR_DECL.
3496         * function.c (gen_mem_addressof): Calculate the alias set before
3497         touching the RTL.
3498
3499 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
3500
3501         * predict.def: Set hitrates according our experimental run.
3502
3503 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
3504
3505         * i386.h (HARD_REGNO_RENAME_OK): New macro.
3506
3507 2001-08-08  H.J. Lu <hjl@gnu.org>
3508
3509         * config/mips/mips.c (mips_unique_section): New. Copied from
3510         config/mips/elf.h.
3511
3512         * config/mips/mips-protos.h (mips_unique_section): New
3513         prototype.
3514
3515         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
3516
3517         * config/mips/little.h: New. Generic little endian mips
3518         targets. Only mips*-*-linux* is converted to use it so far.
3519
3520         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
3521         (WCHAR_TYPE): Defined
3522         (WCHAR_TYPE_SIZE): Likewise.
3523         (INIT_SUBTARGET_OPTABS): Likewise.
3524         (BSS_SECTION_ASM_OP): Likewise.
3525         (SBSS_SECTION_ASM_OP): Likewise.
3526         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3527         (ASM_DECLARE_OBJECT_NAME): Likewise.
3528         (UNIQUE_SECTION): Likewise.
3529         (EXTRA_SECTIONS): Likewise.
3530         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
3531         (ASM_OUTPUT_DESTRUCTOR): Likewise.
3532         (ASM_OUTPUT_DEF): Likewise.
3533         (HANDLE_SYSV_PRAGMA): Removed.
3534         (NO_IMPLICIT_EXTERN_C): Likewise.
3535         (TARGET_MEM_FUNCTIONS): Likewise.
3536         (STARTFILE_SPEC): Likewise.
3537         (ENDFILE_SPEC): Likewise.
3538         (LIB_SPEC): Likewise.
3539         (INVOKE__main): Likewise.
3540         (CTOR_LIST_BEGIN): Likewise.
3541         (CTOR_LIST_END): Likewise.
3542         (DTOR_LIST_BEGIN): Likewise.
3543         (DTOR_LIST_END): Likewise.
3544         (SET_ASM_OP): Likewise.
3545         (ASM_OUTPUT_SOURCE_LINE): Likewise.
3546         (ASM_OUTPUT_DEF): Likewise.
3547         (ASM_OUTPUT_IDENT): Likewise.
3548
3549         * config/mips/mips.h (ASM_SPEC): Undefine before define.
3550         (CPLUSPLUS_CPP_SPEC): Likewise.
3551         (ASM_APP_ON) Redefine only if not defined.
3552         (ASM_APP_OFF): Likewise.
3553         (ASM_OUTPUT_SOURCE_LINE): Likewise.
3554         (ASM_OUTPUT_IDENT): Likewise.
3555
3556         * config.gcc: Update tm_file for Linux/mips.
3557
3558 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
3559
3560         * cselib.c (cselib_record_sets): If insn is predicated, turn
3561         sources into IF_THEN_ELSEs.
3562
3563         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
3564         Turn into define_insn_and_split.
3565
3566         * sched-deps.c: Include "cselib.h".
3567         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
3568         Use cselib to turn memory addresses into VALUEs.
3569         (sched_analyze): Call cselib_init/cselib_finish if necessary.
3570         * sched-int.h (struct sched_info): New member USE_CSELIB.
3571         * sched-ebb.c (ebb_sched_info): Initialize it.
3572         * sched-rgn.c (rgn_sched_info): Likewise.
3573         * Makefile.in (sched-deps.o): Update dependencies.
3574
3575         * cselib.h (cselib_subst_to_values): Declare.
3576         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
3577         that have no value and autoincs to be handled by generating a new
3578         dummy value.
3579
3580 2001-08-08  Graham Stott  <grahams@redhat.com>
3581
3582         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
3583         within fixed length SEQUENCE.
3584
3585 2001-08-08  Graham Stott  <grahams@redhat.com>
3586
3587         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
3588         (diagnostic_prefixing_rule): Likewise.
3589         (diagnostic_line_cutoff): Likewise.
3590         (diagnostic_kind_count): Likewise.
3591
3592 2001-08-08  Graham Stott  <grahams@redhat.com>
3593
3594         * alias.c (find_base_decl): Delete redundent assignment.
3595
3596 2001-08-08  Graham Stott  <grahams@redhat.com>
3597
3598         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
3599         (abs): Uppercase and paranthesize macro parameter.
3600         (MEM_DEPENDENCY): Add whitespace.
3601
3602 2001-08-08  Graham Stott  <grahams@redhat.com>
3603
3604         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
3605         failure check for CONST_INT
3606
3607 2001-08-08  Graham Stott  <grahams@redhat.com>
3608
3609         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
3610         (libcall_dead_p): Likewise.
3611
3612         (mark_used_regs): Constify fmt.
3613         (find_use_as_address): Likewise.
3614
3615 2001-08-08  Graham Stott  <grahams@redhat.com>
3616
3617         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
3618          parameter.
3619
3620 2001-08-08  Graham Stott  <grahams@redhat.com>
3621
3622         * combine.c (combine_simplify_rtx): Update comment and
3623         remove erroneous test.
3624
3625 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3626
3627         * cppinit.c (cpp_finish): Pop the final buffer without comment.
3628         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
3629         take care to avoid multiple no-newline at EOF warnings in that
3630         case.
3631
3632 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
3633
3634         * calls.c (expand_call): Do not emit INSN_SETJMP note.
3635         (emit_library_call_value_1): Likewise.
3636         (emit_call_1): Emit REG_SETJMP note.
3637         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
3638         of INSN_SETJMP
3639         * cselib.c (cselib_process_insn): Likewise.
3640         * flow.c (propagate_block): Likewise.
3641         * loop.c (find_and_verify_loops): Likewise.
3642         * reload.c (find_equiv_regs): Likewise.
3643         * reload1.c (reload): Likewise.
3644         * resource.c (mark_referenced_resources,
3645         mark_set_resources): Likewise.
3646         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
3647         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
3648         * haifa-sched.c (unlink_other_notes): Likewise.
3649         (reemit_notes): Likewise.
3650         * sched-ebb.c (sched_ebb): Likewise.
3651         * sched-rgc.c (sched_region): Likewise.
3652         * rtl.c (note_insn_name): Likewise.
3653         (reg_note_name): Add REG_SETJMP
3654         * rtl.h (reg_note): Add REG_SETJMP.
3655         (insn_note): Remove NOTE_INSN_SETJMP.
3656
3657         * profile.c (branch_prob): Add fake edges for setjmp.
3658
3659 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
3660
3661         * config.gcc: Quote target_cpu_default2 correctly for
3662         powerpc*-*-* targets.
3663
3664 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3665
3666         * cpplib.h, line-map.h: Update comments.
3667         * cppmain.c (printer_init): Move inline.
3668         (maybe_print_line, print_line): Take a map pointer.
3669         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
3670         (cb_file_change): Don't use prior value of print.map.
3671
3672 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
3673
3674         * doc/install.texi: Document fine-grained multilib configuration.
3675
3676 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
3677
3678         * rtlanal.c (find_first_parameter_load): Call note_stores
3679         only on the instructions.
3680
3681 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
3682
3683         * alias.c (nonlocal_mentioned_p):
3684         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
3685         * calls.c (emit_call_1): Likewise.
3686         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
3687         * cselib.c (cselib_process_insn): Likewise.
3688         * df.c (df_insns_modify): Likewise.
3689         * flow.c (need_fake_edge_p): Likewise.
3690         (propagate_one_insn): Likewise.
3691         * haifa-sched.c (reemit_notes): Likewise.
3692         * integrate.c (copy_insn_list): Likewise.
3693         * jump.c (delete_prior_computation): Likewise.
3694         * local-alloc.c (validate_equiv_mem): Likewise.
3695         * loop.c (scan_loop): Likewise.
3696         * predict.c (estimate_probability): Likewise.
3697         * reload.c (reload): Likewise.
3698         * sched-deps (sched_analyze): Likewise.
3699         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
3700         * gcse.c (compute_hash_table): Likewise.
3701         (mark_call): Likewise.
3702         (store_killed_in_insn): Likewise.
3703
3704 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
3705
3706         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
3707
3708 2001-08-06  Richard Henderson  <rth@redhat.com>
3709
3710         * varasm.c (assemble_gc_entry): Remove.
3711         * output.h: Likewise.
3712
3713 2001-08-06  Richard Henderson  <rth@redhat.com>
3714
3715         * varasm.c (assemble_constructor): Take a symbol_ref and a
3716         priority instead of a bare string.  Move priority handling
3717         here from cp/decl2.c.
3718         * output.h: Update decls.
3719
3720         * c-decl.c (c_expand_body): Update calls to assemble_constructor
3721         and assemble_destructor.
3722         * profile.c (output_func_start_profiler): Likewise.
3723         * objc/objc-act.c (finish_objc): Likewise.
3724         (build_module_descriptor): Return the symbol not the symbol name.
3725
3726 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
3727
3728         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
3729         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
3730         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
3731         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
3732         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
3733         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
3734
3735 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3736
3737         * cpperror.c (print_containing_files): Moved to line-map.c.
3738         (print_location): line-map.c handles re-listing or otherwise.
3739         * cpphash.h (struct lexer_state): Remove next_bol.
3740         (struct cpp_buffer): Remove include_stack_listed.
3741         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
3742         Remove faked buffer handling.
3743         (_cpp_do_file_change): Tweak.
3744         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
3745         * cppmain.c (struct printer): Remove filename.
3746         (print_line, cb_file_change): Update accordingly.
3747         * line-map.c: Include intl.h.
3748         (init_line_maps): Initialize last_listed.
3749         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
3750         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
3751         (print_containing_files): New.
3752         * line-map.h (struct line_maps): New member last_listed.
3753         (print_containing_files, INCLUDED_FROM): New.
3754         * Makefile.in: Update.
3755         * po/POTFILES.in: Add line-map.c.
3756
3757 2001-08-06  Richard Henderson  <rth@redhat.com>
3758
3759         * except.c (convert_from_eh_region_ranges_1): Never mark
3760         USE or CLOBBER insns as throwing.
3761
3762         * expr.c (store_constructor): Don't clobber memory targets.
3763
3764 2001-08-06  Andreas Jaeger  <aj@suse.de>
3765
3766         * profile.c (branch_prob): Remove unused variable insn.
3767
3768         * Makefile.in (local-alloc.o): Add dependency on except.h.
3769
3770         * local-alloc.c: Include except.h for can_throw_internal prototype.
3771
3772 2001-08-06  Richard Henderson  <rth@redhat.com>
3773
3774         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
3775         * function.c (expand_main_function): Implement it.
3776         * doc/tm.texi: Document it.
3777
3778 2001-08-06  Stan Shebs  <shebs@apple.com>
3779
3780         * doc/install.texi: Document powerpc-*-darwin* details.
3781
3782 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
3783
3784         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
3785         (ASM_CPU_SPEC): Move back to rs6000.h
3786         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
3787
3788         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
3789
3790         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
3791         readded.
3792
3793         * config/rs6000/linux64.h: Ditto.
3794
3795         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
3796         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
3797         nothing.
3798
3799         Remove accidently readded definitions of FUNCTION_PROLOGUE,
3800         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
3801
3802         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
3803         to rs6000.h
3804
3805 2001-08-05  Richard Henderson  <rth@redhat.com>
3806
3807         * local-alloc.c (update_equiv_regs): Do not move insns that
3808         can throw.
3809
3810 2001-08-05  Jan Hubicka  <jh@suse.cz>
3811
3812         * Makefile.in (reload1.o): Add dedendancy on except.h
3813         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
3814         prototypes.
3815         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
3816         indicating wehther edges has been cleaned up.
3817         * reload1.c: Inlucde except.h
3818         (fixup_abnormal_edges): Accept deleted insns.
3819         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
3820         after combine.
3821
3822 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3823
3824         * cpplib.c (do_line): Correct line number after pop_buffer.
3825
3826 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3827
3828         PR preprocessor/3824
3829         * line-map.c: Update comments.
3830         * line-map.h: Update comments.
3831         * tradcif.y: Don't consider large numbers unsigned.
3832
3833 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3834
3835         PR preprocessor/3081
3836         * c-lex.c (map): New.
3837         (cb_file_change): Update map and use it.
3838         (cb_def_pragma, cb_define, cb_undef): Use map and line.
3839         (c_lex): Update to use map.
3840         * cpperror.c (print_location): Move to using logical line numbers.
3841         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
3842         (cpp_make_system_header): Similarly.
3843         (_cpp_execute_include): Stop line numbering hacks.  Store the
3844         line we will return to.
3845         * cpphash.h (CPP_BUF_LINE): Remove.
3846         (struct cpp_buffer): Remove lineno and pseudo_newlines.
3847         Add map and return_to_line.
3848         (_cpp_do_file_change): Update.
3849         * cppinit.c (cpp_start_read): Update line kludge.
3850         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
3851         (trigraph_ok): Use logical line numbers for diagnostics.
3852         (skip_block_comment): Likewise.
3853         (skip_whitespace): Likewise.
3854         (skip_line_comment): Use pfile->line instead.
3855         (_cpp_lex_token): Update to use logical line numbering exclusively.
3856         Handle BOL locally.  Accept new lines in directives, but keep
3857         pfile->line decremented.  Diagnostics use logical lines.  Update
3858         directive handling.
3859         * cpplib.c (SEEN_EOL): New.
3860         (skip_rest_of_line, check_eol): Use it.
3861         (end_directive): Increase line number when accepting the newline
3862         at the end of a directive.
3863         (run_directive): Simplify.
3864         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
3865         (_cpp_do_file_change): Update to take buffer line number as an
3866         argument, and store the current map in the cpp_reader.  Remove
3867         line number kludges.
3868         (_cpp_do__Pragma): Restore output position after a _Pragma.
3869         (cpp_push_buffer): Don't set output line or lineno.
3870         (_cpp_pop_buffer): Transfer more info from a faked buffer.
3871         Remove line kludge.  Set output_line.
3872         * cppmacro.c (builtin_macro): Update handling of __LINE__.
3873         (parse_arg): Use logical lines.
3874         (save_lookahead_token): Save EOFs too now.
3875         * cppmain.c (struct printer): Fix comments.
3876         (printer_init): Simplify, let caller do errors.
3877         (scan_translation_unit, check_multiline_token, dump_macro): Update.
3878         (maybe_print_line): Simplify.
3879         (print_line): Don't print a linemarker if -P.
3880         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
3881         (cb_file_change): Simplify.
3882         * line-map.h (LAST_SOURCE_LINE): Fix.
3883         (CURRENT_LINE_MAP): New.
3884
3885 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
3886
3887         * doloop.c (doloop_modify_runtime): Properly compute number of
3888         iterations if loop was unrolled.
3889
3890         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
3891         if their CSELIB_VAL_PTRs are.
3892
3893         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
3894         (setup_spill_pointers): Initialize it.
3895         (spill_restore_mem): Set it.
3896         (do_spill, do_restore): Use it to add REG_INC note.
3897         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
3898
3899         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
3900         asms if other insns are available.
3901
3902         * config/ia64/ia64.c (condop_operator): New predicate.
3903         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
3904         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
3905         patterns.
3906
3907         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
3908         temporary register than directly using a MEM.
3909
3910 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
3911
3912         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
3913         parameter in last change.
3914
3915 2001-08-04  Zack Weinberg  <zackw@panix.com>
3916
3917         * sparc.md: Don't use #if inside C test expression.
3918
3919 2001-08-04  Richard Henderson  <rth@redhat.com>
3920
3921         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
3922
3923 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3924
3925         * cpphash.h (struct cpp_reader): New member directive_line.
3926         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
3927         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
3928         do_pragma): Pass line to callbacks.
3929         (start_directive): Record line of directive.
3930         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
3931         cb_include): Similarly.
3932         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
3933         Similarly.
3934
3935 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
3936
3937         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
3938         comment.
3939
3940 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
3941
3942         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
3943
3944         * reload1.c (fixup_abnormal_edges): New static function.
3945         (reload): Use it.
3946
3947         * flow.c (need_fake_edge_p): New function.
3948         (flow_call_edges_add): Fix handling of noreturn and sibbling calls;
3949         avoid call insn to be very last insn in the insn stream.
3950
3951         * profile.c (branch_prob): Call flow_call_edges_add instead of
3952         doing that by hand; cleanup cfg to re-merge basic blocks once
3953         we are done.
3954
3955 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
3956
3957         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
3958         are also on line-map.h.
3959         * cppfiles.c (stack_include_file): Update.
3960         * cpphash.h (struct cpp_buffer): New member return_at_eof.
3961         (_cpp_pop_buffer): New.
3962         * cppinit.c (cpp_destroy, cpp_finish): Update.
3963         (do_includes): Mark each buffer to return at EOF.
3964         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
3965         return as requested.
3966         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
3967         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
3968         * cpplib.h (cpp_pop_buffer): Remove.
3969         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
3970         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
3971         buffers.
3972         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
3973         to pop buffers.
3974         (do_preprocessing): Update.
3975         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
3976         * c-parse.in (_yylex): Similarly.
3977         * scan-decls.c (scan_decls): Similarly.
3978         * line-map.h: Update comments.
3979
3980         * objc/Make-lang.in (objc-act.o): Update dependencies.
3981
3982 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3983
3984         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
3985         and soft register for operand 0.
3986         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
3987
3988 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3989
3990         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
3991         register for operand 0.
3992         ("bitcmpqi_z_used"): Allow memory for operand 0.
3993         (split "bitcmpqi"): New split to handle address reg as operand 1.
3994
3995 2001-08-04  Andreas Jaeger  <aj@suse.de>
3996
3997         * gcse.c: Revert Daniel's last patch.
3998
3999 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
4000
4001         * sparc-protos.h: Add prototypes for fp_zero_operand and
4002         reg_or_0_operand.
4003         * sh-protos.h: Add prototype for fpul_operand.
4004
4005 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
4006
4007         * doc/extend.texi (Other Builtins): Fix typo in last change.
4008
4009 2001-08-03  Richard Henderson  <rth@redhat.com>
4010
4011         * target.h (gcc_target): Add asm_out.named_section,
4012         section_type_flags, have_named_sections.
4013         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
4014         (TARGET_HAVE_NAMED_SECTIONS): New.
4015         (TARGET_SECTION_TYPE_FLAGS): New.
4016
4017         * Makefile.in (toplev.o): Depend on TARGET_H.
4018         (varasm.o, dbxout.o): Likewise.
4019         * c-common.c (decl_attributes): Check targetm.have_named_sections
4020         instead of ifdef ASM_OUTPUT_SECTION_NAME.
4021         * dbxout.c (dbxout_function_decl): Likewise.
4022         (dbxout_function_end): Likewise.
4023         * toplev.c (compile_file): Likewise.
4024         * varasm.c (exception_section): Likewise.
4025         * cp/decl2.c (finish_objects): Likewise.
4026
4027         * defaults.h (EH_FRAME_SECTION): Remove.
4028         (EH_FRAME_SECTION_ASM_OP): Remove.
4029         (EH_FRAME_SECTION_NAME): New.
4030         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
4031         (UNIQUE_SECTION_P): Remove.
4032         * dwarf2out.c (SECTION_FORMAT): Remove.
4033         (ASM_OUTPUT_SECTION): Remove.
4034         (output_call_frame_info): Use named_section_flags.
4035         (output_comp_unit, dwarf2out_start_source_file): Likewise.
4036         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
4037         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
4038         * varasm.c (in_eh_frame, eh_frame_section): Remove.
4039         (named_section_flags): New.
4040         (named_section): Use it and targetm.section_type_flags.
4041         (resolve_unique_section): New.
4042         (assemble_start_function): Use it.
4043         (asm_emit_uninitialised, assemble_variable): Likewise.
4044         (default_section_type_flags): New.
4045         (default_no_named_section, default_elf_asm_named_section): New.
4046         (default_coff_asm_named_section, default_pe_asm_named_section): New.
4047         * output.h: Update varasm.c decls.
4048         (SECTION_*): New flags.
4049
4050         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
4051         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
4052
4053         * config/elfos.h (UNIQUE_SECTION_P): Remove.
4054         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
4055         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
4056         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
4057         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
4058         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
4059         * config/mips/elf.h, config/mips/elf64.h: Likewise.
4060         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
4061         * config/pa/pa64-hpux.h,
4062
4063         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
4064         (TARGET_ASM_NAMED_SECTION): New.
4065         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
4066         * config/alpha/vms.h, config/arm/coff.h: Likewise.
4067         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
4068         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
4069         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
4070         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
4071         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
4072         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
4073         * config/i386/sco5.h, config/i386/win32.h: Likewise.
4074         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
4075         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
4076         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
4077         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
4078         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
4079         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
4080         * config/sparc/sysv4.h: Likewise.
4081
4082         * config/nextstep.h: Error until named sections implemented.
4083
4084         * config/a29k/a29k.c (a29k_asm_named_section): New.
4085         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
4086         (vms_section_type_flags, vms_asm_named_section): New.
4087         * config/arm/arm.c (arm_elf_asm_named_section): New.
4088         * config/avr/avr.c (asm_output_section_name): Remove.
4089         * config/avr/avr-protos.h: Update.
4090         * config/c4x/c4x.c (c4x_asm_named_section): New.
4091         * config/h8300/h8300.c (h8300_asm_named_section): New.
4092         * config/i386/i386.c (sco_asm_named_section): New.
4093         * config/i386/winnt.c (SECTION_PE_SHARED): New.
4094         (i386_pe_section_type_flags): New.
4095         (i386_pe_asm_named_section): New.
4096         * config/i386/i386-protos.h: Update.
4097         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
4098         * config/mcore/mcore.c (mcore_asm_named_section): New.
4099         * config/mips/mips.c (iris6_asm_named_section): New.
4100         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
4101         instead of UNIQUE_SECTION_P.
4102         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
4103         (xcoff_asm_named_section): New.
4104         * config/sh/sh.c (sh_asm_named_section): New.
4105         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
4106
4107         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
4108         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
4109         (EH_FRAME_SECTION_NAME): New.
4110         (EXCEPTION_SECTION): New.
4111         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
4112         (DEBUG_*_SECTION): Remove.
4113         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
4114         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
4115         (EH_FRAME_SECTION_ASM_OP): Remove.
4116
4117         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
4118         (ASM_OUTPUT_SECTION_NAME): Remove.
4119         (TARGET_ASM_NAMED_SECTION): New.
4120         (TARGET_HAVE_NAMED_SECTIONS): New.
4121         (TARGET_SECTION_TYPE_FLAGS): New.
4122         (EH_FRAME_SECTION_ASM_OP): Remove.
4123         (EH_FRAME_SECTION_NAME): New.
4124
4125 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
4126
4127         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
4128         for complex expressions when cfun == 0.
4129         * doc/extend.texi: Document that __builtin_constant_p can be
4130         used in data initializers as well as functions.
4131
4132 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
4133
4134         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
4135         variable I locally, instead of expecting a declaration in the
4136         calling context.
4137
4138 2001-08-03  Richard Henderson  <rth@redhat.com>
4139
4140         * except.c (collect_one_action_chain): Add an explicit cleanup
4141         action if regions surrounding a catch were encoded entirely
4142         within the call-site entry.
4143
4144 2001-08-03  Richard Henderson  <rth@redhat.com>
4145
4146         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
4147         don't take REGNO of a non-register.
4148
4149 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4150
4151         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
4152         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
4153         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
4154         (__gthread_mutex_init_function): New function for mutex initialization.
4155
4156 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
4157
4158         * Makefile.in: Revert screwed up commit.
4159
4160 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4161
4162         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
4163         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
4164         merged by linker script to get a final _exit().
4165         (__do_global_dtors): New for destructor handling in specific exit
4166         section.
4167         (__do_global_ctors): New for constructors in specific install section.
4168         (__map_data_section): Map data sections before running constructors.
4169         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
4170         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
4171         (DTORS_SECTION_ASM_OP): Likewise.
4172         (CTORS_SECTION_FUNCTION): Define to force a reference to
4173         __do_global_ctors.
4174         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
4175
4176 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
4177
4178         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
4179
4180         * Makefile.in: Add df.h to gcse.c dependencies.
4181
4182 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4183
4184         * varasm.c (output_constant_def_contents): Use for the length of a
4185         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
4186         depending on which is larger.
4187
4188 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
4189
4190         * gcse.c: Include df.h for use as a dataflow analyzer.
4191         Remove regvec.
4192         Declaration of reg_set_info: gone.
4193         New df_analyzer variable used by store motion.
4194         (reg_set_info): Deleted.
4195         (mark_mem_regs): New function, analyze regs used by a mem.
4196         (store_ops_ok): Use dataflow analyzer results to determine if
4197         necessary regs are changed in the block.
4198         (find_moveable_store): Remove check for symbol ref, we can handle
4199         much more complex expressions now.
4200         (compute_store_table): Remove most of the code, it's unnecessary
4201         now that the dataflow analyzer records the info for us.
4202         (store_killed_after): Add parameter to say whether to do the
4203         store_ops_okay test, used to speed up testing when we already know
4204         the answer, and just want to know if the store itself was killed.
4205         (build_store_vector): Largely rewritten to calculate the various
4206         vectors properly, and somewhat optimized.
4207         (store_motion): Init the df_analyzer, get REG_DEF chains.
4208         Also handle trapping expressions (since mems almost always trap)
4209         (simple_mem): Redefine what a simple mem is.
4210
4211 2001-08-03  DJ Delorie  <dj@redhat.com>
4212
4213         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
4214         set from a constant part of the condition.
4215
4216 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
4217
4218         * mkdeps.c (deps_add_default_target): Make local variable
4219         ``start'' a const char pointer.
4220         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
4221
4222 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4223
4224         * doc/install.texi (Configuration): Fix markup.
4225         (Specific, i?86-*-udk): Likewise.
4226         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
4227         --with-gnu-ld.
4228         Document --enable-threads and --enable-libgcj status.
4229         (Specific, mips-sgi-irix*): Canonicalize triples.
4230         (Specific, mips-sgi-irix5): Warn about problems with this config.
4231         Mention required GNU as patch.
4232         Native assembler problems are fixed.
4233         (Specific, mips-sgi-irix6): Update O32 ABI support status.
4234         Document --enable-threads and --enable-libgcj status.
4235
4236 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
4237
4238         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
4239         of mkinstalldirs.
4240
4241 2001-08-03  Richard Henderson  <rth@redhat.com>
4242
4243         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
4244         constant data.
4245
4246 2001-08-03  Richard Henderson  <rth@redhat.com>
4247
4248         * rtlanal.c (find_first_parameter_load): Stop if we
4249         reach a CODE_LABEL at BOUNDARY.
4250
4251 2001-08-03  Richard Henderson  <rth@redhat.com>
4252
4253         * config/alpha/alpha.md (force_movdi): New insn.
4254         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
4255         Tweek FRP marking of VMS prologue insns.
4256         * config/alpha/vms.h (EPILOGUE_USES): New.
4257
4258 2001-08-02  Richard Henderson  <rth@redhat.com>
4259
4260         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
4261
4262 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
4263
4264         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
4265         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
4266         config/convex/convex.h, config/d30v/d30v.c,
4267         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
4268         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
4269         config/mips/mips.h, config/mn10200/mn10200.h,
4270         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
4271         config/v850/v850.h, config/vax/openbsd.h,
4272         config/vax/openbsd1.h, config/vax/ultrix.h,
4273         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
4274         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
4275         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
4276         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
4277         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
4278         in comments and documentation.
4279
4280 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
4281
4282         * line-map.c: New.
4283         * line-map.h: New.
4284         * Makefile.in (line-map.o): New.
4285         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
4286         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
4287         * cpperror.c (print_containing_files): Similarly.
4288         (print_location): Update.  Don't output a space before _Pragma.
4289         * cppfiles.c (stack_include_file): Set to line 1 immediately.
4290         (stack_include_filee, cpp_make_system_header): Update.
4291         (_cpp_execute_include): Get logical line number right for calling
4292         as-yet-unterminated #include.
4293         * cpphash.h (struct cpp_reader): Add line_maps.
4294         (_cpp_do_file_change): Update.
4295         * cppinit.c (cpp_create_reader): Initialize line maps.
4296         (cpp_destroy): Destroy line maps.
4297         (cpp_start_read): Get logical line number right.
4298         * cpplex.c (parse_string): Only warn once for multi-line strings.
4299         Use boolean variable for null warning.
4300         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
4301         already.
4302         (do_include_common): End the directive early.
4303         (do_line): Don't warn about out-of-range lines in preprocessed
4304         source.  Update.  Remove unused variables.
4305         (_cpp_do_file_change): Update for new line mapping.
4306         (pragma_cb): New typedef.
4307         (cpp_register_pragma): Stop looking ahead before calling the
4308         handler.  Clean up.
4309         (do_pragma_system_header): End directive early.
4310         (cpp_get_line_maps): New.
4311         (cpp_pop_buffer): Fudge logical line.  Update.
4312         * cpplib.h: Include line-map.h
4313         (enum cpp_fc_reason): Remove.
4314         (struct cpp_file_change): Update.
4315         (cpp_get_line_maps): New.
4316         * cppmain.c (struct_printer): New member map.
4317         (cb_file_change): Update for new mappings.
4318         * fix-header.c (cb_file_change): Similarly.
4319
4320 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
4321
4322         * Makefile.in (libgcc.mk): Define mkinstalldirs.
4323         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
4324
4325 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
4326
4327         * config/vax/vax.c: include expr.h.
4328
4329 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
4330
4331         * Makefile.in ($(srcdir)/configure): Only rebuild in
4332         maintainer mode.
4333         ($(srcdir)/config.in): Only define in maintainer mode.
4334         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
4335
4336 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
4337
4338         * doc/install.texi (Install GCC: Binaries): Update Bull info.
4339
4340 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4341
4342         * gcc.c (set_collect_gcc_options): New function, split out from
4343         main.
4344         Ignore elided switches.
4345         (do_spec_1): Invoke before executing command.
4346         (set_input): Export.
4347         Move declaration ...
4348         * gcc.h (set_input): ... here.
4349         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
4350         file.
4351
4352 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
4353
4354         Kill -fhonor-std.
4355         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
4356         interaction.
4357         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
4358
4359 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
4360
4361         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
4362         for the unnamed instructions it expands to.
4363
4364 2001-08-02  Richard Henderson  <rth@redhat.com>
4365
4366         * regclass.c (call_really_used_regs): Conditionally define.
4367         (init_reg_sets_1): Don't use it if not defined.
4368         (fix_register): Similarly, don't set it.
4369
4370 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4371
4372         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
4373         Correct comment that had been missed in the previous change.
4374
4375 2001-08-01  Stan Shebs  <shebs@apple.com>
4376
4377         * config/darwin.c (machopic_stub_name): Try matching by name.
4378         (update_stubs): New function.
4379         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
4380         unconditionally.
4381
4382 2001-08-01  Richard Henderson  <rth@redhat.com>
4383
4384         * except.c (output_function_exception_table): Use assemble_align.
4385         * varasm.c (assemble_eh_label): Remove.
4386         (assemble_eh_align, assemble_eh_integer): Remove.
4387
4388 2001-08-01  Robert Lipe  <robertl@caldera.com>
4389
4390         * dwarfout.c: Remove reference to README.DWARF.
4391
4392 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
4393
4394         * regclass.c (call_really_used_regs): New array for registers which
4395         are actually used by a call.
4396         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
4397         new array.
4398         (fix_register): Set call_really_used too.
4399         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
4400         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
4401
4402 2001-08-01  Richard Henderson  <rth@redhat.com>
4403
4404         * read-rtl.c (read_name): Consider \r whitespace.
4405
4406 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
4407
4408         * config.gcc: Recognize powerpc-*-netbsd*.
4409
4410         * doc/install.texi (Host/target specific installation notes for
4411         GCC): Mention powerpc-*-netbsd*.
4412
4413         * config/rs6000/netbsd.h: New file.
4414         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
4415         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
4416         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
4417         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
4418         (TARGET_VERSION): Redefine.
4419
4420         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
4421         mcall-netbsd as a match for mcall-sysv.
4422         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
4423         (ncrti.S, ncrtn.S): New targets.
4424         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
4425
4426         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
4427         "netbsd' as a V4 ABI.
4428         (ASM_SPEC): Check for -mcall-netbsd.
4429         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
4430         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
4431         (LIB_SPEC, ENDFILE_SPEC): Ditto.
4432         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
4433         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
4434         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
4435         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
4436
4437         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
4438         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
4439
4440 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
4441
4442         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
4443         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
4444         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
4445         including "unwind-pe.h".
4446
4447 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
4448
4449         * rs6000.md (define_splits): Kill unused constraints.
4450
4451 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
4452                               Jan Hubicka  <jh@suse.cz>
4453
4454         * function.c (thread_prologue_and_epilogue_insns): Kill code
4455         dealing with non-existent CFG.
4456
4457 2001-08-01  Kazu Hirata  <kazu@hxi.com>
4458
4459         * alias.c: Fix comment formatting.
4460         * bitmap.c: Likewise.
4461         * builtins.c: Likewise.
4462         * calls.c: Likewise.
4463         * c-common.c: Likewise.
4464         * c-decl.c: Likewise.
4465         * c-dump.c: Likewise.
4466         * c-lex.c: Likewise.
4467         * collect2.c: Likewise.
4468         * combine.c: Likewise.
4469         * conflict.c: Likewise.
4470         * cppfiles.c: Likewise.
4471         * cppinit.c: Likewise.
4472         * cpplex.c: Likewise.
4473         * cpplib.c: Likewise.
4474         * cppmacro.c: Likewise.
4475         * cppspec.c: Likewise.
4476         * c-pragma.c: Likewise.
4477         * crtstuff.c: Likewise.
4478         * cse.c: Likewise.
4479         * cselib.c: Likewise.
4480         * c-semantics.c: Likewise.
4481         * c-typeck.c: Likewise.
4482
4483 2001-08-01  H.J. Lu <hjl@gnu.org>
4484
4485         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
4486
4487 2001-08-01  H.J. Lu <hjl@gnu.org>
4488
4489         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
4490
4491 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
4492
4493         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
4494         contextualizing Objective-C class name lookup by the lexer.
4495         (typespec_reserved_nonattr): Disable ObjC class name lookup after
4496         seeing a TYPESPEC.
4497         (protocoldef): Add support for forward @protocol declarations.
4498         (yylexname): Suppress ObjC class name lookup in certain contexts;
4499         re-enable after lookup is complete.
4500         (_yylex): Re-enable ObjC class name lookup when certain
4501         punctuation marks are seen.
4502
4503         * objc/objc-act.c (check_protocol_recursively): New function used
4504         for finding circular dependencies in protocols.
4505         (objc_declare_protocols): New function for handling forward
4506         @protocol declarations.
4507         (receiver_is_class_object): Detect the case when 'self' is used
4508         inside of a class method.
4509         (build_message_expr): Issue a warning if class method is desired
4510         but instance method is found instead.
4511         (conforms_to_protocol): Streamline.
4512         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
4513         protocol Foo, even if 'Bar foo' does not.
4514         (check_protocols): Streamline.
4515         (start_protocol): Add checks for circular and duplicate protocol
4516         definitions.
4517         (encode_aggregate_within): For typedefs of structs, encode the
4518         underlying struct.
4519         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
4520         (objc_declare_protocols): New prototype.
4521
4522 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
4523
4524         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
4525         * cpplex.c (handle_newline): Update prototype.  Maintain logical
4526         line number.
4527         (skip_escaped_newlines, skip_block_comment, parse_string):
4528         Update accordingly.
4529         (_cpp_lex_token): Update, and store token position within the token.
4530         * cpplib.h (struct cpp_token): Add line and column entries.
4531         * cppmacro.c (replace_args): Position stringified tokens correctly.
4532
4533 2001-08-01  Andreas Jaeger  <aj@suse.de>
4534
4535         * basic-block.h: Add prototype for last_loop_beg_note.
4536
4537 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
4538
4539         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
4540         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
4541         comment.
4542         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
4543         while handling WITH_CLEANUP_EXPR node. Use second operand calling
4544         expand_decl_cleanup.
4545         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
4546         the first RTX.
4547         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
4548         operand while calling simple_cst_equal.
4549         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
4550         operand is the cleanup expression, the third is the RTL_EXPR.
4551         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
4552
4553 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
4554
4555         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
4556
4557 2001-07-31  matthew green  <mrg@eterna.com.au>
4558
4559         * config.gcc (i386-*-netbsdelf): New description.
4560         * config/i386/netbsd-elf.h: New file.
4561
4562 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
4563
4564         * loop.c (check_dbra_loop): Use single_set to compute
4565         jump_label.
4566
4567 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
4568
4569         PowerPC reorg and support for powerpc64-*-linux*.
4570
4571         Also fixes emitting of constants on 32 bit and 64 bit
4572         platforms.
4573
4574         * config.gcc: powerpc64-*-linux* is a new target.
4575         Things that needed aix.h now also include xcoff.h
4576
4577         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
4578         xcoff.h.
4579         Move AIX specific stuff into aix.h.
4580         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
4581         with more than just XCOFF now.
4582         (SET_ASM_OP): Remove, now defined where needed.
4583         (FUNCTION_PROLOGUE): New macro definition.
4584         (FUNCTION_EPILOGUE): New macro definition.
4585         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
4586
4587         * config/rs6000/xcoff.h: New file.
4588
4589         * config/rs6000/linux64.h: New file.
4590
4591         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
4592
4593 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
4594
4595         * rs6000.c (print_operand_address): Handle ELF syntax.
4596         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
4597         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
4598         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
4599
4600 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
4601
4602         * rs6000.c (rs6000_override_options): Only disable
4603         flag_function_sections for XCOFF.
4604         (exact_log2_cint_operand): New predicate.
4605         (reg_or_{add,sub}_cint64_operand): New predicates.
4606         (add_operand): Compare CONST_INT with fewer function calls.
4607         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
4608         (print_operand, case 'p'): Ensure positive operand.
4609         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
4610         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
4611         (PREDICATE_CODES): Add new predicates.
4612         * rs6000.md (addsi3): Split 32-bit constants more correctly.
4613         (divsi3, modsi3): Ensure positive power-of-2.
4614         (adddi3): Use new predicate.  Split 32-bit constants more
4615         correctly.  Re-arrange splitter to handle any constant.
4616         (subdi3): Use new predicate.
4617         (divdi3, moddi3): Ensure positive power-of-2.
4618         (movdi): Use rs6000_emit_set_const.
4619         (load_toc_v4_pic_di): Delete.
4620
4621 2001-07-31  Graham Stott <grahams@redhat.com>
4622
4623         * function.c (pad_below): Revert 2001-07-26 patch.
4624
4625 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
4626
4627         * reg-stack (convert_regs_1): Fix best edge condition.
4628
4629 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
4630
4631         * jump.c (duplicate_loop_exit_test): Better test for jumps
4632         entering the loop; create loop pre_header.
4633
4634 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
4635
4636         * doc/install.texi: Add s390 and s390x as new targets.
4637         * doc/invoke.texi: Add documantation of S/390 and zSeries
4638         target options.
4639         * doc/md.texi: Add documantation of S/390 and zSeries constraints.
4640
4641 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
4642
4643         * config/m68k/m68k.md: Replace all general_operand with
4644         nonimmediate_operand for all destinations.
4645         * config/m68k/m68k.c (not_sp_operand): Likewise.
4646
4647 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
4648
4649         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
4650
4651 2001-07-30  Richard Henderson  <rth@redhat.com>
4652
4653         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
4654         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
4655
4656 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
4657
4658         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
4659         Add missing doc strings
4660         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
4661         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
4662
4663 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
4664
4665         * i386.c (ix86_output_main_function_alignment_hack): New function.
4666         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
4667
4668         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
4669         edges by EDGE_DFS_BACK flag.
4670         (dump_edge_info): Add dfs_back flag.
4671         * basic-block.h (EDGE_DFS_BACK): New constant.
4672         (mark_dfs_back_edges): Declare.
4673         * alias.c (loop_p): Remove.
4674         (mark_constant_function): Use mark_dfs_back_edges.
4675
4676         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
4677         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
4678         (compensate_edge): Break out from ...
4679         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
4680         (convert_regs_2): Set block_done once block is really done;
4681         Do updating of the predecesors counts.
4682
4683         * toplev.c (rest_of_compilation): Recompute block_for_insn
4684         before post-reload cfg_cleanup.
4685         * function.c (thread_prologue_epilogue_insns):
4686         Call set_block_for_new_insns when emitting prologue directly.
4687
4688 2001-07-30  Andreas Jaeger  <aj@suse.de>
4689
4690         * jump.c: Add prototype for mark_modified_reg.
4691
4692         * cse.c (set_live_p): Add unused attribute.
4693
4694         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
4695         overflow.
4696         (scan_for_source_files): Use long for count to avoid overflow.
4697         (output_data): Likewise.
4698         (output_data): Don't use string concatatenation to silence gcc
4699         -traditional.
4700
4701         * predict.c: Fix typos and grammar.
4702
4703         * gcse.c (insert_insn_end_bb): Remove unused variables.
4704
4705 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
4706
4707         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
4708         (attempt_auto_inc): LIkewise.
4709         (mark_used_reg): Likewise.
4710         (try_pre_increment_1): Likewise.
4711         * regclass.c (regclass): Likewise.
4712         * global.c (allocno_compare): Update comment; change scaling factor.
4713         * local-alloc.c (QTY_CMP_PRI): Likewise.
4714         * regs.h (REG_FREQ_FROM_BB): New.
4715         (REG_FREQ_MAX): Likewise.
4716
4717 2001-07-30  H.J. Lu <hjl@gnu.org>
4718
4719         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
4720         -D_GNU_SOURCE.
4721
4722 2001-07-30  H.J. Lu  (hjl@gnu.org)
4723
4724         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
4725         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
4726         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
4727
4728 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
4729
4730         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
4731         as -mthumb-interwork when -mcpu=arm7 is specified.
4732
4733 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
4734
4735         * predict.def (noreturn, loop branch, loop exit): Mark as first
4736         match heuristics.
4737
4738 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
4739
4740         * combine.c (try_combine): Avoid barrier after noop jumps.
4741
4742 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
4743
4744         * cpphash.h (struct cpp_reader): Remove import_warning.
4745         * cpplib.c (skip_rest_of_line): Don't bother turning off
4746         macro expansion.
4747         (parse_include): Move include handling to...
4748         (do_include_common): ... here.  Move import warning from...
4749         (do_import): ... here.
4750         (do_pragma_poison): Don't do a callback for poison identifiers.
4751         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
4752         * cppmain.c (setup_callbacks): Similarly.
4753
4754 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
4755
4756         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
4757         handle multiple sets.
4758         * except.c (sjlj_mark_call_sites): .... here.
4759         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
4760
4761 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
4762
4763         Suggested by Richard Henderson and Richard Kenner:
4764         * combine.c (recog_for_combine): Use the fake recog
4765         only if instruction does not match.
4766         * rtl.h (NOOP_MOVE_INSN_CODE): New.
4767         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
4768
4769         * combine.c (try_combine): Discover noop jump as direct jump.
4770
4771 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
4772
4773         * df.c (df_rd_global_compute): Add successors to worklist, not
4774         current item.
4775         (df_ru_global_compute): Ditto.
4776
4777 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
4778
4779         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
4780         increment REG_N_SETS.
4781
4782 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
4783
4784         * sbitmap.h: New prototype for sbitmap_a_xor_b.
4785
4786         * sbitmap.c (sbitmap_a_xor_b): New function.
4787         ifdef the basic block stuff on IN_GCC.
4788
4789 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
4790
4791         * cppexp.c (parse_defined): Always record the macro name.
4792         (lex): Don't worry about identifiers, or special-case
4793         CPP_NOT here.
4794         (_cpp_parse_expr): Figure out at the end of the routine
4795         whether we saw a valid !defined() expression.
4796         * cppfiles.c (stack_include_file): Update for mi_valid.
4797         (_cpp_pop_file_buffer): Similarly.
4798         * cpplex.c (_cpp_lex_token): Similarly.
4799         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
4800         mi_if_not_defined, mi_lexed): Remove.
4801         (mi_valid): New.
4802         * cpplib.c (do_if): Simplify.
4803         (do_endif, push_conditional, _cpp_handle_directive): Update
4804         for renaming of mi_state to mi_valid.
4805 doc:
4806         * cpp.texi: Add index entries for digraphs, and add comment
4807         that C++ refers to them as alternative tokens.
4808
4809 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
4810
4811         * basic-block.h (CLEANUP_PRE_LOOP): New.
4812         * except.c (finish_eh_generation): Update call of cleanup_cfg.
4813         * sibcall.c (optimize_sibling_calls): Likewise.
4814         * toplev.c (rest_of_compilation): Likewise.
4815         * flow.c (try_forward_edges): Take argument MODE;
4816         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
4817         (try_optimize_cfg): Update call of try_forward_edges.
4818
4819 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
4820                                Jan Hubicka  <jh@suse.cz>
4821
4822         * (validate_replace_rtx_1): Fix simplification of MINUS.
4823
4824 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4825
4826         PR preprocessor/3669
4827         * cppinit.c (init_dependency_output): Turn off dump requests
4828         if sending dependencies to stdout.
4829
4830 2001-07-28  Richard Henderson  <rth@redhat.com>
4831
4832         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
4833         not optimizing.
4834
4835 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
4836
4837         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
4838
4839 2001-07-28  Kazu Hirata  <kazu@hxi.com>
4840
4841         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
4842         is VAR_DECL first to prevent an ICE.
4843
4844 2001-07-28  Richard Henderson  <rth@redhat.com>
4845
4846         * varasm.c (immed_real_const_1): Don't elide special cases for
4847         nested functions.
4848         (clear_const_double_mem): Clear const_tiny_rtx too.
4849
4850 2001-07-28  Richard Henderson  <rth@redhat.com>
4851
4852         * dwarf2out.c (dw_val_class_offset): New.
4853         (struct dw_ranges_struct, dw_ranges_ref): New.
4854         (ranges_table, ranges_table_allocated): New.
4855         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
4856         (add_AT_offset, add_ranges, output_ranges): New.
4857         (print_die, output_die): Handle dw_val_class_offset.
4858         (attr_checksum, size_of_die, value_format): Likewise.
4859         (gen_lexical_block_die): Handle non-contiguous blocks.
4860         (gen_block_die): Likewise.
4861         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
4862         if needed.  Dump the ranges table.
4863         * final.c (final_start_function): Remove unnecessary notes and
4864         rebuild the block tree before numbering the blocks.
4865         * function.c (reorder_blocks_0): Walk the existing block tree
4866         to unmark all blocks.
4867         (reorder_blocks_1): Create block fragments when duplicate block
4868         notes are seen.
4869         (reorder_fix_fragments): New.
4870         (reorder_blocks): Call it.
4871         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
4872
4873 2001-07-28  Richard Henderson  <rth@redhat.com>
4874
4875         * emit-rtl.c (adjust_address): Make a copy of the memory address.
4876
4877 2001-07-28  Richard Henderson  <rth@redhat.com>
4878
4879         * flow.c (add_to_mem_set_list): New function.
4880         (init_propagate_block_info): Use it.
4881         (mark_set_1): Likewise.
4882         (insn_dead_p): Canonicalize memory address for dead store
4883         comparison.  Allow wider mode stores to kill narrower mode stores.
4884         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
4885         (invalidate_mems_from_set): Don't handle MEMs.
4886
4887 2001-07-28  Kazu Hirata  <kazu@hxi.com>
4888
4889         * config/h8300/h8300.h: Fix formatting.
4890
4891 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
4892
4893         * basic-block.h (EDGE_FREQUENCY): New macro.
4894         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
4895         for new BB/edges.
4896         * flow.c (find_sub_basic_blocks): Likewise.
4897         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
4898         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
4899
4900         * predict.c (DEF_PREDICTOR): New argument FLAGS.
4901         (HITRATE): New macro.
4902         (PRED_FLAG_FIRST_MATCH): New constant.
4903         (predictor_info): New field flgags.
4904         (combine_predictions_for_insn): Use DS theory to combine
4905         probabilities; set the edge probabilities when finished.
4906         (estimate_probability): Avoid duplicated matches
4907         of LOOP_BRANCH heuristics for nested loops; update comment.
4908         * predict.def: Add flags for each prediction, set probabilities
4909         according to B&L paper.
4910         * predict.h (DEF_PREDICTOR): New argument FLAGS.
4911
4912         * profile.c (compute_branch_probabilities):  Cleanup way the edge
4913         probabilities are computed and REG_BR_PROB notes are dropped; if
4914         values does not match, emit error.
4915         (init_branch_prob): Do error instead of warning when profile driven
4916         feedback is missing or corrupt.
4917
4918 2001-07-27  DJ Delorie  <dj@redhat.com>
4919
4920         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
4921         against a constant, try to adjust the compare to have the desired
4922         constant in it so that min/max optimizations happen more often.
4923
4924 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
4925
4926         * flow.c (last_loop_beg_note): New function.
4927         (redirect_edge_and_branch): Use it.
4928         (split_edge): Likewise.
4929
4930         * alias.c (loop_p): Avoid uninitialized memory access.
4931
4932         * flow.c (try_forward_edges): Avoid accessing freed memory.
4933
4934         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
4935         variable access.
4936
4937 2001-07-26  Andrew Haley  <aph@redhat.com>
4938         Joern Rennecke <amylaar@redhat.com>
4939
4940         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
4941         (SUBTARGET_CPP_ENDIAN_SPEC): New.
4942         (SUBTARGET_CPP_SPEC): New.
4943         (CPP_SPEC): Remove.
4944         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
4945         (SUBTARGET_CPP_PTR_SPEC): New.
4946         (CPP_DEFAULT_CPU_SPEC): New.
4947         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
4948         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
4949         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
4950         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
4951         (SUBTARGET_CPP_SPEC): Define as an empty string.
4952
4953 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4954
4955         * doc/install.texi (Configuration): Properly link the host
4956         specific instructions also when generating HTML.
4957
4958 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
4959
4960         * flow.c (redirect_edge_and_branch_force): Test
4961         target->global_live_at_start.
4962
4963 2001-07-26  Richard Henderson  <rth@redhat.com>
4964
4965         * simplify-rtx.c (avoid_constant_pool_reference): Export.
4966         * rtl.h (avoid_constant_pool_reference): Declare it.
4967         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
4968         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
4969
4970 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
4971
4972         * rtl.h (cleanup_barriers): Declare.
4973         * jump.c (cleanup_barriers): New function.
4974         * toplev.c (rest_of_compilation): Call cleanup_barriers
4975         before loop optimizer and after bb_reorder.
4976
4977         * flow.c (back_edge_of_syntactic_loop_p): New.
4978         (split_edge): Use it.
4979
4980 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4981
4982         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
4983
4984 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
4985
4986         * cse.c (cse_process_notes): Replace any registers if the address
4987         remains valid.
4988
4989 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
4990
4991         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
4992         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
4993         (propagate_block): Update prototype.
4994         * flow.c (update_life_info): Simplify the CFG and
4995         recalculate the global regs which are alive when
4996         removing dead code during a global update.
4997         (propagate_block): Return non-zero if an INSN is
4998         deleted.
4999
5000 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5001
5002         * Makefile.in (LIBICONV): Define.
5003
5004 2001-07-26  Catherine Moore  <clm@redhat.com>
5005
5006         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
5007         of conditional to avoid tree checking errors.
5008
5009 2001-07-26  Kazu Hirata  <kazu@hxi.com>
5010
5011         * regmove.c (regmove_optimize): Don't replace a reg with
5012         another reg of a different mode.
5013
5014 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
5015
5016         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
5017         limit length of dependancy flush list.
5018         * params.h (MAX_PENDING_LIST_LENGTH): Define.
5019         * sched-int.h  (struct deps): Add pending_flush_length field.
5020         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
5021         has 1 element in it.
5022         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
5023         (sched_analyze): After a jump, if the pending memory flush list is too
5024         large, flush the pending lists.
5025         (init_deps): Initialize pending_flush_length to 0.
5026         * doc/invoke.texi (max_pending_list_length): Document parameter.
5027
5028 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5029
5030         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
5031         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
5032         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
5033
5034 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5035
5036         * cpphash.h (struct_lexer_state): Delete was_skipping.
5037         Move skipping here from struct cpp_reader.
5038         * cpplex.c (parse_identifier): Update.
5039         (_cpp_lex_token): Don't skip tokens in a directive.
5040         * cpplib.c (struct if_stack): Update.
5041         (start_directive, end_directive): Don't change skipping state.
5042         (_cpp_handle_directive): Update.
5043         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
5044         (do_else, do_endif): Update; only check for excess tokens if not
5045         in a skipped conditional block.
5046         (push_conditional): Update for new struct if_stack.
5047
5048 2001-07-26  Graham Stott  <grahams@redhat.com>
5049
5050         * function.c (locate_and_pad_parm): Also pad initial offset
5051         so that the total argument size also includes the padding.
5052
5053 2001-07-26  Graham Stott <grahams@redhat.com>
5054
5055         * gensupport.c (alter_output_for_insn): Correct enable checking failure
5056         change XSTR to XTMPL.
5057
5058         (process_one_cond_exec): Likewise
5059
5060 2001-07-25  Richard Henderson  <rth@redhat.com>
5061
5062         * varasm.c (assemble_variable): Create DECL_RTL before setting
5063         TREE_ASM_WRITTEN.
5064
5065 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
5066
5067         * predict.c (estimate_probability): Avoid duplicated predictions.
5068
5069         * loop.c (find_and_verify_loops): Grok multiple barriers.
5070
5071 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5072
5073         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
5074
5075         * dbxout.c: Consistently use putc instead of fputc.
5076         (print_wide_int): New function; call instead of direct fprintf.
5077         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
5078         (dbxout_type_fields, dbxout_type_method_1): Likewise.
5079         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
5080         (print_int_cst_octal): Likewise.
5081         (print_octal): Show we wrote characters.
5082         (dbxout_type): Set have_used_extensions in more places.
5083
5084 2001-07-25  Catherine Moore  <clm@redhat.com>
5085
5086         * config/v850/v850.c (v850_va_arg):  Use addr
5087         instead of valist to build incr.
5088
5089 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
5090
5091         * flow.c (delete_dead_jumptables): New function.
5092         (life_analyzis): Call it.
5093         * bb-reorder.c (skip_insns_after_block): Handle contradictory
5094         sequences.
5095
5096 2001-07-25  Richard Henderson  <rth@redhat.com>
5097
5098         * except.c (reachable_handlers): Handle a region being removed
5099         out from under a RESX.
5100
5101 2001-07-25  Richard Henderson  <rth@redhat.com>
5102
5103         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
5104         swap GE/GT if it is an fp comparison.
5105
5106 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
5107
5108         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
5109         operands.
5110
5111 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
5112
5113         * ssa.c (rename_insn_1): Do not wrap an assignment to a
5114         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
5115         glitch.
5116
5117         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
5118         throw an exception.
5119         (visit_expression): When attempting to simplify an expression,
5120         retrieve any modes for arguments before they are simplified
5121         to constants.
5122
5123 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
5124             Janis Johnson  <janis@us.ibm.com>
5125
5126         * stmt.c (expand_goto): A nonlocal goto can be a call too.
5127         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
5128         pointer parameters to match documented usage of nonlocal_goto.
5129         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
5130         parameters to their correct order.
5131         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
5132         parameters to their correct order.
5133
5134 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
5135
5136         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
5137
5138 2001-07-25  Jan Hubicka  <jh@suse.cz>
5139             Richard Henderson  <rth@redhat.com>
5140
5141         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
5142         the sequence.
5143         (make_edges): New argument update_p; populate the edge cache if set.
5144         (find_basic_blocks): Update make_edges invocation.
5145
5146 2001-07-24  Joel Sherrill <joel@OARcorp.com>
5147
5148         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
5149
5150 2001-07-24  Joel Sherrill <joel@OARcorp.com>
5151
5152         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
5153         -Acpu and -Amachine.h.
5154         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
5155         Corrected header to say ELF not a.out.
5156         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
5157         when given -msoft-float.
5158
5159 2001-07-24  Joel Sherrill <joel@OARcorp.com>
5160
5161         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
5162         extra multilib parts like arm-elf.
5163         (i960-*-coff*, i960-*-rtems): Should not use collect2.
5164         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
5165         crtfini.o as extra multilib parts.
5166
5167 2001-07-24  Joel Sherrill <joel@OARcorp.com>
5168
5169         * configure.in: Add rtems as a supported thread model.
5170         * gthr-rtems.h: Add missing entry point __gthread_active_p.
5171         * configure: Rebuilt.
5172
5173 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
5174
5175         * stor-layout.c (get_mode_alignment): make it work when
5176         BITS_PER_UNIT is not a power of two.
5177         * builtins.c (get_pointer_alignment): Likewise.
5178
5179 2001-07-24  Richard Henderson  <rth@redhat.com>
5180
5181         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
5182         the retrieved constant into the expected mode.
5183
5184 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
5185
5186         * flow.c (try_simplify_condjump): Avoid duplicated edges.
5187         (verify_flow_info): Check for duplicated edges; clarify
5188         error reporting.
5189
5190         * flow.c (block_label): Update basic_block_for_insn.
5191         (commit_edge_insertions): Call compute_bb_for_insn.
5192
5193         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
5194         returns too.
5195
5196         * flow.c (redirect_edge_and_branch,
5197         try_optimize_cfg): Use redirect_edge_succ_nodup
5198         (redirect_edge_succ_nodup): New.
5199         * basic_block.h (redirect_edge_succ_nodup): Declare.
5200
5201         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
5202         after gcse.
5203
5204 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
5205
5206         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
5207         (try_crossjump_to_edge): Update commetns.
5208         (try_crossjump_bb): Likewise.
5209
5210 2001-07-24  Richard Henderson  <rth@redhat.com>
5211
5212         * combine.c (distribute_notes): Move set of need_refresh
5213         for noop_move_p down to catch all cases.
5214
5215 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
5216
5217         * recog.c (split_all_insns_noflow): New.
5218         * rtl.h (split_all_insns_noflow): Declare.
5219         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
5220         * m68hc11.c (m68hc11_reorg): Likewise.
5221         * sh.c (machine_dependent_reorg): Likewise.
5222         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
5223         call.
5224
5225 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
5226
5227         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
5228         (ashlsi3_n splitter): Likewise.
5229         (lshrsi3_n splitter): Likewise.
5230
5231         (GOTaddr2picreg): Make const SImode.
5232         (sym_label2reg): Likewise.
5233         (symGOT2reg): Likewise.
5234         (symGOTOFF2reg) Likewise.
5235
5236         (casesi_worker_0): Make unspec SImode.
5237
5238 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
5239
5240         * config/sh/sh.c (barrier_align): Check that an operand really is
5241         an insn before extracting its INSN_CODE.
5242
5243 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
5244
5245         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
5246         dangling else.
5247
5248         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
5249         for SImode to prevent overflow.
5250
5251 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5252
5253         * config/mips/irix6-libc-compat.c: New file.
5254         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
5255         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
5256         passing workaround.
5257
5258 2001-07-24  lars brinkhoff  <lars@nocrew.org>
5259
5260         * rtl.texi (REG_POINTER): Document.
5261         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
5262         QFmode, HFmode, TQFmode, QCmode, and HCmode.
5263
5264 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
5265
5266         * flow.c (delete_noop_moves): Do not confuse libcall regions.
5267
5268 2001-07-23  Richard Henderson  <rth@redhat.com>
5269
5270         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
5271
5272 2001-07-23  Kazu Hirata  <kazu@hxi.com>
5273
5274         * config/h8300/h8300-protos.h: Add a prototype for
5275         general_operand_dst_push.
5276         * config/h8300/h8300.c (general_operand_dst_push): New.
5277         * config/h8300/h8300.h (OK_FOR_T): New.
5278         (EXTRA_CONSTRAINT): Use it.
5279         * config/h8300/h8300.md (movqi_push): Remove and integrate into
5280         the existing movqi pattern.
5281         (movhi_push): Likewise.
5282
5283         * reload.c: Fix comment typos.
5284
5285 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
5286
5287         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
5288
5289 2001-07-23  H.J. Lu  (hjl@gnu.org)
5290
5291         * doc/extend.texi: Update __builtin_return_address and
5292         __builtin_frame_address.
5293
5294 2001-07-23  Richard Henderson  <rth@redhat.com>
5295
5296         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
5297         before CSE.
5298         * config/i386/i386.md: New setcc+movzbl peephole2.
5299
5300 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5301
5302         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
5303         * objc/objc-act.c: Include debug.h.
5304         (synth_module_prologue): Save and restore debug hooks too.
5305
5306 2001-07-23  lars brinkhoff  <lars@nocrew.org>
5307
5308         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
5309         and C4X_FLOAT_FORMAT.
5310         (BOOL_TYPE_SIZE): Document.
5311
5312 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
5313
5314         * unroll.c (loop_iterations): Fix miscalculation of initial
5315         giv offset.
5316
5317 2001-07-13  Andrew Haley  <aph@redhat.com>
5318
5319         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
5320         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
5321         * config/sh/sh.c (sh_can_redirect_branch): New function.
5322         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
5323         * reorg.c (steal_delay_list_from_target): Use
5324         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
5325
5326 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
5327
5328         * flow.c (try_simplify_condjump): Unlink insn chain on
5329         fallthru edge; use can_fallthru.
5330
5331 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
5332
5333         * basic-block.h (find_sub_basic_block): Declare.
5334         * flow.c (make_edges): New arguments MIN and MAX;
5335         (find_sub_basic_blocks): Revamp to use make_edges
5336         and purge_dead_edges.
5337         (find_basic_blocks): Update call of find_sub_basic_block.
5338
5339         * recog.c (split_all_insns): Always expect CFG to be consistent;
5340         call find_sub_basic_blocks in case something has changed.
5341         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
5342         has been built.
5343
5344         * basic-block.h (delete_noop_moves): Declare.
5345         * combine.c (combine_instructions): Call it.
5346         (recog_for_combine): Tolerate noop moves
5347         (distribute_notes): Force refresh when register dies at noop move.
5348         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
5349         too.
5350         (life_analysis): Update delete_noop_moves call.
5351         (set_noop_p): Move too ...
5352         * rtlanal.c (noop_move_p): ... here.
5353         * rtl.h (noop_move_p): Declare.
5354
5355         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
5356         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
5357         after combine.
5358         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
5359         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
5360
5361 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
5362
5363         * reload.c (push_reload): Fix typo in comment.
5364         (find_reloads_address): Ditto.
5365         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
5366
5367 2001-07-22  Richard Henderson  <rth@redhat.com>
5368
5369         * flow.c: Grammar check and clarify a lot of comments.
5370         (try_simplify_condjump): Rename variables to be clearer.
5371         (try_forward_edges): Skip complex and fallthru edges.
5372         Rearrange tests to avoid duplicate checks.
5373         (flow_find_cross_jump): Likewise.
5374         (outgoing_edges_match): Allow match if neither branch has
5375         probability data.  Loosen probability match to 5%.
5376         (try_crossjump_to_edge): Hoist repeated indirection into
5377         local variables.
5378         (try_crossjump_bb): Don't check complex edges.  Eliminate
5379         redundant crossjump tests.
5380         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
5381         checks before more expensive checks.
5382
5383 2001-07-22  Richard Henderson  <rth@redhat.com>
5384
5385         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
5386         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
5387         arguments.
5388
5389 2001-07-22  Richard Henderson  <rth@redhat.com>
5390
5391         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
5392         (const_sint32_operand): Likewise.
5393         * m68k.md (anon mulsi pattern): Use const_int_operand not
5394         const_sint32_operand.
5395         (umulsi3_highpart): Zero extend a constant input.
5396         (smulsi3_highpart): Don't bother checking SImode constant.
5397         (const_umulsi3_highpart): Give op3 DImode.
5398         (const_smulsi3_highpart): Likewise.
5399
5400 2001-07-22  Richard Henderson  <rth@redhat.com>
5401
5402         * flow.c (split_block): Make sure bb_note is included in the
5403         new block when splitting before a label.
5404
5405 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
5406
5407         * basic-block.h (redirect_edge_and_branch_force,
5408         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
5409         * flow.c (redirect_edge_and_branch_force,
5410         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
5411         (redirect_edge_and_branch_force): Fix copying of lifeness information.
5412         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
5413         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
5414         instead of label; update CFG after transformation.
5415         (find_if_case_1): Update call, use redirect_edge_and_branch_force
5416         for finishing the transformation; handle even case where ELSE
5417         does not follow THEN.
5418         (find_if_case_2): Update call of dead_or_predictable; simplify
5419         CFG update.
5420
5421         * emit-rtl.c (split_branch_probability): New global variable.
5422         (try_split): Take care to set split_branch_probability and
5423         create REG_BR_PROB note for new jump insns.
5424         * md.texi (define_split): Document new feature.
5425
5426         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
5427
5428 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5429
5430         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
5431         (asm_out_file): Remove redundant declaration.
5432         (assemble_asm): Remove old #if 0 block.
5433         (assemble_variable): Remove end of function; debug output is
5434         now handled with global_decl.  Remove old #if 0 block.  Update.
5435         Remove saved_in_section and associated no-op code.
5436         * Makefile.in (varasm.o): Correct dependencies.
5437
5438 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
5439
5440         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
5441         the definition in defaults.h.
5442
5443 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
5444
5445         * jump.c: Update comments.
5446         (delete_barrier_successors, delete_unreferenced_labels,
5447         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
5448         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
5449         jump_optimize, jump_optimize_minimal): Kill.
5450         (rebuild_jump_labels): Move code from jump_optimize_1.
5451         (purge_line_number_notes): Likewise.
5452         (copy_loop_headers): Likewise.
5453         * reg-stack.c: Update comment.
5454         * stmt.c: Likewise.
5455         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
5456         JUMP_AFTER_REGSCAN): Kill.
5457         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
5458         purge_line_number_notes and copy_loop_headers.
5459
5460 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
5461            Richard Henderson  <rth@redhat.com>
5462
5463         * dbxout.c (dbxout_global_decl): New.
5464         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
5465         * sdbout.c (sdbout_finish): New.
5466         (sdbout_debug_hooks): Use it, add comments.
5467         (sdbout_global_decl): Defer initialised public vars to
5468         sdbout_finish.
5469         * varasm.c (assemble_variable): Don't output debug information
5470         for file-scope variables.
5471
5472 2001-07-22  Richard Henderson  <rth@redhat.com>
5473
5474         * config/alpha/alpha.c (get_trap_mode_suffix): New.
5475         (get_round_mode_suffix): New.
5476         (print_operand): Use them for [/].  Remove support for [&'`()+].
5477         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
5478         * config/alpha/alpha.md (attr round_suffix): New.
5479         (attr trap_suffix): New.
5480         (all insns): Set them appropriately.  Use %/ instead of the
5481         myriad punctuators.
5482
5483 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5484
5485         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
5486
5487 2001-07-22  Richard Henderson  <rth@redhat.com>
5488
5489         * regrename.c (regrename_optimize): Compute nregs for each
5490         potential target register.
5491
5492 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
5493            Richard Henderson  <rth@redhat.com>
5494
5495         * dbxout.c (dbxout_global_decl): New.
5496         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
5497         * sdbout.c (sdbout_finish): New.
5498         (sdbout_debug_hooks): Use it, add comments.
5499         (sdbout_global_decl): Defer initialised public vars to
5500         sdbout_finish.
5501         * varasm.c (assemble_variable): Don't output debug information
5502         for file-scope variables.
5503
5504 2001-07-21  H.J. Lu  (hjl@gnu.org)
5505
5506         * config/mips/mips.c (mips_cpu): Moved into ...
5507         (override_options): Here.
5508
5509         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
5510         mips_tune.
5511         (mips_cpu): Removed.
5512
5513 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5514
5515         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
5516         ("iorqi3"): Likewise.
5517         ("xorqi3"): Likewise.
5518         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
5519         ("*subhi3_sp): Likewise.
5520         ("*subhi3"): Likewise.
5521         ("extendhisi2"): Accept D, X and Y as source operand to avoid
5522         reload problems.
5523
5524 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
5525
5526         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
5527         * config/freebsd.h: Likewise.
5528         * config/linux.h: Likewise.
5529         * config/openbsd.h: Likewise.
5530         * config/alpha/linux-elf.h: Likewise.
5531         * config/arm/linux-elf.h: Likewise.
5532         * config/d30v/d30v.h: Likewise.
5533         * config/fr30/fr30.h: Likewise.
5534         * config/ia64/aix.h: Likewise.
5535         * config/ia64/ia64.h: Likewise.
5536         * config/mips/linux.h: Likewise.
5537         * config/pj/pj.h: Likewise.
5538         * config/rs6000/linux.h: Likewise.
5539         * config/sparc/linux.h: Likewise.
5540         * config/sparc/linux64.h: Likewise.
5541
5542 2001-07-20  Bruce Korb  <bkorb@gnu.org>
5543
5544         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
5545         because getc() and char* may disagree on signedness.
5546
5547 2001-07-20  Richard Henderson  <rth@redhat.com>
5548
5549         * doc/rtl.texi (REG_DEAD): Update for current semantics.
5550
5551         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
5552         insns to delete in the presence of cc0 in a jump insn.
5553
5554 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
5555                                Jan Hubicka  <jh@suse.cz>
5556
5557         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
5558         of doing the change by hand.
5559
5560 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
5561
5562         * rtlanal.c (set_noop_p): Return true for noop jumps.
5563
5564         * expr.c (emit_single_push_insn): Add call to push expander.
5565         * expr.h (optab_index): Add OTI_push
5566         (push_optab): New constant.
5567         * genopinit.c (optabs): Add push_optab.
5568         * optabs.c (init_optab): Init push optab.
5569         * md.texi (push??1): Document
5570
5571 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5572
5573         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
5574         expand to emit the pattern; put a REG_INC note for push/pop
5575         instructions.
5576         ("movdf", "movdf_internal"): Likewise.
5577         ("movsi", "movsi_internal"): Likewise.
5578         ("movsf", "movsf_internal"): Likewise.
5579         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
5580
5581 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5582
5583         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
5584         gen_highpart.
5585
5586 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
5587
5588         * params.def: Change default max inline insns to 100.
5589
5590 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
5591
5592         * combine.c (combine_simplify_rtx): Generate a new shift operation
5593         when simplifying the first operand of a (neg (ashift)) expression.
5594
5595 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5596
5597         * regclass.c (N_REG_INTS): Use only 32 bits per element.
5598
5599 2001-07-20  Kelley Cook  <kelley.cook@home.com>
5600
5601         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
5602         information.   Move rest into ...
5603         (*-*-solaris): ... here.  Eliminate redundant information and
5604         reword necessary packages section.  Delete 4.x assembler bug info.
5605         (sparc-sun-*): Merge into ...
5606         (sparc-sun-sunos*): here.
5607
5608 2001-07-20  Catherine Moore  <clm@redhat.com>
5609
5610         * config/v850/v850.md (casesi): Generate LABEL_REF
5611         with Pmode.
5612
5613 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
5614
5615         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
5616         * i386.c (ix86_zero_extend_to_Pmode): Make global.
5617         * i386.md (strclrsi expander): Use it.
5618
5619 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
5620
5621         * integrate.c (copy_insn_list): handle
5622         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
5623         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
5624         identically as to CODE_LABEL.
5625
5626         * fold-const (fold): Convert A/B/C to A/(B*C) and
5627         A/(B/C) to (A/B)*C
5628
5629         * except.c (connect_post_landing_pads): Delete the RESX insns.
5630
5631 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
5632
5633         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
5634
5635         * config/mips/mips.md (nmadd/nmsub): Use macro.
5636
5637 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
5638
5639         * cppinit.c (remove_dup_dir): Make static.
5640         (remove_dup_dirs): Make static. Only warn about preempting a
5641         system directory with a non-system directory.
5642
5643 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
5644
5645         * ifcvt.c (noce_try_store_flag_constants): Correct order
5646         of parameters to trunc_int_for_mode.
5647
5648 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
5649
5650         * reorg.c (fill_simple_delay_slots): If an instruction might throw
5651         an exception that will be caught within this function, do not fill
5652         its delay slot with any subsequent instruction.
5653
5654 2001-07-19  Steve Ellcey <sje@cup.hp.com>
5655
5656         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
5657         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
5658         pointer extension instruction.
5659         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
5660         * simplify-rtx.c (simplify_unary_operation) Likewise.
5661         * explow.c (convert_memory_address) Check value of
5662         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
5663         less than zero.
5664         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
5665         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
5666         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
5667         Add Multilib Support.
5668         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
5669         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
5670         Add Multilib Support.
5671         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
5672         support.
5673         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
5674         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
5675         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
5676
5677 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
5678
5679         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
5680         old and new operands in `<', `3' and `b'.
5681
5682 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5683
5684         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
5685         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
5686         (toplev.o): Don't depend on xcoffout.h.
5687         * c-decl.c: Include debug.h
5688         (duplicate_decls): Use debug hook.
5689         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
5690         (dbx_debug_hooks, xcoff_debug_hooks): Update.
5691         (dbxout_types): Remove.
5692         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
5693         * debug.c (do_nothing_debug_hooks): Update.
5694         (debug_true_tree, debug_nothing_rtx): New.
5695         * debug.h (struct rtx_def): New.
5696         (struct gcc_debug_hooks): New hooks ignore_block,
5697         outlining_inline_function and label.
5698         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
5699         dwarf2out_frame_finish): New.
5700         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
5701         Make static, update prototype.
5702         (dwarf2_debug_hooks): Update.
5703         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
5704         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
5705         * dwarfout.c (dwarf_debug_hooks): Update.
5706         * emit-rtl.c: Include debug.h.
5707         (remove_unnecessary_notes): Use debug hook.
5708         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
5709         (final_scan_insn): Use debug hook.
5710         * integrate.c (output_inline_function): Use debug hook.
5711         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
5712         (sdb_debug_hooks): Update.
5713         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
5714         * toplev.c: Don't include xcoffout.h.
5715         (note_outlining_of_inline_function, debug_ignore_block): Remove.
5716         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
5717         Remove.
5718         * tree.h (dwarf2out_do_frame): Remove.
5719
5720 2001-07-19  Catherine Moore  <clm@cygnus.com>
5721
5722         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
5723
5724 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
5725
5726         * reload1.c (eliminate_regs_in_insn): When updating a set
5727         to the frame pointer to the hardware frame pointer, perform
5728         the update always not just when REPLACE is set.
5729
5730         * reload1.c (choose_reload_regs): Don't inherit a reload
5731         that crosses multiple registers if registers past the first
5732         don't fit in the desired class.
5733
5734         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
5735         when negating constants.
5736
5737 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
5738
5739         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
5740         * doc/tree.texi: Ditto.
5741
5742 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
5743             Jakub Jelinek  <jakub@redhat.com>
5744
5745         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
5746         (extract_cie_info): Handle "eh" augmentation properly,
5747         remember eh_ptr.
5748         (struct frame_state, __frame_state_for): New.
5749
5750 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5751
5752         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
5753         HANDLE_SYSV_PRAGMA): Define.
5754         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
5755         previous args.
5756         (copy_object): Caller changed.
5757
5758 2001-07-19  Andreas Schwab  <schwab@suse.de>
5759
5760         * configure.in (assembler dwarf2 debug_line support): Define nop
5761         insn for m68k.
5762         * configure: Regenerated.
5763
5764 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5765
5766         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
5767         dwarfout.h.
5768         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
5769         to conditionally compiled block.
5770         (dbx_debug_hooks, xcoff_debug_hooks): Update.
5771         * dbxout.h (dbxout_function): Remove.
5772         * debug.c (do_nothing_debug_hooks): Update.
5773         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
5774         global_decl, deferred_inline_function.
5775         * dwarf2out.c (dwarf2_debug_hooks): Update.
5776         (dwarf2out_global_decl): New.
5777         * dwarfout.c: Don't include dwarfout.h.
5778         (dwarfout_global_decl, dwarfout_function_decl,
5779         dwarfout_deferred_inline_function): New.
5780         (dwarf_debug_hooks): Update.
5781         * dwarfout.h: Remove.
5782         * final.c: Don't include dwarfout.h.
5783         * sdbout.c (sdbout_global_decl): New.
5784         (sdbout_debug_hooks): Update.
5785         * toplev.c: Don't include dwarfout.h.
5786         (check_global_declarations, rest_of_compilation): Use new debug hooks.
5787         (note_deferral_of_defined_inline_function): Remove.
5788         * toplev.h (note_deferral_of_defined_inline_function): Remove.
5789         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
5790         * ch/lex.c: Don't include dwarfout.h.
5791         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
5792         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
5793         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
5794         * cp/optimize.c: Include debug.h.
5795         (maybe_clone_body): Use debug hook.
5796         * cp/semantics.c: Include debug.h.
5797         (expand_body): Use debug hook.
5798         * po/POTFILES.in: Remove dwarfout.h.
5799
5800 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5801
5802         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
5803         * c-parse.in (yyerror, _yylex): Similarly.
5804         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
5805         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
5806         Update comments.
5807         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
5808         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
5809
5810 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
5811
5812         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
5813         in-class declaration at -g1.  Fixes c++/2814.
5814
5815 2001-07-18  Richard Henderson  <rth@redhat.com>
5816
5817         * doc/md.texi (reload_in/out): Document restrictions in predicates
5818         and constraints for these patterns.  Document empty string matching
5819         ALL_REGS.
5820
5821 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5822
5823         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
5824
5825 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
5826
5827         * cse.c: Undo my previous patch.
5828
5829 2001-07-18  Tom Tromey  <tromey@redhat.com>
5830
5831         For PR java/2812:
5832         * configure: Rebuilt.
5833         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
5834         instead.
5835         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
5836
5837 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
5838                                Jan Hubicka  <jh@suse.cz>
5839
5840         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
5841         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
5842         * jump.c (mark_jump_label): Do not forward branches.
5843
5844 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
5845
5846         * cse.c (delete_trivially_dead_insns): Delete the libcall block
5847         when return value is unused.
5848
5849 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
5850
5851         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
5852
5853 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
5854
5855         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
5856         on error.  We can't blindly return the result of
5857         pthread_mutex_trylock because it returns a positive number on
5858         error, while we must return -1 on error.
5859         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
5860         fixes.
5861         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
5862
5863 2001-07-18  Andreas Jaeger  <aj@suse.de>
5864
5865         * integrate.c (output_inline_function): Correct type of debug_hooks.
5866
5867 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
5868
5869         * combine.c (combine_simplify_rtx): DIV can be treated
5870         associatively for floats if unsafe math optimisations are enabled.
5871
5872 2001-07-17  Richard Henderson  <rth@redhat.com>
5873
5874         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
5875
5876 2001-07-17  Richard Henderson  <rth@redhat.com>
5877
5878         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
5879         don't force the function address into a register.
5880         (expand_call, emit_library_call_value_1): Update callers.
5881         * builtins.c (expand_builtin_apply): Likewise.
5882         * expr.h (prepare_call_address): Update decl.
5883
5884 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
5885
5886         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
5887         config directory.
5888         * config/i386/chorus.h: Move up.
5889         * config/sparc/chorus.h: Likewise.
5890         * config/rs6000/chorus.h: Likewise.
5891         * config/chorus.h: Moved here.
5892
5893 2001-07-17  Andreas Schwab  <schwab@suse.de>
5894
5895        * configure.in  (assembler eh_frame optimization): Handle big
5896        endian.
5897        * configure: Regenerated.
5898
5899 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
5900
5901         * expr.c (epxand_expr): Convert divisions into multiplications by
5902         reciprocals if -ffast-math.
5903
5904 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5905
5906         * dbxout.c (dbxout_really_begin_function): Rename to
5907         dbxout_begin_function.
5908         (dbx_debug_hooks, xcoff_debug_hooks): Update.
5909         (dbxout_begin_function): Remove.
5910         (dbxout_function): Update.
5911         (dbxout_source_line): Update prototype.
5912         * dbxout.h (dbxout_begin_function): Remove.
5913         * debug.c (do_nothing_debug_hooks): Update.
5914         (debug_nothing_tree): Update.
5915         (debug_nothing_charstar_rtx): Remove.
5916         * debug.h (union tree_node): Declare.
5917         (struct rtx_def): Remove.
5918         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
5919         begin_function.  Change source_line prototype.
5920         (debug_nothing_tree): New.
5921         (debug_nothing_charstar_rtx): Delete.
5922         (dwarf2out_begin_prologue): Moved from ...
5923         * tree.h: ... here.
5924         * dwarf2out.c (dwarf2_debug_hooks): Update.
5925         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
5926         debug info, call dwarf2out_source_line.
5927         (dwarf2out_souce_line): Update prototype.
5928         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
5929         Change prototype, make static.
5930         (dwarfout_source_line): Update prototype.
5931         (dwarf_debug_hooks): Update.
5932         * dwarfout.h (dwarfout_begin_function): Remove.
5933         * final.c (final_start_function, final_scan_insn): Use appropriate
5934         debug hooks, update to use notice_source_line.
5935         (output_source_line): Rename notice_source_line.  Don't call the
5936         source_line debug hook.
5937         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
5938         make static, update prototype.
5939         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
5940         prototype.
5941         (sdbout_end_prologue): New.
5942         (sdbout_source_line): Update prototype.
5943         (sdbout_debug_hooks): Update.
5944         (sdbout_symbol): Remove unused var.
5945         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
5946         Delete.
5947         * varasm.c: Include debug.h.
5948         (assemble_start_function): Use begin_function debug_hook.
5949         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
5950         update with prototype.
5951         (xcoffout_source_line): Update prototype.
5952         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
5953         update prototype.
5954         (xcoffout_source_line): Update prototype.
5955
5956 2001-07-17  Richard Henderson  <rth@redhat.com>
5957
5958         * c-typeck.c (build_binary_op): Do not shorten unsigned
5959         right shift after sign extension.
5960
5961 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
5962
5963         * combine.c (combine_simplify_rtx): Attempt to simplify
5964         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
5965
5966         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
5967         (simplify_binary_operation, simplify_unary_operation,
5968          simplify_relational_operation): Use it.
5969
5970         * combine.c (combine_simplify_rtx): Don't do associative law
5971         on divisions; allow associative law on floats.
5972
5973 2001-07-17  H.J. Lu <hjl@gnu.org>
5974             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5975
5976         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
5977         ASM_OUTPUT_WEAK_ALIAS are defined.
5978         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
5979         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
5980         Moved ...
5981         * config/mips/iris5.h: ... here.
5982         (HANDLE_SYSV_PRAGMA): Defined as 1.
5983         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
5984         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
5985         symbol.
5986
5987 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
5988
5989         * c-parse.in (all_prefix_attributes): New variable.
5990         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
5991         (maybe_resetattrs): New production.
5992         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
5993         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
5994         notype_initdcl, nested_function, notype_nested_function,
5995         component_decl, components, components_notype,
5996         component_declarator, component_notype_declarator,
5997         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
5998         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
5999         after a comma being applied to more than one declarator.
6000         * doc/extend.texi (Attribute Syntax): Update.  Remove
6001         documentation of bugs that are no longer present.
6002
6003 2001-07-13  Eric Christopher  <echristo@redhat.com>
6004
6005         * config/mips/mips.h: Change TUNE_MIPS* options to use
6006         mips_tune.
6007         (EXTRA_SPECS): Add cc1_cpu_spec.
6008         * config/mips/mips.md (muldf3): Fix typo.
6009
6010 2001-07-16  Richard Henderson  <rth@redhat.com>
6011
6012         * config/m68k/m68k.c: Include expr.h and reload.h.
6013         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
6014         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
6015
6016 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
6017             Richard Henderson  <rth@redhat.com>
6018
6019         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
6020         (insn_live_p): Fix fall off end of function.
6021         (dead_libcall_p): Remove COUNTS argument; update callers.
6022         (delete_trivially_dead_insns): Remove unused variables.
6023
6024 2001-07-17  Andreas Jaeger  <aj@suse.de>
6025
6026         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
6027         x86-64 pic support.
6028
6029         * lcm.c (optimize_mode_switching): Avoid warning for unused
6030         variable if !NORMAL_MODE.
6031
6032         * flow.c (try_crossjump_to_edge): Remove unused variable.
6033
6034 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6035
6036         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
6037         atexit declaration in stdlib.h.
6038
6039 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
6040
6041         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
6042
6043 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
6044
6045         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
6046         * except.c (finish_eh_generation): Update call of cleanup_cfg;
6047         do rebuild_jump_labels instead of jump_optimize
6048         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
6049         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
6050         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
6051
6052         * flow.c: Include timevar.h
6053         (find_basic_block): Push/pop timevar;
6054         (cleanup_cfg): Likewise.
6055         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
6056         * Makefile: Add dependencies on timevar.h
6057
6058         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
6059         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
6060
6061         * rtl.h (delete_trivially_dead_insns): Add new parameter.
6062         * toplev.c (rest_of_compilation): Update calls.
6063         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
6064         (delete_trivially_dead_insns): ... here; accept new argument
6065         preserve_basic_blocks; preserve basic blocks if set.
6066
6067         * reg-stack.c (stack_regs_mentioned): Return 0 if
6068         stack_regs_mentioned_data is not initialized.
6069         (reg_to_stack): Make stack_regs_mentioned survive after the
6070         reg-stack is completted; do not call cleanup_cfg.
6071         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
6072         make cleanup_cfg after bb-reorder to output to debug file.
6073
6074 2001-07-16  Richard Henderson  <rth@redhat.com>
6075
6076         * regclass.c (init_reg_sets): Use only 32 bits per initializer
6077         from int_reg_class_contents.
6078
6079 2001-07-16  Richard Henderson  <rth@redhat.com>
6080
6081         * hard-reg-set.h (regs_invalidated_by_call): Declare.
6082         * regclass.c (regs_invalidated_by_call): Move from cse.c.
6083         (init_reg_sets_1): Move initialization from cse_main.
6084         * cse.c (regs_invalidated_by_call): Move to regclass.c.
6085         (cse_main): Move its initialization also.
6086         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
6087         * flow.c (propagate_one_insn): Likewise.
6088         * gcse.c (compute_hash_table): Likewise.
6089         (compute_kill_rd, compute_store_table): Likewise.
6090         * sched-deps.c (sched_analyze_1): Likewise.
6091
6092 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
6093
6094         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
6095         gen_rtx_SET.
6096
6097 2001-07-16  Steve Ellcey <sje@cup.hp.com>
6098
6099         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
6100         in if statement so we don't access undefined memory.
6101
6102 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
6103
6104         * gcse.c: Update comment at top.
6105         Update comment on mem handling.
6106         mem_last_set, mem_first_set, mem_set_in_block: gone.
6107         Declaration of reg_set_info: gone.
6108         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
6109         pointless with load_killed_in_block_p (they are *more*
6110         conservative then it, not less, and less accurate).
6111         (oprs_not_set_p): Ditto.
6112         (alloc_gcse_mem): Don't allocate mem_set_in_block
6113         (free_gcse_mem): Don't free it, either.
6114         (record_last_mem_set_info): Update comment in front, remove
6115         mem_*set_* stuff. Note the reason we don't handle stores directly
6116         here.
6117         (compute_hash_table): Update comments to reflect reality. Remove
6118         mem_*set_* references.
6119         (reset_opr_set_tables): Remove mem_*set_* references.
6120         (mark_call): Ditto.
6121         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
6122         (mark_clobber): Ditto (on both parts, we double set here too).
6123         (expr_killed_p): Remove mem_set_in_block test.
6124         (compute_transp): Remove mem_set_in_block test.
6125
6126         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
6127         of edge, and removal of phi alternative to dump file.
6128         (ssa_ccp_substitute_constants): Add note about register now being
6129         constant, and which uses were replaced in what insns to dump file.
6130
6131 2001-07-16  Andreas Jaeger  <aj@suse.de>
6132
6133         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
6134         variables of type HOST_WIDEST_INT.
6135
6136         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
6137         (__bb_exit_func): Correct type of count_max to avoid overflow.
6138         (num_digits): Handle long long argument.
6139
6140         * combine.c (gen_lowpart_for_combine): Remove unused variable.
6141
6142 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6143
6144         * output.h (sdb_begin_function_line): Restore as an extern
6145         variable.
6146         * sdbout.c (sdb_begin_function_line): Make extern.
6147
6148 2001-07-15  Richard Henderson  <rth@redhat.com>
6149
6150         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
6151         * genrecog.c (maybe_both_true_mode): New.
6152         (maybe_both_true_2): Use it.
6153         (write_switch): Don't put Pmode in a switch.
6154         * rtl.c (mode arrays): Don't explicitly size them.
6155
6156 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
6157
6158         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
6159         handling; move unconditional splitting before mode switching.
6160
6161         * i386.md (type): Add fistp type.
6162         (i387, length_attr, scheduling definitions): Handle this type.
6163         (fix_trunc?f?i2): Revamp to use mode switching.
6164         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
6165         * i386.h (fp_cw_mode): New enum
6166         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
6167         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
6168
6169 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6170
6171         * Makefile.in (integrate.o): Add debug.h.
6172         * integrate.c (debug.h): Add.
6173         (output_inline_function): Save, reset, and restore debug_hooks.
6174
6175 2001-07-15  Richard Henderson  <rth@redhat.com>
6176
6177         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
6178         instead of COMPARE for the EQUIV expression.
6179
6180 2001-07-15  Richard Henderson  <rth@redhat.com>
6181
6182         * flow.c (redirect_edge_and_branch_force): Initialize
6183         global_live_at_start and global_live_at_end.
6184         (allocate_bb_life_data): Export.
6185         * basic-block.h (allocate_bb_life_data): Declare.
6186         * toplev.c (rest_of_compilation): Call it.
6187
6188 2001-07-15  Richard Henderson  <rth@redhat.com>
6189
6190         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
6191         (alpha_tablejump_best_label): New.
6192         * config/alpha/alpha-protos.h: Declare them.
6193         * config/alpha/alpha.md: Use braced strings for code blocks.
6194         (tablejump_osf): Break out add with r29.
6195         (tablejump_osf_internal): Remove.
6196         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
6197         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
6198
6199 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6200
6201         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
6202         of the movable.
6203
6204         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
6205
6206         * i386-protos.h (ix86_split_fp_branch): Update prototype.
6207         (ix86_fp_jump_nontrivial_p): New.
6208         * i386.md (fp_jcc_?): Update call of split_fp_branch;
6209         use ix86_fp_jump_nontrivial_p.
6210         * i386.c (ix86_fp_jump_nontrivial_p): New.
6211         (ix86_split_fp_branch): Accept code instead of rtx.
6212         (ix86_expand_compare): Expand comparison early in case
6213         doing so is resonably cheap.
6214
6215 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
6216
6217         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
6218         not 'machine'.
6219         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
6220         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
6221
6222 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6223
6224         * dbxout.c (dbxout_source_line): Make static, update prototype.
6225         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
6226         (dbxout_init, dbxout_finish, dbxout_source_line,
6227         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
6228         * dbxout.h (dbxout_source_line): Delete.
6229         * debug.c (debug_nothing_file, debug_nothing_file_int,
6230         debug_nothing_file_charstar_rtx): New.
6231         (do_nothing_debug_hooks): Update.
6232         (debug_nothing_void, debug_nothing_charstar_rtx,
6233         dwarf2out_end_epilogue): New.
6234         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
6235         * debug.h (struct rtx_def): Declare.
6236         (gcc_debug_hooks): New hooks source_line, end_epilogue
6237         and end_function.
6238         (debug_nothing_void, debug_nothing_charstar_rtx,
6239         dwarf2out_end_epilogue): New.
6240         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
6241         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
6242         (dwarf2_debug_hooks): Update.
6243         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
6244         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
6245         * dwarf2out.h (dwarf2out_source_line): Remove.
6246         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
6247         Make static, update prototype.
6248         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
6249         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
6250         (dwarf_debug_hooks): Update.
6251         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
6252         dwarfout_end_function): Remove.
6253         * final.c (profile_function): Use debug hooks for ending functions
6254         and epilogues.
6255         (output_source_line, final_end_function): Update prototype,
6256         use debug hooks.
6257         (final_start_function, final_scan_insn): Update.
6258         * output.h (sdb_begin_function_line): Remove.
6259         (final_end_function): Update prototype.
6260         * sdbout.c (sdb_begin_function_line): Make static.
6261         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
6262         (sdbout_source_line): New.
6263         (sdbout_end_epilogue, sdbout_end_function): Make static, update
6264         prototypes.
6265         (sdb_debug_hooks): Update.
6266         (sdbout_init, sdbout_source_line,
6267         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
6268         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
6269         * toplev.c (compile_file, rest_of_compilation): Update.
6270         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
6271         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
6272         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
6273         Update for prototype changes.
6274         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
6275         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
6276
6277 2001-07-15  Richard Henderson  <rth@redhat.com>
6278
6279         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
6280         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
6281         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
6282         * config/alpha/alpha.c: Likewise.
6283         * config/alpha/alpha.md: Likewise.
6284         * config/alpha/alpha32.h: Likewise.
6285         * config/alpha/vms.h: Likewise.
6286         (OPEN_VMS): Remove.
6287
6288 2001-07-14  Richard Henderson  <rth@redhat.com>
6289
6290         * config/alpha/alpha.md: Use define_constants for unspec values.
6291         Substitute throughout.
6292
6293 2001-07-14  Tim Josling  <tej@melbpc.org.au>
6294
6295         * tree.def (EXPON_EXPR) remove. Never supported anyway.
6296
6297 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6298
6299         * pa.md: Remove unused constraints from define_split's.
6300
6301 2001-04-14  Richard Henderson  <rth@redhat.com>
6302
6303         * ifcvt.c (find_cond_trap): Test for exit block.
6304
6305 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
6306
6307         Re-install recently reverted patch.
6308         * emit-rtl.c (try_split): Update mark_jump_label call.
6309         * flow.c (find_sub_basic_blocks): Likewise.
6310         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
6311         jump_back_p): Kill.
6312         (mark_all_labels): Kill second parameter.
6313         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
6314         (rebuild_jump_labels, jump_optimize_minimal): Update call
6315         of jump_optimize_1.
6316         (jump_optimize_1): Kill crossjumping code.
6317         (mark_jump_label): Kill cross_jump parameter.
6318         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
6319         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
6320         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
6321          splitting.
6322         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
6323         DFI_bpro.
6324         (dump_file_info): Likewise.
6325         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
6326         reorganize passes to do reg-stack first, bb-reorder second.
6327         * invoke.texi (-d letters doc): Remove the jump2 pass.
6328
6329 2001-07-14  Richard Henderson  <rth@redhat.com>
6330
6331         * ifcvt.c (find_cond_trap): New.
6332         (find_if_header): Call it.
6333         (merge_if_block): Relax existing jump sanity check.
6334         * jump.c (jump_optimize_1): Remove conditional trap handling.
6335
6336 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
6337
6338         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
6339         millicode.
6340         (insn_refs_are_delayed): Correct comment.
6341         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
6342         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
6343         instead of r31.  Make associated insn !TARGET_64BIT, and
6344         provide an additional 64-bit insn that clobbers r2.
6345         (divsi3): Likewise.
6346         (udivsi3): Likewise.
6347         (modsi3): Likewise.
6348         (umodsi3): Likewise.
6349
6350 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
6351
6352         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
6353
6354         * flow.c (redirect_edge_and_branch_force, split_edge,
6355         try_crossjump_to_edge): Use set_block_for_new_insns.
6356         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
6357
6358 2001-07-13  H.J. Lu  (hjl@gnu.org)
6359
6360         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
6361         the correct patch.
6362
6363 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
6364
6365         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
6366
6367 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
6368
6369         * c-common.c (decl_attributes): Take a pointer to the node to
6370         which attributes are to be attached, and a flags argument.
6371         * c-common.h (enum attribute_flags): New.
6372         (decl_attributes): Update prototype.
6373         * c-decl.c (start_decl, push_parm_decl, finish_struct,
6374         finish_enum, start_function): Update calls to decl_attributes.
6375         * c-parse.in (component_declarator, component_notype_declarator,
6376         label): Update calls to decl_attributes.
6377
6378 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
6379
6380         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
6381         * config/avr/avr.c (legitimate_address_p): Return value changed
6382         from letter to register classes. For better debugging.
6383
6384 2001-07-13  Kazu Hirata  <kazu@hxi.com>
6385
6386         * jump.c (reversed_comparison_code_parts): Fix comment typos.
6387
6388 2001-07-13  H.J. Lu  (hjl@gnu.org)
6389
6390         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
6391
6392 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
6393
6394         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
6395         correctly for shared configurations.
6396         * config/t-libgcc-pic:  New.
6397         * config/{i386,m68k,sparc}/t-openbsd:  New.
6398         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
6399         Support -shared.  Support debugging libraries with -g.
6400         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
6401         frame information does not emit pointer diffs.
6402         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
6403         emit pointer diffs.
6404
6405 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
6406
6407         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
6408
6409 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
6410
6411         * combine.c (try_combine): Ensure const_int pow2 is positive.
6412
6413 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
6414
6415         * config.gcc: Add configuration for s/390.
6416         * config/s390/s390.c: New. Subroutines for code generation.
6417         * config/s390/s390.h: New. Definitions for s/390.
6418         * config/s390/s390-protos.h: New. Prototypes.
6419         * config/s390/linux.h: New. Definitions for linux for s/390.
6420         * config/s390/linux64.h: New. Definitions for linux for zSeries.
6421         * config/s390/t-linux: New. Makefile fragment.
6422         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
6423         * config/s390/fixdfdi.h: New. Fix L_fix*di.
6424
6425 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
6426
6427         * emit-rtl.c (try_split): Update mark_jump_label call.
6428         * flow.c (find_sub_basic_blocks): Likewise.
6429         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
6430         jump_back_p): Kill.
6431         (mark_all_labels): Kill second parameter.
6432         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
6433         (rebuild_jump_labels, jump_optimize_minimal): Update call
6434         of jump_optimize_1.
6435         (jump_optimize_1): Kill crossjumping code.
6436         (mark_jump_label): Kill cross_jump parameter.
6437         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
6438         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
6439         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
6440          splitting.
6441         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
6442         DFI_bpro.
6443         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
6444         reorganize passes to do reg-stack first, bb-reorder second.
6445         * invoke.texi (-d letters doc): Remove the jump2 pass.
6446
6447 2001-07-12  Steve Ellcey <sje@cup.hp.com>
6448
6449         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
6450
6451 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
6452
6453         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
6454         basic blocks.
6455         (verify_flow_info): Make diagnostics prettier.
6456
6457 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
6458
6459         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
6460
6461         * flow.c (outgoing_edges_match): Return early if condition reversal
6462         failed.
6463
6464 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
6465
6466         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
6467         (mips_move_2words): When splitting a move into two instructions,
6468         prefix the second address operand with '%D'.
6469
6470 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
6471
6472         * Makefile.in (final.o): Depend on debug.h.
6473         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
6474         (dbx_debug_hooks): Add new hooks.
6475         (xcoff_debug_hooks): New.
6476         * debug.c (debug_nothing_file_int_int): New.
6477         (do_nothing_debug_hooks): Update.
6478         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
6479         (debug_nothing_file_int_int): New.
6480         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
6481         static, update prototype.
6482         (dwarf2_debug_hooks): Update.
6483         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
6484         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
6485         static, update prototype.
6486         (dwarf_debug_hooks): Update.
6487         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
6488         * final.c: Include debug.h.
6489         (final_scan_insn): Use debug hooks when beginning and ending blocks.
6490         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
6491         static, update prototype.
6492         (sdb_debug_hooks): Update.
6493         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
6494         * toplev.c: Distinguish between xcoff and dbx.
6495
6496         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
6497         Call all debug hooks, not just dwarf ones.
6498
6499 2001-07-11  Timothy Wall  <twall@redhat.com>
6500
6501         * config.gcc: Add configuration for AIX5/IA64.
6502         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
6503         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
6504         support prefix/suffix code.
6505         * config/ia64/t-aix: New.  Makefile fragment.
6506         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
6507
6508 2001-07-11  Kazu Hirata  <kazu@hxi.com>
6509
6510         * recog.c (validate_change): Fix a comment typo.
6511
6512 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6513
6514         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
6515         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
6516         hooks directly.
6517         * dbxout.c (dbx_debug_hooks): Add new hooks.
6518         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
6519         make static.
6520         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
6521         make static.
6522         * dbxout.h (dbxout_start_new_source_file,
6523         dbxout_resume_previous_source_file): Delete.
6524         * debug.c (do_nothing_debug_hooks): Add new hooks.
6525         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
6526         (debug_nothing_int_charstar, debug_nothing_int): New.
6527         * debug.h (gcc_debug_hooks): New hooks define, undef,
6528         start_source_file and end_source_file.
6529         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
6530         (debug_nothing_int_charstar, debug_nothing_int): New.
6531         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
6532         the conditionally compiled section.
6533         (dwarf2out_start_source_file, dwarf2out_end_source_file,
6534         dwarf2out_define, dwarf2out_undef): Make static.
6535         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
6536         dwarf2out_define, dwarf2out_undef): Remove.
6537         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
6538         (dwarfout_start_source_file, dwarfout_end_source_file,
6539         dwarfout_define, dwarfout_undef): Make static.
6540         (dwarfout_start_source_file_check,
6541         dwarfout_end_source_file_check): New.
6542         (dwarfout_define, dwarfout_finish): Update.
6543         * dwarfout.h (dwarfout_start_new_source_file,
6544         dwarfout_resume_previous_source_file, dwarfout_define,
6545         dwarfout_undef): Remove.
6546         * sdbout.c (sdb_debug_hooks): Add new hooks.
6547         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
6548         make static.
6549         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
6550         make static, take an arg.
6551         * sdbout.h (sdbout_start_new_source_file,
6552         sdbout_resume_previous_source_file): Delete.
6553         * toplev.c (debug_start_source_file, debug_end_source_file,
6554         debug_define, debug_undef): Delete.
6555         * toplev.h (debug_start_source_file, debug_end_source_file,
6556         debug_define, debug_undef): Delete.
6557
6558         * java/jcf-parse.c: Include debug.h.
6559         (parse_class_file): Update to use debug hooks directly.
6560         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
6561
6562 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6563
6564         * alias.c (set_mem_alias_set): New function.
6565         * rtl.h (set_mem_alias_set): Declare it.
6566         * builtins.c (expand_builtin_return_addr): Call it instead of
6567         using MEM_ALIAS_SET accessor.
6568         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
6569         (get_memory_rtx, expand_builtin_va_arg): Likewise.
6570         (expand_builtin_va_copy):Likewise.
6571         * caller-save.c (setup_save_areas): Likewise.
6572         * calls.c (compute_argument_addresses): Likewise.
6573         * explow.c (set_mem_attributes): Likewise.
6574         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
6575         (expand_assignment, store_constructor_field, store_field): Likewise.
6576         (expand_expr_unaligned): Likewise.
6577         * function.c (assign_stack_temp_for_type): Likewise.
6578         (put_reg_into_stack, gen_mem_addressof): Likewise.
6579         * ifcvt.c (noce_try_cmove_arith): Likewise.
6580         * reload1.c (reload, alter_reg): Likewise.
6581         * config/alpha/alpha.c (get_aligned_mem): Likewise.
6582         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
6583         (alpha_expand_unaligned_store): Likewise
6584         (alpha_expand_unaligned_load_words): Likewise.
6585         (alpha_expand_unaligned_store_words): Likewise.
6586         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
6587         (alpha_expand_epilogue): Likewise.
6588         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
6589         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
6590         * config/i386/i386.c (legitimize_pic_address): Likewise.
6591         * config/i960/i960.c (setup_incoming_varargs): Likewise.
6592         * config/ia64/ia64.c (spill_restore_mem): Likewise.
6593         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
6594         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
6595         * config/mips/mips.c (mips_va_arg): Likewise.
6596         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
6597         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
6598         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
6599         (setup_incoming_varargs, rs6000_va_arg): Likewise.
6600         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
6601         (rs6000_emit_epilogue): Likewise.
6602         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
6603         * config/sparc/sparc.c (sparc_va_arg): Likewise.
6604         * config/v850/v850.c (v850_va_arg): Likewise.
6605
6606 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
6607
6608         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
6609         when fallthru edge is present.
6610         (mege_blocks): Handle case where creation of jump insn
6611         is required.
6612
6613         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
6614         CLEANUP_POST_REGSTACK): New constants.
6615         * except.c (finish_eh_generation): Update call of cleanup_cfg,
6616         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
6617         * output.h (cleanup_cfg): Update prototype.
6618         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
6619         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
6620         cleanup_cfg call; kill missleading comment.
6621         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
6622         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
6623         parameter; control optimizations performed using it.
6624         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
6625         try_crossjump_bb): New functions.
6626
6627 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6628
6629         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
6630         extern.
6631         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
6632         pa_output_function_prologue.
6633         * pa-protos.h (pa_output_function_prologue): New prototype.
6634
6635 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6636
6637         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
6638         and low to get correct sign extension in low+high test.
6639
6640 2001-07-11  Janis Johnson <janis@us.ibm.com>
6641
6642         * gcov.c (arcdata): Use gcov_type to fix branch percentage
6643         for large hit count.
6644
6645         * profile.c (branch_prob): Fix .bbg info for computed gotos
6646         and C++ EH code.
6647
6648 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
6649
6650         * stmt.c (parse_output_constraint): New function, split out
6651         from ...
6652         (expand_asm_operands): ... here.  Use parse_output_constraint.
6653         * tree.h (parse_output_constraint): Declare it.
6654
6655 2001-07-11  Richard Henderson  <rth@redhat.com>
6656
6657         * bitmap.c: Comment some functions; fiddle whitespace.
6658         (bitmap_free): Don't export.
6659         (bitmap_element_allocate): Use memset.
6660         * bitmap.h (bitmap_free): Don't declare.
6661
6662 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
6663
6664         * gcse.c, lcm.c, sched-deps.c:
6665         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
6666
6667         * flow.c (flow_loops_find): Free dom if we found no loops, since
6668         we aren't going to save it.
6669
6670         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
6671         done.
6672
6673 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
6674
6675         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
6676
6677 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6678
6679         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
6680         #ifndef DWARF2_DEBUGGING_INFO.
6681
6682 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
6683
6684         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
6685
6686 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
6687
6688         * config/mips/mips.c (gen_int_relational): Tell the caller not to
6689         reverse a branch if a NE comparison is implemented with GTU.
6690
6691 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
6692             H.J. Lu  <hjl@gnu.org>
6693
6694         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
6695         constant addresses.
6696         (call_internal2): Likewise.
6697         (call_value_internal1): Likewise.
6698         (call_value_internal2): Likewise.
6699         (call_value_multiple_internal1): Likewise.
6700         (call_value_multiple_internal2): Likewise.
6701
6702 2001-07-10  Kazu Hirata  <kazu@hxi.com>
6703
6704         * calls.c (emit_library_call_value_1): Fix a comment typo.
6705         * dwarf2out.c (mem_loc_descriptor): Likewise.
6706         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
6707
6708 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
6709
6710         * simplify-rtx.c (simplify_subreg): Fix typo in comment
6711
6712 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6713
6714         * recog.c (offsettable_address_p): Handle LO_SUM case.
6715         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
6716         instead of plus_constant.
6717
6718 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6719
6720         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
6721         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
6722
6723 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6724
6725         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
6726         adjust_address_nv instead of plus_constant.
6727
6728 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
6729
6730         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
6731         dwarf2out.o): Depend on debug.h, wrap long lines.
6732         * dbxout.c: Include debug.h.
6733         (dbx_debug_hooks): New.
6734         (dbxout_init): Make static, take just 2 args.
6735         (dbxout_finish): Make static.
6736         * dbxout.h (dbxout_init, dbxout_finish): Delete.
6737         * debug.c: New file.
6738         * debug.h: New file.
6739         * dwarf2out.c: Include debug.h.
6740         (dwarf2_debug_hooks): New.
6741         (dwarf2out_init): Make static.
6742         (dwarf2out_finish): Make static, take 2 args.
6743         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
6744         * dwarfout.c: Include debug.h.
6745         (dwarf_debug_hooks): New.
6746         (dwarfout_init): Make static.
6747         (dwarfout_finish): Make static, take 2 args.
6748         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
6749         * sdbout.c: Include debug.h.
6750         (sdb_debug_hooks): New.
6751         (sdbout_init): Make static, take 2 args.
6752         * sdbout.h (sdbout_init): Delete.
6753         * toplev.c: Include debug.h.
6754         (debug_hooks): New.
6755         (compile_file): Set deubg_hooks based on command line options.
6756         Use the hooks unconditionally rather than conditional compilation.
6757
6758 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
6759
6760         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
6761         first_insn_after_basic_block_note instead.
6762
6763         * df.c (df_bb_refs_unlink): #if 0 out for now.
6764
6765 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
6766
6767         * ssa.h: Add prototype for ssa_const_prop
6768         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
6769         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
6770         (ssa_fast_dce): Remove unused variable
6771
6772 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6773
6774         * diagnostic.c (finish_diagnostic): Rename to
6775         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
6776         calls thourghout.
6777
6778 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
6779
6780         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
6781         .loc support.
6782
6783         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
6784         (dump_file): Only pad the demangled name with spaces if the
6785         mangled name was padded with spaces.
6786
6787 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
6788
6789         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
6790         edge detection.
6791
6792 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6793
6794         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
6795         extraction if no direct load if either EXPAND_CONST_ADDRESS or
6796         EXPAND_INITIALIZER.
6797
6798         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
6799         whether can put offset inside LO_SUM to check mode alignment, not size.
6800
6801 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6802
6803         * doc/tm.texi (Misc): Fix thinko.
6804
6805 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
6806
6807         * regmove.c (replace_in_call_usage): Fix warnings.
6808         * sched-deps.c (add_dependence): Fix warnings.
6809         * simplify-rtx.c (simplify_subreg): Likewise.
6810         Return NULL_RTX instead of NULL.
6811
6812         * reg-stack.c (emit_swap_insn): Eliminate warnings.
6813         (subst_asm_stack_regs): Likewise.
6814
6815         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
6816         warnings.
6817
6818         * dwarf2out.c (output_call_frame_info): Declare i as int.
6819         (build_abbrev_table): Declare n_alloc as int.
6820         (dwarf2out_finish): Initialize die.
6821         * except.c: Declare sjlj_funcdef_number as unsigned.
6822         (connect_post_landing_pads): Declare j as unsigned.
6823         (convert_to_eh_region_ranges): Initialize call_site.
6824         (output_function_exception_table): Initialize tt_format_size.
6825         * expr.c (move_by_pieces_1): Initialize to1.
6826         (store_constructor): Initialize minelt and maxelt.
6827         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
6828         * function.c (instantiate_decls): Avoid signed/unsigned warning.
6829
6830         * c-decl.c (combine_parm_decls): Unused, remove.
6831         * c-tree.h: Remove prototype for combine_parm_decls.
6832
6833         * reload.c (push_reload): Fix warning.
6834         (regno_clobbered_p): Likewise.
6835         * reload1.c (replace_pseudos_in_call_usage): Likewise.
6836         (reload_combine): Likewise.
6837
6838         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
6839         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
6840         warnings.
6841         * bitmap.c (bitmap_operation): Change user.
6842         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
6843
6844 2001-07-10  Eric Christopher  <echristo@redhat.com>
6845
6846         * config/mips/mips.c (override_options): Fix typo.
6847
6848 2001-07-09  Stan Shebs  <shebs@apple.com>
6849
6850         * target.h (struct gcc_target): New fields init_builtins and
6851         expand_builtin.
6852         * target-def.h (TARGET_INIT_BUILTINS): New macro.
6853         (TARGET_EXPAND_BUILTIN): New macro.
6854         (TARGET_INITIALIZER): Add them.
6855         * builtins.c: Include target.h.
6856         (expand_builtin): Use targetm.expand_builtin.
6857         (default_init_builtins): New function.
6858         (default_expand_builtin): New function.
6859         * expr.h (default_init_builtins): Declare.
6860         (default_expand_builtin): Declare.
6861         * c-common.c (c_common_nodes_and_builtins): Use
6862         targetm.init_builtins.
6863         * defaults.h (MD_INIT_BUILTINS): Remove.
6864         * Makefile.in (builtins.o): Depend on target.h.
6865
6866         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
6867         (TARGET_EXPAND_BUILTIN): Define.
6868         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
6869         (MD_EXPAND_BUILTIN): Remove.
6870
6871         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
6872         (TARGET_EXPAND_BUILTIN): Define.
6873         (c4x_init_builtins): Make endlink arg a local.
6874         (c4x_print_operand): Fix typos in adjust_address usages.
6875         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
6876         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
6877         (MD_EXPAND_BUILTIN): Remove.
6878
6879         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
6880         (TARGET_EXPAND_BUILTIN): Define.
6881         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
6882         (ix86_init_builtins): Call new function only if TARGET_MMX.
6883         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
6884         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
6885         (MD_EXPAND_BUILTIN): Remove.
6886
6887         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
6888         (TARGET_EXPAND_BUILTIN): Define.
6889         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
6890         (MD_EXPAND_BUILTIN): Remove.
6891
6892         * doc/tm.texi: Document these changes.
6893
6894 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
6895
6896         * basic-block.h (tree_node): Forward declare if needed.
6897         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
6898         (BLOCK_HEAD_TREE): Define.
6899         (BLOCK_END_TREE): Define.
6900         (struct loops): Rename field 'tree' to 'tree_root'.
6901         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
6902         'end_tree'.
6903         (flow_loops_tree_build): Rename reference to field 'tree' to
6904         'tree_root'.
6905         (flow_loops_level_compute): Ditto.
6906         * predict.c (estimate_bb_frequencies): Ditto.
6907         * tree.h (struct tree_common): Add field 'aux'.
6908
6909 2001-07-09  Stan Shebs  <shebs@apple.com>
6910
6911         * config/darwin.c (darwin_encode_section_info): Don't mark any
6912         DECL_EXTERNAL node as defined.
6913
6914 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6915
6916         * pa.c (pa_init_machine_status, pa_mark_machine_status,
6917         pa_free_machine_status, hppa_init_pic_save): Delete.
6918         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
6919         (hppa_profile_hook): Use hppa_pic_save_rtx.
6920         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
6921         hppa_init_pic_save): Delete.
6922         (hppa_pic_save_rtx): Declare.
6923         * pa.md (call, call_value, sibcall, sibcall_value,
6924         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
6925
6926 2001-07-09  Kazu Hirata  <kazu@hxi.com>
6927
6928         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
6929         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
6930
6931 2001-07-09  Andreas Jaeger  <aj@suse.de>
6932
6933         * output.h: Add declaration of final_forward_branch_p.
6934
6935         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
6936
6937         * varray.c: Include errors.h for internal_error and trim_filename
6938         declarations.
6939
6940         * Makefile.in (varray.o): Add errors.h.
6941
6942 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
6943
6944         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
6945         * optabs.c (have_add2_insn): Check whether the add insn chosen
6946         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
6947         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
6948
6949 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
6950
6951         * Makefile.in (OBJS): Add ssa-ccp.o
6952         (ssa-ccp.o): Add dependencies.
6953         * toplev.c (DFI_ssa_ccp): New dump file enum.
6954         (dump_file): Add entry for dumping after SSA CCP.
6955         (flag_ssa_ccp): New flag variable.
6956         (f_options): Add -fssa-ccp.
6957         (rest_of_compilation): Run SSA CCP if requested.
6958         * timevar.def (TV_SSA_CCP): New timevar.
6959         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
6960         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
6961         Fix minor typo in SSA DCE documentation.
6962         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
6963         Add documentation for new dump option.  Renumber dump files
6964         appropriately.
6965
6966 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
6967
6968         * emit-rtl.c (gen_highpart_mode): New.
6969         * rtl.h (gen_highpart_mode): Declare.
6970         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
6971         operand can be VOIDmode constant.
6972
6973 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
6974
6975         * flow.c (redirect_edge_and_branch_force): New.
6976         (can_fallthru): Ensure that basic blocks are succeeding.
6977         (try_optimize_cfg): Do not delete basic block if it is the last one.
6978
6979         * flow.c (try_redirect_by_replacing_jump): Do not remove
6980         jumps with side effects, unlink chain on fallthru edge;
6981         set block for new jump instruction; avoid basic block to
6982         over by line number note.
6983
6984         * flow.c (try_simplify_condjump): Verify that the condjump
6985         is not always falling trought.
6986
6987         Re-install patch:
6988         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
6989
6990         * flow.c (forwarder_block_p): Fix for fallthru blocks.
6991         (try_redirect_by_replacing_jump): Update properly the count
6992         and frequency information.
6993
6994 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6995
6996         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
6997         address that is a LO_SUM specially.
6998         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
6999
7000         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
7001
7002         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
7003         (operand_subword): Use them.
7004         (change_address_1): Renamed from change_address; new arg VALIDATE.
7005         * expr.h: Reflect above changes; change_address now macro.
7006         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
7007         making MEM.
7008         * cselib.c (add_mem_for_addr): Likewise.
7009         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
7010         * regmove.c (try_apply_stack_adjustment): Likewise.
7011         * reload.c (push_reload, make_memloc): Likewise.
7012         * reload1.c (eliminate_regs): Likewise.
7013         * simplify-rtx.c (simplify_replace_rtx): Likewise.
7014         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
7015         adjust_addess.
7016         * combine.c (make_extraction, simplify_shift_const): Likewise.
7017         (gen_lowpart_for_combine): Likewise.
7018         * cse.c (gen_lowpart_if_possible): Likewise.
7019         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
7020         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
7021         * optabs.c (gen_move_insn): Likewise.
7022         * reload1.c (alter_reg): Likewise.
7023         * simplify-rtx.c (simplify_subreg): Likewise.
7024         * stmt.c (expand_anon_union_decl): Likewise.
7025         * recog.c (validate_replace_rtx_1): Likewise.
7026         (expr.h): Include.
7027         * Makefile.in (recog.o): Add $(EXPR_H).
7028         * explow.c (stabilize): Call replace_equiv_address.
7029         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
7030         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
7031
7032 2001-07-03  Andrew Haley  <aph@redhat.com>
7033
7034         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
7035         the mode of the memory location.
7036
7037 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
7038
7039         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
7040
7041 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
7042
7043         * final.c (output_addr_const): Use target opening and
7044         closing parentheses.
7045         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
7046         defaults, add to TARGET_ASM_OUT.
7047         * target.h (struct gcc_target): Add open_paren and close_paren.
7048         * doc/md.texi: Update.
7049         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
7050         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
7051         TARGET_ASM_CLOSE_PAREN.
7052         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
7053         Override.
7054         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
7055         Override.
7056         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
7057         * config/a29k/a29k.h: Similarly.
7058         * config/alpha/alpha.h: Similarly.
7059         * config/arc/arc.h: Similarly.
7060         * config/arm/aof.h: Similarly.
7061         * config/arm/aout.h: Similarly.
7062         * config/avr/avr.h: Similarly.
7063         * config/c4x/c4x.h: Similarly.
7064         * config/clipper/clipper.h: Similarly.
7065         * config/convex/convex.h: Similarly.
7066         * config/d30v/d30v.h: Similarly.
7067         * config/dsp16xx/dsp16xx.h: Similarly.
7068         * config/elxsi/elxsi.h: Similarly.
7069         * config/fr30/fr30.h: Similarly.
7070         * config/h8300/h8300.h: Similarly.
7071         * config/i370/i370.h: Similarly.
7072         * config/i386/i386.h: Similarly.
7073         * config/i860/i860.h: Similarly.
7074         * config/i960/i960.h: Similarly.
7075         * config/ia64/ia64.h: Similarly.
7076         * config/m32r/m32r.h: Similarly.
7077         * config/m68hc11/m68hc11.h: Similarly.
7078         * config/m68k/m68k.h: Similarly.
7079         * config/m88k/m88k.h: Similarly.
7080         * config/mcore/mcore.h: Similarly.
7081         * config/mips/mips.h: Similarly.
7082         * config/mn10200/mn10200.h: Similarly.
7083         * config/mn10300/mn10300.h: Similarly.
7084         * config/ns32k/ns32k.h: Similarly.
7085         * config/pa/pa.h: Similarly.
7086         * config/pdp11/pdp11.h: Similarly.
7087         * config/pj/pj.h: Similarly.
7088         * config/romp/romp.h: Similarly.
7089         * config/rs6000/rs6000.h: Similarly.
7090         * config/sh/sh.h: Similarly.
7091         * config/sparc/sparc.h: Similarly.
7092         * config/v850/v850.h: Similarly.
7093         * config/vax/vax.h: Similarly.
7094         * config/we32k/we32k.h: Similarly.
7095
7096 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
7097
7098         * doc/c-tree.texi: Document representation of attributes.
7099
7100 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7101
7102         * doc/tm.texi: Update some places for the rename of target to
7103         targetm.  Fix typo.
7104
7105 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7106
7107         * target.h (struct gcc_target): Add insert_attributes.
7108         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
7109         (TARGET_INITIALIZER): Update.
7110         * tree.c, tree.h (default_insert_attributes): New function.
7111         Update comments on other default functions to refer to targetm,
7112         not target.
7113         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
7114         TARGET_INSERT_ATTRIBUTES.
7115         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
7116         * c-common.c (decl_attributes): Use targetm.insert_attributes.
7117         Don't use PRAGMA_INSERT_ATTRIBUTES.
7118         * Makefile.in (c-common.o): Depend on $(TARGET_H).
7119         * c-decl.c (start_decl, start_function): Don't call
7120         SET_DEFAULT_DECL_ATTRIBUTES.
7121         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
7122         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
7123         declare.
7124         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
7125         (c4x_check_attribute): Avoid modifying attribute list itself.
7126         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
7127         Make static.
7128         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
7129         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
7130         declare.
7131         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
7132         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
7133         Make static.
7134         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
7135         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
7136         declare.
7137         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
7138         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
7139         Adjust parameters.  Make static.
7140
7141 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7142
7143         * c-common.c (decl_attributes): Only take a single attributes
7144         parameter.
7145         * c-common.h (decl_attributes): Update prototype.
7146         * c-decl.c (start_decl, start_function): Only take a single
7147         attributes parameter.  Update calls to decl_attributes.
7148         (finish_struct, finish_enum): Update calls to decl_attributes.
7149         (push_parm_decl): Expect unified list of attributes.  Update call
7150         to decl_attributes.
7151         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
7152         notype_nested_function, component_declarator,
7153         component_notype_declarator, label): Update calls to
7154         decl_attributes.
7155         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
7156         lists that are passed to push_parm_decl.
7157         * c-tree.h (start_function, start_decl): Update prototypes.
7158         * config/sh/sh-protos.h, config/sh/sh.c
7159         (sh_pragma_insert_attributes): Only take a single attributes
7160         parameter.
7161         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
7162         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
7163         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
7164         build_module_descriptor, generate_static_references,
7165         generate_strings, build_selector_translation_table,
7166         generate_descriptor_table, generate_protocols,
7167         generate_ivars_list, generate_dispatch_table,
7168         generate_protocol_list, generate_category,
7169         generate_shared_structures, really_start_method, add_objc_decls,
7170         generate_classref_translation_entry): Update calls to start_decl
7171         and start_function.
7172         (build_tmp_function_decl, start_method_def): Unify attribute lists
7173         that are passed to push_parm_decl.
7174
7175 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
7176
7177         * final.c (no_asm_to_stream): New.
7178         (final_scan_insn): Use target structures for prologue ends
7179         and epilogue starts.
7180         * output.h (no_asm_to_stream): New.
7181         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
7182         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
7183         (TARGET_ASM_OUT): Update.
7184         * target.h (struct gcc_target): New members function_end_prologue
7185         and function_begin_epilogue.
7186         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
7187         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
7188         * config/alpha/alpha.c (output_end_prologue): Rename to
7189         alpha_output_function_end_prologue.  Use in target struct
7190         and make static.
7191         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
7192         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
7193         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
7194         ia64_output_function_end_prologue.  Use in target struct
7195         and make static.
7196         (ia64_function_prologue, ia64_funciton_epilogue): Rename
7197         mistyped prototypes.
7198         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
7199         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
7200         Delete.
7201         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
7202         an use in target struct, make static.
7203         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
7204         Delete.
7205
7206 2001-07-08  Richard Henderson  <rth@redhat.com>
7207
7208         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
7209
7210 2001-07-08  Richard Henderson  <rth@redhat.com>
7211
7212         * config/i386/i386.md: Remove constraints strings from define_split
7213         and define_peephole2 patterns.
7214         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
7215         (eh_return): Use them.
7216
7217 2001-07-08  Richard Henderson  <rth@redhat.com>
7218
7219         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
7220         Document MD_FALLBACK_FRAME_STATE_FOR.
7221
7222 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7223
7224         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
7225         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
7226         elimination.
7227         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
7228
7229 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
7230
7231         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
7232         of the label inside NAME as opposed to just the end of NAME.
7233
7234 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7235
7236         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
7237         * config/alpha/alpha.c (alpha_init_machine_status,
7238         alpha_mark_machine_status, alpha_free_machine_status): Delete.
7239         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
7240         (vms_valid_decl_attribute_p): Make static, conditionally compile.
7241         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
7242
7243 2001-07-06  Stan Shebs  <shebs@apple.com>
7244
7245         * target.h (targetm): Rename global from "target", so as not to
7246         conflict with local variables.
7247         * c-decl.c: Ditto.
7248         * c-typeck.c: Ditto.
7249         * final.c: Ditto.
7250         * tree.c: Ditto.
7251         * cp/decl.c: Ditto.
7252         * cp/decl2.c: Ditto.
7253         * cp/typeck.c: Ditto.
7254         * 1750a/1750a.c: Ditto.
7255         * a29k/a29k.c: Ditto.
7256         * arc/arc.c: Ditto.
7257         * arm/arm.c: Ditto.
7258         * avr/avr.c: Ditto.
7259         * clipper/clipper.c: Ditto.
7260         * convex/convex.c: Ditto.
7261         * d30v/d30v.c: Ditto.
7262         * dsp16xx/dsp16xx.c: Ditto.
7263         * elxsi/elxsi.c: Ditto.
7264         * fr30/fr30.c: Ditto.
7265         * h8300/h8300.c: Ditto.
7266         * i370/i370.c: Ditto.
7267         * i386/i386.c: Ditto.
7268         * i860/i860.c: Ditto.
7269         * i960/i960.c: Ditto.
7270         * ia64/ia64.c: Ditto.
7271         * m32r/m32r.c: Ditto.
7272         * m68hc11/m68hc11.c: Ditto.
7273         * m68k/m68k.c: Ditto.
7274         * m88k/m88k.c: Ditto.
7275         * mips/mips.c: Ditto.
7276         * ns32k/ns32k.c: Ditto.
7277         * pa/pa.c: Ditto.
7278         * pdp11/pdp11.c: Ditto.
7279         * romp/romp.c: Ditto.
7280         * rs6000/rs6000.c: Ditto.
7281         * sh/sh.c: Ditto.
7282         * sparc/sparc.c: Ditto.
7283         * vax/vax.c: Ditto.
7284         * we32k/we32k.c: Ditto.
7285         * doc/tm.texi: Update the manual to match.
7286
7287 2001-07-06  Richard Henderson  <rth@redhat.com>
7288
7289         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
7290         DWARF2_UNWIND_INFO not just whether it is defined.
7291
7292 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
7293
7294         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
7295         call to simplify_binary_operation returns a new pattern.
7296
7297 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
7298
7299         * glimits.h (__SHRT_MAX__): New.
7300         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
7301         (SHRT_MAX): Define in terms of __SHRT_MAX__.
7302
7303 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
7304
7305         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
7306         avoid warnings.
7307
7308 2001-07-06  Richard Henderson  <rth@redhat.com>
7309
7310         * bitmap.c (bitmap_release_memory): Move adjacent to the
7311         allocation functions.
7312         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
7313         the implementation.  Binary search for the set bit.
7314         (bitmap_union_of_diff): Allocate the temporary on the stack
7315         instead of using xmalloc.
7316
7317 2001-07-06  Richard Henderson  <rth@redhat.com>
7318
7319         * genrecog.c (validate_pattern): Warn for constraints in
7320         define_{expand,split,peephole2}.  Remove strict_low_part
7321         before looking up match_dup.
7322
7323 2001-07-06  DJ Delorie  <dj@redhat.com>
7324
7325         * doc/gcc.texi (Makefile): Rename to be a more general purpose
7326         chapter about various build hints and history.  Add section
7327         talking about the various types of native and cross builds.
7328
7329 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7330
7331         * Makefile.in (final.o): Depend on target.h.
7332         * final.c: Include target.h.
7333         (default_function_pro_epilogue): New.
7334         (final_start_function): Use target structure for function prologues.
7335         (final_end_function): Use target structure for function epilogues.
7336         * fold-const.c (real_hex_to_f): Constify s and p.
7337         * output.h (default_function_pro_epilogue): New.
7338         * real.h (real_hex_to_f): Update prototype.
7339         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
7340         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
7341         (TARGET_INITIALIZER): Update.
7342         * target.h (gcc_target): Add struct asm_out.
7343         * doc/tm.texi: Update.
7344
7345 config:
7346         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
7347         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
7348         in cpu/cpu.c, or rename old functions consistently.  Take
7349         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
7350         redundant macros and prototypes.  Make new functions static.
7351
7352         * 1750a/1750a.c: Similarly.
7353         * 1750a/1750a.h: Similarly.
7354         * a29k/a29k-protos.h: Similarly.
7355         * a29k/a29k.c: Similarly.
7356         * a29k/a29k.h: Similarly.
7357         * arc/arc-protos.h: Similarly.
7358         * arc/arc.c: Similarly.
7359         * arc/arc.h: Similarly.
7360         * arm/arm-protos.h: Similarly.
7361         * arm/arm.c: Similarly.
7362         * arm/arm.h: Similarly.
7363         * avr/avr-protos.h: Similarly.
7364         * avr/avr.c: Similarly.
7365         * avr/avr.h: Similarly.
7366         * clipper/clipper-protos.h: Similarly.
7367         * clipper/clipper.c: Similarly.
7368         * clipper/clipper.h: Similarly.
7369         * convex/convex.c: Similarly.
7370         * convex/convex.h: Similarly.
7371         * d30v/d30v-protos.h: Similarly.
7372         * d30v/d30v.c: Similarly.
7373         * d30v/d30v.h: Similarly.
7374         * d30v/d30v.md: Similarly.
7375         * dsp16xx/dsp16xx-protos.h: Similarly.
7376         * dsp16xx/dsp16xx.c: Similarly.
7377         * dsp16xx/dsp16xx.h: Similarly.
7378         * elxsi/elxsi.c: Similarly.
7379         * elxsi/elxsi.h: Similarly.
7380         * fr30/fr30.c: Similarly.
7381         * fr30/fr30.md: Similarly.
7382         * h8300/h8300-protos.h: Similarly.
7383         * h8300/h8300.c: Similarly.
7384         * h8300/h8300.h: Similarly.
7385         * i370/i370-protos.h: Similarly.
7386         * i370/i370.c: Similarly.
7387         * i370/i370.h: Similarly.
7388         * i386/i386.c: Similarly.
7389         * i386/osf1elf.h: Similarly.
7390         * i386/osfrose.h: Similarly.
7391         * i860/i860-protos.h: Similarly.
7392         * i860/i860.c: Similarly.
7393         * i860/i860.h: Similarly.
7394         * i960/i960-protos.h: Similarly.
7395         * i960/i960.c: Similarly.
7396         * i960/i960.h: Similarly.
7397         * ia64/ia64-protos.h: Similarly.
7398         * ia64/ia64.c: Similarly.
7399         * ia64/ia64.h: Similarly.
7400         * m32r/m32r-protos.h: Similarly.
7401         * m32r/m32r.c: Similarly.
7402         * m32r/m32r.h: Similarly.
7403         * m68hc11/m68hc11-protos.h: Similarly.
7404         * m68hc11/m68hc11.c: Similarly.
7405         * m68hc11/m68hc11.h: Similarly.
7406         * m68k/crds.h: Similarly.
7407         * m68k/dpx2.h: Similarly.
7408         * m68k/m68k-protos.h: Similarly.
7409         * m68k/m68k.c: Similarly.
7410         * m68k/m68k.h: Similarly.
7411         * m68k/news.h: Similarly.
7412         * m88k/m88k-protos.h: Similarly.
7413         * m88k/m88k.c: Similarly.
7414         * m88k/m88k.h: Similarly.
7415         * mips/mips-protos.h: Similarly.
7416         * mips/mips.c: Similarly.
7417         * mips/mips.h: Similarly.
7418         * ns32k/merlin.h: Similarly.
7419         * ns32k/ns32k.c: Similarly.
7420         * ns32k/ns32k.h: Similarly.
7421         * ns32k/tek6000.h: Similarly.
7422         * pa/pa-protos.h: Similarly.
7423         * pa/pa.c: Similarly.
7424         * pa/pa.h: Similarly.
7425         * pdp11/2bsd.h: Similarly.
7426         * pdp11/pdp11-protos.h: Similarly.
7427         * pdp11/pdp11.c: Similarly.
7428         * pdp11/pdp11.h: Similarly.
7429         * romp/romp-protos.h: Similarly.
7430         * romp/romp.c: Similarly.
7431         * romp/romp.h: Similarly.
7432         * rs6000/rs6000-protos.h: Similarly.
7433         * rs6000/rs6000.c: Similarly.
7434         * rs6000/rs6000.h: Similarly.
7435         * rs6000/sysv4.h: Similarly.
7436         * sh/sh-protos.h: Similarly.
7437         * sh/sh.c: Similarly.
7438         * sh/sh.h: Similarly.
7439         * sparc/sparc-protos.h: Similarly.
7440         * sparc/sparc.c: Similarly.
7441         * sparc/sparc.h: Similarly.
7442         * vax/vax.c: Similarly.
7443         * vax/vax.h: Similarly.
7444         * vax/vms.h: Similarly.
7445         * we32k/we32k.c: Similarly.
7446         * we32k/we32k.h: Similarly.
7447
7448 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
7449
7450         * basic-block.h (first_insn_after_basic_block_note): Declare.
7451         * flow.c (first_insn_after_basic_block_note): Define.  Moved
7452         from...
7453         * ssa.c (first_insn_after_basic_block_note): Remove.
7454         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
7455         necessary.
7456         (ssa_eliminate_dead_code): Properly update the CFG and PHI
7457         nodes when we find a dead conditional branch.  Insert BARRIERs
7458         after any blocks with no successors, but which do not have
7459         any BARRIERs.
7460
7461 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
7462
7463         * varray.c (varray_check_failed): Use internal_error.
7464
7465 2001-07-05  Andrew Haley  <aph@redhat.com>
7466
7467         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
7468         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
7469         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
7470
7471 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
7472
7473         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
7474         reference if the target constant is also a SYMBOL_REF.
7475
7476 2001-07-05  Eric Christopher  <echristo@redhat.com>
7477
7478         * config/mips/mips.h (MASK_MIPS3900): Remove.
7479         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
7480         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
7481         (TARGET_MIPS3900): Change to use mips_arch.
7482         (TARGET_MIPS4000): New.
7483         (TARGET_MIPS4100): New.
7484         (TARGET_MIPS4300): New.
7485         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
7486         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
7487         for -mipsX.
7488         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
7489         (ISA_HAS_BRANCHLIKELY): To here.
7490         (CC1_CPU_SPEC):  New.
7491         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
7492         (mips_arch_string): Declare.
7493         (mips_arch): Declare.
7494         (TARGET_OPTIONS): Add -march and -mtune.
7495
7496         * config/mips/mips.c (mips_arch_string): New.
7497         (mips_arch): New.
7498         (override_options): Handle -march for codegen and -mtune
7499         for scheduling. Use mips_arch. Move tx39 target default here.
7500         (mips_parse_cpu): Move error message to override_options.
7501
7502         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
7503
7504         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
7505
7506         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
7507         (MIPS Options): Ditto.  Change mcpu entry to historical text.
7508
7509 2001-07-05  H.J. Lu  (hjl@gnu.org)
7510
7511         * config/mips/mips.c (mips_parse_cpu): New function to parse
7512         -march=*/-mcpu=*.
7513
7514 2001-07-05  Jim Wilson  <wilson@redhat.com>
7515
7516         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
7517         * config/ia64/t-ia64: Likewise.
7518         (LIB1ASMFUNCS): Update comment.
7519
7520 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
7521
7522         * doc/install.texi (Install GCC: Binaries): Fix typo.
7523
7524 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7525
7526         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
7527         reference using the stack pointer, adjust it since we push Y
7528         temporarily.
7529         ("*ashrsi3"): Likewise.
7530         ("*lshrsi3"): Likewise.
7531
7532 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7533
7534         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
7535         when -fomit-frame-pointer is used.
7536
7537 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
7538
7539         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
7540         (try_redirect_by_replacing_jump): Reverse updating properly the
7541         count and frequency information.  Reverse removing cc0 setter.
7542         (forwarder_block_p): Reverse fixing for fallthru blocks.
7543
7544 2001-07-05  DJ Delorie  <dj@redhat.com>
7545
7546         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
7547         (translate_options): If the above is defined, use it to map
7548         given options to new options.
7549         * doc/tm.texi: Document it.
7550
7551 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
7552             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7553
7554         * doc/invoke.texi (Optimize Options): Document that -fgcse may
7555         cause programs using computed gotos to run more slowly.
7556
7557 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7558
7559         * doc/install.texi (Specific): Markup, spelling and typo fixes.
7560         Fixed sorting.
7561         Consistently require binutils 2.11.2, not prereleases.
7562         (Specific, decstation-*): Canonicalize as mips-dec-*.
7563         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
7564         always necessary.
7565         (Specific, m68k-altos): Removed reference to README.altos, deleted.
7566         (Specific, mips-*): Reword MIPS C compiler requirements.
7567         (Specific, powerpc*-*-*): New, mention --with-cpu once.
7568         (Specific, sunv5): Removed, obsolete.
7569
7570 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
7571
7572         * dwarf2out.c (output_loc_list): Use an all ones mask for
7573         .text asm output and don't rely on long long
7574         literals. Reformat some long lines.
7575
7576 2001-07-05  Andreas Jaeger  <aj@suse.de>
7577
7578         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
7579         section.
7580
7581 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
7582
7583         * dwarf2out.c (dwarf2out_define): Update comment.
7584         (dwarf2out_undef): Ditto.
7585         (dwarf2out_start_source_file): Ditto.
7586         (dwarf2out_end_source_file): Ditto.
7587         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
7588         since we never call the start/end debug hook for the primary file.
7589
7590 2001-07-04  Kazu Hirata  <kazu@hxi.com>
7591
7592         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
7593         from shll.
7594
7595 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
7596
7597         * cppinit.c (remove_dup_dirs): Inform if a system include
7598         directory is being reordered.
7599         * doc/invoke.texi (Directory Options): GCC warns if you hide a
7600         system include.
7601         * doc/cpp.texi (Search Paths): Likewise.
7602         * doc/gcc.texi (Interoperation): Remove information about
7603         -I/usr/include.
7604
7605 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
7606
7607         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
7608         (VARRAY_TOP_CHAR_PTR): Likewise.
7609
7610 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7611
7612         * gcc.c (process_command): Don't assign elements of a const char*.
7613
7614 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7615
7616         * emit-rtl.c (change_address): Don't abort if invalid address while
7617         reload is in progress.
7618
7619 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
7620
7621         * c-lex.c (cb_file_change): Pass line number to
7622         debug_start_source_file.
7623         (cb_undefine): Pass correct line number to debug_undef.
7624
7625         * toplev.c (debug_start_source_file): Add line number to
7626         parameters. Pass it along to dwarf2out_start_source_file.
7627         (decode_g_option): Stop resetting debug level back to normal when
7628         we change debug formats, unless the current level is
7629         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
7630         3).
7631
7632         * toplev.h (debug_start_source_file): Add line number to
7633         parameters.
7634
7635         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
7636         parameters.
7637
7638         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
7639         parameters.
7640         Output debug_macinfo data for starting file if requested.
7641         (dwarf2out_end_source_file): Output debug_macinfo data for ending
7642         file if requested.
7643         (dwarf2out_define): Output debug_macinfo data for defining a macro
7644         if requested.
7645         (dwarf2out_undef): Output debug_macinfo data for undefining a
7646         macro if requested.
7647         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
7648         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
7649         (macinfo_section_label): New. DWARF2 macro info section label.
7650         (dwarf2out_init): If we want macro info, output the start label
7651         for the section.
7652         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
7653         attribute to the compilation unit die pointing to the macro info.
7654
7655 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
7656
7657         * dwarf2out.c (new_loc_list): Move to inside #ifdef
7658         DWARF2_DEBUGGING_INFO.
7659         (add_loc_descr_to_loc_list): Ditto.
7660         (output_loc_list): Ditto.
7661         Also, fix thinko in curr not being initialized.
7662         (gen_internal_sym): Ditto.
7663
7664 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7665
7666         * emit-rtl.c (replace_equiv_address): New function.
7667         * expr.h (replace_equiv_address): New declaration.
7668         * explow.c (validize_mem): Call it instead of change_address and
7669         also call if -fforce-addr and address is constant.
7670         * expr.c: Replace more calls to change_address with adjust_address
7671         and/or replace_equiv_address or to validize_mem.
7672         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
7673         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
7674         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
7675         * config/i370/i370.md, config/i860/i860.md: Likewise.
7676         * config/i960/i960.md, config/mips/mips.c: Likewise.
7677         * config/mips/mips.md, config/pa/pa.md: Likewise.
7678         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
7679         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
7680
7681 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7682
7683         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
7684
7685         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
7686         function.
7687
7688 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7689
7690         * doc/include: New directory.
7691         * doc/fdl.texi: Move to doc/include/fdl.texi.
7692         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
7693         * doc/include/funding.texi, doc/include/gpl.texi: New files.
7694         * doc/gcc.texi: Use funding.texi and gpl.texi.
7695         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
7696         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
7697         Update dependencies and use -I $(docdir)/include.
7698
7699 2001-07-04  Anthony Green  <green@redhat.com>
7700
7701         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
7702
7703 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7704
7705         * doc/install.texi (sparc64-*-*): Remove garbage.
7706
7707 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
7708
7709         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
7710         Fix typo in last change to use adjust_address.
7711
7712 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7713
7714         * doc/install.texi (Specific): Update information for *-*-solaris*.
7715
7716 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7717
7718         * explow.c (plus_constant_wide): Reinitialize Y for restart.
7719
7720 2001-07-03  Stan Shebs  <shebs@apple.com>
7721
7722         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
7723         case for flag_no_mach_text_sections.
7724         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
7725         * config/darwin.c (flag_no_mach_text_sections): Remove.
7726         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
7727
7728 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7729
7730         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
7731         and avoid checking for constant as first operand.
7732         * recog.c (find_constant_term_loc): No longer static.
7733         (adj_offettable_operand): Delete.
7734         * rtl.h (adj_offsettable_operand): Delete declaration.
7735         (find_constant_term): Add declaration.
7736         * caller-save.c: Replace calls to adj_offsettable_operand with calls
7737         to adjust_address.
7738         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
7739         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
7740         * config/i386/i386.c, config/i386/i386.md: Likewise.
7741         * config/i860/i860.c, config/i960/i960.c: Likewise.
7742         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
7743         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
7744         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
7745         * config/mips/mips.c, config/mips/mips.md: Likewise.
7746         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
7747         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
7748         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
7749         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
7750         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
7751         * config/ns32k/ns32k.md: Likewise.
7752
7753 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
7754
7755         * rtl.c (copy_rtx): Handle 'T' format letter.
7756         * gensupport.c (collect_insn_data): Likewise.
7757         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
7758
7759 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
7760
7761         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
7762         -B option.  Use 'dir' not 'foo' as example directory name.
7763
7764 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7765
7766         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7767         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
7768
7769 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7770
7771         * doc/cppinternals.texi: Improve formatting and logical markup.
7772
7773 2001-07-03  Andreas Jaeger  <aj@suse.de>
7774
7775         * Makefile.in (insn-recog.o): Add dependency on reload.h.
7776
7777         * genrecog.c (write_header): Include reload.h for prototypes in
7778         insn-recog.c.
7779
7780 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
7781
7782 config:
7783         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
7784         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
7785         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
7786         i386_pe_valid_type_attribute_p): Add.
7787         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
7788         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
7789
7790 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7791
7792         * explow.c (plus_constant_wide, case LO_SUM): New case.
7793         (plus_constant_for_output_wide): Delete.
7794         * rtl.h (plus_constant_for_output): Delete.
7795         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
7796         instead of plus_constant_for_output.
7797         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
7798         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
7799         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
7800         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
7801         * config/sparc/sparc.md: Likewise.
7802         Convert some change_address calls to adjust_address.
7803
7804 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7805
7806         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
7807         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
7808         documentation of -std and -Wwrite-strings.
7809
7810 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
7811
7812         * cse.c (canon_hash): Don't register registers in very small
7813         register classes, as extending their lifetime might cause
7814         reload to fail.
7815
7816 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
7817
7818         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
7819
7820         * flow.c (forwarder_block_p): Fix for fallthru blocks.
7821         (try_redirect_by_replacing_jump): Update properly the count
7822         and frequency information.
7823
7824 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
7825
7826         * toplev.c (dump_file_index): Move SSA dumps just after first
7827         jump dump.
7828         (dump_file): Corresponding changes.
7829         (rest_of_compilation): Move SSA path to just after the first
7830         jump pass.
7831         * doc/gcc.texi (Passes): Update due to movement of SSA path.
7832         * doc/invoke.texi: Update dump file #s as they were completely
7833         out of date with reality.
7834
7835 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
7836
7837         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
7838
7839         * expr.c (emit_move_insn_1): Deal with non-default
7840         STACK_PUSH_CODE.
7841
7842         * expr.c (emit_single_push_insn): Fix warning.
7843
7844 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7845
7846         * expr.c (emit_move_insn_1): Avoid modifying
7847         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
7848
7849 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7850
7851         * emit-rtl.c (adjust_address): New function.
7852         * expr.h (adjust_address): Add declaration.
7853         * builtins.c: Replace some calls to change_address with calls to it
7854         or to validize_mem.
7855         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
7856         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
7857         * config/arm/arm.c, config/convex/convex.c: Likewise.
7858         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
7859         * config/i386/i386.c, config/i386/i386.md: Likewise.
7860         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
7861         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
7862         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
7863         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
7864         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
7865
7866 2001-07-02  Jim Wilson  <wilson@redhat.com>
7867
7868         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
7869
7870 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
7871
7872         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
7873         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
7874
7875 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
7876
7877         * cppinit.c (lang_defaults): New table.
7878         (set_lang): Just read from lang_defaults into the live options
7879         structure.
7880
7881 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
7882
7883         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
7884         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
7885         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
7886
7887 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7888
7889         * doc/install.texi: Various spelling and markup fixes.
7890         (Installing GCC): Component specific installation instructions are
7891         gone.
7892         Fix reference.
7893         Warn about removing old install dir in the presence of shared libs.
7894         (Configuration): Invoke with options target to match configure
7895         --help.
7896         Consistently refer to gas, gld pathnames.
7897         Invert --enable-multilib documentation.
7898         Remove references to old compiler versions.
7899
7900 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7901
7902         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
7903
7904 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7905
7906         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
7907         section.
7908         (Specific, mips*-sgi-irix5): Note IDO download.
7909         Reworded MIPS C hints.
7910         Use GNU as instead of GAS.
7911         Markup fixes.
7912         Removed SGI Freeware reference, IRIX 6 only.
7913         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
7914         Note N64 library requirement/workaround.
7915         Update O32 hints.
7916         Complete list of structure passing bug victims.
7917
7918 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7919
7920         * doc/install.texi: Remove CVS Id.
7921
7922 2001-07-02  Andreas Jaeger  <aj@suse.de>
7923
7924         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
7925         (find_inherently_necessary): Remove unused variable.
7926
7927 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
7928
7929         * c-common.h (TDI_inlined): New ast dump phase.
7930         (dump_flag_name): New function.
7931         * c-dump.c (dump_files): Add inlined phase.
7932         (dump_flag_name): Define.
7933         * doc/invoke.texi (-fdump-ast-inlined): Document.
7934
7935 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7936
7937         * stor-layout.c (layout_decl): Revert change to handling of alignment
7938         in packed types.
7939
7940 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7941
7942         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
7943         for FIELD_DECL.
7944
7945 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
7946
7947         * doc/tm.texi (FUNCTION_ARG): Document that the last call
7948         is special.
7949
7950 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
7951
7952         * tlink.c (recompile_files): Remove COMPILER_PATH and
7953         LIBRARY_PATH from the environment.
7954
7955 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
7956
7957         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
7958         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
7959         enumerators.
7960         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
7961
7962         * c-parse.in (OBJC_STRING): Kill.
7963         (objc_string): Decompose to [objc_string] '@' STRING.
7964         (reswords): Take the leading '@' off all the Objective C keywords.
7965         (objc_rid_sans_at): Kill.
7966         (init_reswords): Don't initialize it.
7967         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
7968         (_yylex): Kill reconsider label.  Look ahead one token after
7969         an '@'; if we get an identifier, check whether it's an
7970         Objective C @-keyword.  If so, return the keyword.  Otherwise,
7971         put back the token and return the '@' as a terminal.
7972
7973         * cpplib.c (lex_macro_node): Remove unnecessary check for
7974         leading '@' on identifier.  Clarify control flow and commentary.
7975
7976 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7977
7978         * cse.c (new_label_ref): Variable deleted.
7979         (insert): Remove set of new_label_ref.
7980         (check_for_label_ref): New function.
7981         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
7982
7983 See ChangeLog.5 for earlier changes.