OSDN Git Service

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