OSDN Git Service

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