OSDN Git Service

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