OSDN Git Service

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