OSDN Git Service

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