OSDN Git Service

* config/i386/att.h: Fix comment formatting.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-10-31  Kazu Hirata  <kazu@hxi.com>
2
3         * config/i386/att.h: Fix comment formatting.
4         * config/i386/beos-elf.h: Likewise.
5         * config/i386/bsd.h: Likewise.
6         * config/i386/bsd386.h: Likewise.
7         * config/i386/crtdll.h: Likewise.
8         * config/i386/cygwin.asm: Likewise.
9         * config/i386/cygwin.h: Likewise.
10         * config/i386/djgpp.h: Likewise.
11         * config/i386/freebsd-aout.h: Likewise.
12         * config/i386/freebsd.h: Likewise.
13         * config/i386/gas.h: Likewise.
14         * config/i386/i386-interix.h: Likewise.
15         * config/i386/i386-protos.h: Likewise.
16         * config/i386/i386.c: Likewise.
17         * config/i386/i386.h: Likewise.
18         * config/i386/i386.md: Likewise.
19         * config/i386/i386elf.h: Likewise.
20         * config/i386/interix.c: Likewise.
21         * config/i386/isc.h: Likewise.
22         * config/i386/isccoff.h: Likewise.
23         * config/i386/iscdbx.h: Likewise.
24         * config/i386/linux.h: Likewise.
25         * config/i386/lynx.h: Likewise.
26         * config/i386/mingw32.h: Likewise.
27         * config/i386/netbsd-elf.h: Likewise.
28         * config/i386/next.h: Likewise.
29         * config/i386/osf1elf.h: Likewise.
30         * config/i386/osfrose.h: Likewise.
31         * config/i386/sco5.h: Likewise.
32         * config/i386/seq-gas.h: Likewise.
33         * config/i386/seq-sysv3.h: Likewise.
34         * config/i386/sequent.h: Likewise.
35         * config/i386/sol2.h: Likewise.
36         * config/i386/sun386.h: Likewise.
37         * config/i386/uwin.asm: Likewise.
38         * config/i386/uwin.h: Likewise.
39         * config/i386/vxi386.h: Likewise.
40         * config/i386/win32.h: Likewise.
41         * config/i386/winnt.c: Likewise.
42         * config/i386/xm-cygwin.h: Likewise.
43         * config/i386/xm-mingw32.h: Likewise.
44
45 2001-10-31  Kazu Hirata  <kazu@hxi.com>
46
47         * builtins.def: Fix comment typos.
48         * config/alpha.c: Likewise.
49         * config/arm/arm.c: Likewise.
50         * config/avr/avr.h: Likewise.
51         * config/d30v/d30v.c: Likewise.
52         * config/d30v/d30v.h: Likewise.
53         * config/d30v/d30v.md: Likewise.
54         * config/dsp16xx/dsp16xx.c: Likewise.
55         * config/fr30/fr30.c: Likewise.
56         * config/fr30/fr30.md: Likewise.
57         * config/i386/i386.c: Likewise.
58         * config/i860/i860.c: Likewise.
59         * config/i960/i960.c: Likewise.
60         * config/ia64/ia64.c: Likewise.
61         * config/mips/mips.c: Likewise.
62         * config/pa/pa.c: Likewise.
63         * config/rs6000/rs6000.c: Likewise.
64         * config/s390/s390.c: Likewise.
65         * config/sparc/sparc.c: Likewise.
66
67 2001-10-30  Kazu Hirata  <kazu@hxi.com>
68
69         * config/mips/elf.h: Fix comment formatting.
70         * config/mips/elf64.h: Likewise.
71         * config/mips/iris5.h: Likewise.
72         * config/mips/iris5gas.h: Likewise.
73         * config/mips/iris6.h: Likewise.
74         * config/mips/isa3264.h: Likewise.
75         * config/mips/linux.h: Likewise.
76         * config/mips/mips.c: Likewise.
77         * config/mips/mips.h: Likewise.
78         * config/mips/mips.md: Likewise.
79         * config/mips/mips16.S: Likewise.
80         * config/mips/netbsd.h: Likewise.
81         * config/mips/osfrose.h: Likewise.
82         * config/mips/r3900.h: Likewise.
83         * config/mips/sni-svr4.h: Likewise.
84         * config/mips/svr4-t.h: Likewise.
85         * config/mips/ultrix.h: Likewise.
86
87 2001-10-30  Daniel Berlin  <dan@cgsoftware.com>
88
89         * bitmap.c (bitmap_element_free): Don't forget to update head->indx
90         when we update head->current.
91
92 2001-10-30  Neil Booth  <neil@daikokuya.demon.co.uk>
93
94         * tree.c (id_string_size): Remove.
95         (dump_tree_statistics): Update.
96         * toplev.c (compile_file): If dumping stats, dump tree stats too.
97
98 Tue Oct 30 19:00:43 CET 2001  Jan Hubicka  <jh@suse.cz>
99
100         * sched-rgn.c (schedule_insns): Fix comment.
101
102 2001-10-30  Zack Weinberg  <zack@codesourcery.com>
103
104         * configure.in: Correct previous change: don't assume that
105         gas's version number _isn't_ the last thing on the line, or
106         isn't the only number on the line, either.
107         * configure: Regenerate.
108
109 2001-10-30  Kazu Hirata  <kazu@hxi.com>
110
111         * cfgcleanup.c: Fix a comment typo.
112
113 2001-10-30  Kazu Hirata  <kazu@hxi.com>
114
115         * alias.c: Fix comment formatting.
116         * recog.c: Likewise.
117         * config/cris/cris.c: Likewise.
118         * config/cris/cris.h: Likewise.
119         * config/i960/i960.c: Likewise.
120         * config/i960/i960.h: Likewise.
121
122 2001-10-30  Kazu Hirata  <kazu@hxi.com>
123
124         * config/arm/arm.c: Fix a comment typo.
125         * config/arm/arm.h: Likewise.
126         * config/ia64/ia64.c: Likewise.
127
128 2001-10-30  Jakub Jelinek  <jakub@redhat.com>
129
130         * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or
131         REG_EQUIV notes for ASM_OPERANDS.  Return the new note (if any).
132         * rtl.h (set_unique_reg_note): Change return value.
133         * gcse.c (try_replace_reg): Use set_unique_reg_note.
134         * cse.c (cse_insn): Likewise.
135         * expr.c (emit_move_insn): Likewise.
136         * explow.c (force_reg): Likewise.
137         * local-alloc (update_equiv_regs): Likewise.
138         * loop.c (move_moveables, load_mems): Likewise.
139         * reload (find_reloads): Likewise.
140
141 2001-10-30  Paolo Bonzini  <bonzini@gnu.org>
142
143         Localization fixes.
144         * c-decl.c (parmlist_tags_warning, start_struct,
145         check_for_loop_decls): Separate messages for struct, union and
146         enum cases to allow for languages in which they have different
147         genders.
148         * c-format.c (scanf_flag_specs): Separate short and long name of
149         the assignment suppression feature.
150         (check_format_types): Localize "pointer" and "different types"
151         strings.
152         * c-lex.c (lex_number): Localize "an unsigned long int" and
153         related strings.
154         (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on
155         warning message.
156         * c-typeck.c (build_unary_up): Separate messages for increment and
157         decrement cases to allow for languages in which they use different
158         articles.  Localize the strings "increment" and "decrement" in one
159         case.
160
161 Tue Oct 30 11:08:11 CET 2001  Jan Hubicka  <jh@suse.cz>
162
163         * lcm.c (optimize_mode_switching):  Do not rebuild liveness information
164         when no changes has been made.
165
166         * gcse.c (reg_set_bitmap): Turn into reg_set.
167         (modify_mem_list_set, canon_modify_mem_list_set)
168         (clear_modify_mem_tables, free_modify_mem_tables): New.
169         (gcse_main); Use free_modify_mem_tables.
170         (free_gcse_mem): Likewise; free the bitmaps.
171         (alloc_gcse_main): Initialize the bitmaps.
172         (canon_list_insert): Set canon_modify_mem_list_set.
173         (record_last_mem_set_info): Likewise; set modify_mem_list_set.
174         (compute_hash_table): Use clear_modify_mem_tables.
175         (reset_opr_set_tables): Likewise.
176         (oprs_not_set_p): reg_set_bitmap is regset.
177         (mark_set, mark_clobber): Likewise.
178
179         * df.h (DF_EQUIV_NOTES): New constant.
180         (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes
181         when asked for.
182
183         * sched-rgn.c (CHECK_DEAD_NOTES): New constant.
184         (init_regions, schedule_insns): Conditionalize the checking
185         code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info.
186
187 Tue Oct 30 11:02:31 CET 2001  Jan Hubicka  <jh@suse.cz>
188
189         * i386.md (movti_rex64 splitter): Fix condition.
190
191 2001-10-29  Zack Weinberg  <zack@codesourcery.com>
192
193         * configure.in: Do not assume that gas's version number is the
194         last thing on the first line of as --version output.
195         * configure: Regenerate.
196         
197         * tradcpp.c: Include intl.h.  Rename WARNING, ERROR, FATAL to
198         MT_WARNING, MT_ERROR, MT_FATAL.
199         (main): Call gcc_init_libintl.
200         (v_message): Call gettext on msgid and "warning: "
201         * tradcif.y: Include intl.h.
202         (yyerror): Make parameter definition consistent with
203         prototype.  Call gettext on msgid argument.
204
205 2001-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
206
207         * combine.c (num_sign_bit_copies): Avoid signed/unsigned
208         warnings.
209
210         * sparc/sol2.h: Include <sys/mman.h> when L_trampoline is defined.
211
212 Mon Oct 29 19:22:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
213
214         * reload1.c (eliminate_regs): Test for reg_renumber being allocated
215         before referencing it.
216
217 2001-10-26  DJ Delorie  <dj@redhat.com>
218
219         * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to
220         override -G, and force -G0.
221
222 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
223
224         * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10,
225         FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c,
226         c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c,
227         timevar.h, tree.h, varasm.c: Fix spelling errors and typos.
228
229         * loop.h (struct induction): Rename ext_dependant to
230         ext_dependent.
231         * loop.c: Change all uses.
232         (check_ext_dependant_givs): Rename to check_ext_dependent_givs.
233         All callers changed.
234         * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter.
235
236 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
237
238         * c-parse.in (expr_no_commas, primary), c-typeck.c
239         (parser_build_binary_op): Use IS_EXPR_CODE_CLASS.
240
241 2001-10-29  David Edelsohn  <edelsohn@gnu.org>
242
243         Undo assemble_name change in earlier patch.
244
245 Mon Oct 29 21:11:40 2001  Nicola Pero  <n.pero@mi.flashnet.it>
246         
247         * objc/objc-act.c (finish_message_expr): For the GNU runtime: when
248         determining the type of the receiver, do not check that TREE_CODE
249         of receiver is CALL_EXPR before calling receiver_is_class_object().
250         (receiver_is_class_object): For the GNU runtime: recognize
251         the case that the receiver is self in a class method context.
252         Check that TREE_CODE of receiver is CALL_EXPR when checking that
253         the receiver is a call to objc_get_class.
254
255 2001-10-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
256
257         * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero.
258
259 Mon Oct 29 07:23:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
260
261         * Makefile.in (OBJS): Put all files in alphabetical order.
262
263         * dwarf2out.c (add_const_value_attribute): Fix error in last
264         change.
265
266 Mon Oct 29 12:43:06 CET 2001  Jan Hubicka  <jh@suse.cz>
267
268         * basic-block.h (purge_all_dead_edges): Add update_life_p argument.
269         * cfgcleanup.c (merge_blocks): Update the life flag after merging;
270         fix warning.
271         * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness.
272         (life_analysis): call purge_all_dead_edges after deleting noops.
273         (delete_noop_move): Do not purge CFG.
274         * toplev.c (rest_of_compilation): Update purge_all_dead_edges call.
275
276 2001-10-28  David Edelsohn  <edelsohn@gnu.org>
277
278         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
279         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
280         (ASM_GLOBALIZE_LABEL): Use assemble_name.
281         (ASM_OUTPUT_COMMON): Likewise.
282         * config/rs6000/rs6000.c (print_operand): Use assemble_name.
283         (rs6000_output_function_epilogue): Likewise.
284         (output_mi_thunk): Fix typo.
285         (rs6000_output_symbol_ref): Use assemble_name.
286         (output_toc): Likewise.
287         * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
288         * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
289         assemble_name calls STRIP_NAME_ENCODING.
290         (ASM_OUTPUT_LABEL): Use assemble_name.
291         (ASM_GLOBALIZE_LABEL): Likewise.
292         (ASM_DECLARE_FUNCTION_NAME): Likewise.
293         (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op.  Use assemble_name.
294         (ASM_OUTPUT_LOCAL): Likewise.
295
296 Sun Oct 28 15:45:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
297
298         * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
299         (expand_builtin_apply, expand_builtin_return): Likewise.
300         (expand_builtin_va_arg, expand_builtin_va_copy): Likewise.
301
302 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
303
304         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
305         ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11,
306         c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc,
307         configure, configure.in, except.c, except.h, flow.c, function.c,
308         gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def,
309         predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c,
310         sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c,
311         unroll.c: Fix spelling errors.
312
313         * doc/extend.texi, doc/invoke.texi: Fix spelling.
314
315         * doc/gcc.texi: Document use of "dependent" and American spelling.
316
317 Sun Oct 28 17:05:36 CET 2001  Jan Hubicka  <jh@suse.cz>
318
319         * expr.c (emit_group_load): Support CONCATs by storing them to memory
320         and reloading.
321
322 Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
323
324         * expr.c (store_constructor_field): Only call adjust_address on MEM.
325
326 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
327
328         * genrecog.c (write_switch):  Output if before switch for
329         DT_elt_zero_wide_safe.
330
331 2001-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
332
333         * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
334         * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
335         (FUNCTION_PROFILER): Const-ify.
336         * halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
337         (eliminate_constant_term, assemble_name, output_addr_const):
338         Remove declarations.
339         (ptr_half_pic_address_p, half_pic_hash): Prototype.
340         (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
341         half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
342         * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
343         (half_pic_declare, half_pic_external): Const-ify.
344         * toplev.c: Include "halfpic.h".
345
346 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
347
348         * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h,
349         config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe,
350         config/i386/i386.c, config/i386/i386-interix.h,
351         config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h,
352         config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c,
353         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md,
354         config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c,
355         config/sparc/sparc.c, config/m68hc11/m68hc11.c,
356         config/cris/cris.c, config/cris/cris.h, config/s390/s390.c,
357         config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix
358         spelling errors.
359
360         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
361         ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
362         c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
363         collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
364         haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
365         regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
366         system.h, toplev.c: Fix spelling errors.
367
368 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
369
370         * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET.
371
372         * dwarf2out.c (reg_number): Abort if pseudo.
373         (reg_loc_descriptor): Return 0 if pseudo.
374         (is_based_loc): Return 0 if pseudo.
375         (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from
376         recursive calls.
377         (concat_loc_descriptor): Return 0 if either part's descriptor is 0.
378         (loc_descriptor): Return 0 if can't find location and handle 0
379         return from recursive calls.
380         (loc_descriptor_from_tree): Likewise.
381         Fix handling of indirect.
382         Also return 0 for PLACEHOLDER_EXPR.
383         Clean up COMPONENT_REF cases.
384         (add_AT_location_descriptor): Simplify, but handle 0 return from
385         loc_descriptor.
386         (add_const_value_attribute): Avoid shift count warning.
387         (add_bound_info): Remove test for PLACEHOLDER_EXPR here.
388         Set comp_unit_die as context if not in function.
389
390         * config/mips/mips-protos.h: Break up long lines.
391         Remove needless #ifdef/#endif blocks.
392         Don't declare functions declared in file made by genpreds or recog.h.
393         * config/mips/mips.c (mips_output_function_prologue): TSIZE
394         is now HOST_WIDE_INT; delete unneeded casts.
395         * config/mips/mips.h: Don't use #elif.
396         
397         * expr.c (stor_constructor_field): Always call adjust_address.
398         Copy TARGET before changing its alias set.
399         (store_field): Likewise, for TO_RTX.
400         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
401         replacement.
402         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
403         (find_placeholder): Return 0 if can't find object.
404         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
405         returns 0.
406
407 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
408
409         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
410
411 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
412
413         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
414         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
415         (merge_blocks): Properly udpate life after making edge nonfallthru.
416         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
417
418 2001-10-26  Kazu Hirata  <kazu@hxi.com>
419
420         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
421
422 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
423
424         * c-typeck.c (convert_arguments): When comparing for enumeral
425         type equality, use TYPE_MAIN_VARIANT.
426         * gcc.dg/Wconversion.c: New tests.
427
428 2001-10-26  Kazu Hirata  <kazu@hxi.com>
429
430         * s390/s390.c: Fix comment typos.
431         * s390/s390.h: Likewise.
432         * s390/s390.md: Likewise.
433
434 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
435
436         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
437         (walk_tree): Use it for tail calls where appropriate.
438
439 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
440
441         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
442         non-local label_refs.
443
444 2001-10-26  Kazu Hirata  <kazu@hxi.com>
445
446         * config/h8300/h8300.md (4 anonymous patterns): New.
447
448 2001-10-26  Kazu Hirata  <kazu@hxi.com>
449
450         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
451         algorithm through the shift_info structure.
452         (emit_a_shift): Update the use of get_shift_alg.
453
454 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
455
456         * sched-rgn.c: Remove bitset typedef.
457         Change bitset to sbitmap in prototypes / variable types.
458         Remove bbset_size.
459         Remove edgeset_bits.
460         Remove edgeset_size.
461         s/BITSET_ADD/SET_BIT/g
462         s/BITSET_INVERT/sbitmap_ones/g
463         s/BITSET_INTER/sbitmap_a_and_b/g
464         s/BITSET_UNION/sbitmap_a_or_b/g
465         s/BITSET_DIFFER/sbitmap_difference/g
466         s/bitset_member/TEST_BIT/g
467         (BITSET_*): Removed.
468         (bitset_member): Removed.
469         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
470         EXECUTE_IF_SET_IN_SBITMAP.
471         (split_edges): Rewrite, use sbitmap functions instead of bitset
472         operations.
473         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
474
475 2001-10-26  Andreas Schwab  <schwab@suse.de>
476
477         * reload1.c (emit_input_reload_insns): Fix parens in last
478         (undocumented) change that was supposed to change only whitespace.
479
480 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
481
482         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
483
484         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
485         ASM_OPERANDS.
486
487 2001-10-26  Andreas Jaeger  <aj@suse.de>
488
489         * flow.c (clear_log_links): Remove unused variable.
490         * cfgcleanup.c (cleanup_cfg): Likewise.
491
492 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
493
494         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
495         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
496
497 2001-10-26  Richard Henderson  <rth@redhat.com>
498
499         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
500         rename PV_REG to R27_REG.
501         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
502         (REG_CLASS_FROM_LETTER): Update.
503         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
504         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
505         (udivsi3, modsi3, umodsi3): Likewise.
506         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
507
508 2001-10-26  Richard Henderson  <rth@redhat.com>
509
510         * cfg.c (clear_aux_for_blocks): Split out of ...
511         (free_aux_for_blocks): here.
512         (clear_aux_for_edges): Split from ...
513         (free_aux_for_edges): here.
514         * basic-block.h: Declare them.
515         * lcm.c (compute_antinout_edge): Use them.
516         (compute_laterin, compute_available, compute_nearerout): Likewise.
517         (optimize_mode_switching): Likewise.
518
519 2001-10-26  Richard Henderson  <rth@redhat.com>
520
521         * Makefile.in (unstage*): Remove as, ld, collect-ld before
522         moving everything back to the main build directory.
523
524 2001-10-26  Christopher Faylor  <cgf@redhat.com>
525
526         * config/i386/cygwin.h: Search target specfic include directory, if
527         appropriate.
528
529 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
530
531         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
532         of macro guards. Fix #endif comment.
533
534         * output.h (default_exception_section, default_eh_frame_section):
535         Move prototypes outside of macro guard.
536
537         * crtstuff.c: Fix #endif comment.
538
539 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
540
541         * doc/md.texi (movMM): Clarify semantics of storing into a
542         non-paradoxical SUBREG.
543
544 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
545
546         * langhooks.c (lang_hook_default_clear_binding_stack): New.
547         (lang_hook_default_get_alias_set): Move next to other alias
548         hooks.
549         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
550         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
551         (LANG_HOOKS_INITIALIZER): Add it.
552         * toplev.h (struct lang_hooks): Add clear_binding_stack.
553         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
554         instead of a loop calling poplevel.
555
556 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
557
558         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
559         occurrences of #elif with #if...#endif.
560
561 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
562
563         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
564
565 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
566
567         * alias.c (can_address_p): No longer static.
568         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
569         Return 0 if all parameters are default values.
570         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
571         (adjust_address_1): Try harder to compute a size.
572         * expr.c (expand_assignment, store_constructor): If can't address,
573         set MEM_KEEP_ALIAS_SET_P.
574         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
575         (store_field): Likewise.
576         (store_constructor): Simplify call to store_constructor_field.
577         * expr.h (can_address_p): New declaration.
578         * gensupport.c (gen_rtx_CONST_INT): New function.
579         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
580         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
581         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
582
583         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
584
585 2001-10-24  Christopher Faylor  <cgf@redhat.com>
586
587         * config/i386/cygwin.h: Use proper path for mingw crt files when
588         -mno-cygwin.
589
590 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
591
592         * dwarf2out.c (file_info_cmp): Always return consistent results.
593
594 2001-10-24  Roger Sayle <roger@eyesopen.com>
595
596         * stmt.c (expand_end_case): Index jumptables from zero for
597         suitably small values of minval.
598
599 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
600
601         * stor-layout.c (place_union_field): If any field was aligned with
602         attribute aligned, set record type's TYPE_USER_ALIGN.
603         (place_field): Likewise.
604         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
605         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
606
607 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
608
609         * c-common.h (struct c_common_identifier): Remove rid_code field.
610         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
611
612         * c-typeck.c (constructor_designated): New local flag.
613         (struct constructor_stack): Add "designated" field to match.
614         (start_init): Clear it.
615         (really_start_incremental_init, push_init_level): Push and
616         clear it.
617         (pop_init_level): Pop it.
618         (set_designator): Set it.
619
620         (pop_init_level): Suppress "missing initializer" warnings if
621         constructor_designated is true.
622         (process_init_element): Suppress warning about union
623         initialization under traditional C, if constructor_designated
624         is true.
625
626 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
627
628         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
629         change.
630
631 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
632
633         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
634
635 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
636
637         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
638         the node was already a set to a constant.
639
640 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
641
642         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
643         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
644
645 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
646
647         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
648         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
649         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
650         * s390.c (s390_final_chunkify): Don't use string concatenation.
651         (s390_function_prologue, s390_function_epilogue): Const-ify.
652         * s390.h (FUNCTION_PROFILER): Remove unused variable.
653
654 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
655
656         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
657         prototypes.
658
659 2001-10-23  Stan Shebs  <shebs@apple.com>
660
661         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
662         -traditional-cpp in first-stage compilation.
663
664 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
665
666         * gensupport.c (target_flags): Add.
667
668 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
669
670         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
671         if needed.
672         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
673         * except.c (expand_builtin_frob_return_addr): Likewise.
674         (expand_builtin_eh_return): Likewise.
675         * stmt.c (expand_computed_goto): Likewise.
676         * explow.c (memory_address): Likewise.
677         (allocate_dynamic_stack_space): Clean up predicate testing.
678         (probe_stack_range): Convert SIZE to Pmode.
679         * calls.c (rtx_for_function_call): Only call convert_memory_address
680         if needed.
681         Pass function call operand as ptr_mode, not Pmode.
682         * expr.c (expand_assignment): Clean up calls to convert_memory
683         address by only doing so when needed and making offsets Pmode.
684         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
685         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
686         is in Pmode, not ptr_mode.
687
688 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
689
690         * darwin-protos.h (constructor_section, destructor_section,
691         mod_init_section, mod_term_section): Prototype.
692         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
693         Const-ify.
694         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
695         Likewise.
696         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
697         objc_section_init declaration.
698         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
699         (objc_section_init, try_section_alias): Make static.
700         (alias_section): Make static and hide unused function.
701         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
702
703 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
704
705         * alias.c (can_address_p): Compnonents are not addressable if
706         the containing type has alias set 0.
707         (get_alias_set): Rework to use STRIP_NOPS.
708         Only call front-end routine on object, type, or object with
709         NOPs stripped, not inner values.
710         Use language hook to call front-end routine.
711         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
712         (expand_builtin_apply): Call set_mem_align on MEMs we make.
713         Don't pass alignment to emit_block_move.
714         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
715         (expand_builtin_memset): Likewise, but for clear_storage.
716         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
717         and remove C++ specific parts.
718         * c-common.h (c_common_get_alias_set): Add declaration.
719         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
720         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
721         (save_fixed_argument_area): Call set_mem_align.
722         Remove alignment in call to emit_block_move.
723         (emit_library_call_value_1, store_one_arg): Likewise.
724         (target_for_arg): Remove; disabled long ago.
725         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
726         once and similar cleanups.
727         (offset_address): Use proper introductory comment.
728         * expr.c (emit_block_move): Use alignment from that of MEM args, not
729         from explicit operand; all callers changed.
730         (clear_storage): Likewise.
731         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
732         (store_field): Remove kludge on alias set used for to_rtx.
733         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
734         (expand_expr_unaligned): Call set_mem_attributes instead of
735         set_mem_alias_set.
736         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
737         * function.c (assign_stack_temp_for_type): Set MEM alignment.
738         (expand_function_end): Track MEM attributes of trampolines.
739         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
740         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
741         attributes from original.
742         * langhooks.c (lang_hook_default_get_alias_set): New function.
743         (hook_get_alias_set_0): New function.
744         * langhooks.h (hook_get_alias_set_0): New declaration.
745         (lang_hook_default_get_alias_set): Likewise.
746         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
747         * reload1.c (alter_reg): Use adjust_address_nv.
748         * rtl.c (get_mode_alignment): Moved to here.
749         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
750         change default if unknown from 1 to BITS_PER_UNIT.
751         * stor-layout.c (get_mode_alignment): Remove from here.
752         * toplev.h (struct lang_hoks): Add get_alias_set field.
753         * tree.h (lang_get_alias_set): Delete declaration.
754         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
755         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
756         (ix86_va_arg): Likewise.
757         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
758         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
759         * config/sparc/sparc.c (sparc_va_arg): Likewise.
760         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
761         (expand_block_move_mem): Remove dead code.
762
763 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
764
765         * c-common.c (warn_div_by_zero): New.
766         * c-common.h (warn_div_by_zero): New.
767         * c-decl.c (c_decode_option): Take it on the command line.
768         * c-typeck.c (build_binary_op): Warn about division by zero.
769         * doc/invoke.texi: Document the new command line option, fix
770         documentation of -Wmultichar.
771         * testsuite/gcc.dg/divbyzero.c: New tests.
772         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
773
774 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
775
776         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
777
778         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
779         to avoid update_life_info call.
780         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
781         * cfgcleanup.c (bb_flags): New enum.
782         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
783         (notice_new_block, update_forwarder_flag): New functions.
784         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
785         (try_forward_edges): Likewise; update flags.
786         (merge_blocks): Likewise.
787         (outgoing_edges_match): Likewise.
788         (try_crossjump_to_edge): Likewise.
789         (try_optimize_cfg): Likewise; initialize and clear the flags;
790         recompute life info if needed.
791         (cleanup_cfg): No need to clear aux pointers.
792
793 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
794
795         * config/i386/i386.c (override_options): Default to minimum
796         stack alignment when optimizing for code size.
797         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
798         change.
799
800         * config/i386/i386.c (override_options): Set upper limit of
801         -mpreferred-stack-boundary to 12.
802
803 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
804
805         * recog.c (peephole2_optimize): Add default case to switch.
806
807 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
808
809         * doc/gcc.texi (Sending Patches): Remove.
810
811 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
812
813         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
814         fields when comparing.
815
816 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
817
818         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
819         * arm.c (HOST_INT, HOST_UINT): Likewise.
820
821 2001-10-22  Stan Shebs  <shebs@apple.com>
822
823         * config/darwin-protos.h (darwin_exception_section): Declare.
824         (darwin_eh_frame_section): Declare.
825
826 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
827
828         * i386.md (movti_rex64): Fix mode.
829
830 2001-10-22  Stan Shebs  <shebs@apple.com>
831
832         * target.h (struct gcc_target): Add asm_out.exception_section,
833         asm_out.eh_frame_section.
834         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
835         (TARGET_ASM_EH_FRAME_SECTION): New.
836         (TARGET_INITIALIZER): Update.
837         * output.h (default_exception_section): Declare.
838         (default_eh_frame_section): Declare.
839         * dwarf2out.c: Include target.h.
840         (output_call_frame_info): Call target hook for eh frames.
841         (default_eh_frame_section): New function.
842         * except.c: Include target.h.
843         (output_function_exception_table): Call target hook for exception
844         section.
845         * varasm.c (default_exception_section): Rename from
846         exception_section, remove EXCEPTION_SECTION macro.
847
848         * config/darwin.h (darwin_eh_frame_section): New function.
849         (EXCEPTION_SECTION): Remove.
850         (TARGET_ASM_EXCEPTION_SECTION): Define.
851         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
852         (nextstep_exception_section): New function.
853         (nextstep_eh_frame_section): New function.
854         (TARGET_ASM_EXCEPTION_SECTION): Define.
855         (TARGET_ASM_EH_FRAME_SECTION): Define.
856
857         * config/pa/som.h (EXCEPTION_SECTION): Remove.
858         (TARGET_ASM_EXCEPTION_SECTION): Define.
859         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
860         (EXCEPTION_SECTION): Remove.
861         (TARGET_ASM_EXCEPTION_SECTION): Define.
862         * config/stormy16/stormy16.h: Remove comments referencing
863         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
864
865         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
866         TARGET_ASM_EH_FRAME_SECTION.
867
868 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
869
870         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
871         terms.
872
873         * c-format.c: Fix spelling typo in comment.
874
875         * sched-int.h: Fix typo in GCC preamble.
876
877 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
878
879         PR debug/4252
880         * doc/invoke.texi: Remove references to -fdump-translation-unit.
881
882 2001-10-22  Richard Henderson  <rth@redhat.com>
883
884         * config/i386/i386.c (ix86_expand_clear): New.
885         * config/i386/i386-protos.h: Declare it.
886         * config/i386/i386.md (setcc peep2s): Use it.
887         (movsi_xor): Unexport.
888
889 2001-10-22  Richard Henderson  <rth@redhat.com>
890
891         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
892         free_EXPR_LIST_list for LOG_LINKS.
893
894 2001-10-21  Robert Lipe  <robertlipe@usa.net>
895
896         * config/i386/i386.c (sco_asm_named_section): Delete.
897         (sco_asm_out_constructor): Delete.
898         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
899         (ASM_OUTPUT_DOUBLE_INT): Likewise.
900         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
901         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
902         (EXCEPTION_SECTION): Delete EH scn renaming hack.
903
904 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
905
906         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
907         and/or fold extra calls into fewer ones.
908         * collect2.c (dump_file): Likewise.
909         * cppexp.c (parse_number): Likewise.
910         * cpplex.c (_cpp_lex_direct): Likewise.
911         * final.c (output_asm_insn, asm_fprintf): Likewise.
912         * fix-header.c (inf_scan_ident, main): Likewise.
913         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
914         Likewise.
915         * fold-const.c (real_hex_to_f): Likewise.
916         * gen-protos.c (parse_fn_proto): Likewise.
917         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
918         * genrecog.c (change_state, write_action): Likewise.
919         * gensupport.c (shift_output_template): Likewise.
920         * local-alloc.c (requires_inout): Likewise.
921         * mips-tfile.c (IS_ASM_IDENT): Likewise.
922         * protoize.c (is_id_char, main): Likewise.
923         * real.c (asctoeg): Likewise.
924         * recog.c (asm_operand_ok): Likewise.
925         * reload.c (find_reloads): Likewise.
926         * scan.c (scan_identget_token): Likewise.
927         * sched-vis.c (print_value): Likewise.
928         * stringpool.c (ggc_alloc_string): Likewise.
929         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
930         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
931         * tradcpp.c (rescan): Likewise.
932         * tree.c (clean_symbol_name): Likewise.
933         * varasm.c (decode_reg_name): Likewise.
934
935         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
936         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
937         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
938         * m88k.c (output_ascii): Likewise.
939         * m88k.h (OVERRIDE_OPTIONS): Likewise.
940         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
941         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
942         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
943
944 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
945
946         * langhooks.c (lang_hook_default_do_nothing,
947         lang_hook_default_decode_option): New defaults.
948         * langhooks.h: Make hooks unconditional and non-NULL.
949         * toplev.c (compile_file, toplev_main): Update.
950         * toplev.h: Update comments.
951         * objc/objc-act.c (lang_hooks): Update to new paradigm.
952
953 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
954
955         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
956
957         * system.h (IN_RANGE): New macro.
958
959 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
960
961         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
962         INTLDEPS variable, which does not include $LIBICONV.
963         * Makefile.in: Use INTLDEPS in LIBDEPS.
964         * configure: Regenerate.
965
966 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
967
968         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
969         * cpplex.c (lex_percent, lex_dot): Remove.
970         (get_effective_char, skip_block_comment, skip_line_comment,
971         parse_identifier_slow, parse_number, parse_string, save_comment,
972         _cpp_lex_direct): Update to do lookback freely.
973         (IF_NEXT_IS, BACKUP): New macros.
974         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
975         * cppmacro.c (paste_tokens): Update.
976
977 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
978
979         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
980
981 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
982
983         * reload1.c (reload): Check CONSTANT_P before calling
984         LEGITIMATE_PIC_OPERAND_P.
985         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
986         workaround of 2001-10-13.
987
988 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
989
990         * i386.c (split_di): Handle splitting of DFmode.
991
992 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
993
994         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
995         (adjust_address_1, offset_address): Likewise.
996
997         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
998         (output_asm_insn): Call it for each line output.
999         Don't record an operand more than once.
1000
1001         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
1002         * main.c: Include config.h and system.h, but not ansidecl.h.
1003         * Makefile.in (main.o): Update accordingly.
1004
1005 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
1006
1007         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
1008
1009 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
1010
1011         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
1012         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
1013         Break out from ...
1014         (find_sub_basic_blocks): ... here;
1015         (find_many_sub_basic_blocks): New.
1016         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
1017
1018         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
1019
1020         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
1021
1022         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
1023
1024         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
1025         * flow.c (update_life_info): Measure time.
1026         * c-decl.c: Include timevar.h
1027         (c_expand_body): Measure time.
1028         * toplev.c (rest_of_compilation): Measure time of mode switching
1029         separately.
1030         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency.
1031
1032         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
1033         (lang_independent_options): Add asynchronous-unwind-tables
1034         (toplev_main): flag_asynchronous_unwind_tables implies
1035         flag_unwind_tables.
1036         * flags.h (flag_asynchronous_unwind_tables): Declare.
1037         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
1038         flag_asynchronous_unwind_tables.
1039         (output_call_frame_info): Likewise.
1040         * invoke.texi (-fasynchronous-unwind-tables): Document.
1041         * i386.c (optimization_options): Enable
1042         flag_asynchronous_unwind_tables.
1043
1044         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
1045         * i386.md (s* expanders): Destination is QImode.
1046
1047         * toplev.c (rest_of_compilation): Do not call clear_log_links.
1048         * rtl.h (clear_log_links): Kill.
1049         * flow.c (clear_log_links): Make static; accept blocks parameter;
1050         do no clear life info.
1051         (update_life_info): Call clear_log_links.
1052
1053         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
1054
1055 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1056
1057         * cpplex.c (handle_newline, skip_escaped_newlines,
1058         get_effective_char, skip_block_comment, skip_line_comment,
1059         parse_identifier_slow, parse_number, parse_string,
1060         _cpp_lex_direct): Update to do more stepping back.
1061         (trigraph_ok): Similarly.  Rename trigraph_p.
1062         (SAVE_STATE, RESTORE_STATE): Remove.
1063         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
1064
1065         * cpplib.c (destringize): Rename destringize_and_run, and
1066         call run_directive directly.
1067         (_cpp_do__Pragma): Simplify.
1068
1069 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1070
1071         * pe.c (arm_pe_unique_section): Const-ify.
1072         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
1073         (switch_to_section): Add static prototype.
1074
1075         * output.h (drectve_section): Prototype.
1076
1077 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1078
1079         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
1080         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
1081         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
1082         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
1083         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1084         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
1085         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
1086         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
1087         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
1088         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
1089         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
1090         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
1091         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
1092         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
1093         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
1094         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
1095         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
1096         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
1097         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
1098         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
1099         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
1100         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
1101         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
1102         cris-*-none, cris-*-linux*: Update ${tmfile} list.
1103         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
1104         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
1105         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
1106         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
1107         v850-*-*): Delete superflous ${cpu_type} setting.
1108         * config/linux.h: Delete svr4.h include.
1109         (SET_ASM_OP): Delete.
1110         * config/netware.h (INT_ASM_OP): Undef before define.
1111         * config/ptx4.h: Delete elfos.h include.
1112         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
1113         * config/svr4.h: Delete elfos.h include. Update commentary.
1114         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
1115         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
1116         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
1117         config/v850/v850.h: Delete svr4.h include.
1118         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
1119         config/m68k/m68kv4.h, config/m88k/sysv4.h,
1120         config/sparc/sysv4.h: Update includes.
1121         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
1122         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
1123         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
1124         config/m88k/dguxbcs.h: Delete includes.
1125         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
1126         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
1127         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
1128         it.
1129         * config/m88k/dgux.h: Delete include.
1130         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
1131         defining it.
1132         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
1133         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
1134         * config/sh/elf.h: Update include.
1135         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
1136         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
1137
1138 2001-10-19  Catherine Moore  <clm@redhat.com>
1139
1140         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
1141         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
1142         base and count fields.
1143         (stormy16_expand_builtin_va_start):  last_reg_count changed to
1144         size_of_reg_args.  Use count + size in first comparison.
1145
1146 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1147
1148         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
1149         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
1150         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
1151         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
1152         Set alignment from type if INDIRECT_REF.
1153         (adjust_address_1, offset_address): Simplify alignment compuitation.
1154         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
1155         here; done by set_mem_attributes.
1156
1157 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1158
1159         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
1160         * arm-protos.h (rdata_section, zero_init_section, common_section):
1161         Prototype.
1162         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
1163         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
1164         traditional mode stringification.
1165         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
1166         in macros controling its use.
1167         * rtlanal.c: Include tm_p.h.
1168         * varasm.c (asm_output_aligned_bss): Mark parameter with
1169         ATTRIBUTE_UNUSED.
1170         (assemble_constant_align, assemble_start_function, assemble_align,
1171         assemble_variable, assemble_trampoline_template,
1172         output_constant_def_contents): Wrap potentially empty if-stmt body
1173         in brackets.
1174
1175 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1176
1177         * a29k-protos.h (literal_section): Prototype.
1178         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
1179         * a29k.md: Ensure function pointers are prototyped.
1180         * genattrtab.c (write_eligible_delay): Mark parameter with
1181         ATTRIBUTE_UNUSED.
1182
1183 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1184
1185         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
1186         * 1750a.c (print_operand): Fix format specifier warning.
1187         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
1188         * 1750a.md: Likewise.
1189         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
1190         * genemit.c (output_add_clobbers): Mark parameter with
1191         ATTRIBUTE_UNUSED.
1192         * genrecog.c (write_subroutine): Likewise.
1193         * integrate.c (expand_inline_function): Delete unused variable.
1194         * varasm.c (remove_from_pending_weak_list): Wrap with
1195         ASM_WEAKEN_LABEL.
1196
1197 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
1198
1199         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
1200         field is different to previous argument's neg field.
1201
1202         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
1203
1204 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1205
1206         * final.c (get_decl_from_op): New function.
1207         (output_asm_insn): Call it; write "*" when item with decl is address.
1208
1209 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
1210
1211         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
1212         about 64-bit support from the 3.0_branch version.
1213
1214 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
1215
1216         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
1217         USE_INCLUDED_LIBINTL when appropriate.
1218         * configure, config.in: Regenerate.
1219         * Makefile.in (datadir): Set to @datadir@.
1220         (intl.o): Also depend on $(CONFIG_H) and system.h.
1221
1222         * intl.c: Factor out common gettext initialization sequence.
1223         (gcc_init_libintl):  New function.
1224         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
1225         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
1226         off NLS.  Add multiple include guard.  No need to #ifdef-guard
1227         an #undef.  Prototype gcc_init_libintl here.
1228
1229         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
1230         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
1231         Use gcc_init_libintl.
1232
1233 2001-10-19  Catherine Moore  <clm@redhat.com>
1234
1235         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
1236
1237         * config/stormy16/stormy16.c (stormy16_split_move):  Make
1238         sure that REG_INC notes are present for auto_inc operands.
1239
1240 2001-10-19  Andreas Jaeger  <aj@suse.de>
1241
1242         * configure: Regenerated.
1243         * configure.in: Add x86_64 to switch statements.
1244
1245 2001-10-18  Richard Henderson  <rth@redhat.com>
1246
1247         * config/alpha/alpha.md (sibcall_osf_1): Load destination
1248         address into $27 explicitly.
1249         (sibcall_value_osf_1): Likewise.
1250
1251 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1252
1253         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
1254         (offset_address): New function.
1255         (free_emit_status): Free regno_decl.
1256         (init_emit): Pass proper number of elements to xcalloc.
1257         Allocate regno_decl.
1258         (mark_emit_status): Mark regno_decl values.
1259         * expr.c (highest_pow2_factor): New function.
1260         (expand_assigment): Use it and offset_address.
1261         Properly handle ptr_mode vs. Pmode in offset calculation.
1262         (store_constructor, expand_expr_unaligned): Likewise.
1263         (expand_expr, case COMPONENT_EXPR): Likewise.
1264         * expr.h (offset_address): New decl.
1265         * function.h (struct emit_status): Add regno_decl.
1266         (REGNO_DECL): New macro.
1267         * final.c (output_asm_name): Move in file and don't conditionalize
1268         on flag_print_asm_name.
1269         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
1270         Output names of operands, if known.
1271         * function.c (assign_parms): Set REGNO_DECL.
1272         * integrate.c (integrate_decl_tree): Likewise.
1273         * stmt.c (expand_decl): Likewise.
1274         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
1275
1276 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
1277
1278         * attribs.c (handle_noinline_attribute): New function.
1279         (handle_used_attribute): Likewise.
1280         (c_common_attribute_table): Added noinline and used.
1281         * doc/extend.texi (Function Attributes): Document them.
1282         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
1283         Warn when merging inline with attribute noinline.
1284         (start_decl, start_function): Warn if inline and attribute
1285         noinline appear in the same declaration.
1286
1287 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1288
1289         * config.gcc: Update c4x and i370 for C front end-specific
1290         dependencies.
1291         * config/c4x/c4x-c.c: New.
1292         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
1293         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
1294         New declarations.
1295         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
1296         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
1297         Make extern.
1298         (c4x_init_pragma): Remove.
1299         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
1300         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
1301         c4x_pr_ignored): Move to c4x-c.c.
1302         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
1303         * config/c4x/t-c4x: Update.
1304         * config/i370/i370-c.c: New.
1305         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
1306         (i370_pr_map): Move to i370-c.c.
1307         * config/i370/t-i370: New.
1308
1309         * doc/tm.texi: Update.
1310
1311 2001-10-17  Stan Shebs  <shebs@apple.com>
1312
1313         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
1314         typo fixes throughout.
1315         (machopic_output_stub): Remove some dead code.
1316
1317 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
1318
1319         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
1320         leak.
1321
1322 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1323
1324         * Makefile.in (print-rtl.o): Depend on TREE_H.
1325         * alias.c (get_alias_set): Make two passes over objects to first
1326         see if inner object is access via restricted pointer.
1327         Defer allocating alias set for restricted pointer until here.
1328         Call find_placeholder with second arg nonzero.
1329         Minor cleanups.
1330         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
1331         set for restricted pointer types.
1332         * emit-rtl.c (set_mem_attributes): Set more attributes.
1333         (set_mem_align, change_address, adjust_address_1): New functions.
1334         (change_address_1): Now static.
1335         (adjust_address, adjust_address_nv): Deleted.
1336         (replace_equiv_address): Call change_address_1.
1337         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
1338         (find_placeholder): Get starting point from PLIST arg.
1339         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
1340         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
1341         (adjust_address, adjust_address_nv): New macros.
1342         * print-rtl.c (tree.h): New include.
1343         (print_rtx, case MEM): Print all memory attributes.
1344
1345 2001-10-17  Richard Henderson  <rth@redhat.com>
1346
1347         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
1348
1349 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1350
1351         * c-tree.texi: Eliminate duplicated word.
1352         * cpp.texi: Likewise.
1353         * install.texi: Likewise.
1354         * invoke.texi: Likewise.
1355         * tm.texi: Likewise.
1356
1357 2001-10-17  Michael Collison  <collison@isisinc.net>
1358
1359         * dsp16xx.c: Fix comment formatting to match GNU standards.
1360         (dsp16xx_output_function_prologue): Change type of 'size'
1361         parameter from 'int' to HOST_WIDE_INT.
1362         (dsp16xx_output_function_epilogue): Change type of 'size'
1363         parameter from 'int' to HOST_WIDE_INT.
1364
1365 2001-10-16  Richard Henderson  <rth@redhat.com>
1366
1367         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
1368         * configure, config.in: Rebuild.
1369
1370         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
1371         (ix86_output_addr_diff_elt): New.
1372         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
1373         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
1374         (JUMP_TABLES_IN_TEXT_SECTION): New.
1375         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
1376         * config/i386/i386-protos.h: Update.
1377
1378         * config/i386/386bsd.h, config/i386/beos-elf.h,
1379         config/i386/freebsd-aout.h, config/i386/freebsd.h,
1380         config/i386/i386-interix.h, config/i386/i386elf.h,
1381         config/i386/linux.h, config/i386/netbsd-elf.h,
1382         config/i386/netbsd.h, config/i386/openbsd.h,
1383         config/i386/ptx4-i.h, config/i386/rtemself.h,
1384         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
1385         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
1386
1387 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
1388
1389         * stmt.c (expand_asm_operands): Update commentary.
1390
1391 2001-10-16  Stan Shebs  <shebs@apple.com>
1392
1393         * config/darwin.h (GCC_NAME): Remove, no longer used.
1394         (NO_MATH_LIBRARY): Ditto.
1395         (MATH_LIBRARY): Define to emptiness.
1396         (DWARF2_DEBUGGING_INFO): Define.
1397         (PREFERRED_DEBUGGING_TYPE): Define.
1398         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
1399         (EXCEPTION_SECTION): Define.
1400         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1401         * config/darwin.c (darwin_encode_section_info): Handle case of
1402         DECL_INITIAL being error_mark_node.
1403
1404 2001-10-16  Richard Henderson  <rth@redhat.com>
1405
1406         * alpha.c (current_file_function_operand): Don't fail for profiling.
1407         (direct_call_operand): New.
1408         * alpha-protos.h: Declare it.
1409         * alpha.h (EXTRA_CONSTRAINT): Use it.
1410         (PREDICATE_CODES): Add it.
1411         (ASM_OUTPUT_MI_THUNK): Remove.
1412         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
1413         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
1414
1415 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
1416
1417         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
1418         (JUMP_TABLES_IN_TEXT_SECTION): Define.
1419
1420 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
1421
1422         * cfg.c (free_edge): Break out from ....
1423         (remove_edge): ... here.
1424         (clear_edges): Use free_edge.
1425
1426         * att.h (ASM_QUAD): Add comment.
1427         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
1428
1429 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
1430
1431         * i386.c (split_ti): New function.
1432         (ix86_split_to_parts): Support TImodes.
1433         * i386.h (VALID_INT_MODE_P): Add TImode.
1434         * i386.md (movdi splitter): Fix.
1435         (movti): Support 64bit integer registers.
1436         (movti_rex64): New function and splitter.
1437
1438         * i386.c (*_cost): Add movsx/movzx cost.
1439         * i386.h (struct processor_costs): Add movsx/movzx fields.
1440         (RTX_COSTS): Handle zero/sign extend + avoid believing that
1441         64bit operations require split on 64bit machine.
1442         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
1443
1444         * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS.
1445         (ix86_expand_move): Avoid pushes of memory if size does not match;
1446         move long constants to register.
1447         (x86_initialize_trampoline): Fix mode.
1448         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
1449         Use ASM_QUAD on 64bit.
1450         * i386.md (test pattern): Disallow impossible constants.
1451         (tablejump PIC expander): Fix emitting of sum.
1452         (movdicc_rex64): Rename to movdicc.
1453         * linux64.h (LINK_SPEC): Add missing '%'.
1454
1455 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
1456
1457         * tree-inline.c (inlinable_function_p): Leave it up to the
1458         front-end to turn -finline-functions into DECL_INLINE set for all
1459         functions.
1460
1461 2001-10-16  Stan Shebs  <shebs@apple.com>
1462
1463         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
1464
1465 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
1466
1467         * recog.c: Formatting and comment typo fixes.
1468
1469         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
1470         version in single tree build.
1471         * configure: Regenerate.
1472
1473 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
1474
1475         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
1476         MODE arguments to gen_rtx and compare operand with const0_rtx.
1477
1478 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1479
1480         * system.h: Poison old unused target macros.
1481         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
1482         * config/stormy16/stormy16.c: Update references to obsolete macros.
1483         * config/stormy16/stormy16.h: Similarly.
1484         * config/stormy16/stormy16.md: Similarly.
1485         * config/cris/cris.h: Similarly.
1486
1487 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1488
1489         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
1490         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
1491         cpp_register_pragma): Update accordingly.
1492
1493 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1494
1495         * c-pragma.h (cpp_register_pragma_space): Remove.
1496         * cpplib.h (cpp_register_pragma_space): Remove.
1497         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
1498         (cpp_register_pragma_space): Remove.
1499         (cpp_register_pragma): Simplify using lookup_pragma_entry,
1500         add sanity checks.
1501         (do_pragma): Similarly.
1502         (_cpp_init_internal_pragmas): Don't register namespaces.
1503
1504         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
1505         Don't register namespaces.
1506         * cp/lex.c (init_cp_pragma): Similarly.
1507         * doc/tm.texi: Update.
1508
1509 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1510
1511         PR c/4157
1512         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
1513
1514 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
1515
1516         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
1517         add scheduling support.
1518         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
1519         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
1520         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
1521
1522
1523 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
1524
1525         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
1526         missing CONSTANT_P test in core GCC.
1527
1528 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1529
1530         * cppmain.c (struct printer): New member source.
1531         (scan_translation_unit): Fix spacing at start of lines.
1532         (cb_line_change): Update.
1533
1534         * gcc.dg/cpp/spacing2.c: New test.
1535
1536 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
1537
1538         * config/cris/arit.c: Use __builtin_labs, not abs.
1539
1540         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
1541
1542         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
1543         misplaced sprintf and fprintf argument.
1544
1545 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
1546
1547         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
1548         * configure.in, Makefile.in: Take out obsolete check-po logic.
1549         * configure, config.in: Regenerate.
1550
1551 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
1552
1553         * objc/objc-act.c (finish_objc): Correct precondition for emitting
1554         symtab declarations.
1555
1556 2001-10-12  Stan Shebs  <shebs@apple.com>
1557
1558         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
1559         declarations of arguments and local variables.
1560
1561 2001-10-12  Christopher Faylor  <cgf@redhat.com>
1562
1563         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
1564         ENDFILE_SPEC definition.
1565
1566 2001-10-12  Kazu Hirata  <kazu@hxi.com>
1567
1568         * gthr-dce.h: Fix comment formatting.
1569         * gthr-posix.h: Likewise.
1570         * gthr-single.h: Likewise.
1571         * gthr-solaris.h: Likewise.
1572         * gthr-vxworks.h: Likewise.
1573         * gthr-win32.h: Likewise.
1574
1575 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
1576
1577         * final.c (output_asm_insn): Make sure assembly dialects are
1578         terminated, not nested.  Output `|' and `}' characters if they
1579         don't appear inside assembly dialect selection.
1580         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
1581         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
1582         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
1583         strsetsi_rex_1): Add {} braces.
1584
1585 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
1586
1587         * toplev.c (compile_file): Ignore return value from yyparse.
1588         Always pop any nested binding levels after yyparse returns.
1589
1590 2001-10-11  Richard Henderson  <rth@redhat.com>
1591
1592         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
1593
1594 2001-10-11  Richard Henderson  <rth@redhat.com>
1595
1596         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
1597         fall back to add_AT_long_long for large CONST_INT.
1598
1599 2001-10-11  Richard Henderson  <rth@redhat.com>
1600
1601         * config/i386/i386.md (setcc splitters): Add four splitters to
1602         simplify compound compares that simplify_comparison can't handle.
1603
1604 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
1605
1606         * cpplex.c (digraph_spellings, token_spellings): Make static.
1607
1608 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1609
1610         * unroll.c (loop_iterations): Fixup last patch.
1611
1612 2001-10-11  Richard Henderson  <rth@redhat.com>
1613
1614         * rtl.h (REG_VTABLE_REF): New.
1615         * rtl.c (reg_note_name): Add it.
1616         * combine.c (distribute_notes): Handle it.
1617         * final.c (final_scan_insn): Handle it.
1618         * tree.def (VTABLE_REF): New.
1619         * expr.c (expand_expr): Handle it.
1620         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
1621         * output.h: Declare them.
1622
1623 2001-10-11  Richard Henderson  <rth@redhat.com>
1624
1625         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
1626         for a DECL_INITIAL.
1627
1628 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
1629
1630         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
1631         available in 64-bit mode.
1632
1633 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
1634
1635         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
1636         cris-*-linux* cases.
1637         * config/cris/cris-protos.h: New file.
1638         * config/cris/cris.c: New file.
1639         * config/cris/cris.h: New file.
1640         * config/cris/cris.md: New file.
1641         * config/cris/linux.h: New file.
1642         * config/cris/aout.h: New file.
1643         * config/cris/arit.c: New file.
1644         * config/cris/cris_abi_symbol.c: New file.
1645         * config/cris/mulsi3.asm: New file.
1646         * config/cris/t-aout: New file.
1647         * config/cris/t-cris: New file.
1648         * config/cris/t-elfmulti: New file.
1649         * config/cris/t-linux: New file.
1650         * doc/invoke.texi: Add CRIS options.
1651         * doc/install.texi (Specific): Add blurb for CRIS.
1652
1653 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
1654
1655         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
1656         before using it.
1657         * config/float/i32.h: Likewise.
1658         * config/float-i386.h: Likewise.
1659         * config/float-i64.h: Likewise.
1660         * config/float-m68k.h: Likewise.
1661         * config/float-sh.h: Likewise.
1662         * config/float-sparc.h: Likewise.
1663
1664 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
1665
1666         * doc/contrib.texi: Add note about CRIS port to my entry.
1667
1668 2001-10-11  Kazu Hirata  <kazu@hxi.com>
1669
1670         * basic-block.h: Fix formatting.
1671         * bitmap.h: Likewise.
1672         * cpplib.h: Likewise.
1673         * c-tree.h: Likewise.
1674         * diagnostic.h: Likewise.
1675         * flags.h: Likewise.
1676         * ggc.h: Likewise.
1677         * longlong.h: Likewise.
1678         * real.h: Likewise.
1679         * reload.h: Likewise.
1680         * rtl.h: Likewise.
1681         * tree.h: Likewise.
1682
1683 2001-10-10  Richard Henderson  <rth@redhat.com>
1684
1685         * c-parse.in (asm_operand): Allow named operands.
1686         * genconfig.c (max_recog_operands): Set to 29.
1687         * local-alloc.c (requires_inout): Skip multiple digits.
1688         * recog.c (asm_operand_ok): Likewise.
1689         (preprocess_constraints): Use strtoul for matching constraints.
1690         (constrain_operands): Likewise.
1691         * regmove.c (find_matches): Likewise.
1692         * reload.c (find_reloads): Likewise.
1693         * stmt.c (parse_output_constraint): Don't reject in-out
1694         constraint on operands > 9.  Reject '[' in constraint.
1695         (expand_asm_operands): Handle named operands.  Use strtoul
1696         for matching constraints.
1697         (check_operand_nalternatives): Split out from expand_asm_operands.
1698         (check_unique_operand_names): New.
1699         (resolve_operand_names, resolve_operand_name_1): New.
1700
1701         * doc/extend.texi (Extended Asm): Document named operands.
1702         * doc/md.texi (Simple Constraints): Document matching constraints
1703         on operands > 9.
1704
1705 2001-10-10  Richard Henderson  <rth@redhat.com>
1706
1707         * combine.c (try_combine): Handle a SEQUENCE of one insn.
1708
1709         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
1710         (jcc splitters): Add two splitters to simplify compound compares
1711         that simplify_comparison can't handle.
1712
1713 2001-10-10  Richard Henderson  <rth@redhat.com>
1714
1715         * langhooks.c: Include langhooks.h.
1716         * Makefile.in (langhooks.o): Depend on it.
1717
1718 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
1719
1720         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
1721         should not be considered as a no-op.
1722         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
1723
1724 2001-10-10  Stan Shebs  <shebs@apple.com>
1725
1726         * alias.c: Remove uses of "register" specifier in declarations
1727         of arguments and local variables.
1728         * c-common.c: Ditto.
1729         * c-convert.c: Ditto.
1730         * c-decl.c: Ditto.
1731         * c-format.c: Ditto.
1732         * c-semantics.c: Ditto.
1733         * c-typeck.c: Ditto.
1734         * caller-save.c: Ditto.
1735         * calls.c: Ditto.
1736         * cfg.c: Ditto.
1737         * cfgbuild.c: Ditto.
1738         * cfgrtl.c: Ditto.
1739         * collect2.c: Ditto.
1740         * combine.c: Ditto.
1741         * convert.c: Ditto.
1742         * cppexp.c: Ditto.
1743         * cppfiles.c: Ditto.
1744         * cse.c: Ditto.
1745         * dbxout.c: Ditto.
1746         * defaults.h: Ditto.
1747         * df.c: Ditto.
1748         * dwarf2out.c: Ditto.
1749         * dwarfout.c: Ditto.
1750         * emit-rtl.c: Ditto.
1751         * explow.c: Ditto.
1752         * expmed.c: Ditto.
1753         * expr.c: Ditto.
1754         * final.c: Ditto.
1755         * fix-header.c: Ditto.
1756         * floatlib.c: Ditto.
1757         * flow.c: Ditto.
1758         * fold-const.c: Ditto.
1759         * function.c: Ditto.
1760         * gcc.c: Ditto.
1761         * gcse.c: Ditto.
1762         * gen-protos.c: Ditto.
1763         * genattrtab.c: Ditto.
1764         * gencheck.c: Ditto.
1765         * genconfig.c: Ditto.
1766         * genemit.c: Ditto.
1767         * genextract.c: Ditto.
1768         * genflags.c: Ditto.
1769         * gengenrtl.c: Ditto.
1770         * genoutput.c: Ditto.
1771         * genpeep.c: Ditto.
1772         * genrecog.c: Ditto.
1773         * gensupport.c: Ditto.
1774         * global.c: Ditto.
1775         * gmon.c: Ditto.
1776         * graph.c: Ditto.
1777         * haifa-sched.c: Ditto.
1778         * hard-reg-set.h: Ditto.
1779         * hash.c: Ditto.
1780         * integrate.c: Ditto.
1781         * jump.c: Ditto.
1782         * lists.c: Ditto.
1783         * local-alloc.c: Ditto.
1784         * loop.c: Ditto.
1785         * mips-tdump.c: Ditto.
1786         * mips-tfile.c: Ditto.
1787         * optabs.c: Ditto.
1788         * prefix.c: Ditto.
1789         * print-rtl.c: Ditto.
1790         * read-rtl.c: Ditto.
1791         * real.c: Ditto.
1792         * recog.c: Ditto.
1793         * reg-stack.c: Ditto.
1794         * regclass.c: Ditto.
1795         * regmove.c: Ditto.
1796         * reload.c: Ditto.
1797         * reload1.c: Ditto.
1798         * reorg.c: Ditto.
1799         * resource.c: Ditto.
1800         * rtl.c: Ditto.
1801         * rtlanal.c: Ditto.
1802         * scan.c: Ditto.
1803         * sched-deps.c: Ditto.
1804         * sched-rgn.c: Ditto.
1805         * sdbout.c: Ditto.
1806         * simplify-rtx.c: Ditto.
1807         * stmt.c: Ditto.
1808         * stor-layout.c: Ditto.
1809         * toplev.c: Ditto.
1810         * tradcif.y: Ditto.
1811         * tradcpp.c: Ditto.
1812         * tree.c: Ditto.
1813         * unroll.c: Ditto.
1814         * varasm.c: Ditto.
1815         * xcoffout.c: Ditto.
1816
1817 2001-10-10  Richard Henderson  <rth@redhat.com>
1818
1819         * rtl.h (can_reverse_comparison_p): Remove.
1820
1821 2001-10-10  Christopher Faylor <cgf@redhat.com>
1822
1823         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
1824         used.
1825
1826 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1827
1828         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
1829         (Thanks to Chris Faylor for suggesting macro name).
1830         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
1831         WIN32 defines.
1832         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
1833         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
1834         (MATH_LIBRARY): Undef before definition.
1835         (OUTPUT_QUOTED_STRING): Likewise.
1836         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
1837
1838 2001-10-10  Richard Henderson  <rth@redhat.com>
1839
1840         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
1841         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
1842         a tristate comparison value.
1843         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
1844
1845 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1846
1847         PR c++/4512
1848         * unroll.c (loop_iterations): Ignore insns generated by loop
1849         unrolling.
1850
1851         * config.gcc (mips*-*-gnu*): Delete support.
1852         * config/mips/gnu.h: Remove.
1853
1854 2001-10-10  Kazu Hirata  <kazu@hxi.com>
1855
1856         * calls.c: Fix formatting.
1857         * c-decl.c: Likewise.
1858         * cfgcleanup.c: Likewise.
1859         * combine.c: Likewise.
1860         * cppfiles.c: Likewise.
1861         * cpplib.c: Likewise.
1862         * cppmacro.c: Likewise.
1863         * crtstuff.c: Likewise.
1864         * cse.c: Likewise.
1865         * dwarf2out.c: Likewise.
1866         * expmed.c: Likewise.
1867         * expr.c: Likewise.
1868         * fold-const.c: Likewise.
1869         * function.c: Likewise.
1870         * gcse.c: Likewise.
1871         * genattrtab.c: Likewise.
1872         * ggc-page.c: Likewise.
1873         * integrate.c: Likewise.
1874         * libgcc2.c: Likewise.
1875         * loop.c: Likewise.
1876         * optabs.c: Likewise.
1877         * profile.c: Likewise.
1878         * protoize.c: Likewise.
1879         * real.c: Likewise.
1880         * recog.c: Likewise.
1881         * reload1.c: Likewise.
1882         * reload.c: Likewise.
1883         * reorg.c: Likewise.
1884         * resource.c: Likewise.
1885         * sched-rgn.c: Likewise.
1886         * sdbout.c: Likewise.
1887         * stmt.c: Likewise.
1888         * toplev.c: Likewise.
1889         * varasm.c: Likewise.
1890
1891 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
1892
1893         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
1894         * Makefile.in (langhooks.o): Add dependencies.
1895
1896 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
1897
1898         * rs6000.c (rs6000_emit_load_toc_table): Don't
1899         strdup the toc label.
1900         (create_TOC_reference): Likewise.
1901
1902 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1903
1904         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
1905         version default.
1906
1907 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1908
1909         * config/i386/i386.c (ix86_attribute_table): Correct
1910         min_len, max_len fields for dllimport, dllexport and shared.
1911
1912 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1913
1914         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
1915         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
1916         Consistently use "nonzero" instead of "non-zero".
1917
1918 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1919
1920         * acconfig.h: Fix comment formatting.
1921         * c-dump.h: Likewise.
1922         * c-tree.h: Likewise.
1923         * conditions.h: Likewise.
1924         * expr.h: Likewise.
1925         * function.h: Likewise.
1926         * gthr.h: Likewise.
1927         * hwint.h: Likewise.
1928         * integrate.h: Likewise.
1929         * intl.h: Likewise.
1930         * loop.h: Likewise.
1931         * optabs.h: Likewise.
1932
1933 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1934
1935         * c-common.h: Fix comment formatting.
1936         * c-dump.c: Likewise.
1937         * cfg.c: Likewise.
1938         * diagnostic.h: Likewise.
1939         * except.c: Likewise.
1940         * gcc.h: Likewise.
1941         * gcov-io.h: Likewise.
1942         * genattrtab.c: Likewise.
1943         * output.h: Likewise.
1944         * predict.h: Likewise.
1945         * reload1.c: Likewise.
1946         * reload.h: Likewise.
1947         * resource.h: Likewise.
1948         * scan.h: Likewise.
1949         * system.h: Likewise.
1950         * tree.h: Likewise.
1951         * tree-inline.c: Likewise.
1952         * tsystem.h: Likewise.
1953         * varasm.c: Likewise.
1954         * xcoffout.h: Likewise.
1955
1956 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
1957
1958         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
1959
1960 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
1961
1962         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
1963         config/i386/i386elf.h, config/i386/netbsd-elf.h,
1964         config/i386/netware.h, config/mcore/gfloat.h,
1965         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
1966         config/netware.h, gccbug.in: Update FSF address.
1967
1968 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1969
1970         * c-common.c: Fix comment typos.
1971         * cfgrtl.c: Likewise.
1972         * collect2.c: Likewise.
1973         * cpplex.c: Likewise.
1974         * doloop.c: Likewise.
1975         * dwarf2out.c: Likewise.
1976         * dwarfout.c: Likewise.
1977         * expr.c: Likewise.
1978         * fold-const.c: Likewise.
1979         * gcc.c: Likewise.
1980         * gcov.c: Likewise.
1981         * gcse.c: Likewise.
1982         * global.c: Likewise.
1983         * ifcvt.c: Likewise.
1984         * loop.c: Likewise.
1985         * optabs.c: Likewise.
1986         * protoize.c: Likewise.
1987         * regclass.c: Likewise.
1988         * reorg.c: Likewise.
1989         * rtl.h: Likewise.
1990         * stmt.c: Likewise.
1991         * tree.h: Likewise.
1992         * doc/cpp.texi: Likewise.
1993         * doc/c-tree.texi: Likewise.
1994         * doc/extend.texi: Likewise.
1995         * doc/invoke.texi: Likewise.
1996         * doc/objc.texi: Likewise.
1997         * doc/tm.texi: Likewise.
1998
1999 2001-10-08  Richard Henderson  <rth@redhat.com>
2000
2001         * varasm.c (set_named_section_flags): Initialize "declared".
2002
2003 2001-10-08  Robert Lipe  <robertlipe@usa.net>
2004
2005         * varasm.c (struct in_named_entry): Add declared.
2006         (named_section_first_declaration): New function.
2007         (default_elf_asm_named_section): Use it.
2008         * output.h (named_section_first_declaration): New.
2009
2010 2001-10-08  Richard Henderson  <rth@redhat.com>
2011
2012         * i386.md (movsi_xor): Export.
2013         (setcc peep2): Use it when available; add an alternative to
2014         match zero_extendhisi2_and.
2015
2016 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2017
2018         * romp-protos.h (romp_initialize_trampoline): New function.
2019         * romp.c (romp_initialize_trampoline): Likewise.
2020         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
2021         romp_initialize_trampoline.
2022
2023 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2024
2025         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
2026         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2027         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2028         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2029
2030 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2031
2032         * unroll.c (loop_iterations): Extend check for multiple back edges.
2033
2034 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
2035
2036         * langhooks.h: New file.
2037         * Makefile.in (OBJS): Added langhooks.o.
2038         (c-lang.o): Depend on langhooks.h.
2039         (c-common.o): Don't depend on tree-inline.h.
2040         (tree-inline.o): Depend on toplev.h.
2041         (langhooks.o): New rule.
2042         * c-common.c: Don't include tree-inline.h.
2043         (c_mark_lang_decl): Mark argument c as unused.
2044         (c_common_lang_init): Don't initialize hooks here.
2045         * c-lang.c: Include langhooks.h, then override some macros.
2046         (lang_hooks): Initialize with macros in langhooks.h.
2047         (c_init): Don't initialize hooks here.
2048         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
2049         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
2050         * tree-inline.c: Include toplev.h.  Don't define hook variables.
2051         * tree-inline.h: Don't define hook types nor declare hook
2052         variables.  Move macros to...
2053         * langhooks.c: ... new file, as functions.  Adjust all callers.
2054
2055 2001-10-08  Jeffrey A Law  <law@cygnus.com>
2056
2057         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
2058         purge_mem_unchanging_flag on all instructions, not just on those
2059         before NOTE_INSN_FUNCTION_BEG.
2060
2061 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2062
2063         * cppmacro.c (_cpp_create_definition): Leave comments off.
2064
2065         * doc/cpp.texi: Update.
2066
2067 2001-10-08  DJ Delorie  <dj@redhat.com>
2068
2069         * c-decl.c (grokfield): Make sure the only unnamed fields
2070         we're allowing are either structs or unions.
2071         * doc/extend.texi: Add documentation for the unnamed field
2072         extension.
2073
2074 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
2075
2076         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
2077         * configure.in: Use it.
2078         * configure: Regenerated.
2079         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
2080         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
2081
2082 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2083
2084         * cppfiles.c (open_file): Don't mark zero-length files
2085         never-reread here.  Don't output diagnostics here either.
2086         (stack_include_file): Mark them never-reread here.
2087         (_cpp_read_file): Update.
2088
2089 2001-10-08  Richard Henderson  <rth@redhat.com>
2090
2091         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
2092
2093 2001-10-08  Richard Henderson  <rth@redhat.com>
2094
2095         * expr.c (store_expr): When converting a CONST_INT for storage
2096         in a SUBREG, convert it to both SUBREG modes before stripping
2097         the SUBREG.
2098
2099 2001-10-08  Richard Henderson  <rth@redhat.com>
2100
2101         * varasm.c (restore_varasm_status): New.
2102         * function.h: Declare it.
2103         * function.c (pop_function_context_from): Call it.
2104
2105 2001-10-08  Richard Henderson  <rth@redhat.com>
2106
2107         * c-common.h (struct c_lang_decl): Add declared_inline.
2108         * c-tree.h (DECL_DECLARED_INLINE_P): New.
2109         * c-lang.c (c_disregard_inline_limits): Use it.
2110         * c-decl.c (duplicate_decls): Likewise.
2111         (pushdecl, redeclaration_error_message): Likewise.
2112         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
2113         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
2114         Set DECL_INLINE if -finline-functions.
2115         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
2116
2117 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2118
2119         * cppmacro.c (funlike_invocation_p): Move some logic to caller
2120         in enter_macro_context.  Create a padding token in its own context
2121         if necessary when the search for '(' fails.
2122         (enter_macro_context): Update.
2123
2124 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2125
2126         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
2127         genmultilib, toplev.c: Fix spelling errors of "separate" as
2128         "seperate", and corresponding spelling errors of related words.
2129
2130 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2131
2132         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
2133         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
2134         Likewise.
2135         * c-dump.c (dump_option_value_info): Likewise.
2136         * c-format.c (format_length_info, format_char_info,
2137         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
2138         * collect2.c (names): Likewise.
2139         * cppdefault.h (default_include): Likewise.
2140         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
2141         * flow.c (life_analysis): Likewise.
2142         * gcc.c (dir_separator_str, modify_target, option_map,
2143         target_option_translations, spec_list_1, extra_specs_1,
2144         init_spec): Likewise.
2145         * gcov.c (gcov_version_string): Likewise.
2146         * genattr.c (write_units): Likewise.
2147         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
2148         * gengenrtl.c (rtx_definition, defs): Likewise.
2149         * genrecog.c (pred_table): Likewise.
2150         * global.c (global_alloc): Likewise.
2151         * lcm.c (optimize_mode_switching): Likewise.
2152         * local-alloc.c (find_free_reg): Likewise.
2153         * params.h (param_info): Likewise.
2154         * predict.c (predictor_info): Likewise.
2155         * protoize.c (unexpansion_struct): Likewise.
2156         * real.c (bmask): Likewise.
2157         * recog.h (insn_operand_data, insn_data): Likewise.
2158         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
2159         * stmt.c (expand_nl_goto_receiver): Likewise.
2160         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
2161         target_switches, target_options): Likewise.
2162         * tradcif.y (token, tokentab2, yylex): Likewise.
2163         * tree.h (attribute_spec): Likewise.
2164
2165         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
2166         Likewise.
2167         * arc.c (arc_output_function_epilogue): Likewise.
2168         * arm.c (processors, all_cores, all_architectures,
2169         arm_override_options, isr_attribute_arg, isr_attribute_args,
2170         arm_isr_value): Likewise.
2171         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
2172         Likewise.
2173         * c4x.c (c4x_int_reglist): Likewise.
2174         * d30v.c (override_options): Likewise.
2175         * h8300.c (shift_insn): Likewise.
2176         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
2177         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
2178         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
2179         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
2180         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
2181         * i386.h (processor_costs, ix86_cost): Likewise.
2182         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
2183         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
2184         * m68k.c (codes_68881, codes_FPA): Likewise.
2185         * m88k.c (mode_from_align, max_from_align, all_from_align,
2186         best_from_align, m_options): Likewise.
2187         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
2188         * mcore.c (mode_from_align): Likewise.
2189         * mips/elf64.h (UNIQUE_SECTION): Likewise.
2190         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
2191         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
2192         * mips.h (mips_regno_to_class): Likewise.
2193         * ns32k.c (scales): Likewise.
2194         * pa.c (import_string, magic_milli): Likewise.
2195         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
2196         * sparc.c (leaf_reg_remap, sparc_override_options,
2197         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
2198         Likewise.
2199         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
2200
2201 2001-10-07  Dale Johannesen  <dalej@apple.com>
2202
2203         * reload1.c (reload_reg_free_p): Teach register interference
2204         checking that multiple output reloads are emitted in
2205         reverse order.
2206         reload1.c (reload_reg_reaches_end_p):  Ditto.
2207         reload1.c (reloads_conflict):  Ditto.
2208
2209 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2210
2211         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
2212         NULL_TREE inside @code.
2213
2214 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2215
2216         * doc/gcc.texi: Document consistent style of "32-bit",
2217         "Objective-C", and "@code{NULL}".
2218
2219 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
2220
2221         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
2222         (cpp_token_len, cpp_spell_token, cpp_output_token,
2223         _cpp_equiv_tokens): Handle it.
2224         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
2225         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
2226         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
2227         error messages.
2228
2229 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2230
2231         * gcc.c (default_compilers): Remove .ada.
2232
2233 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2234
2235         * doc/cppinternals.texi: Update.
2236
2237 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
2238
2239         * gcc.c (main): Set this_file_error if the appropriate
2240         compiler for a language has not been installed.
2241
2242 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
2243
2244         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
2245
2246 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
2247
2248         * gccbug.in (CATEGORIES): Add ada.
2249
2250 2001-10-05  Catherine Moore  <clm@redhat.com>
2251
2252         * config/stormy16/stormy-abi:  Document abi changes.
2253         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
2254         (ICALL_REGS): New register class.
2255         (NUM_ARGUMENT_REGISTERS): Now 6.
2256         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
2257         in registers.
2258         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
2259         * config/stormy16.md (call_internal, call_value_internal,
2260         indirect_jump): Use new 'z' constraint.
2261
2262 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2263
2264         * doc/cppinternals.texi: Update.
2265
2266 2001-10-05  Richard Henderson  <rth@redhat.com>
2267
2268         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
2269         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
2270         the gas section-name-as-label feature.
2271
2272 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2273
2274         * doc/cppinternals.texi: Update.
2275
2276 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2277
2278         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
2279         to ensure valid SImode constants.
2280
2281 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
2282
2283         * Makefile.in (c-decl.o): Depend on tree-inline.h.
2284         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
2285         * c-decl.c: Include tree-inline.h.
2286         (c_expand_body): Call optimize_inline_calls. Determine whether
2287         a function is inlinable upfront, and only clear
2288         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
2289         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
2290         (c_disregard_inline_limits): New function.
2291         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
2292         (c_post_options): Enable tree inlining if inlining is enabled.
2293         Don't inline trees when instrumenting functions.
2294         (c_init): Initialize lang_disregard_inline_limits and
2295         lang_cannot_inline_tree_fn.
2296         * tree-inline.c (initialize_inlined_parameters): Handle calls
2297         with fewer arguments than declared parameters, and fewer
2298         parameters than passed arguments.  Don't assume value is a
2299         DECL.
2300         (declare_return_variable): Convert return value back to the
2301         original type, if it was promoted.
2302         (tree_inlinable_function_p): New function.
2303         (inlinable_function_p): Don't look at DECL_INLINE if we're
2304         inlining all functions.  Make it work with a NULL id.
2305         Re-check DECL_UNINLINABLE after language-specific checks.
2306         * tree-inline.h (tree_inlinable_function_p): Declare it.
2307         * integrate.c (save_for_inline): Don't bother to prepare argvec
2308         when not inlining.
2309         * cse.c (check_for_label_ref): Don't check deleted labels.
2310
2311         * Makefile.in (tree-inline.o): Depend on newly-included headers.
2312         * tree-inline.c: Include headers needed for the functions moved in.
2313         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
2314         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
2315         (copy_body, initialize_inlined_parameters): Likewise.
2316         (declare_return_variable, inlinable_function_p): Likewise.
2317         (expand_call_inline, expand_calls_inline): Likewise.
2318         (optimize_inline_calls, clone_body): Likewise.
2319         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
2320         (copy_tree_r, remap_save_expr): Likewise.
2321
2322 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
2323
2324         * Makefile.in (OBJS): Added tree-inline.o.
2325         (c-common.o): Depend on tree-inline.h.
2326         (tree-inline.o): New target.
2327         * c-common.c: Include tree-inline.h.
2328         (c_mark_lang_decl): Don't mark saved_tree.
2329         (c_common_lang_init): Set lang_anon_aggr_type_p.
2330         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
2331         (struct c_lang_decl): Moved saved_tree to tree_decl.
2332         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
2333         * integrate.h (function_attribute_inlinable_p): Declare it.
2334         * integrate.c (function_attribute_inlinable_p): Export it.
2335         * tree-inline.c: New file.  Define variables declared in...
2336         * tree-inline.h: New file.  Declare functions to be moved to
2337         tree-inline.c.  Define macros and declare types and hooks for
2338         language-specific tree inlining.
2339         (flag_inline_trees): Moved definition from cp/decl2.c.
2340         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
2341         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
2342         (struct tree_decl): Moved saved_tree from c_lang_decl and
2343         inlined_fns from C++'s lang_decl.
2344
2345 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
2346
2347         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
2348         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
2349
2350 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2351
2352         * doc/cppinternals.texi: Update.
2353
2354 2001-10-04  Eric Christopher  <echristo@redhat.com>
2355
2356         * config/mips/mips.c (init_cumulative_args): Remember to set
2357         cum->prototype.
2358         * config.gcc: Redo linux configuration. Add target_cpu_default
2359         of soft-float to all mipsisa32 combinations and tx39.
2360         * config/mips/linux.h: Remove include of mips.h.
2361
2362 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
2363
2364         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
2365         HOST_LDFLAGS and HOST_CPPFLAGS.
2366
2367 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
2368
2369         * c-parse.in (objc_inherit_code, objc_pq_context,
2370         objc_public_flag): Make static.
2371         (objc_interface_context, objc_implementation_context,
2372         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
2373         global tree array in objc/objc-act.[ch].
2374         (methoddef): Remove unnecessary code.
2375
2376         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
2377         Hoist struct definitions to objc-act.h.
2378         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
2379         cat_count): Place declaration in objc-act.h.
2380         (objc_tree_index): Move enumeration to objc-act.h.
2381         (objc_global_trees): Place declaration and macro accessors in
2382         objc-act.h.
2383         (implementation_context): Remove duplicate; use
2384         objc_implementation_context instead:
2385         (method_context): Remove duplicate; use objc_method_context
2386         instead.
2387         (objc_ellipsis_node, objc_method_prototype_template,
2388         implemented_classes, function_type): Move global vars to
2389         objc_global_trees.
2390         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
2391         (build_message_expr): Move actual construction of ObjC message
2392         send nodes to finish_message_expr.
2393         (finish_message_expr): New routine, contains code formerly in
2394         build_message_expr.
2395         * objc/objc-act.h (finish_message_expr): New prototype.
2396         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
2397         declarations; these vars are now part of objc_global_trees.
2398         (objc_tree_index, objc_global_trees): Move definitions from
2399         objc-act.c.
2400         * objc/objc-tree.def: Update copyright info.
2401
2402 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
2403
2404         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
2405         op is NULL.
2406         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
2407         only if TARGET_ARCH64.
2408
2409 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
2410
2411         * doc/extend.texi: Fix some problems with previous checkin.
2412         * doc/invoke.texi: Likewise.
2413
2414 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2415
2416         * cpphash.h: Update comments.
2417         (cpp_context): Update.
2418         (spec_nodes): Remove n__Pragma.
2419         * cppinit.c (cpp_create_reader): Update.
2420         (builtin_array): Add _Pragma.
2421         * cpplib.h: Update comments.
2422         (NODE_DISABLED, BT_PRAGMA): New.
2423         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
2424         * cppmacro.c (struct cpp_macro): Remove disabled.
2425         (builtin_macro): Return int, handle _Pragma, push the new token
2426         on the context stack.
2427         (funlike_invocation_p): Unconstify, update.
2428         (enter_macro_context): Handle builtins here.
2429         (replace_args, push_token_context, push_ptoken_context):
2430         Update for prototype changes.
2431         (_cpp_pop_context): Update.
2432         (cpp_get_token): Don't handle buitins, nor _Pragma here.
2433         (cpp_sys_macro_p): Update.
2434         (_cpp_free_definition): Clear disabled flag.
2435         (_cpp_create_definition): Upate.
2436         * cppmain.c: Update comments.
2437
2438 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
2439                                 Andreas Jaeger <aj@suse.de>,
2440                                 Jan Hubicka    <jh@suse.cz>
2441
2442         * doc/invoke.texi (i386 Options): Document x86-64 options.
2443         (i386 and x86-64 Options): Rename i386 options section.
2444
2445         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
2446         (TARGET_SWITCHES): Add -munwind-info.
2447         (MASK_NO_UNWIND_INFO): New.
2448         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
2449         biarch compilation.
2450         (ASM_OUTPUT_DOUBLE_INT): New.
2451
2452         * config/i386/linux64.h: New spec file for Linux x86-64 support.
2453         * config.gcc: Fix tm_file settings for x86-64.
2454         * config/i386/x86-64.h: New file with OS independent x86-64
2455         definitions.
2456         * config/i386/biarch64.h: New file used to configure compiler
2457         to biarch/64bit compilation.
2458
2459         * config/i386/i386.c: (override_options): Set flags default
2460         for 64bit compilation.
2461
2462 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
2463
2464         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
2465         (ix86_expand_int_movcc): Optimize DImode conditional moves with
2466         constants on x86_64.
2467         (ix86_attr_length_immediate_default): Support MODE_DI.
2468         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
2469         condition.
2470         (indirect_jump, tablejump): Turn into expander.
2471
2472 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2473
2474         * c-common.c (c_format_attribute_table): Make format and
2475         format_arg attributes apply to function types rather than to
2476         decls.
2477         (is_valid_printf_arglist): Construct an attribute list and pass
2478         that to check_function_format rather than a name.
2479         * c-common.h (check_function_format): Adjust prototype.
2480         * c-decl.c (duplicate_decls): Preserve attributes from type of
2481         built-in decl when allowing for harmless conflict in types.
2482         * c-format.c (record_function_format,
2483         record_international_format, function_format_list,
2484         international_format_info, international_format_list): Remove.
2485         (function_format_info): Remove next, name and assembler_name.
2486         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
2487         (decode_format_attr): New.
2488         (handle_format_attribute): Handle receiving a type rather than a
2489         decl.  Call decode_format_attr.  Store format information in a
2490         function_format_info.
2491         (handle_format_arg_attribute): Correct comment.  Handle receiving
2492         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
2493         arg_num.
2494         (check_format_info_recurse, check_format_info_main): Take argument
2495         numbers as unsigned HOST_WIDE_INT.
2496         (check_function_format): Take a list of attributes from the
2497         function type rather than a name or assembler name.  Check for
2498         format attributes in that list and the attributes on the type of
2499         the current function rather than looking through
2500         function_format_list.
2501         (check_format_info): Use unsigned HOST_WIDE_INT for argument
2502         numbers.
2503         (check_format_info_recurse): Take format_arg attributes from the
2504         type of the function calls rather than using
2505         international_format_list.  Allow for multiple format_arg
2506         attributes.
2507         * c-typeck.c (build_function_call): Pass type attributes to
2508         check_function_format rather than name or assembler name.  Don't
2509         require there to be a name or assembler name to check formats.
2510
2511 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2512
2513         * attribs.c (decl_attributes): Possibly call
2514         insert_default_attributes to insert default attributes on
2515         functions in a lazy manner.
2516         * builtin-attrs.def: New file; define the default format and
2517         format_arg attributes.
2518         * c-common.c (c_format_attribute_table): Move to earlier in the
2519         file.
2520         (c_common_nodes_and_builtins): Initialize format_attribute_table.
2521         (enum built_in_attribute, built_in_attributes,
2522         c_attrs_initialized, c_init_attributes,
2523         c_common_insert_default_attributes): New.
2524         (c_common_lang_init): Don't initialize format_attribute_table.  Do
2525         call c_init_attributes.
2526         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
2527         * c-common.h (init_function_format_info): Don't declare.
2528         (c_common_insert_default_attributes): Declare.
2529         * c-decl.c (implicitly_declare, builtin_function): Call
2530         decl_attributes.
2531         (init_decl_processing): Don't call init_function_format_info.
2532         (insert_default_attributes): New.
2533         * c-format.c (handle_format_attribute,
2534         handle_format_arg_attribute): Be quiet about inappropriate
2535         declaration when applying default attributes.
2536         (init_function_format_info): Remove.
2537         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
2538         (insert_default_attributes): Declare.
2539
2540 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2541
2542         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
2543
2544 2001-10-01  Jim Wilson  <wilson@redhat.com>
2545
2546         * sched-deps.c (add_dependence): When elide conditional dependence,
2547         check that insn doesn't modify cond2.
2548
2549 2001-10-01  Dale Johannesen  <dalej@apple.com>
2550
2551         * config/rs6000/rs6000.h (enum processor_type): Add support
2552         for 7400 (G4) and 7450.
2553         (RTX_COSTS): Ditto.
2554         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
2555         (rs6000_issue_rate): Ditto.
2556         (rs6000_adjust_cost): Fix cycle counts for compares.
2557         (debug_stack_info):  Fix an obvious typo.
2558         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
2559         * doc/invoke.texi: Document.
2560         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
2561         for Darwin.
2562         (PROCESSOR_DEFAULT): Ditto.
2563
2564 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
2565
2566         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
2567         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
2568         later recursive make invocation.
2569
2570 2001-10-01  Hans Boehm  <boehm@acm.org>
2571
2572         * optabs.c (emit_libcall_block): When using non-call exceptions,
2573         don't add REG_LIBCALL reg notes to trapping calls.
2574
2575 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
2576
2577         * flow.c (propagate_block_delete_libcall): Remove unused first arg
2578         (propagate_one_insn):  Update for above change
2579
2580 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
2581
2582         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
2583         _Unwind_GetTextRelBase): Argument is unused.
2584
2585 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2586
2587         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
2588         Loop through NOPs, placeholders, and components.
2589         Don't go through NOPs if change mode.
2590         (record_alias_subset): Do nothing if SUBSET and SET are the same.
2591         * emit-rtl.c (set_mem_alias_set): Enable check.
2592         * expr.c (find_placeholder): New function.
2593         (expand_expr, case PLACEHOLDER_EXPR): Use it.
2594         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
2595         to modify it and avoid unneeded copies.
2596         * expr.h (expand_expr): Always define.
2597         (find_placeholder): New declaration.
2598
2599 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2600
2601         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
2602         operand 2 is the stack pointer.
2603         ("addr-peephole"): Fix address computation peephole when operand 2
2604         is the stack pointer.
2605
2606 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2607
2608         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
2609         (ix86_setup_incoming_varargs): Likewise.
2610
2611 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
2612
2613         * stor-layout.c (layout_type): Don't complain about too-large
2614         array here.
2615
2616 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2617
2618         * function.c (keep_stack_depressed): Don't use delete_insn.
2619
2620         * expr.h (set_mem_alias_set): Move decl to here.
2621         * rtl.h (mem_attrs): New typedef and struct.
2622         (union rtunion_def): Add field for mem_attrs.
2623         (X0MEMATTR, MEM_ATTRS): New macros.
2624         (MEM_ALIAS_SET): Use MEM_ATTRS.
2625         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
2626         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
2627         (set_mem_alias_set): Delete decl from here.
2628
2629         * alias.c (set_mem_alias_set): Delete from here.
2630         * emit-rtl.c (mem_attrs_htab): New variable.
2631         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
2632         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
2633         (mem_attrs_mark, get_mem_attrs): Likewise.
2634         (gen_rtx_MEM): Clear MEM_ATTRS.
2635         (set_mem_attributes): Move to here.
2636         (set_mem_alias_set): Likewise, and call get_mem_attrs.
2637         (init_emit_once): const_int_htab now deletable htab.
2638         Initialize mem_attrs_htab.
2639         * explow.c (set_mem_attributes): Delete from here.
2640         * function.c (put_var_into_stack): Clear MEM_ATTRS.
2641         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
2642         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
2643         * reload1.c (reload): Rework changing REG to MEM.
2644
2645 2001-09-30  H.J. Lu <hjl@gnu.org>
2646
2647         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
2648         * config.in: Rebuild.
2649
2650 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2651
2652         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
2653         ("tsthi_1"): Avoid allocation in register y.
2654         ("*movqi_68hc12"): Reorganize and fix constraints.
2655         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
2656         ("addqi3"): Likewise.
2657         ("addhi3"): Fix constraints.
2658         ("*logicalhi3_zexthi"): Disparage soft registers.
2659
2660 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2661
2662         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
2663         to tmp reg.
2664
2665 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2666
2667         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
2668         that we use setjmp/longjmp exceptions.
2669
2670 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
2671
2672         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
2673         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
2674         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
2675         _cpp_pool_alloc, _cpp_next_chunk): Remove.
2676         (_cpp_extend_buff, BUFF_ROOM): Update.
2677         (_cpp_append_extend_buff): New.
2678         (struct cpp_reader): Remove macro_pool, add a_buff.
2679         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
2680         macro_pool.
2681         (cpp_destroy): Free a_buff instead of macro_pool.
2682         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
2683         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
2684         _cpp_pool_alloc, ): Remove.
2685         (parse_number, parse_string): Update use of _cpp_extend_buff.
2686         (_cpp_extend_buff): Update.
2687         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
2688         * cpplib.c (glue_header_name, parse_answer):
2689         Update use of _cpp_extend_buff.
2690         (cpp_register_pragma, cpp_register_pragma_space): Use
2691         _cpp_aligned_alloc.
2692         (do_assert, do_unassert): Check for EOL, update.
2693         * cppmacro.c (stringify_arg, collect_args): Update to use
2694         _cpp_extend_buff and _cpp_append_extend_buff.
2695         (save_parameter, parse_params, alloc_expansion_token,
2696         _cpp_create_definition): Rework memory management.
2697
2698 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
2699
2700         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
2701         update md_exec_prefix.
2702         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
2703         to string constant.
2704
2705 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2706
2707         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
2708         (SELECT_CC_MODE): Use s390_select_ccmode.
2709         * config/s390/s390-protos.h (s390_select_ccmode): Add.
2710         * config/s390/s390.c (s390_select_ccmode): New.
2711         (s390_match_ccmode): Add CCLmode.
2712         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
2713         (output_branch_condition, output_inverse_branch_condition): Removed.
2714         (print_operand): Use s390_branch_condition_mnemonic.
2715         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
2716         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
2717         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
2718
2719         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
2720         when converting conditional branches to far branches.
2721         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
2722         cmpint_di): Use CCSmode instead of CCUmode.
2723
2724         * config/s390/s390.c (legitimate_la_operand_p): New.
2725         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
2726         * config/s390/s390.md (movsi): Convert load address patterns to
2727         arithmetic operations when necessary.
2728         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
2729         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
2730         (*do_la_reg_0): Don't use before reload.
2731
2732         * config/s390/s390.c (legitimize_address): Make more efficient
2733         use of two-register addressing mode.
2734
2735         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
2736         with -mno-backchain in some corner cases.
2737
2738         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
2739
2740 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
2741
2742         * reload.c (find_reloads): Mark new USE insns with QImode.
2743         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
2744         find_reloads_subreg_address): Likewise.
2745         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
2746         encountered.
2747         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
2748         CLOBBERs.
2749         (reload): Make sure there are no USEs with mode other than
2750         VOIDmode.  At the end, remove those marked with QImode.
2751
2752 2001-09-29  Per Bothner  <per@bothner.com>
2753
2754         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
2755         * Makefile.in (includedir):  Rename to local_includedir.
2756         (includedir):  Define as $(prefix)/include.
2757         * config.in (PREFIX_INCLUDE_DIR):  New variable.
2758         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
2759
2760 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
2761
2762         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
2763         storehps builtins.
2764         * doc/extend.texi (Vector Extensions): New node.
2765         * doc/invoke.texi (Machine Dependent Options): Add documentation for
2766         i386 -mmmx, -msse, -m3dnow.
2767
2768 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
2769
2770         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
2771
2772 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
2773
2774         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
2775
2776         * doc/invoke.texi (Optimize Options): Delete spurious @table.
2777
2778 2001-09-28  Richard Henderson  <rth@redhat.com>
2779
2780         * varasm.c (assemble_integer): Bound alignment check by
2781         BIGGEST_ALIGNMENT.
2782
2783         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
2784
2785 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2786
2787         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
2788
2789 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
2790
2791         Mostly from Graham Stott  <grahams@redhat.com>
2792         * c-common.c (type_for_mode): Add support for V2SFmode.
2793         * tree.c (build_common_tree_nodes_2): Likewise.
2794         * tree.h (enum tree_index, global_trees): Likewise.
2795         * config/i386/i386.c (x86_3dnow_a): New variable.
2796         (override_options): Support 3Dnow extensions.
2797         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
2798         Athlon's version of 3Dnow.
2799         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
2800         (ix86_expand_builtin): Handle them.
2801         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
2802         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
2803         TARGET_3DNOW_A): New macros.
2804         (TARGET_SWITCHES): Add 3Dnow switches.
2805         (VALID_MMX_REG_MODE_3DNOW): New macro.
2806         (VECTOR_MODE_SUPPORTED_P): Use it.
2807         (enum ix86_builtins): Add entries for 3Dnow builtins.
2808         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
2809         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
2810         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
2811         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
2812         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
2813         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
2814         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
2815         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
2816         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
2817         sfence_insn, prefetch): Make these available if TARGET_SSE or
2818         TARGET_3DNOW_A.
2819
2820 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
2821
2822         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
2823         ix86_va_start, ix86_build_va_list): Declare.
2824         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
2825         ix86_va_start, ix86_build_va_list): New global functions.
2826         * i386.md (sse_prologue_save_insn): New insn.
2827         (sse_prologue_save): New expander.
2828         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
2829         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
2830
2831 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2832
2833         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
2834         Use size_t everywhere, make definitions consistent with
2835         prototypes.
2836
2837 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
2838
2839         * gcse.c (replace_store_insn): Use delete_insn.
2840         * loop.c (move_movables): Likewise; avoid delete_insn
2841         from clobbering notes moved elsewhere.
2842         (check_dbra_loop): Use delete_insn.
2843         * ssa.c (convert_from_ssa): Likewise.
2844         * cse.c (cse_insn): Use delete_insn.
2845
2846 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2847
2848         * cpphash.h (struct cpp_buff): Make unsigned.
2849         (_cpp_get_buff): Take length of size_t.
2850         (_cpp_unaligned_alloc): New.
2851         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
2852         (struct cpp_reader): Remove ident_pool.  Add u_buff.
2853         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
2854         (cpp_destroy): Destroy u_buff, not ident_pool.
2855         * cpplex.c (parse_number, parse_string, save_comment,
2856         cpp_token_as_text): Update to use the unaligned buffer.
2857         (new_buff): Make unsigned.
2858         (_cpp_unaligned_alloc): New.
2859         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
2860         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
2861         Similarly.
2862         (collect_args): Make unsigned.
2863
2864 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
2865
2866         * cpplex.c (cpp_output_token): Use a putc loop for
2867         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
2868
2869         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
2870         * configure, config.in: Regenerate.
2871         * system.h: Replace fwrite and fprintf with their unlocked
2872         variants if available.
2873
2874 2001-09-27  Richard Henderson  <rth@redhat.com>
2875
2876         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
2877         in favour of .eh_frame.
2878
2879 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
2880
2881         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
2882         to macros.
2883         (LIBCALL_VALUE): Likewise.
2884
2885 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2886
2887         * cpphash.h: Update comment.
2888         * cpplex.c: Update comments.
2889         (_cpp_can_paste): Remove.
2890         * cpplib.h (_cpp_can_paste): Remove.
2891         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
2892         lexer rather than _cpp_can_paste.
2893
2894 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2895
2896         * doc/cppinternals.texi: Update.
2897
2898 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2899
2900         * cpphash.h (struct cpp_pool): Remove locks and locked.
2901         (struct cpp_context): Add member buff.
2902         (struct cpp_reader): Remove member argument_pool.
2903         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
2904         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
2905         * cpplex.c (chunk_suitable): Remove pool argument.
2906         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
2907         (new_buff, _cpp_extend_buff): Update.
2908         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
2909         which buffer is returned.
2910         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
2911         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
2912         * cppmacro.c (lock_pools, unlock_pools): Remove.
2913         (push_ptoken_context): Take a _cpp_buff.
2914         (enter_macro_context): Pool locking removed.
2915         (replace_args): Use a _cpp_buff for the replacement list with
2916         arguments replaced.
2917         (push_token_context): Clear buff.
2918         (expand_arg): Use _cpp_pop_context.
2919         (_cpp_pop_context): Free a context's buffer, if any.
2920
2921 2001-09-26  DJ Delorie  <dj@redhat.com>
2922
2923         * c-typeck.c (digest_init): Check for sizeless arrays.
2924
2925 2001-09-26  Richard Henderson  <rth@redhat.com>
2926
2927         * optabs.c (init_one_libfunc): Create a dummy function type
2928         instead of using error_mark_node.
2929
2930 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2931
2932         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
2933         _cpp_extend_buff, _cpp_free_buff): New.
2934         (struct cpp_reader): New member free_buffs.
2935         * cppinit.c (cpp_destroy): Free buffers.
2936         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
2937         _cpp_extend_buff, _cpp_free_buff): New.
2938         * cpplib.h (struct cpp_options): Remove unused member.
2939         * cppmacro.c (collect_args): New.  Combines the old parse_arg
2940         and parse_args.  Use _cpp_buff for memory allocation.
2941         (funlike_invocation_p, replace_args): Update.
2942
2943 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
2944
2945         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
2946
2947 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
2948
2949         * except.c (sjlj_mark_call_sites): Change address inside sequence.
2950
2951 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
2952
2953         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
2954         glibc.
2955
2956 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
2957             Jim Wilson  <wilson@redhat.com>
2958
2959         * doc/install.texi (Specific, ia64-*-linux): Document.
2960
2961 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
2962
2963         * Makefile.in (cfgrtl.o): Add.
2964         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
2965         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
2966         free_aux_for_edge): Declare.
2967         * cfg.c
2968         (HAVE_return): Undefine.
2969         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
2970         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
2971         free_aux_for_edge): New global functions.
2972         (first_delete_block): New static variable.
2973         (init_flow): Clear first_delete_block.
2974         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
2975          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
2976          try_redirect_by_replacing_jump, last_loop_beg_note,
2977          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
2978          delete_insn, delete_insn_chain, create_basic_block_structure,
2979          create_basic_block, flow_delete_block, compute_bb_for_insn,
2980          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
2981          set_block_for_new_insns, split_block, merge_blocks_nomove,
2982          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
2983          redirect_edge_and_branch, force_nonfallthru_and_redirect,
2984          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
2985          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
2986          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
2987          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
2988          purge_all_dead_edges): Move to ....
2989         * cfgrtl.c: New file; .... Here.
2990
2991         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
2992         (reroder_basic_block): Use alloc_aux_for_blocks.
2993         * predict.c (estimate_bb_frequencies): Likewise; use
2994         alloc_aux_for_edges.
2995         * profile.c (compute_branch_probabilities): Likewise.
2996         (branch_prob): Likewise.
2997         * reg-stack.c (reg_to_stack): Likewise.
2998
2999         * emit-rtl.c (emit_insns_after): Never return NULL.
3000
3001         * basic-block.h (set_block_for_new_insns): Delete.
3002         * cfgrtl.c (set_block_for_new_insns): Delete.
3003
3004         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
3005         calls when crossjumping.
3006
3007         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
3008         * unroll.c (copy_loop_body): Use delete_insn.
3009
3010         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
3011         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
3012         keep_stack_depressed): Likewise.
3013         * gcse.c (cprop_cc0_jump): Likewise.
3014         * local-alloc.c (update_equiv_regs): Likewise.
3015         * loop.c (scan_loop, loop_delete_insns): Likewise.
3016         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
3017         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
3018         delete_output_reload, delete_address_reloads_1,
3019         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
3020         Likewise.
3021         * sibcall.c (replace_call_placeholder): Likewise.
3022         * cse.c (cse_insn): Likewise.
3023
3024 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3025
3026         From Graham Stott  <grahams@redhat.com>
3027         (def_builtin): Only define builtins appropriate for target_flags.  All
3028         callers changed.
3029         (builtin_decsription): Add new field mask which is used to determine
3030         when to define the builtin via the macro def_builtin.
3031
3032         (bdesc_comi): Initialise new mask fields.
3033         (bdesc_2srg): Likewise.
3034         (bdesc_1arg): Likewise.
3035
3036         * config/i386/i386.c (ix86_init_builtins): Correct return type
3037         building v4hi_ftype_v4hi_int_int tree node.
3038         (ix86_expand_sse_comi): Fix typo swapping operands.
3039         Don't swap comparision condition, it is already swapped.
3040         (ix86_expand_sse_compare): Before swapping operands
3041         move operand 1 into new rtx and not the target rtx.
3042         Don't swap comparison condition, it is already swapped.
3043         Always check whether we need to create a new TARGET.
3044
3045         * config/i386/i386.md: (sse_comi) Fix typos.
3046         (sse_ucomi): Likewise.
3047         (cvtss2si): Fix operand 0 contraint.
3048         (cvttss2si): Likewise.
3049         (sse_unpckhps): Fix mode for operand 2.
3050         (sse_unpcklps): Likewise.
3051
3052 2001-09-25  Graham Stott  <grahams@redhat.com>
3053
3054         * sibcall.c (skip_copy_to_return_value): Tighten return value
3055         copy check.
3056
3057 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
3058
3059         * rs6000.c (lwa_operand): Address must be word aligned.
3060
3061 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3062
3063         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
3064         number has been set.
3065         (type_hash_mark): Mark type itself.
3066
3067 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3068
3069         * c-lex.c (cb_def_pragma): Update.
3070         (c_lex): Update, and skip padding.
3071         * cppexp.c (lex, parse_defined): Update, remove unused variable.
3072         * cpphash.h (struct toklist): Delete.
3073         (union utoken): New.
3074         (struct cpp_context): Update.
3075         (struct cpp_reader): New members eof, avoid_paste.
3076         (_cpp_temp_token): New.
3077         * cppinit.c (cpp_create_reader): Update.
3078         * cpplex.c (_cpp_temp_token): New.
3079         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
3080         (cpp_output_token): Don't print leading whitespace.
3081         (cpp_output_line): Update.
3082         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
3083         do_include_common, do_line, do_ident, do_pragma,
3084         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
3085         parse_assertion): Update.
3086         (get_token_no_padding): New.
3087         * cpplib.h (CPP_PADDING): New.
3088         (AVOID_LPASTE): Delete.
3089         (struct cpp_token): New union member source.
3090         (cpp_get_token): Update.
3091         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
3092         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
3093         replace_args, quote_string, stringify_arg, parse_arg, next_context,
3094         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
3095         _cpp_backup_tokens, _cpp_create_definition): Update.
3096         (push_arg_context): Delete.
3097         (padding_token, push_token_context, push_ptoken_context): New.
3098         (make_string_token, make_number_token): Update, rename.
3099         (cpp_get_token): Update to handle tokens as pointers to const,
3100         and insert padding appropriately.
3101         * cppmain.c (struct printer): New member prev.
3102         (check_multiline_token): Constify.
3103         (do_preprocessing, cb_line_change): Update.
3104         (scan_translation_unit): Update to handle spacing.
3105         * scan-decls.c (get_a_token): New.
3106         (skip_to_closing_brace, scan_decls): Update.
3107         * fix-header.c (read_scan_file): Update.
3108
3109         * doc/cpp.texi: Update.
3110
3111 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3112
3113         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
3114         leak by passing malloc'ed pointer to reconcat, not concat.
3115
3116 2001-09-24  DJ Delorie  <dj@redhat.com>
3117
3118         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
3119
3120 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
3121
3122         * flow.c (delete_dead_jumptables): Delete jumptable if the only
3123         reference is from the literal pool.
3124
3125 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
3126
3127         * doc/install.texi (Final install): Request additional information
3128         in mail about successful builds.
3129
3130 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3131
3132         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
3133         initial value of return pointer register instead of value in frame-20.
3134         Revise comments.
3135
3136 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3137
3138         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
3139         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
3140         the libcall if there isn't a referenced identifier for the symbol.
3141
3142 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3143
3144         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
3145         non 64-bit machines.  Use these as a plabel for the trampoline.
3146         (TRAMPOLINE_SIZE): Adjust size for new words.
3147         (INITIALIZE_TRAMPOLINE): Initialize new words.
3148         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
3149         pointer to the plabel in the trampoline.
3150
3151 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3152
3153         * pa.c (function_arg): Pass floating arguments in both general and
3154         floating registers in indirect (dynamic) calls when generating code
3155         for the 32 bit ABI and the HP assembler.
3156
3157 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3158
3159         * doc/install.texi: Markup fixes.
3160         Use Solaris 2, SunOS 4 as appropriate.
3161         (Specific, *-*-solaris2*): Explain this.
3162         Unconditionally warn against /usr/ucb tools.
3163         Remove Sun as warning, obsolete.
3164         Move X11 header bug workaround here, update patches.
3165         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
3166         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
3167
3168 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
3169
3170         * errors.h (warning, error, fatal, internal_error): Don't mark
3171         with ATTRIBUTE_PRINTF_n.
3172         * toplev.h (internal_error, fatal_io_error, warning, error,
3173         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
3174         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
3175         Likewise.
3176
3177 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3178
3179         * function.c (pop_function_context_from): var_refs_queue
3180         and temp slots now in GC memory.
3181         (mark_function_status, free_after_compilation): Likewise;
3182         also struct function now in GC memory.
3183         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
3184         (combine_temp_slots): Likewise.
3185         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
3186         (prepare_function_start): Use GC memory for struct function.
3187         (mark_temp_slot): Deleted.
3188         (gcc_mark_struct_function): struct function now in GC memory.
3189
3190         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
3191         code for division, not modulus.
3192
3193         * rtl.def (MEM): Remove obsolete part of comment.
3194
3195 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
3196
3197         * c-format.c (init_function_format_info): Check __builtin_printf
3198         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
3199         in gnu89 mode.
3200
3201 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3202
3203         * c-common.c (format_attribute_table): Remove decl.
3204         * tree.h (format_attribute_table, lang_attribute_table): New decls.
3205         (lang_attribute_common): Likewise.
3206
3207         * function.c (fix_lexical_address): Use set_mem_alias_set.
3208         (expand_function_start): Likewise.
3209         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
3210
3211         * varasm.c (output_constant): Fix unused variable warning.
3212
3213         * attribs.c: New file, from c-common.c.
3214         (attribute_tables): Now four elements.
3215         (format_attribute_table, lang_attribute_common): New variables.
3216         (init_attributes): Reflect above changes.
3217         (handle_mode_attribute): Delete check for wider than uintmax.
3218         * c-common.c: Delete parts moved to attribs.c.
3219         (enum attrs): Deleted; unused.
3220         (c_format_attribute_table): New variable.
3221         (c_common_lang_init): Initialize format_attribute_table with it.
3222         * c-common.h (decl_attributes): Remove decl.
3223         * tree.h (decl_attribute): Move it to here.
3224         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
3225         (attribs.o): New rule.
3226
3227 2001-09-22  Andreas Jaeger  <aj@suse.de>
3228
3229         * builtins.c (c_getstr): Remove unused variable.
3230
3231 2001-09-21  Richard Henderson  <rth@redhat.com>
3232
3233         * reload1.c (reload): Use delete_insn instead of splatting
3234         NOTE_INSN_DELETED.
3235
3236 2001-09-21  Richard Henderson  <rth@redhat.com>
3237
3238         * reload.c (push_secondary_reload): Don't check for "=" in output
3239         constraint after ""->ALL_REGS check.
3240
3241 2001-09-21  Richard Henderson  <rth@redhat.com>
3242
3243         * predict.c (expected_value_to_br_prob): Use pc_set.
3244
3245         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
3246         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
3247
3248 2001-09-21  Richard Henderson  <rth@redhat.com>
3249
3250         * rtl.h (LCT_RETURNS_TWICE): New.
3251         * calls.c (emit_call_1): Set current_function_calls_setjmp for
3252         ECF_RETURNS_TWICE.
3253         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
3254         to ECF_RETURNS_TWICE.
3255         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
3256         call to setjmp.
3257
3258         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
3259
3260         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
3261         (JMP_BUF_SIZE): New.
3262
3263 2001-09-21  Richard Henderson  <rth@redhat.com>
3264
3265         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
3266         to R8_REGS.
3267
3268 2001-09-21  Richard Henderson  <rth@redhat.com>
3269
3270         * tree.def (FDESC_EXPR): New.
3271         * expr.c (expand_expr): Handle it.
3272         * varasm.c (initializer_constant_valid_p): Likewise.
3273         (output_constant): Likewise.
3274         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
3275         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
3276         (ASM_OUTPUT_FDESC): New.
3277         * doc/tm.texi: Document the new macros.
3278
3279 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
3280
3281         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
3282         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
3283         once merging is complete.
3284
3285 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3286
3287         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
3288
3289 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
3290
3291         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
3292         that would be invalid after a merge.
3293
3294 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
3295
3296         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
3297         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
3298         remove some labels.
3299         (flow_delete_insn): This one.
3300         (delete_insn_chain): Rename from ...; do not care labels.
3301         (flow_delete_insn_chain): ... this one.
3302         (flow_delete_block): Remove the insns one BB has been expunged.
3303         (merge_blocks_nomove): Likewise.
3304         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
3305         updating BB boundaries.
3306         (tidy_fallthru_edge): Likewise.
3307         (commit_one_edge_insertion): Likewise.
3308         * cfgbuild.c (find_basic_block): Likewise.
3309         (find_basic_blocks_1): Likewise.
3310         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
3311         (try_crossjump_to_edge): Likewise.
3312         (try_optimize_cfg): Likewise.
3313         * cse.c (delete_trivially_dead_insns): Likewise.
3314         * df.c (df_insn_delete): Likewise.
3315         * doloop.c (doloop_modify): Use delete_related_insns.
3316         * emit-rtl.c (try_split): Likewise.
3317         (remove_insn): Update BB boundaries.
3318         * expect.c (connect_post_landing_pads): Use delete_related_insns.
3319         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
3320         updating BB boundaries.
3321         (propagate_block_delete_insn): Likewise.
3322         (propagate_block_delete_libcall): Likewise.
3323         * function.c (delete_handlers): Use delete_related_insns.
3324         (thread_prologue_and_epilogue_insns): Likewise.
3325         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
3326         * genpeep.c (gen_peephole): Use delete_related_insns.
3327         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
3328         BB boundaries.
3329         (find_cond_trap): Likewise.
3330         * integrate.c (save_for_inline): Use delete_related_insns.
3331         (copy_insn_list): Likewise.
3332         * jump.c (pruge_linie_number_notes): Likewise.
3333         (duplicate_loop_exit_test): Likewise.
3334         (delete_computation): Likewise.
3335         (delete_related_insn): Rename from ...; use delete_insn
3336         (delete_insn): ... this one.
3337         (redirect_jump): Use delete_related_insns.
3338         * loop.c (scan_loop): Likewise.
3339         (move_movables): Likewise.
3340         (find_and_verify_loops): Likewise.
3341         (check_dbra_loop): Likewise.
3342         * recog.c (peephole2_optimize): Likewise.
3343         * reg-stack.c (delete_insn_for_stacker): Remove.
3344         (move_for_stack_reg): Use delete_insn.
3345         * regmove.c (combine_stack_adjustments_for_block): Likewise.
3346         * reload1.c (delete_address_reloads): Use delete_related_insns.
3347         (fixup_abnormal_edges): Use delete_insn.
3348         * recog.c (emit_delay_sequence): Use delete_related_insns.
3349         (delete_from-delay_slot): Likewise.
3350         (delete_scheduled_jump): likewise.
3351         (optimize_skip): Likewise.
3352         (try_merge_delay_insns): Likewise.
3353         (full_simple_delay_slots): Likewise.
3354         (fill_slots_from_thread): Likewise.
3355         (relax_delay_slots): Likewise.
3356         (make_return_insns): Likewise.
3357         (dbr_schedule): Likewise.
3358         * rtl.h (delete_insn): Rename to delete_related_insns.
3359         (delete_insn, delete_insn_chain): New prototypes.
3360         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
3361         by df_insn_delete already.
3362         * ssa-dce.c (delete_insn_bb): Use delete_insn.
3363         * ssa.c (convert_from_ssa): Use delete_related_insns.
3364         * unroll.c (unroll_loop): Likewise.
3365         (calculate_giv_inc): Likewise.
3366         (copy_loop_body): Likewise.
3367
3368         * i386-protos.h (ix86_libcall_value, ix86_function_value,
3369         ix86_function_arg_regno_p, ix86_function_arg_boundary,
3370         ix86_return_in_memory, ix86_function_value): Declare.
3371         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
3372         new static valurables.
3373         (x86_64_reg_class): New enum
3374         (x86_64_reg_class_name): New array.
3375         (classify_argument, examine_argument, construct_container,
3376          merge_classes): New static functions.
3377         (optimization_options): Enable flag_omit_frame_pointer and disable
3378         flag_pcc_struct_return on 64bit.
3379         (ix86_libcall_value, ix86_function_value,
3380         ix86_function_arg_regno_p, ix86_function_arg_boundary,
3381         ix86_return_in_memory, ix86_function_value): New global functions.
3382         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
3383         (function_arg_advance): Handle x86_64 passing conventions.
3384         (function_arg): Likewise.
3385         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
3386         (RETURN_IN_MEMORY): Move offline.
3387         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
3388         (FUNCTION_VALUE_REGNO_P): New macro.
3389         (FUNCTION_ARG_REGNO_P): Move offline.
3390         (struct ix86_args): Add maybe_vaarg.
3391         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
3392         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
3393
3394 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
3395
3396         * s390.md: Changed attributes for scheduling.
3397         * s390.c: (s390_adjust_cost, s390_adjust_priority)
3398         Changed scheduling
3399
3400 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3401
3402         Table-driven attributes.
3403         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
3404         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
3405         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
3406         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
3407         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
3408         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
3409         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
3410         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
3411         * tree.h (struct tree_decl): Change machine_attributes to
3412         attributes.
3413         * doc/c-tree.texi: Document that all attributes are now attached
3414         to decls and types.
3415         * c-common.c (add_attribute, attrtab, attrtab_idx,
3416         default_valid_lang_attribute, valid_lang_attribute): Remove.
3417         (attribute_tables, attributes_initialized,
3418         c_common_attribute_table, default_lang_attribute_table): New
3419         variables.
3420         (handle_packed_attribute, handle_nocommon_attribute,
3421         handle_common_attribute, handle_noreturn_attribute,
3422         handle_unused_attribute, handle_const_attribute,
3423         handle_transparent_union_attribute, handle_constructor_attribute,
3424         handle_destructor_attribute, handle_mode_attribute,
3425         handle_section_attribute, handle_aligned_attribute,
3426         handle_weak_attribute, handle_alias_attribute,
3427         handle_no_instrument_function_attribute,
3428         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
3429         handle_no_limit_stack_attribute, handle_pure_attribute): New
3430         functions.
3431         (init_attributes, decl_attributes): Rewrite to implement
3432         table-driven attributes.
3433         * c-common.h (enum attribute_flags): Move to tree.h.
3434         * c-format.c (decl_handle_format_attribute,
3435         decl_handle_format_arg_attribute): Rename to
3436         handle_format_attribute and handle_format_arg_attribute.  Update
3437         for table-driven attributes.
3438         * c-common.h (decl_handle_format_attribute,
3439         decl_handle_format_arg_attribute): Remove prototypes.
3440         (handle_format_attribute, handle_format_arg_attribute): Add
3441         prototypes.
3442         * c-decl.c (grokdeclarator): Handle attributes nested inside
3443         declarators.
3444         * c-parse.in (setattrs, maybe_setattrs): Remove.
3445         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
3446         Update to handle nested attributes properly.
3447         (maybe_resetattrs, after_type_declarator,
3448         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
3449         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
3450         properly.
3451         (make_pointer_declarator): Update to handle nested attributes
3452         properly.
3453         * doc/extend.texi: Update documentation of limits of attributes
3454         syntax.  Warn about problems with attribute semantics in C++.
3455         * target.h (struct target): Remove valid_decl_attribute and
3456         valid_type_attribute.  Add attribute_table and
3457         function_attribute_inlinable_p.
3458         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
3459         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
3460         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
3461         Add.
3462         (TARGET_INITIALIZER): Update.
3463         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
3464         definition.
3465         (function_attribute_inlinable_p): New function.  Check for the
3466         presence of any machine attributes before using
3467         targetm.function_attribute_inlinable_p.
3468         (function_cannot_inline_p): Update.
3469         * Makefile.in (integrate.o): Update dependencies.
3470         * doc/tm.texi: Update documentation of target attributes and
3471         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
3472         * tree.c (default_valid_attribute_p, valid_machine_attribute):
3473         Remove.
3474         (default_target_attribute_table,
3475         default_function_attribute_inlinable_p): New.
3476         (lookup_attribute): Update comment to clarify handling of multiple
3477         attributes with the same name.
3478         (merge_attributes, attribute_list_contained): Allow multiple
3479         attributes with the same name but different arguments to appear in
3480         the same attribute list.
3481         * tree.h (default_valid_attribute_p): Remove prototype.
3482         (struct attribute_spec): New.
3483         (default_target_attribute_table): Declare.
3484         (enum attribute_flags): Move from c-common.h.  Add
3485         ATTR_FLAG_TYPE_IN_PLACE.
3486         (default_function_attribute_inlinable_p): Declare.
3487         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
3488         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3489         (TARGET_ATTRIBUTE_TABLE): Define.
3490         (vms_attribute_table): New.
3491         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
3492         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3493         (TARGET_ATTRIBUTE_TABLE): Define.
3494         (arc_attribute_table, arc_handle_interrupt_attribute): New.
3495         * config/arm/arm.c (arm_valid_type_attribute_p,
3496         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
3497         Remove.
3498         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
3499         define.
3500         (TARGET_ATTRIBUTE_TABLE): Define.
3501         (arm_attribute_table, arm_handle_fndecl_attribute,
3502         arm_handle_isr_attribute): New.
3503         * config/avr/avr.c (avr_valid_type_attribute,
3504         avr_valid_decl_attribute): Remove.
3505         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
3506         define.
3507         (TARGET_ATTRIBUTE_TABLE): Define.
3508         (avr_attribute_table, avr_handle_progmem_attribute,
3509         avr_handle_fndecl_attribute): New.
3510         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
3511         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3512         (TARGET_ATTRIBUTE_TABLE): Define.
3513         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
3514         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
3515         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3516         (TARGET_ATTRIBUTE_TABLE): Define.
3517         (h8300_attribute_table, h8300_handle_fndecl_attribute,
3518         h8300_handle_eightbit_data_attribute,
3519         h8300_handle_tiny_data_attribute): New.
3520         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
3521         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
3522         Remove prototypes.
3523         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
3524         declarations.
3525         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
3526         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
3527         define.
3528         (TARGET_ATTRIBUTE_TABLE): Define.
3529         (ix86_attribute_table, ix86_handle_cdecl_attribute,
3530         ix86_handle_regparm_attribute): New.
3531         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
3532         i386_pe_valid_type_attribute_p): Remove.
3533         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
3534         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
3535         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3536         (TARGET_ATTRIBUTE_TABLE): Define.
3537         (ia64_attribute_table): New.
3538         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
3539         interrupt_ident2, model_ident1, model_ident2): Remove.
3540         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3541         (TARGET_ATTRIBUTE_TABLE): Define.
3542         (init_idents): Update.
3543         (m32r_attribute_table, m32r_handle_model_attribute): New.
3544         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
3545         Remove.
3546         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3547         (TARGET_ATTRIBUTE_TABLE): Define.
3548         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
3549         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
3550         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3551         (TARGET_ATTRIBUTE_TABLE): Define.
3552         (mcore_attribute_table, mcore_handle_naked_attribute): New.
3553         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
3554         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3555         (TARGET_ATTRIBUTE_TABLE): Define.
3556         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
3557         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
3558         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3559         (TARGET_ATTRIBUTE_TABLE): Define.
3560         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
3561         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
3562         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3563         (TARGET_ATTRIBUTE_TABLE): Define.
3564         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
3565         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3566         New.
3567         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
3568         Remove.
3569         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
3570         (TARGET_ATTRIBUTE_TABLE): Define.
3571         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
3572         New.
3573         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
3574         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3575         (TARGET_ATTRIBUTE_TABLE): Define.
3576         (v850_attribute_table, v850_handle_interrupt_attribute,
3577         v850_handle_data_area_attribute): New.
3578         * config/v850/v850-c.c (mark_current_function_as_interrupt):
3579         Return void.  Call decl_attributes instead of
3580         valid_machine_attribute.
3581
3582 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
3583
3584         * sh-protos.h (sh_pr_n_sets): Declare.
3585         * sh.c (calc_live_regs): If the initial value for PR has been copied,
3586         look at the copy to determine if PR needs to be saved.
3587         sh_pr_n_sets: New function.
3588         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
3589         (ALLOCATE_INITIAL_VALUE): Define.
3590
3591         * sh.c (initial_elimination_offset):
3592         Fix RETURN_ADDRESS_POINTER_REGNUM case.
3593
3594 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
3595
3596         * integrate.c (allocate_initial_values): New function.
3597         * integrate.h (allocate_initial_values): Declare.
3598         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
3599         here...
3600         * reload1.c (reload): And initialization of reg_equiv_memory_loc
3601         from here...
3602         * toplev.c (rest_of_compilation): To here.
3603         Call allocate_initial_values.
3604         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
3605
3606 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3607
3608         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
3609
3610 2001-09-20  DJ Delorie  <dj@redhat.com>
3611
3612         * c-typeck.c (really_start_incremental_init): Discriminate
3613         between zero-length arrays and flexible arrays.
3614         (push_init_level): Detect zero-length arrays and handle them
3615         like fixed-sized arrays.
3616         * expr.c (store_constructor): Handle zero-length arrays and
3617         flexible arrays correctly.
3618         * doc/extend.texi: Update zero-length array notes.
3619
3620 2001-09-20  Jim Wilson  <wilson@redhat.com>
3621
3622         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
3623         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
3624         for issue port conflicts.
3625         (cycle_end_fill_slots): TYPE_L instructions take two slots.
3626
3627 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
3628
3629         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
3630         on ia64.
3631
3632 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3633
3634         * fold-const.c (hashtab.h): Include.
3635         (int_const_binop): Remove FORSIZE arg and compute from type; all
3636         callers changed.
3637         Call size_int_type_wide for all single-word constants.
3638         (size_htab_hash, size_htab_eq): New functions.
3639         (size_int_type_wide): Rework to use hash table.
3640         * ggc-common.c (hashtab.h): Include.
3641         (struct d_htab_root): New struct.
3642         (d_htab_roots): New variable.
3643         (ggc_add_deletable_htab, ggc_htab_delete): New functions
3644         (ggc_mark_roots): Handle deletable htabs.
3645         * ggc-page.c (ggc_marked_p): New function.
3646         * ggc-simple.c (ggc_marked_p): Likewise.
3647         * ggc.h: Reformatting throughout.
3648         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
3649         * tree.c (init_obstacks): Make type_hash_table a deletable root.
3650         (type_hash_add): Allocate struct type_hash from GC memory.
3651         (mark_hash_entry, mark_type_hash): Deleted.
3652         (type_hash_marked_p, type_hash_mark): New functions.
3653         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
3654
3655 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
3656
3657         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
3658         than SImode.
3659
3660 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3661
3662         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
3663         array-too-large test for signed sizetype.
3664
3665 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
3666
3667         * i386.md (indirect_jump): Allow Pmode operand.
3668         (tablejump): LIkewise; perform expansion to 64bit mode.
3669         * i386.c (symbolic_operand): Allow 64bit PIC references.
3670         (pic_symbolic_operand): Likewise.
3671         (ix86_find_base_term): Strip the 64bit PIC references.
3672         (legitimate_pic_address_disp_p): Handle 64bit PIC.
3673         (legitimize_pic_address): Likewise.
3674         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
3675         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
3676
3677 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
3678
3679         * stringpool.c (get_identifier_with_length): New function.
3680         * tree.h (get_identifier_with_length): New prototype.
3681
3682 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
3683             David Edelsohn  <edelsohn@gnu.org>
3684
3685         Revert:
3686         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
3687         already sign-extended.
3688
3689         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
3690         * config/rs6000/rs6000.c (logical_operand): Always compare op as
3691         HOST_WIDE_INT.
3692         (rs6000_emit_set_long_const): Avoid unnecessary shift.
3693         (output_profile_hook): Declare label_name const.
3694         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
3695         to match constraints.
3696
3697 2001-09-19  Stan Shebs  <shebs@apple.com>
3698
3699         * alias.c: Fix typos in comments.
3700         * sched-rgn.c (init_ready_list): Ditto.
3701         * unwind-dw2.c (uw_frame_state_for): Ditto.
3702         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
3703         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
3704         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
3705
3706 2001-09-19  Richard Henderson  <rth@redhat.com>
3707
3708         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
3709         to the exit block.
3710         * Makefile.in (cfg.o): Depend on TM_P_H.
3711
3712 2001-09-19  Richard Henderson  <rth@redhat.com>
3713
3714         * config/alpha/alpha.c (local_symbol_p): Split out from ...
3715         (local_symbolic_operand): ... here.
3716         (small_symbolic_operand): Check mode.
3717         (global_symbolic_operand): New.
3718         (input_operand): Reject symbolics if explicit relocs.
3719         (call_operand): Tidy.
3720         (alpha_legitimize_address): Use movdi_er_high_g.
3721         (alpha_expand_mov): Likewise.
3722         * config/alpha/alpha-protos.h: Update.
3723         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3724         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
3725         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
3726         (UNSPECV_LDGP2): Remove.
3727         (all call patterns): Use 's' not 'i' for symbolic constraint.
3728         (call_osf call_value_osf): Use call_operand.
3729         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
3730         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
3731         (prologue_ldgp_1_er): Remove.
3732         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
3733         (builtin_setjmp_receiver_er patterns): Use them.
3734         (exception_receiver_er): Likewise.
3735
3736 2001-09-19  Richard Henderson  <rth@redhat.com>
3737
3738         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
3739
3740         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
3741         and NON_LOCAL_GOTO notes.
3742         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
3743         copy over CALL_INSN_FUNCTION_USAGE.
3744
3745 2001-09-18  Catherine Moore  <clm@redhat.com>
3746
3747         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
3748         Define as 0.
3749
3750 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
3751
3752         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
3753         new-style tm_file specification.  Specify correct tm_p_file,
3754         md_file, and out_file for s390x.
3755
3756         * config/s390/linux.h, linux64.h:  Don't include other target
3757         macro header files.  Now handled via tm_file.
3758
3759         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
3760         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
3761         are defined before use.
3762
3763 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
3764
3765         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
3766         code generation only for Gnu assembler.
3767
3768 2001-09-18  Catherine Moore  <clm@redhat.com>
3769
3770         * config/stormy16 (LIB_SPEC): Remove -lnosys.
3771
3772 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
3773
3774         * config/mips/mips.c (mips_frame_set): New.
3775         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
3776         a parallel frame-related expression with a set for each register.
3777
3778 2001-09-18  Philip Blundell  <philb@gnu.org>
3779
3780         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
3781         header files.
3782
3783 2001-09-17  Dale Johannesen  <dalej@apple.com>
3784
3785         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
3786         * config/rs6000/aix.h (FIXED_R2): Define.
3787         * config/rs6000/darwin.h (FIXED_R2): Define.
3788         * config/rs6000/sysv4.h (FIXED_R2): Define.
3789
3790 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
3791
3792         * except.c (dw2_build_landing_pads): New local
3793         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
3794         barrier after clobbers.  Fixes c++/4012.
3795
3796 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3797
3798         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
3799
3800 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3801
3802         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
3803         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
3804
3805 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3806
3807         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
3808         alloca/strcpy.
3809
3810 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3811
3812         * cpphash.h (_cpp_lex_direct): New.
3813         * cpplex.c (_cpp_lex_token): Update.
3814         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
3815         and increment that pointer.
3816         * cppmacro.c (alloc_expansion_token): New.
3817         (lex_expansion_token): Lex macro expansion directly into
3818         macro storage.
3819
3820 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
3821
3822         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
3823
3824 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
3825
3826         * basic-block.h (free_bb_for_insn): Declare.
3827         * bb-reorder.c (label_for_bb): Use block_label.
3828         (emit_jump_to_block_after): Remove.
3829         (insert_intra_1): Do not update block_for_insn.
3830         (insert_inter_bb_scope_notes): Likewise; update bb->end
3831         * cfg.c (free_bb_for_insn): New.
3832         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
3833         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
3834         (commit_one_edge_insertion): Likewise.
3835         (commit_one_edge_insertion): Do not update BB boundary.
3836         (commit_edge_insertions): Do not call compute_bb_for_insn.
3837         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
3838         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
3839         (merge_blocks_move_successor_nojumps): Likewise.
3840         (try_crossjump_to_edge): Do not update block_for_insn.
3841         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
3842         * df.c (df_pattern_emit_later): Do not update BB boundary.
3843         (df_jump_pattern_emit_after): Likewise.
3844         (df_insn_move_before): Use emit_insn_before.
3845         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
3846          properly.
3847         (add_insn_after, add_insn_before, emit_insns_after): Update BB
3848         boundaries and basic_block_for_insn.
3849         (reorder_insns_nobb): Rename from reorder_insns.
3850         (reorder_insns): New.
3851         (emit_block_insn_before, emit_block_insn_after): Kill.
3852         * flow.c (check_function_return_warnings): Do not call
3853         compute_bb_for_insn; Do not free basic_block_for_insn.
3854         (attempt_auto_inc): Do not update basic_block_for_insn.
3855         * function.c (emit_return_into_block): Likewise;
3856         do not update BB boundaries.
3857         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
3858         (insert_insn_end_bb): Use emit_insn_before; Likewise.
3859         (pre_insert_copy_insn): Likewise.
3860         (update_ld_motion_notes): Likewise.
3861         (insert_insn_start_bb): Likewise.
3862         (replace_store_insn): Likewise.
3863         * ifcvt.c (noce_process_if_block): Likewise.
3864         (if_convert): Do not call compute_bb_for_insn.
3865         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
3866         Use emit_insn_before and emit_insn_after.
3867         * recog.c (split_all_insns): Do not update BB boundaries;
3868         Do not call compute_bb_for_insn.
3869         (peephole2_optimize): Do not update BB boundaries.
3870         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
3871         emit_insn_before.
3872         (emit_swap_insn): Likewise.
3873         (convert_regs_1): Likewise.
3874         * reload1.c (reload): Call compute_bb_for_insn.
3875         * rtl.h (reorder_insns_nobb): Declare.
3876         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
3877         * toplev.c (rest_of_compilation): Call free_bb_for_insn
3878         at places CFG is invalidated; do not call compute_bb_for_insn.
3879
3880         * cfg.c (expunge_block): Invalidate BB structure.
3881
3882         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
3883         array.
3884
3885         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
3886
3887 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3888
3889         * cpphash.h (_cpp_lex_token): Update prototype.
3890         * cpplex.c (_cpp_lex_token): New prototype.
3891         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
3892         lex_macro_node, read_flag, do_pragma_poison): Update.
3893         * cppmacro.c (cpp_get_token, parse_params,
3894         lex_expansion_token): Update.
3895
3896 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3897
3898         * cppmain.c (scan_translation_unit): Don't worry about
3899         putting a space after hashes.
3900         * cpplib.c (directive_diagnostics): New.
3901         (_cpp_handle_directive): Update to use directive_diagnostics.
3902         (run_directive): Don't toggle prevent_expansion.
3903         (do_line): Backup in case of the line extension.
3904         * cpplib.h (cpp_lexer_pos): Remove.
3905         * cppmacro.c (_cpp_create_definition): Precede a leading #
3906         with whitespace.
3907
3908 2001-09-15  Richard Henderson  <rth@redhat.com>
3909
3910         * c-typeck.c (comptypes): Handle zero-length arrays properly.
3911
3912 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3913
3914         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
3915
3916 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3917
3918         PR preprocessor/3571
3919         * tradcpp.c (handle_directive): Skip non-vertical space.
3920
3921 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3922
3923         * cppmain.c (setup_callbacks): Set line callback only
3924         if outputting preprocessed source.
3925
3926 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3927
3928         * collect2.c (main): Const-ification.
3929         * gcc.c (translate_options, process_command): Use xstrdup in
3930         lieu of xmalloc/strcpy.
3931         (main): Use concat in lieu of xmalloc/strcpy/strcat.
3932
3933 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3934
3935         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
3936         example.
3937
3938 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3939
3940         * scan-decls.c (scan_decls): Fix typo.
3941
3942 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3943
3944         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
3945         Split mlstring_pos into mls_line and mls_col.
3946         * cppinit.c (cpp_create_reader): Initialize line to 1.
3947         (cpp_destroy): Free tokenruns.
3948         (push_include): Don't update lexer_pos.
3949         * cpplex.c (unterminated, parse_string): Update.
3950         (lex_token): Don't update lexer_pos, update.
3951         * cpplib.c (if_stack): Save line instead of line + col.
3952         (start_directive, _cpp_do__Pragma, do_else, do_elif,
3953         push_conditional, _cpp_pop_buffer): Update.
3954         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
3955         (_cpp_create_definition): Update.
3956
3957 2001-09-15  Eric Christopher  <echristo@redhat.com>
3958
3959         * config/mips/abi64.h: Add support for MEABI.
3960
3961 2001-09-15  Eric Christopher  <echristo@redhat.com>
3962
3963         * config/mips/mips.md: Add unspec #2.
3964         (reload_indi): Use.
3965         (reload_outdi): Ditto.
3966         (reload_outsi): Ditto.
3967         (HILO_delay): New.
3968
3969 2001-09-15  Eric Christopher  <echristo@redhat.com>
3970             Jason Eckhardt  <jle@redhat.com>
3971
3972         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
3973         * config/mips/isa32-linux.h: New file.
3974         * config/mips/isa3264.h: Ditto.
3975         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
3976         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
3977         (output_block_mode): Support MEABI.
3978         (function_arg): Ditto. Fix floating point arg passing.
3979         (mips_va_start): Ditto.
3980         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
3981         processors.
3982         (mips_asm_file_start): Add new section to pass abi to gdb.
3983         (function_arg_pass_by_reference): Support MEABI.
3984         (mips_parse_cpu): Support mips32 and mips64 processors.
3985         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
3986         TARGET_MIPS5KC.  Support isa32 and isa64.
3987         (processor_type): Add r4kc, r5kc, r20kc.
3988         (GENERATE_MULT3_SI): New.
3989         (GENERATE_MULT3_DI): Ditto.
3990         (GENERATE_MULT3): Remove.
3991         (ISA_HAS_64BIT_REGS): Add isa == 64.
3992         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
3993         (ISA_HAS_MADD_MSUB): New.
3994         (ISA_HAS_CLZ_CLO): Ditto.
3995         (ISA_HAS_DCLZ_DCLO): Ditto.
3996         (ABI_GAS_ASM_SPEC): New.
3997         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
3998         (ASM_SPEC): Ditto.
3999         (LINK_SPEC): Ditto.
4000         (SUBTARGET_CC1_SPEC): Ditto.
4001         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
4002         (PAD_VARARGS_DOWN): Support MEABI.
4003         (HARD_REGNO_NREGS): Move to mips.c.
4004         (ASM_OUTPUT_IDENT): Add #undef.
4005         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
4006         (mulsi3): Use GENERATE_MULT3_SI.
4007         (mulsi3_mult3): Ditto.  Support mips32, mips64.
4008         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
4009         (mul_sub_si): New pattern.
4010         (unnamed splitters): New.
4011         (muldi3): Use GENERATE_MULT3_DI.
4012         (muldi3_internal2): Ditto.
4013         (movdicc): Support mips32.
4014         * config/mips/t-isa3264: New file.
4015
4016 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
4017
4018         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
4019         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
4020         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
4021
4022         * reorg.c (fill_slots_from_thread): After call to
4023         steal_delay_list_from_target, update own_thread as new_thread may
4024         have branched.
4025
4026 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4027
4028         * cpperror.c (print_location): Take line and column, for
4029         default positioning use the previously lexed token.
4030         (_cpp_begin_message): Take line and column.
4031         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
4032         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
4033         * cpphash.h (_cpp_begin_message): Update prototype.
4034         * cppinit.c (push_include): Don't set output line.
4035         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
4036         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
4037         (do_pragma): Kludge for front ends.  Don't expand macros at all.
4038         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
4039         (struct cpp_token): Remove output_line.
4040         (struct cpp_callbacks): New member line_change.
4041         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
4042         cpp_get_token): Preserve BOL flag.
4043         (cpp_get_line): Remove.
4044         (_cpp_backup_tokens): Remove useless abort().
4045         * cppmain.c (cb_line_change): New.
4046         (scan_translation_unit): Don't worry about starting new lines here.
4047         * scan-decls.c (scan_decls): Update.
4048         * c-lex.c (c_lex, init_c_lex): Update.
4049         (cb_line_change, src_lineno): New.
4050
4051 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
4052
4053         * tree.c (append_random_chars): Generate the random
4054         characters in a reproducable fashion.
4055
4056 2001-09-14  Richard Henderson  <rth@redhat.com>
4057
4058         * config/i386/i386.c (internal_label_prefix): New.
4059         (internal_label_prefix_len): New.
4060         (override_options): Set them.
4061         (local_symbolic_operand): New.
4062         (legitimate_pic_address_disp_p): Use it.
4063         (legitimize_pic_address): Likewise.
4064
4065 2001-09-14  Marc Espie <espie@openbsd.org>
4066
4067         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
4068         correctly.
4069
4070 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4071
4072         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
4073         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
4074
4075 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
4076
4077         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
4078         invocation of SUBREG_REGNO_OFFSET.
4079
4080         * haifa-sched.c: Fix typo in FSF copyright statement.
4081         * sched-deps.c: Fix typo in FSF copyright statement.
4082         * sched-ebb.c: Fix typo in FSF copyright statement.
4083         * sched-rgn.c: Fix typo in FSF copyright statement.
4084         * sched-vis.c: Fix typo in FSF copyright statement.
4085
4086         * config.gcc: Move inclusion of arm elf specific header files
4087         from the files themselves into the tm_file variable.  Make
4088         sure that elfos.h is included before target specific elf
4089         headers.
4090         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
4091         already defined.
4092         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
4093         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
4094         ASM_OUTPUT_CASE_LABEL): Protect definition.
4095         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
4096         not already defined.
4097         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
4098         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
4099         Remove duplicate definition.
4100         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
4101         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
4102         (RDATA_SECTION_FUNCTION): Remove redundant definition.
4103         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
4104         Remove inclusion of arm/elf.h.
4105         * config/arm/unknown-elf.h: as for conix-elf.h.
4106         (STARTFILE_SPEC): Include crti.o and crtn.o.
4107         * config/arm/linux-elf.h: as for conix-elf.h.
4108         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
4109         * config/arm/strongarm-elf.h: Remove inclusion of
4110         unknown-elf.h.
4111         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
4112         * config/arm/unknown-elf-oabi.h: Remove inclusion of
4113         unknown-elf.h and elf.h.
4114         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
4115         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
4116         ASM_WEAKEN_LABEL): Remove redundant definition.
4117         * config/arm/elf.h: Test for inclusion of elfos.h
4118         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
4119         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
4120         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
4121         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
4122         redundant definition.
4123         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
4124         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
4125         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
4126         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
4127         Add rules to build crti.o and crtn.o
4128         * crti.asm: New file.
4129         * crtn.asm: New file.
4130
4131 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
4132
4133         * c-parse.in (_yylex): Use _cpp_backup_tokens.
4134         * cpphash.h (struct tokenrun): Add prev.
4135         (struct lexer_state): Remove bol.
4136         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
4137         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
4138         : Remove.
4139         * cppinit.c (cpp_create_reader): Don't set bol.
4140         (cpp_destroy): Don't free lookaheads.
4141         * cpplex.c (lex_directive): Remove.
4142         (next_tokenrun): Update.
4143         (_cpp_lex_token): Clean up logic.
4144         (lex_token): Update to return a pointer to lexed token, since it
4145         can move to the start of the buffer.  Simpify newline handling.
4146         * cpplib.c (SEEN_EOL): Update.
4147         (skip_rest_of_line): Remove lookahead stuff.
4148         (end_directive): Line numbers are already incremented.  Revert
4149         to start of lexed token buffer if we can.
4150         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
4151         parse_answer): Use _cpp_backup_tokens.
4152         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
4153         instead.  Don't check for EOL.
4154         (do_include_common, do_line, do_pragma_system_header): Use
4155         skip_rest_of_line.
4156         * cpplib.h (BOL, _cpp_backup_tokens): New.
4157         * cppmacro.c (save_lookahead_token, take_lookahead_token,
4158         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
4159         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
4160         (builtin_macro): Don't use cpp_get_line.
4161         (cpp_get_line): Short term kludge.
4162         (parse_arg): Handle directives in arguments here.  Back up when
4163         appropriate.  Store EOF at end of argument list.
4164         (funlike_invocation_p): Use _cpp_backup_tokens.
4165         (push_arg_context): Account for EOF at end of list.
4166         (cpp_get_token): Remove lookahead stuff.  Update.
4167
4168 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4169
4170         * c-parse.in (yyerror): Const-ification and/or static-ization.
4171         * c-typeck.c (push_member_name): Likewise.
4172         * collect2.c (main): Likewise.
4173         * dbxout.c (dbxout_parms): Likewise.
4174         * diagnostic.c (format_with_decl): Likewise.
4175         * dwarf2out.c (output_ranges): Likewise.
4176         * dwarfout.c (fundamental_type_code): Likewise.
4177         * except.c (dw2_output_call_site_table): Likewise.
4178         * gcc.c (do_spec_1): Likewise.
4179         * genopinit.c (optabs): Likewise.
4180         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
4181         gen_declaration_1, handle_impent): Likewise.
4182         * protoize.c (default_include, in_system_include_dir, abspath):
4183         Likewise.
4184         * sched-vis.c (visualize_stall_cycles): Likewise.
4185         * sdbout.c (plain_type_1, sdbout_end_function,
4186         sdbout_end_epilogue): Likewise.
4187         * varasm.c (decode_reg_name): Likewise.
4188
4189         * 1750a.c (mod_regno_adjust): Likewise.
4190         * alpha.c (alpha_write_one_linkage,
4191         unicosmk_output_default_externs): Likewise.
4192         * arm.c (arm_condition_codes): Likewise.
4193         * arm.h (arm_condition_codes): Likewise.
4194         * avr.c (output_movsisf, encode_section_info): Likewise.
4195         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
4196         Likewise.
4197         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
4198         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
4199         * m88k.c (output_function_profiler): Likewise.
4200         * mips.c (mips_output_conditional_branch): Likewise.
4201         * ns32k.c (ns32k_out_reg_names): Likewise.
4202         * ns32k.h (ns32k_out_reg_names): Likewise.
4203         * pj.c (pj_output_rval): Likewise.
4204         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
4205         * sparc.c (sparc_flat_function_prologue,
4206         sparc_flat_function_epilogue): Likewise.
4207
4208 2001-09-13  Markus Werle <numerical.simulation@web.de>
4209             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4210
4211         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
4212         Aachen University of Technology".
4213
4214 2001-09-13  Andreas Schwab  <schwab@suse.de>
4215
4216         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
4217         C99.
4218
4219 2001-09-13  Richard Henderson  <rth@redhat.com>
4220
4221         * config/alpha/alpha.c (small_symbolic_operand): New.
4222         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
4223         (some_operand, input_operand): Don't handle HIGH.
4224         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
4225         (alpha_expand_mov): Likewise.
4226         (print_operand) [H]: Just print HIGH symbol.
4227         (print_operand_address): Handle small data.
4228         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
4229         (TARGET_SWITCHES): Add -msmall-data/large-data.
4230         (PIC_OFFSET_TABLE_REGNUM): New.
4231         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
4232         (PREDICATE_COES): Update.
4233         * config/alpha/alpha.md (adddi_er_high): New.
4234         (adddi_er_low): Handle small data.
4235         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
4236         prefer .sdata to .rodata.
4237         (SELECT_RTX_SECTION): Likewise.
4238
4239 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
4240
4241         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
4242         defining __size_t and leaving size_t undefined.
4243
4244 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
4245
4246         * basic-block.h (expunge_block): Declare.
4247         * cfg.c (expunge_block): Remove static declaration.
4248
4249 2001-09-12  Richard Henderson  <rth@redhat.com>
4250
4251         * integrate.c (copy_insn_list): Copy label name from
4252         NOTE_INSN_DELETED_LABEL.
4253
4254 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4255
4256         * c-common.c (c_tree_code_name): Const-ification.
4257         * c-decl.c (c_decode_option): Likewise.
4258         * c-typeck.c (warn_for_assignment): Likewise.
4259         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
4260         Likewise.
4261         * cppinit.c (output_deps): Likewise.
4262         * dependence.c (dependence_string, direction_string): Likewise.
4263         * dwarf2out.c (output_ranges): Likewise.
4264         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
4265         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
4266         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
4267         standard_startfile_prefix, standard_startfile_prefix_1,
4268         standard_startfile_prefix_2, tooldir_base_prefix,
4269         standard_bindir_prefix, find_a_file): Likewise.
4270         * genattrtab.c (make_length_attrs): Likewise.
4271         * gencheck.c (tree_codes): Likewise.
4272         * genemit.c (gen_split): Likewise.
4273         * genrecog.c (special_mode_pred_table): Likewise.
4274         * graph.c (graph_ext): Likewise.
4275         * protoize (default_include): Likewise.
4276         * reload.c (reload_when_needed_name): Likewise.
4277         * sched-vis.c (visualize_stall_cycles): Likewise.
4278         * tlink.c (recompile_files): Likewise.
4279         * toplev.c (decode_g_option): Likewise.
4280         * tradcpp.c (output_deps): Likewise.
4281         * varasm.c (decode_reg_name): Likewise.
4282
4283         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
4284         Const-ification.
4285         * arm.md: Likewise.
4286         * avr.c (avr_regnames, encode_section_info): Likewise.
4287         * c4x.c (float_reg_names): Likewise.
4288         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
4289         * elfos.h (const_section): Likewise.
4290         * i386.c (ix86_comp_type_attributes): Likewise.
4291         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
4292         * ia64/aix.h (UNIQUE_SECTION): Likewise.
4293         * ia64.c (type_names): Likewise.
4294         * m68hc11.c (reg_class_names): Likewise.
4295         * m88k.c (m_options): Likewise.
4296         * mips.c (mips_output_conditional_branch, mips_unique_section):
4297         Likewise.
4298         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4299         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
4300         ultra_code_names): Likewise.
4301         * sparc.h (OVERRIDE_OPTIONS): Likewise.
4302
4303 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
4304
4305         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
4306         Use --fatal-warnings option for gas.
4307         * configure: Rebuilt.
4308
4309 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4310
4311         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
4312
4313 2001-09-11  Jim Wilson  <wilson@redhat.com>
4314
4315         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
4316
4317 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4318
4319         * builtins.c (c_strlen): Treat an offset too large for a
4320         HOST_WIDE_INT as out of range.
4321
4322 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
4323
4324         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
4325         (EDGE_CRITICAL_P): New predicate.
4326         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
4327         handling.
4328         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
4329         (dump_edge_info): Remove "crit".
4330         * cfganal.c (mark_critical_edges): Kill.
4331         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
4332         * cfgcleanup.c (cleanup_cfg): Likewise.
4333         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
4334         (find_spanning_tree): Likewise.
4335         * reg-stack.c (convert_regs_1): Likewise.
4336         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
4337
4338         * basic-block.h (create_basic_block_structure): New.
4339         (create_basic_block): Update prototype.
4340         (force_nonfallthru): New.
4341         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
4342         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
4343         handle updating of block_for_insn, creating of empty BBs and BBs at
4344         the end of INSN chain.
4345         (create_basic_block): New function.
4346         (split_block): Use create_basic_block.
4347         (force_nonfallthru_and_redirect): Break out from ...; cleanup
4348         (redirect_edge_and_branch_force): ... here.
4349         (force_nonfallthru): New.
4350         (split_edge): Rewrite to use force_nonfallthru and create_block.
4351         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
4352         (find_basic_blocks): Free basic_block_for_insn.
4353         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
4354
4355         * cfg.c: Fix formating.
4356         * cfgcleanup.c: Fix formating.
4357         (merge_blocks, tail_recursion_label_p): Return bool.
4358         (merge_blocks_move_predecessor_nojumps,
4359          merge_blocks_move_successor_nojumps): Return void.
4360
4361 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
4362
4363         * configure.in: Check whether assembler supports section merging.
4364         * config.in: Rebuilt.
4365         * configure: Rebuilt.
4366         * varasm.c (variable_section, output_constant_pool): Pass alignment
4367         to SELECT_SECTION and SELECT_RTX_SECTION.
4368         (mergeable_string_section): New.
4369         (mergeable_constant_section): New.
4370         (default_elf_asm_named_section): Output SECTION_MERGE and
4371         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
4372         * output.h (mergeable_string_section): New.
4373         (mergeable_constant_section): New.
4374         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
4375         * toplev.c (flag_merge_constants): New.
4376         (f_options): Add -fmerge-constants and -fmerge-all-constants
4377         options.
4378         (toplev_main): Default to -fno-merge-constants if not optimizing.
4379         * flags.h (flag_merge_constants): Add extern.
4380         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
4381         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
4382         argument.
4383         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
4384         Define if assembler has working .subsection -1 support.
4385         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
4386         Put constant into special SHF_MERGE sections if the linker should
4387         attempt to merge duplicates.
4388         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
4389         macro argument.
4390         Put constant into special SHF_MERGE sections if the linker should
4391         attempt to merge duplicates.
4392         * config/alpha/elf.h: Likewise.
4393         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
4394         has working .subsection -1 support.
4395         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
4396         SELECT_SECTION.
4397         * config/svr3.h: Likewise.
4398         * config/darwin.h: Likewise.
4399         * config/arm/aof.h: Likewise.
4400         * config/arm/linux-elf.h: Likewise.
4401         * config/avr/avr.h: Likewise.
4402         * config/c4x/c4x.h: Likewise.
4403         * config/d30v/d30v.h: Likewise.
4404         * config/i386/dgux.h: Likewise.
4405         * config/i386/osfrose.h: Likewise.
4406         * config/i386/sco5.h: Likewise.
4407         * config/i386/svr3gas.h: Likewise.
4408         * config/ia64/aix.h: Likewise.
4409         * config/m32r/m32r.h: Likewise.
4410         * config/m68k/m68k.h: Likewise.
4411         * config/m88k/dgux.h: Likewise.
4412         * config/m88k/m88k.h: Likewise.
4413         * config/mcore/mcore-pe.h: Likewise.
4414         * config/mips/mips.h: Likewise.
4415         * config/pa/pa.h: Likewise.
4416         * config/pa/pa-linux.h: Likewise.
4417         * config/romp/romp.h: Likewise.
4418         * config/rs6000/sysv4.h: Likewise.
4419         * config/rs6000/xcoff.h: Likewise.
4420         * config/s390/linux.h: Likewise.
4421         * config/sparc/sparc.h: Likewise.
4422         * config/sparc/sysv4.h: Likewise.
4423         * config/stormy16/stormy16.h: Likewise.
4424         * config/v850/v850.h: Likewise.
4425         * config/vax/vms.h: Likewise.
4426         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
4427         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
4428         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
4429         default_elf_asm_named_section for SHF_MERGE sections.
4430
4431 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
4432
4433         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
4434         is OK.
4435
4436 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
4437
4438         * c-common.c (split_specs_attrs): Allow for empty attributes with
4439         empty TREE_PURPOSE.  Fixes PR c/4294.
4440
4441 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
4442
4443         * basic-block.h (cached_make_edge, make_single_succ): New.
4444         (make_edge): Remove first parameter.
4445         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
4446         * cfg.c (cached_make_edge): Rename from make_edge; return newly
4447         created edge; use obstack allocation.
4448         (make_edge, make_single_succ_edge): New.
4449         (first_removed_edge): New static variable.
4450         (init_flow): Initialize first_removed_edge and n_edges.
4451         (clear_edges): Use remove_edge.
4452         (flow_delete_block): Likewise.
4453         (remove_edge): Add removed edges to the removed edges list.
4454         (split_block, redirect_edge_and_branch_force, split_edge):
4455         Use make_edge.
4456         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
4457         (add_noreturn_fake_exit_edges): Likewise.
4458         (connect_infinite_loops_to_exit): Liekwise.
4459         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
4460         Use cached_make_edge.
4461         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
4462         * profile.c (branch_prob): Update make_edge call.
4463         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
4464
4465 2001-09-11  Richard Henderson  <rth@redhat.com>
4466
4467         * config/alpha/alpha.c: Tidy formatting.
4468         (local_symbolic_operand): Verify mode.
4469         (alpha_sa_mask): Ignore unicos for eh_return.
4470         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
4471         * config/alpha/alpha.md (umk divsi patterns): Remove.
4472         (extendsfdf2): Remove unicos check.
4473         (tablejump): Merge vms and unicos code; always use direct set
4474         plus label_ref use.
4475
4476 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4477
4478         * config.gcc (alpha*-*-unicosmk*): New target.
4479
4480         * config/alpha/alpha-protos.h (symbolic_operand,
4481         unicosmk_add_call_info_word, unicosmk_add_extern,
4482         unicosmk_defer_case_vector, unicosmk_unique_section,
4483         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
4484         unicosmk_asm_file_start, unicosmk_asm_file_end,
4485         unicosmk_output_common): Declare.
4486
4487         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
4488         direct_return, function_arg, alpha_va_start, alpha_va_arg,
4489         alpha_does_function_need_gp, alpha_end_function): Support Cray
4490         Unicos/Mk.
4491         (alpha_init_machine_status, alpha_mark_machine_status,
4492         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
4493         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
4494         unicosmk_asm_named_section, unicosmk_insert_attributes,
4495         unicosmk_section_type_flags, symbolic_operand,
4496         unicosmk_output_module_name, unicosmk_output_default_externs,
4497         unicosmk_output_dex, unicosmk_output_externs,
4498         unicosmk_output_addr_vec, unicosmk_ssib_name,
4499         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
4500         unicosmk_asm_file_end, unicosmk_output_common,
4501         unicosmk_section_type_flags, unicosmk_unique_section,
4502         unicosmk_add_call_info_word, unicosmk_text_section,
4503         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
4504         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
4505         unicosmk_dex_count, unicosmk_special_name): New.
4506         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
4507         TARGET_ABI_UNICOSMK.
4508         (get_aligned_mem, alpha_expand_unaligned_load,
4509         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
4510         alpha_expand_unaligned_store_words): Support big-endian mode.
4511         (print_operand): Likewise. New format specifier 't'. Use
4512         TARGET_AS_SLASH_BEFORE_SUFFIX.
4513         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
4514         (alpha_pv_save_size): Update with above change.
4515         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
4516         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
4517         Unicos/Mk.
4518
4519         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
4520         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
4521         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
4522         (EXTRA_CONSTRAINT): New constraint 'U'.
4523         (PREDICATE_CODES): Add symbolic_operand.
4524
4525         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
4526         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
4527         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
4528         (integer division and modulus patterns): Split in default and
4529         Unicos/Mk versions.
4530         (*divmodsi_internal, *divmoddi_internal): Disable for
4531         TARGET_ABI_UNICOSMK.
4532         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
4533         little-endian and big-endian versions.
4534         (ext, ins, msk): Likewise.
4535         (extv, extzv, insv): Support big-endian mode.
4536         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
4537         (call_umk, call_value_umk, *call_umk, tablejump_umk,
4538         *tablejump_umk_internal, *call_value_umk): New.
4539         (*movdi_nofix): Add pattern for loading an address into a register on
4540         TARGET_ABI_UNICOSMK.
4541         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
4542         (umk_mismatch_args, arg_home_umk): New.
4543         (various insns): Don't use mov, fmov, nop, fnop and unop.
4544         (realign): Support TARGET_ABI_UNICOSMK.
4545
4546         * config/alpha/unicosmk.h: New file.
4547         * config/alpha/t-unicosmk: New file.
4548
4549         * fixinc/inclhack.def (unicosmk_restrict): New.
4550         * fixinc/fixincl.x: Regenerate.
4551
4552         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
4553         (wchar_t): Check for and define __WCHAR_T__.
4554
4555 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
4556
4557         * combine.c (simplify_shift_const): Treat shifts by the mode
4558         size as undefined.
4559
4560 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4561
4562         * cpphash.h (struct tokenrun): New.
4563         (struct cpp_context): New member bol.
4564         (struct cpp_reader): New members.
4565         (_cpp_init_tokenrun): New.
4566         * cppinit.c (cpp_create_reader): Set up the token runs.
4567         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
4568         (lex_token): New internalised version of _cpp_lex_token.  Don't
4569         handle directives or the multiple include opimisation here any
4570         more.  Simply lex a token.
4571         * cpplib.c (run_directive): Clear bol.
4572         (_cpp_pop_buffer): Set bol.
4573         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
4574         arguments.
4575
4576 2001-09-11  Michael Meissner  <meissner@redhat.com>
4577
4578         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
4579         give an error if the user uses -mfp32.
4580         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
4581         default options.
4582         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
4583         floating point register size.
4584         (EXTRA_SPECS): Add CPP_FPR_SPEC.
4585
4586         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
4587         HOST_WIDE_INT_PRINT_DEC to properly print the result of
4588         int_size_in_bytes.
4589         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
4590         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
4591
4592 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
4593
4594         * dbxout.c (dbxout_parms): Fix typo in comment.
4595         * unroll.c (loop_find_equiv_value): Ditto.
4596         * toplev.c (rest_of_compilation): Ditto.
4597         * loop.c (scan_loop): Ditto.
4598         * dwarf2out.c (struct dw_fde_struct): Ditto.
4599
4600 2001-09-10  Zack Weinberg  <zackw@panix.com>
4601
4602         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
4603         copying identifier when we're just going to throw it away.
4604         (parse_identifier_slow): New routine to handle abnormal cases.
4605         (_cpp_lex_token): Update call site.
4606
4607         * hashtable.c (ht_lookup): Don't assume that the string we've
4608         been given is NUL-terminated.
4609         * system.h: #define __builtin_expect(a, b) to (a) if not
4610         GCC >=3.0.
4611
4612 2001-09-10  Michael Meissner  <meissner@redhat.com>
4613
4614         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
4615         binutils, gdb.
4616
4617 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
4618
4619         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
4620
4621 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4622
4623         * builtins.c (c_getstr): Correct thinko in last change and further
4624         cleanup.
4625
4626 2001-09-10  Tim Freeman <tim@fungibole.com>
4627
4628         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
4629         into varray's and register them as roots with the garbage
4630         collector so they are not collected too soon.
4631
4632 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
4633
4634         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
4635         New.
4636         * basic-block.h (flow_obstack, label_value_list,
4637         tail_recursion_label_list): Declare
4638         (tidy_fallthru_edges): Declare.
4639         (expunge_block, last_loop_beg_note): Delete.
4640         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
4641         * cfg.c: New file
4642         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
4643         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
4644         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
4645         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
4646         expunge_block, flow_delete_block, compute_bb_for_insn,
4647         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
4648         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
4649         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
4650         try_redirect_by_replacing_jump, last_loop_beg_note,
4651         redirect_edge_and_branch, redirect_edge_and_branch_force,
4652         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
4653         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
4654         commit_edge_insertions, dump_flow_info, debug_flow_info,
4655         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
4656         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
4657         Move here from flow.c
4658         * cfganal.c: New file.
4659         (forwarder_block_p, can_fallthru, mark_critical_edges,
4660          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
4661          find_unreachable_blocks, create_edge_list, free_edge_list,
4662          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
4663          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
4664          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
4665          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
4666          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
4667          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
4668         Move here from flow.c
4669         * cfgbuild.c: New file
4670         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
4671          make_edges, find_basic_blocks_1, find_basic_blocks,
4672          find_sub_basic_blocks): Move here from flow.c
4673         * cfgcleanup.c: New file.
4674         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
4675          merge_blocks_move_predecessor_nojumps,
4676          merge_blocks_move_successor_nojumps, merge_blocks,
4677          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
4678          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
4679         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
4680         if succeeded.
4681         * cfgloop.c: New file
4682         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
4683          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
4684          flow_loop_exit_edges_find, flow_loop_nodes_find,
4685          flow_loop_pre_header_scan, flow_loop_pre_header_find,
4686          flow_loop_tree_node_add, flow_loops_tree_build,
4687          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
4688          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
4689         Move here from flow.c
4690         * flow.c: Remove everything moved elsewhere
4691         * output.h (cleanup_cfg): Return bool.
4692
4693         * bb-reorder.c (reorder_block_def): Remove 'index'.
4694         (insert_intra_1): Add argument BB, set block for new note.
4695         (make_reorder_chain): Do not depdent on BB indexes.
4696         (make_reorder_chain_1): Do not use BB indexes.
4697         (label_for_bb): Likewise; set BB for new insn.
4698         (emit_jump_to_block_after): Likewise.
4699         (fixup_reoder_chain): Sanity check that all basic blocks
4700         are chained; verify newly created insn chain; remove
4701         undocnitional jump simplifying; Do not use BB indexes;
4702         properly initialize count and frequency information;
4703         dump reordered sequence.
4704         (insert_intra_bb_scope_notes): update call of insert_intra_1.
4705         (insert_inter_bb_scope_notes): Set block for new insn.
4706         (reorder_basic_blocks): Dump flow info before reoredering.
4707
4708 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4709
4710         * alias.c (clear_reg_alias_info): Use K&R format definition.
4711         Avoid unsigned warning.
4712         * builtins.c: Use "unsigned int", not "unsigned".
4713         (target_char_cast): Use host_integerp and tree_low_cst.
4714         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
4715         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
4716         (c_getstr): Likewise.
4717         (std_expand_builtin_va_arg): Use int_size_in_bytes.
4718         (builtin_memcpy_read_str): Avoid unsigned warning.
4719         (expand_builtin_memcpy): Alignments are unsigned.
4720         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
4721         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
4722         * predict.c (expensive_function_p): LIMIT now unsigned.
4723         * resource.c (mark_target_live_regs): Make some vars unsigned.
4724         * sdbout.c: Use "unsigned int", not "unsigned".
4725         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
4726         (sdbout_source_line): Likewise.
4727         (sdbout_record_type_name): Remove "const" for NAME declaration.
4728         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
4729
4730 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
4731
4732         * calls.c (store_one_arg): Expand comment.
4733
4734 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4735
4736         * calls.c (store_one_arg): Make sure that the entire argument is
4737         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
4738
4739 2001-09-09  Richard Henderson  <rth@redhat.com>
4740
4741         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
4742
4743 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
4744
4745         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
4746
4747 2001-09-09  Richard Henderson  <rth@redhat.com>
4748
4749         * config/alpha/alpha.c (alpha_next_sequence_number): New.
4750         (alpha_this_literal_sequence_number): New.
4751         (alpha_this_gpdisp_sequence_number): New.
4752         (some_operand, input_operand): Add HIGH.
4753         (local_symbolic_operand): New.
4754         (alpha_encode_section_info): New.
4755         (alpha_legitimate_address_p): Allow LO_SUM.
4756         (alpha_legitimize_address): Generate HIGH+LO_SUM.
4757         (alpha_expand_mov): Likewise.
4758         (secondary_reload_class): Check memory_operand not general_operand
4759         for FP_REGS test.
4760         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
4761         (alpha_expand_unaligned_store): Likewise.
4762         (alpha_expand_unaligned_load_words): Likewise.
4763         (alpha_expand_unaligned_store_words): Likewise.
4764         (alpha_expand_block_clear): Likewise.
4765         (print_operand): Handle %#, %*, %H.
4766         (print_operand_address): Handle LO_SUM.
4767         (find_lo_sum): New.
4768         (alpha_does_function_need_gp): Use it.
4769         (alpha_expand_block_move): Fix signed compare warnings.
4770         (alpha_sa_mask, alpha_align_insns): Likewise.
4771         * config/alpha/alpha-protos.h: Update.
4772         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
4773         (MASK_EXPLICIT_RELOCS): New.
4774         (TARGET_SWITCHES): Add -mexplicit-relocs.
4775         (EXTRA_CONSTRAINT): Add 'T'.
4776         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
4777         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
4778         (ENCODE_SECTION_INFO): Out line.
4779         (REDO_SECTION_INFO_P): New.
4780         (STRIP_NAME_ENCODING): New.
4781         (ASM_OUTPUT_LABELREF): New.
4782         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
4783         (PREDICATE_CODES): Update.
4784         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
4785         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
4786         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
4787         builtin_setjmp_receiver_er, exception_receiver_1_er,
4788         call_value_osf_1_er): New patterns.
4789         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
4790         (movqi, movhi, movsi): Add explicit $31 base register to lda.
4791         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
4792         (FINAL_PRESCAN_INSN): New.
4793
4794 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
4795
4796         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
4797
4798 2001-09-08  Andreas Jaeger  <aj@suse.de>
4799
4800         * i386.h (TARGET_SWITCHES): Fix description.
4801
4802 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
4803
4804         * rs6000.c (num_insns_constant): Compute number of instructions
4805         more accurately.
4806
4807         * doc/install.texi: Explain AIX exception handling work-around.
4808         Update URL for AIX fixes.
4809
4810 2001-09-07  Jim Wilson  <wilson@redhat.com>
4811
4812         * alias.c (clear_reg_alias_info): New.
4813         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
4814         * rtl.h (clear_reg_alias_info): Declare.
4815
4816 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4817
4818         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
4819         available.
4820         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
4821         (m16m,edivm,emulm): Change declaration to match definition.
4822
4823 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
4824
4825         * reload.c (push_reload): Check for subreg_lowpart_p instead of
4826         SUBREG_BYTE being 0 when determining if the inner part of a subreg
4827         can be reloaded.
4828
4829 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4830
4831         * c-common.c (signed_or_unsigned_type): Handle machine mode types
4832         which have no corresponding C type.
4833         * fold_const.c (target_isinf,target_isnan,target_negative): Update
4834         the representation of 64-bit doubles to work with 64-bit ints.
4835
4836 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
4837
4838         * config/mips/mips.c (override_options): Do not override ISA when ABI
4839         specified if MIPS_CPU_STRING_DEFAULT was specified.
4840
4841 2001-09-07  Richard Henderson  <rth@redhat.com>
4842
4843         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
4844         (express_from_1): Wrap lines.
4845         * rtlanal.c (commutative_operand_precedence): Rename from
4846         operand_preference; export.
4847         * rtl.h: Declare it.
4848         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
4849         (simplify_binary_operation): Invoke simplify_plus_minus on
4850         (CONST (PLUS ...)) as well.
4851         (struct simplify_plus_minus_op_data): New.
4852         (simplify_plus_minus_op_data_cmp): New.
4853         (simplify_plus_minus): Use them.  Avoid infinite recursion with
4854         simplify_binary_operation wrt CONST.
4855
4856 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
4857
4858         * h8300-protos.h (general_operand_dst_push): Remove.
4859         * h8300.c (general_operand_dst_push): Likewise.
4860         * h8300.h (OK_FOR_T): Likewise.
4861         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
4862         * h8300.md (pushqi_h8300): New.
4863         (pushqi_h8300hs): Likewise.
4864         (pushqi): Likewise.
4865         (pushhi_h8300): Likewise.
4866         (pushhi_h8300hs): Likewise.
4867         (pushhi): Likewise.
4868
4869 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4870
4871         * genattrtab.c (attr_printf): First arg is unsigned.
4872         Clean up formatting of callers.
4873
4874 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
4875
4876         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
4877         registers.
4878
4879 2001-09-07  Andreas Jaeger  <aj@suse.de>
4880
4881         * i386.h (TARGET_SWITCHES): Fix descriptions.
4882
4883 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4884
4885         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
4886
4887 2001-09-06  Ira Ruben  <ira@apple.com>
4888
4889         Remove OP_IDENTIFIER.
4890         * tree.def (OP_IDENTIFIER): Remove.
4891         * tree.c (tree_node_kind enum): Remove op_id_kind.
4892         (tree_node_kind_names): Remove "op_identifiers".
4893         (make_node): Remove OP_IDENTIFIER test.
4894         (build_op_identifier): Removed because it isn't being used.
4895         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
4896         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
4897
4898 2001-09-06  Richard Henderson  <rth@redhat.com>
4899
4900         * simplify-rtx.c (simplify_binary_operation): Revert last change.
4901
4902 2001-09-06  Richard Henderson  <rth@redhat.com>
4903
4904         * simplify-rtx.c (simplify_binary_operation): Simplify contents
4905         of CONST.
4906
4907 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4908
4909         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
4910         number used for CR register.
4911
4912 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
4913                           Joern Rennecke (amylaar@cygnus.com)
4914
4915         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
4916         * h8300.c (initial_offset): Handle offset between RP and FP.
4917         (h8300_return_addr_rtx): New function.
4918         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
4919         return register.
4920         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
4921         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
4922         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
4923         (CAN_ELIMINATE, REGISTER_NAMES):
4924         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
4925
4926 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
4927
4928         Remove TYPE_NONCOPIED_PARTS.
4929         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
4930         (struct tree_type): Remove noncopied_parts.
4931         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
4932         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
4933         (fixed_type_p): Remove.
4934         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
4935         (expand_expr, MODIFY_EXPR): Likewise.
4936         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
4937         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
4938
4939 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
4940
4941         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
4942         compiler warnings.
4943         (mask64_operand): Likewise.
4944         (includes_rldic_lshift_p): Likewise.
4945         (includes_rldicr_lshift_p): Likewise.
4946
4947 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
4948
4949         * objc/objc-act.c (build_message_expr): If a class method cannot
4950         be found, do not issue a warning if a corresponding instance
4951         method exists in the root class.
4952
4953 2001-09-05  Richard Henderson  <rth@redhat.com>
4954
4955         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
4956
4957 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
4958
4959         * function.c (ggc_mark_struct_function): Mark f->outer.
4960         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
4961         * integrate.c (output_inline_function): ... not here.
4962
4963 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
4964
4965         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
4966
4967         * i386.c (size_cost): New static variable.
4968         (override_function): Use size_cost when -Os is specified.
4969
4970         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
4971         properly;  Use current_function_calls_eh_return.
4972         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
4973         use leave to avoid depdendancy chain.
4974
4975         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
4976         get BB loop_depth instead of computing it from LOOP notes.
4977
4978         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
4979
4980 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4981
4982         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4983         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4984         UNALIGNED_DOUBLE_INT_ASM_OP): Define
4985
4986 2001-09-05  Jeffrey A Law  (law@cygnus.com)
4987             Jason Merrill (jason@redhat.com)
4988
4989         * stor-layout.c (layout_type): Complain if an array's size can
4990         not be represented in a size_t.
4991
4992         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
4993
4994 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
4995
4996         * gcc.c: (process_command) Add parentheses around assignment
4997         used as truth value.
4998
4999 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5000
5001         * config/mips/mips.c (save_restore_insns): Don't mark any register
5002         save slots as unchanging if current_function_calls_eh_return.
5003
5004 2001-09-05  Richard Henderson  <rth@redhat.com>
5005
5006         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
5007         * config/alpha/alpha-protos.h: Declare it.
5008         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
5009         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
5010         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
5011         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
5012         (REG_OK_FOR_BASE_P): Select one of the above.
5013
5014 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5015
5016         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
5017         (crti.o): Prefix name of object file with $(T).
5018         (crtn.o): Likewise.
5019
5020 2001-09-05  David S. Miller  <davem@redhat.com>
5021
5022         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
5023         * config/sparc/linux64.h: Likewise.
5024
5025 2001-09-05  Andreas Jaeger  <aj@suse.de>
5026
5027         * doc/invoke.texi (i386 Options): -mwide-multiply is not
5028         available anymore, remove the documentation.
5029         (i386 Options): Fix typo, cleanup index entries.
5030
5031         * prefix.c (concat): Remove, we can use the version from liberty.
5032
5033 2001-09-05  Richard Henderson  <rth@redhat.com>
5034
5035         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
5036         New functions split out of md file expanders.
5037         * config/alpha/alpha-protos.h: Declare them.
5038         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
5039
5040 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5041
5042         * cppmacro.c (funlike_invocation_p): No need to restore context.
5043
5044 2001-09-04  Richard Henderson  <rth@redhat.com>
5045
5046         * reload.c (push_reload): Export.
5047         * reload.h (push_reload): Declare it.
5048
5049         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
5050         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5051         * config/alpha/alpha.c (alpha_legitimize_address): New.
5052         (alpha_legitimize_reload_address): Likewise.
5053         * config/alpha/alpha-protos.h: Declare them.
5054
5055 2001-09-04  Stan Shebs  <shebs@apple.com>
5056
5057         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
5058         * config/darwin.c (machopic_stub_name): Account for internally
5059         generated lib calls such as memcpy.
5060
5061 2001-09-04  Richard Henderson  <rth@redhat.com>
5062
5063         * unwind.h (_UA_END_OF_STACK): New flag.
5064         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
5065
5066 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
5067
5068         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
5069
5070 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
5071
5072         * config/mips/mips.c (save_restore_insns): Change base_offset to
5073         fp_offset in second call to mips_emit_frame_related_store.
5074
5075 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
5076
5077         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
5078         sometimes be represented as a NOTE of type
5079         NOTE_INSN_DELETED_LABEL.
5080         (Insns): Document NOTE_INSN_DELETED_LABEL.
5081
5082 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
5083
5084         * c-common.h (tree_dump_index): Add more comments.
5085         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
5086         (dump_option_value_info): New struct.
5087         (dump_options): New array.
5088         (dump_switch_p): Parse switch options symbolically.
5089         * doc/invoke.texi (-fdump-ast): Rename to ...
5090         (-fdump-tree): ... here. Document that options are symbolic, and
5091         not all are applicable.
5092
5093 2001-09-04  David S. Miller  <davem@redhat.com>
5094
5095         * config/sparc/sparc.md (define_splits): Kill constraints.
5096
5097         Cleanup redundant and unused insn attributes.
5098         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
5099         binary, and move.  Mark ialu as default.
5100         (commented out define_function_unit "alu"): Kill.
5101         (define_attr "use_clobbered"): Kill.
5102         (whole file): Kill address insn type references.  Replace
5103         all unary/binary/move references with ialu.
5104         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
5105         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
5106         TYPE_IALU.
5107
5108         Simplify length insn attribute and make more judicious use
5109         of insn attribute defaulting.
5110         * config/sparc/sparc.md (all insns with length > one): Mark as
5111         insn type multi if real instructions, else use default if
5112         it is a forced splitter.
5113         (all insns with length == one): Use default insn length.
5114         (all insns of type ialu): Use default insn type.
5115
5116         Fix erroneous insn attribute settings.
5117         (addx): Set insn type to misc.
5118         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
5119         const_umulsidi3_sp64): Set insn type to imul.
5120
5121         Track SFmode vs DFmode insns according to UltraSPARC
5122         scheduling rules.
5123         * config/sparc/sparc.md ("fptype"): New attribute, default
5124         to "single".
5125         (all DFmode single insns): Mark as fptype "double".
5126
5127 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
5128
5129         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
5130
5131 2001-09-03  Richard Henderson  <rth@redhat.com>
5132
5133         * function.h (struct function): Add arg_pointer_save_area_init.
5134         * function.c (expand_function_end): Init arg_pointer_save_area.
5135         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
5136         when called from a nested function.
5137
5138 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
5139
5140         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
5141         is enabled.
5142
5143 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
5144
5145         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
5146
5147 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
5148
5149         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
5150         (emit_push_insn): Use specified padding direction when
5151         STACK_PUSH_CODE is POST_INC.
5152
5153         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
5154
5155 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5156
5157         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
5158
5159 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
5160
5161         * cppinit.c (cpp_start_read): Free the imacros list as we
5162         traverse it.  Don't free the chains before returning.
5163         (_cpp_push_next_buffer): Only try pushing buffers if we've
5164         completed -imacros handling.
5165
5166 2001-08-31  Eric Christopher  <echristo@redhat.com>
5167
5168         * gcc.c (handle_braces): Add explaination for abort.
5169
5170 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
5171
5172         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
5173         move adjustment of bitpos instead.
5174
5175 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
5176
5177         * function.c: Remove all_functions.  Make outer_function_chain
5178         static.
5179         (init_function_start): Don't add new function structure to
5180         all_functions.
5181         (find_function_data, push_function_context_to,
5182         pop_function_context_from, put_var_into_stack,
5183         trampoline_address): Update for changed structure element names.
5184         (push_function_context_to): Disentangle.
5185         (free_after_compilation): Also free F.
5186         (expand_dummy_function_end): Don't free cfun here.
5187         (put_var_into_stack): Comment why we can't use find_function_data here.
5188         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
5189         (mark_function_chain): Split into maybe_mark_struct_function and
5190         ggc_mark_struct_function.  Export the latter.
5191         (init_function_once): Mark from cfun and outer_function_chain;
5192         not all_functions.
5193
5194         * function.h (struct function): Kill next_global.  Rename next
5195         to outer.  All users updated to match.
5196         (all_functions, outer_function_chain): Don't declare.
5197
5198         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
5199         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
5200         don't touch f->inlinable, after calling rest_of_compilation.
5201
5202         * tree.h: Forward-declare struct function.  Prototype
5203         ggc_mark_struct_function.
5204
5205 2001-08-31  Kazu Hirata  <kazu@hxi.com>
5206
5207         * config/h8300/h8300.md (*andorhi3): Fix typos.
5208
5209 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5210
5211         * calls.c (emit_library_call_value): Don't use a fixed
5212         argument after VA_CLOSE, i.e. out of scope in traditional C.
5213
5214         * emit-rtl.c (gen_rtvec): Likewise.
5215
5216 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5217
5218         * Makefile.in (c-pragma.o): Depend on output.h.
5219         (reorg.o): Depend on except.h.
5220
5221         * c-pragma.c: Include output.h.
5222
5223         * reorg.c: Include except.h.
5224
5225         * unwind-dw2.c: Call __builtin_alloca, not alloca.
5226
5227 2001-08-31  Richard Henderson  <rth@redhat.com>
5228
5229         * sched-deps.c (add_dependence): Don't elide dependency if the
5230         conditional used by insn is modified in elem.
5231
5232 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
5233
5234         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
5235
5236 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
5237
5238         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
5239         dump_switch_p.
5240
5241 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
5242
5243         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
5244         function.
5245         (stormy16_asm_out_constructor): New function.
5246         (TARGET_ASM_CONSTRUCTOR): Define.
5247         (TARGET_ASM_DESTRUCTOR): Define.
5248
5249 2001-08-31  Andreas Jaeger  <aj@suse.de>
5250
5251         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
5252         * loop.c (add_label_notes): Likewise.
5253         * reload.c (find_reloads): Likewise.
5254         * config/sh/sh.c (machine_dependent_reorg): Likewise.
5255
5256 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
5257
5258         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
5259         code here.  Take _Unwind_{W,Sw}ord*.
5260         (read_encoded_value_with_base): Use them.
5261         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
5262         words.
5263         (extract_cie_info): Simplify read_?leb128 handling.
5264         (execute_stack_op, execute_cfa_program): Likewise.
5265         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
5266
5267 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
5268
5269         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
5270         the frame pointer to pop the stack if convenient.
5271
5272         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
5273         Don't use post-increment before combine.
5274         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
5275         a call-saved register.
5276
5277 2001-08-31  Andreas Jaeger  <aj@suse.de>
5278
5279         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
5280         code was correct.
5281
5282 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
5283
5284         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
5285         not DIV/MOD, of course.
5286
5287 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
5288
5289         * rtl.def: Undo my patch commited 2001-08-27.
5290
5291         * genattrtab.c: Ditto.
5292
5293         * rtl.h: Ditto.
5294
5295         * sched-int.h: Ditto.
5296
5297         * target-def.h: Ditto.
5298
5299         * target.h: Ditto.
5300
5301         * haifa-sched.c: Ditto.
5302
5303         * sched-rgn.c: Ditto.
5304
5305         * sched-vis.c: Ditto.
5306
5307         * Makefile.in: Ditto.
5308
5309         * doc/md.texi: Ditto.
5310
5311         * doc/tm.texi: Ditto.
5312
5313         * doc/contrib.texi: Ditto.
5314
5315         * doc/gcc.texi: Ditto.
5316
5317         * genattrtab.h: Remove it.
5318
5319         * genautomata.c: Remove it.
5320
5321         * genattr.c: Undo my patch and Richard Henderson's patch commited
5322         2001-08-27.
5323
5324 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
5325
5326         * config.gcc (h8300-*-elf*): New case.
5327         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
5328         (SUBTARGET_CPP_SPEC): Define.
5329         (EXTRA_SPECS): Define.
5330         (SUBTARGET_EXTRA_SPECS): Define.
5331         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
5332         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
5333
5334 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
5335
5336         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
5337         (LIB2FUNCS_EXTRA): Define.
5338         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
5339         config/h8300/fixunssfsi.c: New file.
5340
5341 2001-08-30  Kazu Hirata  <kazu@hxi.com>
5342
5343         * config/h8300/h8300.md (zero_extendqihi2): Changes to
5344         define_expand to accommodate target-specific attributes.
5345         (anonymous zero_extendqihi2 patterns): New.
5346
5347 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
5348
5349         * h8300.md (*andorhi3): New pattern.
5350
5351 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
5352
5353         * h8300.c (dosize): Fix test for "sub".
5354
5355 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
5356
5357         * c-typeck.c (pointer_diff): Try to eliminate common term before
5358         doing conversions.
5359
5360 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
5361
5362         * config/arm/arm.c (arm_compute_initial_elimination_offset):
5363         Account for the saves of the FP registers.
5364
5365         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
5366         (TEXT_SECTION_ASM_OP): Define.
5367         (INIT_SECTION_ASM_OP): Define.
5368         (FINI_SECTION_ASM_OP): Define.
5369         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
5370         (RDATA_SECTION_FUNCITON): Provide prototype.
5371
5372 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
5373
5374         * reload1.c (move2add_note_store): Correct typo checking for
5375         argument pushes.
5376
5377 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
5378
5379         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
5380         note should not be considered outside the libcall block.
5381
5382 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5383
5384         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
5385
5386 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5387
5388         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
5389
5390 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5391
5392         * config/h8300/h8300-protos.h: Add a prototype for
5393         emit_logical_op.
5394         * config/h8300/h8300.c (emit_logical_op): New.
5395         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
5396         (andsi3): Likewise.
5397         (iorhi3): Likewise.
5398         (iorsi3): Likewise.
5399         (xorhi3): Likewise.
5400         (xorsi3): Likewise.
5401
5402 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5403
5404         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
5405         comparison with rtx INTVAL.
5406         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
5407         expression.
5408         * pa.h (FUNCTION_ARG_SIZE): Likewise.
5409
5410 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5411
5412         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
5413         comment typos.
5414
5415 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5416
5417         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
5418         (reg n) to (mem (pre_dec (reg n))
5419         (anonymous movsi pattern): Likewise.
5420
5421 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5422
5423         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
5424
5425 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5426
5427         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
5428         several special constants.
5429
5430 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5431
5432         * config/h8300/lib1funcs.asm: Fix comment typos.
5433
5434 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5435
5436         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
5437         Fix format specifier warnings.
5438
5439         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
5440         inet_makeaddr, semctl): Prototype.
5441
5442         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
5443         (save_restore_insns): Use base_offset, not gp_offset.
5444
5445         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
5446         (ASM_OUTPUT_BYTE): Fix format specifier warning.
5447
5448 2001-08-29  Richard Henderson  <rth@redhat.com>
5449
5450         * bb-reorder.c (function_tail_eff_head): New.
5451         (record_effective_endpoints): Set it.
5452         (fixup_reorder_chain): Use it.
5453
5454 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5455
5456         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
5457
5458 2001-08-28  Dale Johannesen  <dalej@apple.com>
5459
5460         * config/darwin.c (machopic_function_base_name): Add const
5461         qualifier to a string.
5462         (darwin_encode_section_info): Ditto.
5463
5464 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5465
5466         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
5467         function definition.
5468
5469 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
5470
5471         * df.h (struct df): Add rts_order variable.
5472
5473         * df.c (df_visit_next_rts): New function.
5474         (df_visit_next): Renamed to df_visit_next_rc
5475         (df_analyse_1): Allocate/compute/free rts_order as well.
5476         (df_rd_global_compute): Use df_visit_next_rc instead of
5477         df_visit_next.
5478         (df_ru_global_compute): Use df_visit_next_rts instead of
5479         df_visit_next.
5480
5481         * flow.c (flow_reverse_top_sort_order_compute): New function.
5482
5483         * basic-block.h: Add prototype.
5484
5485 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
5486
5487         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
5488         blocks, the BB_REACHABLE is now set, rather than aux being
5489         non-NULL. Update the test to reflect this.
5490
5491 2001-08-28  Eric Christopher  <echristo@redhat.com>
5492
5493         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
5494         config/mips/crti.asm: Ditto.
5495
5496 2001-08-28  Eric Christopher <echristo@redhat.com>
5497             Richard Henderson <rth@redhat.com>
5498
5499         * c-pragma.h (add_weak): Move prototype from here...
5500         * output.h (add_weak): ... to here.
5501         * varasm.c (add_weak): Fix typo.
5502         * config/mips/crti.asm: New file.
5503         * config/mips/crtn.asm: Ditto.
5504         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
5505         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
5506         (INVOKE__main): Ditto.
5507         (INIT_SECTION_ASM_OP): New.
5508         (FINI_SECTION_ASM_OP): Ditto.
5509         (STARTFILE_SPEC): Add crti.
5510         (ENDFILE_SPEC): Add crtn.
5511         * config/mips/elf64.h: Same.
5512         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
5513         Remove.
5514         * config/mips/vxworks.h: Ditto.
5515         * config/mips/t-elf: Support crti and crtn.
5516
5517 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
5518
5519         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
5520         INSN_LIST.
5521
5522 2001-08-28  Richard Henderson  <rth@redhat.com>
5523
5524         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
5525         (one_cmplbi2 splitter): Remove redundant test.
5526
5527 2001-08-28  Dale Johannesen  <dalej@apple.com>
5528
5529         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
5530
5531 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
5532
5533         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
5534
5535 2001-08-28  Stan Shebs  <shebs@apple.com>
5536
5537         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
5538         (UNALIGNED_SHORT_ASM_OP): Define.
5539         (UNALIGNED_INT_ASM_OP): Define.
5540
5541 2001-08-28  Will Cohen  <wcohen@redhat.com>
5542
5543         * config/rs6000/rs6000.md (store_multiple): Correct RTL
5544         generation for first set.
5545
5546 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
5547
5548         * flow.c (redirect_edge_succ_nodup): Return new edge.
5549         (try_simplify_condjump): Use new edge.
5550         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
5551
5552         * cse.c (cse_basic_block): Skip note instructions.
5553
5554 2001-08-27  Richard Henderson  <rth@redhat.com>
5555
5556         * combine.c (combine_simplify_rtx): Don't reverse condition
5557         if there is no reverse for the condition.
5558         (simplify_comparison): Don't simplify subregs from INT to FP.
5559
5560         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
5561         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
5562         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
5563         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
5564         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
5565         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
5566
5567 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
5568
5569         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
5570         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
5571         (pushqi1): New.
5572         (adddi_dilshr32, adddi_dishl32): Only data register can be
5573         source for mem destination.
5574
5575         * expmed.c (store_bit_field): Ignore adjustment to bitpos
5576         and use bitnum to decide about register move.
5577
5578 2001-08-27  Richard Henderson  <rth@redhat.com>
5579
5580         * genattr.c (main): Emit state_t even when not doing scheduling.
5581
5582 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
5583             Richard Henderson  <rth@redhat.com>
5584
5585         * gcse.c (reg_first_set, reg_last_set): Replace with ...
5586         (reg_avail_info, current_bb): ... these.
5587         (oprs_unchanged_p, record_last_reg_set_info): Use them.
5588         (compute_hash_table): Likewise.
5589
5590 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
5591
5592         * flow.c (verify_flow_info): Use checksums to verify edges.
5593
5594 2001-08-27  Richard Henderson  <rth@redhat.com>
5595
5596         * genautomata.c (expand_automata): Always create a description.
5597
5598 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
5599
5600         * optabs.c (expand_binop): Correctly handle the carry in multiword
5601         add/subtract operations.
5602
5603 2001-08-27  Fred Fish  <fnf@be.com>
5604
5605         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
5606         __SIZE_TYPE__.
5607
5608 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
5609
5610         * reload.c (find_reloads_toplev): Back out this change:
5611
5612         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
5613
5614         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
5615         mem if the address is a mode_dependent_address_p.
5616
5617 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
5618
5619         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
5620         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
5621         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
5622         RTL constructions.
5623
5624         * genattr.c (main): New variable num_insn_reservations.  Increase
5625         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
5626         pipeline hazard recognizer interface.
5627
5628         * genattrtab.h: New file.
5629
5630         * genattrtab.c: Include genattrtab.h.
5631         (attr_printf, check_attr_test, make_internal_attr,
5632         make_numeric_value): Move protypes into genattrtab.h.  Define them
5633         as external.
5634         (num_dfa_decls): New global variable.
5635         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
5636         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
5637         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
5638         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
5639
5640         * genautomata.c: New file.
5641
5642         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
5643
5644         * sched-int.h: (curr_state): Add the external definition for
5645         automaton pipeline interface.
5646         (haifa_insn_data): Add comments for members blockage and units.
5647
5648         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5649         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5650         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5651         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5652         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5653         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5654         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
5655         macros.
5656         (TARGET_SCHED): Use the new macros.
5657
5658         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
5659         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
5660         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
5661         dfa_bubble): New members in gcc_target.sched.
5662
5663         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
5664         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
5665         (insn_queue): Redefine it as pointer to array.
5666         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
5667         INSN_QUEUE_SIZE.
5668         (max_insn_queue_index_macro_value): New variable.
5669         (curr_state, dfa_state_size, ready_try): New varaibles for
5670         automaton interface.
5671         (ready_element, ready_remove, max_issue): New function prototypes
5672         for automaton interface.
5673         (choose_ready): New function prototype.
5674         (insn_unit, blockage_range): Add comments.
5675         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
5676         FUNCTION_UNITS_SIZE == 0.
5677         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
5678         actual_hazard, potential_hazard): Add comments.
5679         (insn_cost): Use cost -1 as undefined value.  Remove
5680         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
5681         pipeline interface.
5682         (ready_element, ready_remove): New functions for automaton
5683         interface.
5684         (schedule_insn): Add new code for automaton pipeline interface.
5685         (queue_to_ready): Add new code for automaton pipeline interface.
5686         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
5687         (debug_ready_list): Print newline when the queue is empty.
5688         (max_issue): New function for automaton pipeline interface.
5689         (choose_ready): New function.
5690         (schedule_block): Add new code for automaton pipeline interface.
5691         Print ready list before scheduling each insn.
5692         (sched_init): Add new code for automaton pipeline interface.
5693         Initiate insn cost by -1.
5694         (sched_finish): Free the current automaton state and finalize
5695         automaton pipeline interface.
5696
5697         * sched-rgn.c: Include target.h.
5698         (init_ready_list, new_ready, debug_dependencies): Add new code for
5699         automaton pipeline interface.
5700
5701         * sched-vis.c: Include target.h.
5702         (get_visual_tbl_length): Add code for automaton interface.
5703         (target_units, print_block_visualization):  Add comments.
5704
5705         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
5706         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
5707         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
5708         (getruntime.o, genautomata.o): New entries.
5709         (genattrtab.o): Add new dependency file genattrtab.h.
5710         (genattrtab): Add new dependencies.  Link it with `libm.a'.
5711         (getruntime.o, hashtab.o): New entries for canadian cross.
5712
5713         * doc/md.texi: Description of automaton based model.
5714
5715         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
5716         Add comments.
5717         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5718         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5719         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5720         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5721         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5722         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5723         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
5724         hook descriptions.
5725         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
5726         MAX_DFA_ISSUE_RATE): New macro descriptions.
5727
5728         * doc/contrib.texi: Add dfa based scheduler contribution.
5729
5730         * doc/gcc.texi: Add more information about genattrtab.
5731
5732 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
5733
5734         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
5735         an RTL basic block.
5736
5737 2001-08-27  Richard Henderson  <rth@redhat.com>
5738
5739         * function.c (expand_function_end): Don't init arg_pointer_save_area.
5740         (get_arg_pointer_save_area): New.  Create an init it here.
5741         (fix_lexical_addr): Use it.
5742         * function.h: Declare it.
5743         * builtins.c (expand_builtin_setjmp_receiver): Use it.
5744         * stmt.c (expand_nl_goto_receiver): Use it.
5745
5746 2001-08-27  Richard Henderson  <rth@redhat.com>
5747
5748         * final.c (final_scan_insn): Don't enter APP_ON mode for
5749         empty asm strings.
5750
5751         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
5752         alignment for assemble_integer for DW_EH_PE_aligned.
5753         * except.c (output_function_exception_table): Likewise.
5754
5755 2001-08-26  Andreas Jaeger  <aj@suse.de>
5756
5757         * c-tree.h: Add prototyp for c_sizeof_nowarn.
5758
5759 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
5760
5761         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
5762
5763 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
5764
5765         * config/rs6000/rs6000.c (mask_operand): Rewrite without
5766         bit-shifting loop.
5767         (mask64_operand): Likewise.
5768         (rldic_operand): Delete.
5769         (includes_lshift64_p): Delete.
5770         (includes_rldic_lshift_p): New function.
5771         (includes_rldicr_lshift_p): New function.
5772         (print_operand): Don't call rldic_operand in case 'W'.
5773         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
5774         (includes_lshift64_p): Remove.
5775         (includes_rldic_lshift_p): Declare.
5776         (includes_rldicr_lshift_p): Declare.
5777         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
5778         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
5779         Replace match_operand rldic_operand predicate with
5780         const_int_operand.  Replace includes_lshift64_p condition with
5781         includes_rldic_lshift_p.
5782         <ashldi3_internal 64 bit rldicr patterns>: New.
5783
5784 2001-08-27  Andreas Jaeger  <aj@suse.de>
5785
5786         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
5787         * errors.c: Likewise.
5788         * final.c: Likewise.
5789         * dwarf2asm.c: Likewise.
5790         * doprint.c (checkit): Likewise.
5791         * diagnostic.c: Likewise.
5792         * collect2.c: Likewise.
5793         * calls.c: Likewise.
5794         * c-semantics.c (build_stmt): Likewise.
5795         * c-format.c (status_warning): Likewise.
5796         * c-errors.c (pedwarn_c99): Likewise.
5797         * builtins.c (validate_arglist): Likewise.
5798         * config/pj/pj.c (pj_printf): Likewise.
5799         * fix-header.c: Likewise.
5800         * gcc.c: Likewise.
5801         * gcov.c (fnotice): Likewise.
5802         * gensupport.c (message_with_line): Likewise.
5803         * mips-tfile.c: Likewise.
5804         * protoize.c (notice): Likewise.
5805         * read-rtl.c (fatal_with_file_and_line): Likewise.
5806         * rtl-error.c: Likewise.
5807         * tradcpp.c: Likewise.
5808         * tree.c: Likewise.
5809         * cp/tree.c (build_min_nt): Likewise.
5810         (build_min): Likewise.
5811         * cp/lex.c: Likewise.
5812         * cp/errfn.c: Likewise.
5813         * cp/rtti.c (create_pseudo_type_info): Likewise.
5814
5815 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
5816
5817         * df.c (df_uses_record): Return after recording all uses
5818         in ASM_OPERANDS.
5819
5820 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
5821
5822         * df.c (df_insn_modify): Realloc the INSN table here, if
5823         necessary, here, too.
5824
5825 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
5826
5827         * config/mips/mips.c (mips_function_value): Handle complex return
5828         values.
5829
5830 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
5831
5832         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
5833         unshared.
5834         * reload.c (make_memloc): Copy result if it is still
5835         reg_equiv_memory_loc[regno] on return.
5836         (subst_reloads) [ENABLE_CHECKING]: Check that none of
5837         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
5838         reg_equiv_mem are modified by the substitutions.
5839
5840 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
5841
5842         * predict.c (expensive_function_p): New.
5843         * rtl.h (expensive_function_p): Declare.
5844         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
5845         (use_fast_prologue_epilogue): New static variable.
5846         (expand_prologue): Set it; emit short prologues if unset.
5847         (expand_epilogue): Likewise.
5848
5849 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
5850
5851         * config.gcc: Add stormy16-*-elf case.
5852         * config/stormy16/stormy-abi: New file.
5853         * config/stormy16/stormy16-lib2.c: New file.
5854         * config/stormy16/stormy16-protos.h: New file.
5855         * config/stormy16/stormy16.c: New file.
5856         * config/stormy16/stormy16.h: New file.
5857         * config/stormy16/stormy16.md: New file.
5858         * config/stormy16/t-stormy16: New file.
5859
5860 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
5861
5862         * i386.h (no-accumulate-outgoing-args): Use proper mask.
5863
5864 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
5865
5866         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
5867         descriptor members are pointer size, not constant 4.
5868         * config/rs6000/rs6000.md (define_splits): Remove more unused
5869         constraints.
5870
5871 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5872
5873         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
5874
5875 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
5876
5877         * cp/rtti.c (VPARAMS): Fix parameter.
5878
5879 2001-08-24  Zack Weinberg  <zackw@panix.com>
5880
5881         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
5882         to zero.
5883         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
5884         to switch.
5885         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
5886         in if controlling use of insv.
5887         (extract_bit_field): Likewise, for extv and extzv.
5888
5889 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
5890
5891         * i386.md (movcc peep2): Fix load of 0.
5892
5893 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5894
5895         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
5896         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
5897
5898 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
5899
5900         * c-pragma.h: Move weak_syms and weak_decls...
5901         * varasm.c: ...here.  Now static.
5902         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
5903         depend on HANDLE_PRAGMA_WEAK.
5904
5905         * c-common.c (c_alignof, c_alignof_expr): Move here...
5906         * c-typeck.c: ...from here.
5907         * c-tree.h, c-common.h: Adjust.
5908
5909 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
5910
5911         * config/ia64/ia64.c (rws_update): If !pred, set write_count
5912         instead of incrementing it.
5913
5914         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
5915         asm ready, don't try to move them all into the same array element.
5916
5917 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
5918
5919         * function.c (thread_prologue_and_epilogue_insns): Avoid
5920         fallthru flag on edge to exit.
5921
5922         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
5923
5924         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
5925         dead edges.
5926
5927 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
5928
5929         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
5930         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
5931         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
5932         Remove prototype.
5933
5934 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
5935
5936         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
5937         replace "GNU CC" with "GCC".
5938
5939 2001-08-23  Richard Henderson  <rth@redhat.com>
5940
5941         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
5942         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
5943         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
5944         Need GR between FR and not GR_AND_FR.
5945         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
5946         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
5947         AR regs before GR regs.
5948         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
5949         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
5950         (REGISTER_MOVE_COST): Update.
5951         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
5952
5953 2001-08-23  Richard Henderson  <rth@redhat.com>
5954
5955         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
5956         a register class.
5957
5958 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
5959
5960         * reload1.c (emit_reload_insns): Don't look for notes
5961         on a NULL store_insn.
5962
5963 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5964
5965         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
5966         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
5967         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
5968         format specifier warnings.
5969         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
5970
5971 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
5972
5973         * config/i386/i386-protos.h: Correct declaration of
5974         i386_pe_asm_named_section.
5975
5976 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5977
5978         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
5979         variable i.
5980         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
5981
5982 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5983
5984         * cpperror.c (print_location): Don't show _Pragma.
5985         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
5986         and file change callback generation here.
5987         (stack_include_file): Update use of cpp_push_buffer.
5988         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
5989         (struct cpp_buffer): Remove type, pfile members.
5990         * cppinit.c (cpp_handle_option): Use free_chain.
5991         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
5992         (skip_escaped_newlines, get_effective_char, lex_percent): Take
5993         a cpp_reader rather than a cpp_buffer.
5994         (skip_escaped_newlines, get_effective_char, skip_block_comment,
5995         skip_line_comment, parse_string, lex_percent, lex_dot,
5996         _cpp_lex_token): Update accordingly.
5997         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
5998         generation here.
5999         (cpp_push_buffer): Update prototype.
6000         (run_directive): Update use of cpp_push_buffer.
6001         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
6002         handle_assertion): Update use of run_directive.
6003         * cpplib.h (enum cpp_buffer_type): Remove.
6004         (cpp_push_buffer): Update prototype.
6005         * fix-header.c (read_scan_file): Update.
6006
6007 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6008
6009         * gcc.c (struct prefix_list): Change prefix to const char *.
6010
6011 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6012
6013         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
6014
6015 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
6016
6017         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
6018         from a new MEM.
6019
6020         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
6021         a squeezable note.
6022         * rtl.h: Adjust.
6023         * ifcvt.c (dead_or_predicable): Adjust.
6024         * loop.c (find_and_verify_loops): Adjust.
6025         * stmt.c (expand_end_case): Adjust.
6026         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
6027         head and end insn pointers in the basic block, not just local copies.
6028         (merge_blocks_move_predecessor_nojumps): Likewise.
6029
6030 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
6031
6032         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
6033         bitmap.h, builtin-types.def, builtins.c, builtins.def,
6034         c-aux-info.c, c-common.c, c-common.def, c-common.h,
6035         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
6036         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
6037         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
6038         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
6039         conditions.h, config.gcc, configure.frag, configure.in,
6040         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
6041         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
6042         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
6043         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
6044         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
6045         emit-rtl.c, errors.c, errors.h, except.c, except.h,
6046         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
6047         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
6048         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
6049         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
6050         gencheck.c, gencodes.c, genconfig.c, genemit.c,
6051         genextract.c, genflags.c, gengenrtl.c, genmultilib,
6052         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
6053         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
6054         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
6055         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
6056         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
6057         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
6058         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
6059         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
6060         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
6061         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
6062         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
6063         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
6064         params.h, predict.c, predict.def, predict.h, prefix.c,
6065         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
6066         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
6067         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
6068         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
6069         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
6070         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
6071         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
6072         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
6073         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
6074         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
6075         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
6076         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
6077         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
6078         xcoffout.h: replace "GNU CC" with "GCC".
6079
6080 2001-08-21  Richard Henderson  <rth@redhat.com>
6081
6082         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
6083         (final_scan_insn): Consider jump tables data even if we have no
6084         independent text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
6085         ADDR_VEC_ALIGN.
6086         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
6087         (ASM_OUTPUT_CASE_END): Remove.
6088         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
6089         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
6090         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
6091
6092 2001-08-21  Richard Henderson  <rth@redhat.com>
6093
6094         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
6095         at barrier insns.  Emit stop bits before barriers.
6096
6097         * flow.c (flow_find_cross_jump): Don't consider unconditional
6098         return insns for commoning.
6099
6100         * final.c (compute_alignments): Fix typo.
6101
6102         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
6103         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
6104         (store_bit_field): Use mode_for_extraction more places.
6105         (extract_bit_field): Likewise.
6106
6107 2001-08-21  Zack Weinberg  <zackw@panix.com>
6108
6109         * caller-save.c: Don't include insn-codes.h.
6110         (reg_save_code, reg_restore_code): Make arrays of int.
6111         All uses updated to match.
6112         (insert_save, insert_restore): No need to initialize "code"
6113         variable upon declaration.
6114         * Makefile.in: update dependencies; fix typo in clean rule.
6115
6116 2001-08-21  Richard Henderson  <rth@redhat.com>
6117
6118         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
6119         (merge_if_block): Handle fallout from same.
6120
6121 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6122
6123         * builtins.c (type_to_class): Fix typo in last change.
6124
6125 2001-08-21  Richard Henderson  <rth@redhat.com>
6126
6127         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
6128         ia64_asm_output_label.
6129
6130         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
6131         copy of gp while the real gp register contains garbage.
6132
6133 2001-08-21  Zack Weinberg  <zackw@panix.com>
6134
6135         * expmed.c (mode_for_extraction): New function.
6136         (store_bit_field, extract_bit_field): Use it.
6137         * expr.h: Prototype it and provide an enum for its first argument.
6138
6139         * combine.c, function.c, recog.c: Don't include insn-codes.h.
6140         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
6141         and digging through the insn_data tables.
6142         * Makefile.in: Update dependencies.
6143
6144 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6145
6146         * cppfiles.c (stack_include_file): line-map.c now handles include
6147         depth.
6148         (handle_missing_handler): Similarly.
6149         (_cpp_execute_include): Similarly.
6150         (_cpp_pop_file_buffer): Similarly.
6151         * cpphash.h (struct cpp_reader): Remove system_include_depth,
6152         buffer_stack_depth and include_depth.
6153         * cpplib.c (do_include_common): line-map.c now handles include depth.
6154         (cpp_push_buffer): Similarly.
6155         (_cpp_pop_buffer): Similarly.
6156         * cppmacro.c (builtin_macro): Update.
6157         * line-map.c (init_line_maps): Set depth.
6158         (add_line_map): Increment "used" earlier.  Update and use the
6159         include depth.
6160         (trace_include): Use the include depth.
6161         * line-map.h (struct line_maps): New member depth.
6162
6163 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6164
6165         * cppfiles.c (stack_include_file): Don't handle -H here.
6166         * cppinit.c (cpp_start_read): Set include tracing after
6167         cpp_post_options and after stacking the main file.
6168         * line-map.c (trace_include): New.
6169         (init_line_maps, add_line_map): Update.
6170         * line-map.h (struct line_maps): New member trace_includes.
6171
6172 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6173
6174         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
6175         * cppfiles.c (stack_include_file): Only stack a file if there
6176         is something to do.  Return a boolean indicating whether a
6177         buffer was stacked or not.
6178         (_cpp_execute_include): Similarly.
6179         (_cpp_read_file): Similarly.
6180         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
6181
6182 2001-08-21  Sam Steingold  <sds@gnu.org>
6183
6184         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
6185         (RECACHE): keep obufp_before_macroname up to date
6186
6187 2001-08-21  Zack Weinberg  <zackw@panix.com>
6188
6189         * stmt.c: Don't include insn-codes.h.
6190         (expand_end_case): Machine specific logic moved to expr.c.
6191         No need to worry about __builtin_classify_type.
6192         (check_for_full_enumeration_handling, emit_case_nodes):
6193         Kill #if 0 blocks.
6194
6195         * builtins.o (expand_builtin_classify_type): Split up so code
6196         can be shared with fold_builtin_classify_type.
6197         (type_to_class, fold_builtin_classify_type): New functions.
6198         (fold_builtins): Handle __builtin_classify_type.
6199
6200         * expr.c (do_tablejump): Now static.
6201         (case_values_threshold, try_casesi, try_tablejump): New;
6202         code mostly from stmt.c (expand_end_case).
6203         (expr.h): Update prototypes.
6204
6205         * Makefile.in (stmt.o): Update dependencies.
6206
6207 2001-08-21  Will Cohen  <wcohen@redhat.com>
6208
6209         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
6210         declaration of variable i.
6211         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
6212         declaration of variable i.
6213
6214 2001-08-21  Richard Henderson  <rth@redhat.com>
6215
6216         * crtstuff.c: Fix thinko last change.  Move list tails to start
6217         of CRT_END section.  Tidy ifdefs.
6218         (__EH_FRAME_BEGIN__): Always static for ELF.
6219         (__do_global_ctors_1): Rename from __frame_dummy.
6220         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
6221         name change; don't hide __EH_FRAME_BEGIN__.
6222
6223 2001-08-21  Richard Henderson  <rth@redhat.com>
6224
6225         * gdbinit.in: Move break on exit after break on fancy_abort.
6226
6227         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
6228         sized types.
6229
6230 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6231
6232         * cpphash.h (_cpp_push_next_buffer): New.
6233         * cppinit.c (do_includes): Remove.
6234         (push_include, free_chain, _cpp_push_next_buffer): New.
6235         (cpp_start_read): Use them to rework command line option handling.
6236         (cpp_handle_option): Combine handling of -include and -imacros.
6237         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
6238         appropriate.  Always insert missing \n at EOF.
6239         * cpplib.c (start_directive): Get the directive position right.
6240         * cppmain.c (cb_file_change): Always print the first line, unless
6241         preprocessed.
6242
6243 2001-08-20  Andreas Jaeger  <aj@suse.de>
6244
6245         * profile.c (compute_branch_probabilities): Remove extra new-line
6246         in error message.
6247         * flow.c (verify_flow_info): Likewise.
6248
6249 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
6250
6251         * basic-block.h (basic_block): Add new field 'flags'.
6252         (BB_REACHABLE): Define.
6253         (expunge_block): Declare.
6254         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
6255         (EXIT_BLOCK_PTR): Ditto.
6256         (expunge_block): Remove static declaration.
6257         (cleanup_cfg): Clear bb->aux on every basic block.
6258         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
6259         computing reachability.
6260         (delete_unreachable_blocks): Delete block b if b->flags has
6261         BB_REACHABLE unset.
6262
6263 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
6264
6265         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
6266
6267 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6268
6269         * sparc.c (sparc_variable_issue): Fix typo in last change.
6270
6271 2001-08-20  Richard Henderson  <rth@redhat.com>
6272
6273         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
6274
6275 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6276
6277         * pa.h (RETURN_IN_MEMORY): Improve comment.
6278
6279 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
6280
6281         * doc/invoke.texi (Profiling options): Clarify the interactions
6282         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
6283
6284 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
6285
6286         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
6287         command.
6288
6289 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6290
6291         * gcc.c (make_relative_prefix): Allocate a sufficiently large
6292         buffer.
6293
6294 2001-08-20  Richard Henderson  <rth@redhat.com>
6295
6296         * final.c (end_final): Fix typo last change.
6297
6298 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
6299
6300         * cppinit.c (init_standard_includes): The returned buffer
6301         is already malloc-ed.
6302         * gcc.c (add_prefix): Similarly.
6303         * prefix.c (translate_name): Update to support clear buffer
6304         ownership rules.
6305         (update_path): Similarly.  Be sure to free any newly allocated
6306         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
6307         (tr): New function.
6308         * prefix.h (update_path): Update prototype and document.
6309         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
6310         up and update to new buffer ownership rules.
6311         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
6312
6313 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
6314
6315         * final.c (compute_alignments): New function.
6316         (init_insn_lengths): Do not care label_align.
6317         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
6318         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
6319         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
6320         (shorted_branches): Realloc label_align array; do
6321         not call init_insn_lengths; Do not care about loop alignments.
6322         * output.h (compute_alignments): Declare.
6323         * toplev.c (rest_of_compilation): Call compute_alignments.
6324         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
6325
6326         * predict.c (block_info_def): Add npredecesors, remove nvisited;
6327         change visited to tovisit.
6328         (propagate_freq): Use faster traversing algorithm.
6329         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
6330         to tovisit; reverse meaning.
6331
6332         * predict.c (struct block_info_def): Remove nvisited.
6333         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
6334         (estimate_bb_frequencies): Call mark_dfs_back_edges.
6335
6336 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
6337
6338         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
6339         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
6340         (TARGET_FUSED_MADD): New.
6341         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
6342         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
6343         the multiply-add instructions.
6344
6345 2001-08-19  Richard Henderson  <rth@redhat.com>
6346
6347         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
6348         is aligned to pointer size.
6349
6350 2001-08-19  Richard Henderson  <rth@redhat.com>
6351
6352         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
6353         display markers during final schedule.
6354
6355 2001-08-19  Richard Henderson  <rth@redhat.com>
6356
6357         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
6358
6359 2001-08-19  Richard Henderson  <rth@redhat.com>
6360
6361         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
6362         in the same string.
6363         (ASM_NAME_TO_STRING): Remove.
6364         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
6365         in the same string.  Remove support for expressions.
6366
6367 2001-08-19  Richard Henderson  <rth@redhat.com>
6368
6369         * config/i386/i386.md (tablejump): Make an expander; handle
6370         pic relative addressing here.
6371         (tablejump_1): Rename from tablejump_pic.
6372         (casesi): Remove.
6373
6374 2001-08-19  Richard Henderson  <rth@redhat.com>
6375
6376         * regclass.c (fix_register): Fix typo.
6377
6378 2001-08-18  Richard Henderson  <rth@redhat.com>
6379
6380         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
6381         (struct _Unwind_Context): Expand br_loc to hold it.
6382         (uw_frame_state_for): Handle leaf functions better.
6383         (uw_update_reg_address): Update for br_loc change.
6384
6385 2001-08-18  Richard Henderson  <rth@redhat.com>
6386
6387         * crtstuff.c: Move list heads before code that uses them.
6388         (__JCR_LIST__): Remove initial null.
6389         (frame_dummy, __frame_dummy): Do java registration here ...
6390         (__do_global_ctors_aux): ... not here.
6391
6392         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
6393         (__do_global_dtors_aux): Update to match.
6394         (__JCR_LIST__, __do_jv_register_classes): New.
6395         (.init): Call it.
6396         * config/ia64/crtend.asm (__JCR_END__): New.
6397         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
6398         instead of an indirect LTOFF22 reloc.
6399
6400 2001-08-18  Richard Henderson  <rth@redhat.com>
6401
6402         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
6403         * regclass.c (init_reg_sets_1): Fix typo.
6404         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
6405         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
6406         (ia64_compute_frame_size): Make ar.unat live when in use.
6407         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
6408         for ar.pfs; remove ar.unat handling.
6409         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
6410         call-saved.
6411         (PREDICATE_CODES): Add ar_pfs_reg_operand.
6412         * config/ia64/ia64-protos.h: Update decls.
6413         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
6414         (sibcall_pic): Likewise.
6415
6416 2001-08-18  Richard Henderson  <rth@redhat.com>
6417
6418         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
6419         pred_rel_mutex when searching for insn_group_barrier.
6420         * config/ia64/ia64.md (cycle_display): Combine the expander
6421         and insn patterns.
6422
6423         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
6424         bit before asm as needed.
6425
6426 2001-08-18  Richard Henderson  <rth@redhat.com>
6427
6428         * timevar.def (TV_MACH_DEP): New.
6429         * toplev.c (rest_of_compilation): Use it.
6430         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
6431
6432 2001-08-18  Zack Weinberg  <zackw@panix.com>
6433
6434         * unwind-dw2.c (execute_stack_op): Add default aborts to
6435         the inner switches to prevent warnings.
6436
6437 2001-08-18  Richard Henderson  <rth@redhat.com>
6438
6439         * timevar.h (struct timevar_time_def): Change element type to float.
6440         (ticks_to_msec, clocks_to_msec): Likewise.
6441         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
6442         (get_time): Likewise.
6443         (timevar_print): Adjust zero check and printing to match.
6444
6445 2001-08-18  Zack Weinberg  <zackw@panix.com>
6446
6447         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
6448         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
6449         Eliminate overfull or underfull hboxes.
6450
6451 2001-08-18  Zack Weinberg  <zackw@panix.com>
6452
6453         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
6454
6455 2001-08-18  Zack Weinberg  <zackw@panix.com>
6456
6457         * haifa-sched.c: Convert to target hooks.  Macros replaced
6458         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
6459         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
6460         MD_SCHED_FINISH, and HAVE_cycle_display.
6461         * target-def.h (TARGET_SCHED_ADJUST_COST,
6462         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
6463         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
6464         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
6465         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
6466         New hook #defines to be overridden.
6467         (TARGET_SCHED): Bring them all together.
6468         (TARGET_INITIALIZER): Update.
6469         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
6470         instead of 'struct rtx_def *' throughout.
6471         (struct sched): New set of hooks for the scheduler.
6472         * Makefile.in (haifa-sched.o): Depend on target.h.
6473         * doc/tm.texi: Document the new scheduler hooks, together in
6474         their own section, instead of scattered around.
6475         Fix a bunch of underfull/overfull hboxes.
6476
6477         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
6478         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
6479         sparc.h: Don't define any of the old scheduler macros.
6480
6481         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
6482         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
6483         sparc.c: Create hook functions from code extracted from
6484         corresponding target header, or make existing hooks static, as
6485         appropriate.  Set the appropriate entries in targetm.
6486
6487         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
6488         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
6489         rs6000-protos.h, s390-protos.h, sparc-protos.h:
6490         Remove prototypes for functions which are now static.
6491
6492         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
6493         related gunk; the Haifa scheduler is now the only choice.
6494
6495 2001-08-18  Zack Weinberg  <zackw@panix.com>
6496
6497         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
6498         * genopinit.c: Put floating point divide insns in sdiv_optab.
6499         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
6500         * config/gofast.h, config/c4x/c4x.h,
6501         config/ia64/hpux_longdouble.h, config/mips/mips.h,
6502         config/pa/long_double.h, config/rs6000/sysv4.h,
6503         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
6504         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
6505         (init_optabs): Use init_optabv for overflow-trapping optabs.
6506         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
6507         cmp_optab RTX codes so have_insn_for can find them.
6508
6509         * optabs.c (expand_simple_binop, expand_simple_unop,
6510         have_insn_for, gen_sub3_insn): New interfaces.
6511         * expr.h: Prototype new functions.
6512         (enum optab_methods): Move here from optabs.h.
6513
6514         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
6515         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
6516         Use new functions instead of working directly with optabs.
6517         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
6518         unroll.c: Don't include optabs.h.
6519         * caller-save.c, combine.c, function.c, stmt.c: Just include
6520         insn-codes.h, not optabs.h.
6521         * Makefile.in: Update dependencies.
6522
6523         * combine.c (make_compound_operation, simplify_comparison):
6524         Fix typos testing for this or that instruction.
6525
6526 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
6527
6528         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
6529         generating libgcc.a.
6530
6531 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6532
6533         * except.c (TYPE_HASH): Delete.
6534
6535         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
6536         HOST_WIDE_INT.
6537
6538         * tree.c (TYPE_HASH): Delete.
6539
6540         * tree.h (TYPE_HASH): Define.
6541
6542 2001-08-18  Graham Stott  <grahams@redhat.com>
6543
6544         * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from
6545         define_split.
6546         (adddi3_internal_2+2): Likewise.
6547         (eh_set_lr_di+1): Likewise.
6548
6549 2001-08-17  Richard Henderson  <rth@redhat.com>
6550
6551         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
6552         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
6553         * dwarf2asm.c: ... here.
6554         * dwarfout.c: Remove them.
6555
6556         * varasm.c (assemble_integer): Add align parameter.
6557         (assemble_real, output_constant, output_constructor): Likewise.
6558         * output.h: Update decls.
6559         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
6560         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
6561         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
6562         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
6563         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
6564         Update all callers.
6565
6566         * final.c (end_final): Abort profile block generation if we
6567         havn't layed it out properly.
6568         * output.h (assemble_eh_integer): Remove stale decl.
6569         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
6570         (min_align): New.
6571         (assemble_integer): Handle unaligned data.
6572         (assemble_real): Abort on unaligned data.
6573         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
6574         anything useful.
6575         (default_dtor_section_asm_out_destructor): Use assemble_align.
6576         (default_named_section_asm_out_constructor): Likewise.
6577         (default_ctor_section_asm_out_constructor): Likewise.
6578         * config/darwin.c (machopic_asm_out_constructor): Likewise.
6579         (machopic_asm_out_destructor): Likewise.
6580         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
6581         (nextstep_asm_out_destructor): Likewise.
6582         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
6583         (vms_asm_out_destructor): Likewise.
6584
6585 2001-08-17  Richard Henderson  <rth@redhat.com>
6586
6587         * config/mips/iris6.h (TARGET_IRIX6): New.
6588         (current_section_name, current_section_flags): New.
6589         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
6590         (MAX_OFILE_ALIGNMENT): New.
6591         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
6592         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
6593         (copy_file_data): Split out from
6594         (mips_asm_file_end): ... here.
6595         (mips_asm_file_start): Remove extra .section directive.  Use
6596         tmpfile instead of mips_make_temp_file.
6597         (mips_unique_section): Use const char * as needed for warnings.
6598         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
6599         re-add align parameter.
6600         (iris6_asm_named_section): New.
6601         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
6602         (iris6_asm_output_align, iris6_section_align_1): New.
6603         (iris6_asm_file_start, iris6_asm_file_end): New.
6604         * config/mips/mips-protos.h: Update decls.
6605
6606 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
6607
6608         * doc/install.texi (Install GCC): Add links to build status pages.
6609         (Specific): Ditto.
6610         (Final install): Ditto; request updates for specific info
6611
6612 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
6613
6614         * cpperror.c (print_location):  Don't take a file name; use the
6615         line map instead.
6616         (_cpp_begin_message): Similarly.
6617         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
6618         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
6619         (cpp_pedwarn_with_file_and_line): Remove.
6620         * cppfiles.c (stack_include_file): Update; set filename to stdin
6621         here when appropriate.
6622         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
6623         (_cpp_begin_message): Don't take a file name.
6624         * cppinit.c: Add comment.
6625         * cpplex.c: Fix end-of-directive indicator.
6626         * cpplib.c: Don't include intl.h.
6627         (run_directive, do_diagnostic): Update.
6628         (do_line): Update to not use nominal_fname.
6629         (cpp_push_buffer): Don't take a filename.
6630         * cpplib.h (struct ht): Remove.
6631         (cpp_push_buffer): Don't take a filename.
6632         (cpp_pedwarn_with_file_and_line): Remove.
6633         * cppmacro.c (struct cpp_macro): Remove file.
6634         (builtin_macro): Update.
6635         (_cpp_create_definition): Update.
6636         * cppmain.c: Correct comment.
6637         * fix-header.c (read_scan_file): Update.
6638
6639 2001-08-17  Kazu Hirata  <kazu@hxi.com>
6640
6641         * sbitmap.c: Fix comment formatting.
6642         * sched-deps.c: Likewise.
6643         * sibcall.c: Likewise.
6644         * simplify-rtx.c: Likewise.
6645         * ssa.c: Likewise.
6646         * ssa-ccp.c: Likewise.
6647         * stor-layout.c: Likewise.
6648         * timevar.c: Likewise.
6649         * toplev.c: Likewise.
6650         * unwind-dw2.c: Likewise.
6651         * unwind-dw2-fde.c: Likewise.
6652         * varasm.c: Likewise.
6653
6654 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6655
6656         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
6657         or larger than an integer in memory.
6658
6659 2001-08-17  Zack Weinberg  <zackw@panix.com>
6660
6661         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
6662         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
6663         * rtl.h: Don't forward-declare union tree_node here.  Don't
6664         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
6665         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
6666         and tree respectively.
6667         * tree.h: Don't forward-declare struct rtx_def here.  Don't
6668         typedef tree here.  Change all uses of struct rtx_def *,
6669         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
6670         and tree respectively.
6671
6672 2001-08-17  Richard Henderson  <rth@redhat.com>
6673
6674         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
6675         config/mips/openbsd.h: Fix typos last change.
6676
6677 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6678
6679         * doc/invoke.texi (Optimize Options): The default for
6680         -finline-limit is 600.
6681
6682 2001-08-17  Richard Henderson  <rth@redhat.com>
6683
6684         * varasm.c (text_section): Allow TEXT_SECTION to override the
6685         printing of TEXT_SECTION_ASM_OP.
6686         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
6687         (DATA_SECTION, BSS_SECTION): Remove.
6688         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
6689         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
6690         Rename from s/_NAME//.
6691         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
6692         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
6693         (TEXT_SECTION): ... here.  New.
6694         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
6695         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
6696         * config/mips/openbsd.h: Likewise.
6697         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
6698         (mips_asm_file_end): Likewise test.
6699         (mips_output_function_epilogue): Likewise.  Switch back to data
6700         section after emitting the function.
6701
6702         * doc/tm.texi (Sections): Document TEXT_SECTION.
6703
6704 2001-08-17  Richard Henderson  <rth@redhat.com>
6705
6706         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
6707         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
6708
6709 2001-08-17  Richard Henderson  <rth@redhat.com>
6710
6711         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
6712         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
6713         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
6714         Add aligned attribute.
6715
6716 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
6717
6718         * config/sh/sh.md: Add modes to unspecs in first insn to match
6719         those in the second.
6720
6721         * Makefile.in: Fix collect2 copy for Cygwin.
6722
6723 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
6724
6725         Install the proper patch.
6726         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
6727         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
6728         (expand_function_start): Likewise.
6729         * stmt.c (expand_decl): Likewise.
6730         * varasm.c (make_decl_rtx): Likewise.
6731
6732 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6733
6734         * final.c: Undo my previous accidental checkin.
6735         * output.h: Likewise.
6736         * tm.texi: Likewise.
6737
6738 2001-08-16  Richard Henderson  <rth@redhat.com>
6739
6740         * varasm.c (named_section_flags): Remove align parameter.
6741         * varasm.c, dwarf2out.c: Update all callers.
6742         * output.h: Update prototypes.
6743
6744         * target.h (target.asm_out.named_section): Remove align parameter.
6745         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
6746         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
6747         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
6748         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
6749         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
6750
6751         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
6752         (get_named_section_flags, set_named_section_flags): New.
6753         (named_section_flags): Use them.
6754         (named_section): Do decl vs section flags check here...
6755         (default_section_type_flags): ... not here.
6756         (init_varasm_once): Create in_named_htab.
6757         (resolve_unique_section): Mark reloc unused.
6758
6759 2001-08-16  Richard Henderson  <rth@redhat.com>
6760
6761         * varasm.c (force_const_mem): Keep pool alignment in bits.
6762         (output_constant_pool): Use assemble_align.
6763
6764 2001-08-16  Zack Weinberg  <zackw@panix.com>
6765
6766         * doc/tm.texi: Remove extra @table command.
6767
6768 2001-08-16  Zack Weinberg  <zackw@panix.com>
6769
6770         * final.c (shorten_branches): Clear the end of the label_align
6771         array only if we made it larger.  Break up messy expressions
6772         for clarity.
6773
6774         * diagnostic.c (internal_error): Check for error recursion
6775         before doing ICE suppression.
6776
6777         * timevar.c: Timing variables now count in milliseconds.
6778         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
6779         (get_time): Not here.
6780         (timevar_print): Don't print any timer whose user, cpu, and
6781         wall times are all zero as displayed.
6782         * timevar.h: Update comment aboout units.  Make timevar
6783         counters unsigned.
6784
6785 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
6786
6787         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
6788         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
6789         (expand_function_start): Likewise.
6790         * stmt.c (expand_decl): Likewise.
6791         * varasm.c (make_decl_rtx): Likewise.
6792
6793 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
6794
6795         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
6796         (finalize_record_size): Don't set TYPE_USER_ALIGN.
6797
6798 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6799
6800         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
6801         variables.
6802
6803 2001-08-16  Andreas Jaeger  <aj@suse.de>
6804
6805         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
6806         prototype.
6807
6808 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
6809
6810         * rtl.h (only_sets_cc0_p): New prototype.
6811         * jump.c (sets_cc0_p): Handle INSN.
6812         (only_sets_cc0_p): New function.
6813         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
6814         (tidy_fallthru_edge): Likewise.
6815         * integrate.c (copy_insn_list): Likewise.
6816         * unroll.c (unroll_loop): Likewise.
6817         (copy_loop_body): Likewise.
6818
6819 2001-08-15  Jason Eckhardt  <jle@redhat.com>
6820
6821         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
6822
6823 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
6824
6825         * predict.c (struct block_info_def): Remove nvisited.
6826         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
6827         (estimate_bb_frequencies): Call mark_dfs_back_edges.
6828
6829         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
6830         (ix86_adjust_cost): Teach scheduler that latency to load operand can
6831         be masked.
6832
6833 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
6834
6835         * predict.def: Update hitrates.
6836
6837 2001-08-15  Richard Henderson  <rth@redhat.com>
6838
6839         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
6840
6841 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
6842
6843         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
6844         note from its associated jump.
6845
6846 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
6847
6848         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
6849         also on 64-bit s390x targets.
6850
6851 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
6852
6853         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
6854         function.
6855         (arm_expand_prologue): Handled nested functions which take a
6856         variable argument list.
6857         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
6858         macro with an invocation of
6859         arm_compute_initial_elimination_offset.
6860         * config/arm/arm-protos.h: Prototype
6861         arm_compute_initial_elimination_offset.
6862
6863 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6864
6865         * doc/install.texi (Specific, avr): Fix markup.
6866         (Specific, c4x): Ditto.
6867
6868 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6869
6870         * predict.c (dump_prediction): Change `bool' parameter to `int'.
6871
6872 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
6873
6874         * Makefile.in (OBJS): Add rtl-error.o
6875         (rtl-error.o): New rule.
6876         (diagnostic.o): Adjust dependency.
6877         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
6878         error_for_asm, _fatal_insn, _fatal_insn_not_found,
6879         warning_for_asm): Move to...
6880         rtl-error.c: ...here.  New file.
6881
6882 2001-08-14  Richard Henderson  <rth@redhat.com>
6883
6884         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
6885         if USING_SJLJ_EXCEPTIONS.
6886
6887 2001-08-14  Steve Ellcey <sje@cup.hp.com>
6888
6889         * tlink.c (scan_linker_output): Check string for unsatisfied in
6890         addition to undefined and unresolved.
6891
6892 2001-08-14  Graham Stott  <grahams@redhat.com>
6893
6894         * libgcc2.c (*): Replace EH_FRAME_SECTION with
6895         EH_FRAME_SECTION_NAME.
6896
6897 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
6898
6899         * genattrtab.c (simplify_test_exp_in_temp): New function.
6900         (simplify_test_exp): Avoid explicit use of temporary obstack.
6901         (simplify_cond, insert_right_side, evaluate_eq_attr,
6902         simplify_and_tree, simplify_or_tree, eliminate_known_true):
6903         Use simplify_test_exp_in_temp.
6904         (optimize_attrs): Iterate until expression stabilizes.
6905
6906 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
6907
6908         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
6909         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
6910
6911 2001-08-13  Richard Henderson  <rth@redhat.com>
6912
6913         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
6914         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
6915         * config/arm/conix-elf.h: Likewise.
6916
6917 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
6918
6919         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
6920         in gcc.c.
6921         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
6922
6923         * gcse.c (hash_scan_set): Expressions that are set as part of
6924         jump instructions are not available.
6925
6926 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
6927
6928         * config/s390/s390.c (print_operand, s390_function_prologue,
6929         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
6930
6931 2001-08-13  Richard Henderson  <rth@redhat.com>
6932
6933         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
6934         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
6935         * doc/tm.texi (Exception Region Output): Document it.
6936
6937 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
6938
6939         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
6940         DWARF2 instead of stabs by default.
6941
6942 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
6943
6944         * config/rs6000/rs6000.c: Include optabs.h.
6945
6946 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
6947
6948         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
6949         save/restore routines.
6950         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
6951
6952 2001-08-13  Andreas Jaeger  <aj@suse.de>
6953
6954         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
6955         the english is correct.
6956
6957 2001-08-13  Zack Weinberg  <zackw@panix.com>
6958
6959         * expr.h: Split out optab- and libfunc-related code to...
6960         * optabs.h, libfuncs.h: ... these new headers.
6961
6962         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
6963         (OPTABS_H): New.
6964         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
6965         dependencies.
6966         * mkconfig.sh: Don't include insn-codes.h from config.h.
6967
6968         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
6969         enum insn_code is available.  Move reload_in_optab and
6970         reload_out_optab array declarations to optabs.h.
6971         * regmove.c (gen_add3_insn): Move to optabs.c, export from
6972         there, prototype in expr.h.
6973         * gencodes.c: Cleanup: zap global variables, don't use
6974         printf where puts will do, don't bother defining MAX_INSN_CODE
6975         which nothing uses, let CODE_FOR_nothing get its value implicitly.
6976
6977         * genemit.c, genopinit.c: Include optabs.h in generated file.
6978         * genoutput.c: Include insn-codes.h in generated file.
6979         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
6980         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
6981         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
6982         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
6983         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
6984         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
6985         Include optabs.h.
6986         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
6987         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
6988         config/m88k/m88k.c, config/sparc/sparc.c:
6989         Include libfuncs.h.
6990         * reload.c: Include expr.h and optabs.h before reload.h.
6991         * config/alpha/alpha.c: Include tree.h before reload.h.
6992         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
6993         and reload.h in that order.
6994         * config/sparc/sparc.c: Include debug.h.
6995         * recog.c: Include insn-codes.h.
6996
6997 2001-08-13  Andreas Jaeger  <aj@suse.de>
6998
6999         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
7000         s390*linux.
7001
7002 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7003
7004         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
7005         * gcc.c (init_spec): Fix typo in comment.
7006         * varasm.c (data_section): Fix typo in comment.
7007
7008 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
7009
7010         * predict.c (dump_prediction): New argument "USED".
7011         (combine_predictions_for_insn): Determine the used heuristics,
7012         output the case no heuristic applied.
7013         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
7014
7015 2001-08-13  Andreas Jaeger  <aj@suse.de>
7016
7017         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
7018         register %rip.
7019
7020 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7021
7022         * jump.c: Fix formatting.
7023
7024 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7025
7026         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
7027         length.
7028
7029 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
7030
7031         * loop.c (check_dbra_loop): Use condjump_label to compute
7032         jump_label.
7033
7034         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
7035         to better document the files they're in.
7036
7037 2001-08-12  Zack Weinberg  <zackw@panix.com>
7038
7039         * recog.h (struct insn_operand_data): Shrink 'mode' field
7040         to 16 bits.
7041
7042 2001-08-12  Kazu Hirata  <kazu@hxi.com>
7043
7044         * gcc.c: Fix comment formatting.
7045         * gccspec.c: Likewise.
7046         * gcov.c: Likewise.
7047         * gcse.c: Likewise.
7048         * genemit.c: Likewise.
7049         * gengenrtl.c: Likewise.
7050         * genrecog.c: Likewise.
7051         * gensupport.c: Likewise.
7052         * ggc-page.c: Likewise.
7053         * global.c: Likewise.
7054         * graph.c: Likewise.
7055         * ifcvt.c: Likewise.
7056         * integrate.c: Likewise.
7057         * lcm.c: Likewise.
7058         * libgcc2.c: Likewise.
7059         * loop.c: Likewise.
7060         * mbchar.c: Likewise.
7061         * optabs.c: Likewise.
7062         * predict.c: Likewise.
7063         * prefix.c: Likewise.
7064         * profile.c: Likewise.
7065         * protoize.c: Likewise.
7066         * real.c: Likewise.
7067         * recog.c: Likewise.
7068         * regclass.c: Likewise.
7069         * regmove.c: Likewise.
7070         * reg-stack.c: Likewise.
7071         * reload1.c: Likewise.
7072         * resource.c: Likewise.
7073         * rtlanal.c: Likewise.
7074         * rtl.c: Likewise.
7075
7076 2001-08-12  Kazu Hirata  <kazu@hxi.com>
7077
7078         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
7079         a tree representing a constant is passed to the macro.
7080
7081 2001-08-12  Richard Henderson  <rth@redhat.com>
7082
7083         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
7084         (rs6000_elf_asm_out_destructor): New.
7085         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
7086         (DTORS_SECTION_ASM_OP): Remove.
7087         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7088         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
7089
7090 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
7091
7092         Revert:
7093         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7094         * gcc.c (set_collect_gcc_options): New function, split out from
7095         main.
7096         Ignore elided switches.
7097         (do_spec_1): Invoke before executing command.
7098         (set_input): Export.
7099         Move declaration ...
7100         * gcc.h (set_input): ... here.
7101         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
7102         file.
7103
7104 2001-08-12  Richard Henderson  <rth@redhat.com>
7105
7106         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
7107         thinko wrt TARGET_RELOCATABLE.
7108
7109 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
7110
7111         * fix-header.c (cb_file_change): Update prototype.
7112
7113 2001-08-11  Zack Weinberg  <zackw@panix.com>
7114
7115         * toplev.c (set_float_handler): Make static.
7116         * toplev.h: Don't prototype set_float_handler.
7117
7118         * simplify-rtx.c: Don't include setjmp.h.
7119         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
7120         New functions.
7121         (simplify_unary_operation, simplify_binary_operation): Use them,
7122         via do_float_handler.
7123
7124         * fold-const.c: Don't include setjmp.h.
7125         (exact_real_inverse_1): New function.
7126         (exact_real_inverse): Use it, via do_float_handler.
7127
7128         * varasm.c: Don't include setjmp.h.
7129         (assemble_real_1): New function.
7130         (assemble_real): Use it, via do_float_handler.
7131         Call internal_error if we get a trap here.
7132
7133         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
7134         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
7135
7136 2001-08-11  Zack Weinberg  <zackw@panix.com>
7137
7138         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
7139         STACK_BOUNDARY if not already defined.
7140
7141         * calls.c, function.c, reload1.c, explow.c: Don't default
7142         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
7143         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
7144
7145         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
7146         to run-time test.
7147
7148         * doc/tm.texi: Document that STACK_BOUNDARY is required;
7149         clarify difference between it and PREFERRED_STACK_BOUNDARY.
7150
7151 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
7152
7153         * cppmacro.c (enter_macro_context): Push macro expansions even
7154         if empty.
7155
7156 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7157
7158         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
7159         (rs6000_elf_section_type_flags): Actually return a value.
7160
7161 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
7162
7163         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
7164         Clean up code: add missing comments and prototypes, fix warnings,
7165         remove obsolete code, fix spacing to conform to coding style.
7166
7167 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
7168
7169         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
7170         and TARGET_ASM_CLOSE_PAREN.
7171         (regclass_map): CC register belongs to class NO_REGS.
7172         (legitimize_pic_address): Don't generate unnecessary moves
7173         (to avoid confusing loop optimization).
7174         (check_and_change_labels): Replace jump_long by indirect_jump.
7175         (s390_final_chunkify): Don't start a new literal pool on section
7176         switch in 64-bit code.
7177         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
7178
7179         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
7180         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
7181         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
7182         modes correctly.
7183         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
7184         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
7185         (CONST_COSTS): Fixed incorrect costs.
7186
7187         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
7188         Use emit_jump instead of emit_jump_insn (gen_jump).
7189         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
7190         (to avoid confusing flow analysis).
7191         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
7192         (casesi, casesi_jump): New.
7193         (jump_long): Removed.  Functionality merged into indirect_jump.
7194         (indirect_jump): Accept address_operand, not just register_operand.
7195         (cjump_long, icjump_long): Use same logic as indirect_jump.
7196         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
7197         Fixed broken setjmp/longjmp handling.
7198         (do_builtin_setjmp_setup): Removed.
7199
7200         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
7201         broken GNU as versions that don't accept .quad with large
7202         negative values.  Use hexadecimal output instead.
7203         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
7204         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
7205         FUNCTION_EPILOGUE): Removed.  Now in targetm.
7206
7207         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
7208
7209         * config/s390/fixdfdi.h: Add missing copyright statement.
7210         Fix type conflicts on 64-bit.  Add missing SFmode routines.
7211
7212         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
7213         email address.
7214
7215 2001-08-11  Richard Henderson  <rth@redhat.com>
7216
7217         * rtl.h (REG_EH_RETHROW): Remove.
7218         * rtl.c (reg_note_name): Update.
7219         * combine.c (distribute_notes): Don't check for it.
7220
7221 2001-08-11  Richard Henderson  <rth@redhat.com>
7222
7223         * combine.c (distribute_notes): Place REG_SETJMP.
7224
7225 2001-08-11  Richard Henderson  <rth@redhat.com>
7226
7227         * doc/extend.texi (Arrays and pointers implementation): Discourage
7228         relying on sign-extension of pointers.
7229
7230 2001-08-11  H.J. Lu <hjl@gnu.org>
7231
7232         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
7233         in_dtors.
7234         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
7235         RDATA_SECTION_ASM_OP.
7236
7237 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7238
7239         * doc/install.texi (Specific, c4x): Fix cross-reference to the
7240         main manual to work both for info and HTML versions.
7241
7242 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
7243             Matt Kraai <kraai@alumni.carnegiemellon.edu>
7244
7245         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
7246         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
7247         (struct cpp_pool): New member first.
7248         * cppinit.c (append_include_chain): Plug memory leaks.
7249         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
7250         Allocate pragma structures from the (aligned) macro pool to
7251         avoid leaking memory.
7252         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
7253         so we don't leak memory.
7254         * hashtable.c (ht_destroy): New.
7255         * hashtable.h (ht_destroy): New.
7256
7257 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
7258             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7259
7260         * c-lex.c (map): Make const.
7261         (cb_file_change): Update for callback passing a line map.
7262         Don't assume we have a previous map.  Remove sanity check
7263         about popping too many files.
7264         * cpperror.c (print_location): Make map const.
7265         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
7266         (cpp_make_system_header): Similarly.
7267         (search_from): Similarly.
7268         (_cpp_execute_include): Don't remember where we came from.
7269         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
7270         (struct cpp_reader): Make map const.
7271         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
7272         * cpplib.c (do_line): Update; line maps now hold sysp.
7273         (cpp_push_buffer): Similarly.
7274         (_cpp_do_file_change): Similarly; callback with map instead.
7275         (cpp_get_line_maps): Constify return value.
7276         (_cpp_pop_buffer): Update.
7277         * cpplib.h (struct cpp_file_change): Remove.
7278         (struct cpp_callbacks): Update.
7279         (cpp_get_line_maps): Constify return value.
7280         * cppmacro.c (_cpp_create_definition): Update.
7281         * cppmain.c (struct printer): Constify map.
7282         (maybe_print_line): Similarly.
7283         (print_line): Similarly.  Deduce flags 1 and 2 here.
7284         (cb_file_change): Update.
7285         * line-map.c (free_line_maps): Warn regardless.
7286         (add_line_map): Return pointer to const.  When passed NULL to_file
7287         with LC_LEAVE, use the obvious values for the return point so the
7288         caller doesn't have to figure them out.
7289         (lookup_line): Return pointer to const.
7290         (print_containing_files): Take pointer to const.
7291         * line-map.h (struct line_map): New members reason, sysp.
7292         (add_line_map): Return pointer to const.
7293         (lookup_line): Similarly.
7294         (print_containing_files): Take pointer to const.
7295
7296 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
7297             Richard Henderson  <rth@redhat.com>
7298
7299         * regmove.c (regmove_optimize): Avoid setting a register twice in
7300         a parallel set.
7301
7302 2001-08-10  Richard Henderson  <rth@redhat.com>
7303
7304         * doc/extend.texi (Arrays and pointers implementation): Document
7305         behavior of pointer/integer conversion.
7306
7307 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
7308
7309         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
7310
7311 2001-08-10  Richard Henderson  <rth@redhat.com>
7312
7313         * doc/extend.texi (C Implementation): New chapter.
7314         * doc/gcc.texi (Top): Link it in.
7315
7316 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
7317
7318         * doc/install.texi (Specific): Fix CVS merge botch.
7319
7320 2001-08-10  Richard Henderson  <rth@redhat.com>
7321
7322         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
7323         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
7324
7325 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
7326
7327         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
7328         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
7329         this macro is now required.
7330
7331         * cselib.c (cselib_process_insn), flow.c (propagate_block),
7332         loop.c (find_and_verify_loops), reload.c (reload): Check
7333         for rtx code of CALL_INSN, not CALL, when deciding if we
7334         need to check for REG_SETJMP note.
7335
7336         * gcse.c (compute_hash_table, compute_store_table): Update
7337         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
7338         logic.
7339
7340         * config/avr/avr.c: Fix typo.
7341         * config/convex/convex.c (expand_movstr): Use adjust_address.
7342         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
7343         variable.
7344         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
7345         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
7346         Fix typo.
7347         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
7348         Do define STACK_BOUNDARY.
7349         * config/i370/i370.c: Include expr.h.
7350         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
7351         config/pa/som.h, config/v850/v850.h: Take in_ctors and
7352         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
7353         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
7354         * config/m88k/m88k.c: Include c-tree.h after expr.h.
7355         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
7356         * config/romp/romp.c: Include expr.h after tree.h.
7357         Include toplev.h.
7358         (output_fpop): Use xmalloc, not oballoc.
7359         * config/we32k/we32k.c: Include expr.h.
7360
7361 2001-08-10  Kazu Hirata  <kazu@hxi.com>
7362
7363         * config/h8300/h8300.h: Fix formatting.
7364
7365 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
7366
7367         * c-common.h (RETURN_NULLIFIED_P): Lose.
7368         * c-semantics.c (genrtl_return_stmt): Don't check it.
7369
7370 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
7371
7372         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
7373         (mips_annotate_frame_insn): New function.
7374         (mips_emit_frame_related_store): New function.
7375         (save_restore_insns): Don't mark instructions that set up the base
7376         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
7377         the store instructions instead.
7378         (mips_expand_prologue): If the stack size is moved into a temporary
7379         register, do not mark that move as frame-related.  Add a
7380         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
7381
7382 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
7383
7384         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
7385         stack slot as unchanging if current_function_calls_eh_return.
7386
7387 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
7388
7389         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
7390         access the second half of the TFmode scratch operand.
7391
7392 2001-08-10  Anthony Green  <green@redhat.com>
7393
7394         * java/class.c (emit_register_classes): Conditionalize code on
7395         JCR_SECTION_NAME.
7396
7397 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7398
7399         * doc/install.texi (Specific, avr): Fix cross-reference to the
7400         main manual to work both for info and HTML versions.
7401
7402 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7403
7404         * stmt.c (expand_null_return_1): Remove code to generate simple returns
7405         and "use_goto" argument.
7406         (expand_null_return, expand_value_return): Update all callers.
7407         * function.c (expand_function_end): Remove code to generate simple
7408         return.
7409         * config/vax/vax.md (epilogue): New expander for function return.
7410         * doc/md.texi (epilogue): Remove "if defined".
7411
7412 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
7413
7414         * Makefile.in: Partially revert my previous change:
7415         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
7416         of the hashtab.o and safe-ctype.o rules.
7417
7418 2001-08-09  Richard Henderson  <rth@redhat.com>
7419
7420         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
7421         (USE_COLLECT2): Remove duplicate definition.
7422         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
7423         (use_collect2): Remove dead code.
7424         * configure.in (use_collect2): Remove will_use_collect2 and
7425         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
7426         * configure: Rebuild.
7427
7428         * target.h (targetm.asm_out.constructor): New.
7429         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
7430         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
7431         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
7432         * varasm.c (in_ctors, in_dtors): New.
7433         (assemble_constructor, assemble_destructor): Remove.
7434         (default_stabs_asm_out_destructor): New.
7435         (default_named_section_asm_out_destructor): New.
7436         (dtors_section, default_dtor_section_asm_out_destructor): New.
7437         (default_stabs_asm_out_constructor): New.
7438         (default_named_section_asm_out_constructor): New.
7439         (ctors_section, default_ctor_section_asm_out_constructor): New.
7440         * output.h: Update declarations.
7441         * c-decl.c (c_expand_body): Use target hooks instead of
7442         assemble_constructor and assemble_destructor.
7443         * profile.c (output_func_start_profiler): Likewise.
7444         * objc/objc-act.c (finish_objc): Likewise.
7445         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
7446         for the constructor.
7447         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
7448
7449         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
7450         (DTORS_SECTION_ASM_OP): Likewise.
7451         (__CTOR_LIST__): Use attribute section when possible.
7452         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
7453
7454         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
7455         ASM_OUTPUT_CONSTRUCTOR.
7456
7457         * config/darwin.c (machopic_asm_out_constructor): New.
7458         (machopic_asm_out_destructor): New.
7459         * config/darwin-protos.h: Update declarations.
7460         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7461         (ASM_OUTPUT_DESTRUCTOR): Remove.
7462         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7463         * config/nextstep.c (nextstep_asm_out_constructor): New.
7464         (nextstep_asm_out_destructor): New.
7465         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7466         (ASM_OUTPUT_DESTRUCTOR): Remove.
7467         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7468         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
7469         ASM_OUTPUT_*STRUCTOR.
7470         * config/i386/aix386ng.h: Likewise.
7471
7472         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
7473         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
7474         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
7475         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7476         * config/lynx.h: Likewise.
7477         * config/netware.h: Likewise.
7478         * config/psos.h: Likewise.
7479         * config/alpha/alpha-interix.h: Likewise.
7480         * config/alpha/elf.h: Likewise.
7481         * config/arc/arc.h: Likewise.
7482         * config/arm/aof.h: Likewise.
7483         * config/arm/coff.h: Likewise.
7484         * config/arm/elf.h: Likewise.
7485         * config/c4x/c4x.h: Likewise.
7486         * config/h8300/h8300.h: Likewise.
7487         * config/i386/cygwin.h: Likewise.
7488         * config/i386/djgpp.h: Likewise.
7489         * config/i386/i386-coff.h: Likewise.
7490         * config/i386/i386-interix.h: Likewise.
7491         * config/i386/sco5.h: Likewise.
7492         * config/i386/vsta.h: Likewise.
7493         * config/i386/win32.h: Likewise.
7494         * config/i960/i960-coff.h: Likewise.
7495         * config/ia64/sysv4.h: Likewise.
7496         * config/m68hc11/m68hc11.h: Likewise.
7497         * config/m68k/coff.h: Likewise.
7498         * config/m68k/mot3300.h: Likewise.
7499         * config/m88k/m88k.h: Likewise.
7500         * config/mcore/mcore-pe.h: Likewise.
7501         * config/mcore/mcore.h: Likewise.
7502         * config/mips/elf.h: Likewise.
7503         * config/mips/elf64.h: Likewise.
7504         * config/mips/iris6.h: Likewise.
7505         * config/pa/pa64-hpux.h: Likewise.
7506         * config/rs6000/sysv4.h: Likewise.
7507         * config/sh/sh.h: Likewise.
7508         * config/sparc/litecoff.h: Likewise.
7509
7510         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
7511         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
7512         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7513         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7514         (ASM_OUTPUT_DESTRUCTOR): Remove.
7515         * config/a29k/a29k.c: Move include of tree.h.
7516         * config/a29k/udi.h: Delete file.
7517         * config/alpha/alpha.c (vms_asm_out_constructor): New.
7518         (vms_asm_out_destructor): New.
7519         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
7520         (EXTRA_SECTION_FUNCTIONS): Likewise.
7521         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7522         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7523         * config/c4x/c4x.c: Move include of tree.h.
7524         * config/clipper/clipper.c (clix_asm_out_constructor): New.
7525         (clix_asm_out_destructor): New.
7526         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7527         (ASM_OUTPUT_DESTRUCTOR): Remove.
7528         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7529         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7530         (TARGET_ASM_CONSTRUCTOR): New.
7531         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
7532         (sco_asm_out_constructor): New.
7533         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
7534         * config/i386/svr3gas.h: Remove stack grows up code.
7535         Remove code duplicated from i386/sysv3.h.
7536         (TARGET_ASM_CONSTRUCTOR): New.
7537         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7538         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
7539         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7540         (TARGET_ASM_CONSTRUCTOR): New.
7541         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
7542         (m68hc11_asm_out_destructor): New.
7543         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
7544         (TARGET_ASM_DESTRUCTOR): New.
7545         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
7546         * config/m68k/dpx2.h: Properly undef all the bits inherited from
7547         config/svr3.h pertaining to section manipulation.
7548         * config/m68k/dpx2g.h: Remove #if 0 code.
7549         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
7550         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
7551         (ASM_OUTPUT_CONSTRUCTOR): Remove.
7552         (TARGET_ASM_CONSTRUCTOR): New.
7553         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
7554         (m88k_svr3_asm_out_constructor): New.
7555         (m88k_svr3_asm_out_destructor): New.
7556         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7557         (ASM_OUTPUT_DESTRUCTOR): Remove.
7558         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7559         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
7560         * config/rs6000/aix.h: Likewise.
7561         * config/mips/rtems64.h: Don't undef removed constructor related bits.
7562         * config/mips/vxworks.h: Likewise.
7563         * config/rs6000/lynx.h: Likewise.
7564         * config/sh/elf.h: Likewise.
7565         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
7566         (DTORS_SECTION_ASM_OP): New.
7567         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7568         (ASM_OUTPUT_DESTRUCTOR): Remove.
7569         * config/sparc/sol2-sld-64.h: Likewise.
7570         * config/vax/vax.c (vms_asm_out_constructor): New.
7571         (vms_asm_out_destructor): New.
7572         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7573         (ASM_OUTPUT_DESTRUCTOR): Remove.
7574         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7575
7576         * doc/tm.texi (@node Initialization): Update.
7577
7578 2001-08-09  Richard Henderson  <rth@redhat.com>
7579
7580         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
7581         (__do_global_dtors_aux): Use gp-relative static data to avoid
7582         one dynamic relocation.
7583         (__do_frame_setup): Register Java classes.
7584         * config/alpha/crtend.asm (__JCR_END__): New.
7585
7586 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
7587
7588         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
7589         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
7590         (GEN, STAGESTUFF): Add new files.
7591         (insn-constants.h, s-constants, tm-preds.h, s-preds,
7592         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
7593         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
7594         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
7595         as well as insn-codes.h and insn-flags.h in config.h; and no
7596         extra headers in tconfig.h and hconfig.h.
7597
7598         * gencodes.c: Eliminate code to generate predicate declarations
7599         or #defines for md-file constants.
7600         * genconstants.c, genpreds.c: New files.
7601
7602         * i386.md: Re-order guard expressions such that TARGET_64BIT
7603         comes first, when this permits better optimization.  Add
7604         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
7605         why this is desirable.
7606
7607 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
7608
7609         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
7610         (find_fde_for_dso): Remove.
7611         (_Unwind_IteratePhdrCallback): New.
7612         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
7613         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
7614
7615 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7616
7617         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
7618         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
7619
7620 2001-08-09  Graham Stott  <grahams@redhat.com>
7621
7622         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
7623         (vis_no_unit): Use it.
7624         (visualize_no_unit): Add the insn only if room exists.
7625
7626 2001-08-09  Graham Stott  <grahams@redhat.com>
7627
7628         * predict.c (estimate_probability): Replace magic numbers with
7629         appropriate enumeration.
7630
7631 2001-08-09  Graham Stott  <grahams@redhat.com>
7632
7633         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
7634         parameter.
7635         (EXTRACT_FLAGS): Likewise.
7636
7637 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
7638
7639         * config/mips/mips.c    (mips_legitimate_address_p): Check for
7640         CONST_INT in last patch.
7641
7642 2001-08-08  Anthony Green  <green@redhat.com>
7643
7644         * java/class.c (emit_register_classes): Use assemble_jcr if
7645         possible.  Keep the original mechanism as a fallback.
7646         * defaults.h (JCR_SECTION_NAME): Define if we have named section
7647         and weak symbol support.
7648         * crtstuff.c (__JCR_LIST__): Define.
7649         (__JCR_END__): Define.
7650         (_Jv_RegiserClasses): Define weak symbol if possible.
7651         (__do_global_ctors_aux): Register classes for ELF targets with
7652         weak symbol support.
7653
7654 2001-08-08  Kazu Hirata  <kazu@hxi.com>
7655
7656         * dbxout.c: Fix comment formatting.
7657         * dependence.c: Likewise.
7658         * df.c: Likewise.
7659         * diagnostic.c: Likewise.
7660         * dominance.c: Likewise.
7661         * doprint.c: Likewise.
7662         * dwarf2out.c: Likewise.
7663         * dwarfout.c: Likewise.
7664         * emit-rtl.c: Likewise.
7665         * except.c: Likewise.
7666         * explow.c: Likewise.
7667         * expmed.c: Likewise.
7668         * expr.c: Likewise.
7669         * flow.c: Likewise.
7670         * fold-const.c: Likewise.
7671         * function.c: Likewise.
7672
7673 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7674
7675         * global.c (retry_global_alloc): Avoid shadowing allocno.
7676
7677 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
7678
7679         * except.c (remove_fixup_regions): Fix typo.
7680
7681 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
7682
7683         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
7684         unsigned HOST_WIDE_INT to avoid warning.
7685         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
7686         * flow.c (set_block_for_new_insns): Likewise.
7687
7688 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
7689
7690         * sibcall.c (return_value_pseudo): New static variable.
7691         (skip_copy_to_return_value): Handle return_value_pseudo.
7692         (call_ends_block_p): Ensure that return_value_pseudo is set.
7693         (optimize_sibling_and_tail_recursive_call): Discover the
7694         load of pseudo return value in alternate exit block.
7695
7696 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
7697
7698         * calls.c (ECF_ALWAYS_RETURN): New constant.
7699         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
7700         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
7701         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
7702         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
7703         * rtl.c (reg_note_name): New name.
7704         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
7705
7706 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
7707
7708         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
7709
7710 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
7711
7712         * alias.c (get_alias_set): Return a previously calculated
7713         alias set for a VAR_DECL.
7714         * function.c (gen_mem_addressof): Calculate the alias set before
7715         touching the RTL.
7716
7717 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
7718
7719         * predict.def: Set hitrates according our experimental run.
7720
7721 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
7722
7723         * i386.h (HARD_REGNO_RENAME_OK): New macro.
7724
7725 2001-08-08  H.J. Lu <hjl@gnu.org>
7726
7727         * config/mips/mips.c (mips_unique_section): New. Copied from
7728         config/mips/elf.h.
7729
7730         * config/mips/mips-protos.h (mips_unique_section): New
7731         prototype.
7732
7733         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
7734
7735         * config/mips/little.h: New. Generic little endian mips
7736         targets. Only mips*-*-linux* is converted to use it so far.
7737
7738         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
7739         (WCHAR_TYPE): Defined
7740         (WCHAR_TYPE_SIZE): Likewise.
7741         (INIT_SUBTARGET_OPTABS): Likewise.
7742         (BSS_SECTION_ASM_OP): Likewise.
7743         (SBSS_SECTION_ASM_OP): Likewise.
7744         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7745         (ASM_DECLARE_OBJECT_NAME): Likewise.
7746         (UNIQUE_SECTION): Likewise.
7747         (EXTRA_SECTIONS): Likewise.
7748         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
7749         (ASM_OUTPUT_DESTRUCTOR): Likewise.
7750         (ASM_OUTPUT_DEF): Likewise.
7751         (HANDLE_SYSV_PRAGMA): Removed.
7752         (NO_IMPLICIT_EXTERN_C): Likewise.
7753         (TARGET_MEM_FUNCTIONS): Likewise.
7754         (STARTFILE_SPEC): Likewise.
7755         (ENDFILE_SPEC): Likewise.
7756         (LIB_SPEC): Likewise.
7757         (INVOKE__main): Likewise.
7758         (CTOR_LIST_BEGIN): Likewise.
7759         (CTOR_LIST_END): Likewise.
7760         (DTOR_LIST_BEGIN): Likewise.
7761         (DTOR_LIST_END): Likewise.
7762         (SET_ASM_OP): Likewise.
7763         (ASM_OUTPUT_SOURCE_LINE): Likewise.
7764         (ASM_OUTPUT_DEF): Likewise.
7765         (ASM_OUTPUT_IDENT): Likewise.
7766
7767         * config/mips/mips.h (ASM_SPEC): Undefine before define.
7768         (CPLUSPLUS_CPP_SPEC): Likewise.
7769         (ASM_APP_ON) Redefine only if not defined.
7770         (ASM_APP_OFF): Likewise.
7771         (ASM_OUTPUT_SOURCE_LINE): Likewise.
7772         (ASM_OUTPUT_IDENT): Likewise.
7773
7774         * config.gcc: Update tm_file for Linux/mips.
7775
7776 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
7777
7778         * cselib.c (cselib_record_sets): If insn is predicated, turn
7779         sources into IF_THEN_ELSEs.
7780
7781         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
7782         Turn into define_insn_and_split.
7783
7784         * sched-deps.c: Include "cselib.h".
7785         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
7786         Use cselib to turn memory addresses into VALUEs.
7787         (sched_analyze): Call cselib_init/cselib_finish if necessary.
7788         * sched-int.h (struct sched_info): New member USE_CSELIB.
7789         * sched-ebb.c (ebb_sched_info): Initialize it.
7790         * sched-rgn.c (rgn_sched_info): Likewise.
7791         * Makefile.in (sched-deps.o): Update dependencies.
7792
7793         * cselib.h (cselib_subst_to_values): Declare.
7794         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
7795         that have no value and autoincs to be handled by generating a new
7796         dummy value.
7797
7798 2001-08-08  Graham Stott  <grahams@redhat.com>
7799
7800         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
7801         within fixed length SEQUENCE.
7802
7803 2001-08-08  Graham Stott  <grahams@redhat.com>
7804
7805         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
7806         (diagnostic_prefixing_rule): Likewise.
7807         (diagnostic_line_cutoff): Likewise.
7808         (diagnostic_kind_count): Likewise.
7809
7810 2001-08-08  Graham Stott  <grahams@redhat.com>
7811
7812         * alias.c (find_base_decl): Delete redundent assignment.
7813
7814 2001-08-08  Graham Stott  <grahams@redhat.com>
7815
7816         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
7817         (abs): Uppercase and paranthesize macro parameter.
7818         (MEM_DEPENDENCY): Add whitespace.
7819
7820 2001-08-08  Graham Stott  <grahams@redhat.com>
7821
7822         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
7823         failure check for CONST_INT
7824
7825 2001-08-08  Graham Stott  <grahams@redhat.com>
7826
7827         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
7828         (libcall_dead_p): Likewise.
7829
7830         (mark_used_regs): Constify fmt.
7831         (find_use_as_address): Likewise.
7832
7833 2001-08-08  Graham Stott  <grahams@redhat.com>
7834
7835         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
7836          parameter.
7837
7838 2001-08-08  Graham Stott  <grahams@redhat.com>
7839
7840         * combine.c (combine_simplify_rtx): Update comment and
7841         remove erroneous test.
7842
7843 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7844
7845         * cppinit.c (cpp_finish): Pop the final buffer without comment.
7846         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
7847         take care to avoid multiple no-newline at EOF warnings in that
7848         case.
7849
7850 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
7851
7852         * calls.c (expand_call): Do not emit INSN_SETJMP note.
7853         (emit_library_call_value_1): Likewise.
7854         (emit_call_1): Emit REG_SETJMP note.
7855         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
7856         of INSN_SETJMP
7857         * cselib.c (cselib_process_insn): Likewise.
7858         * flow.c (propagate_block): Likewise.
7859         * loop.c (find_and_verify_loops): Likewise.
7860         * reload.c (find_equiv_regs): Likewise.
7861         * reload1.c (reload): Likewise.
7862         * resource.c (mark_referenced_resources,
7863         mark_set_resources): Likewise.
7864         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
7865         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
7866         * haifa-sched.c (unlink_other_notes): Likewise.
7867         (reemit_notes): Likewise.
7868         * sched-ebb.c (sched_ebb): Likewise.
7869         * sched-rgc.c (sched_region): Likewise.
7870         * rtl.c (note_insn_name): Likewise.
7871         (reg_note_name): Add REG_SETJMP
7872         * rtl.h (reg_note): Add REG_SETJMP.
7873         (insn_note): Remove NOTE_INSN_SETJMP.
7874
7875         * profile.c (branch_prob): Add fake edges for setjmp.
7876
7877 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
7878
7879         * config.gcc: Quote target_cpu_default2 correctly for
7880         powerpc*-*-* targets.
7881
7882 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7883
7884         * cpplib.h, line-map.h: Update comments.
7885         * cppmain.c (printer_init): Move inline.
7886         (maybe_print_line, print_line): Take a map pointer.
7887         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
7888         (cb_file_change): Don't use prior value of print.map.
7889
7890 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
7891
7892         * doc/install.texi: Document fine-grained multilib configuration.
7893
7894 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
7895
7896         * rtlanal.c (find_first_parameter_load): Call note_stores
7897         only on the instructions.
7898
7899 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
7900
7901         * alias.c (nonlocal_mentioned_p):
7902         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
7903         * calls.c (emit_call_1): Likewise.
7904         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
7905         * cselib.c (cselib_process_insn): Likewise.
7906         * df.c (df_insns_modify): Likewise.
7907         * flow.c (need_fake_edge_p): Likewise.
7908         (propagate_one_insn): Likewise.
7909         * haifa-sched.c (reemit_notes): Likewise.
7910         * integrate.c (copy_insn_list): Likewise.
7911         * jump.c (delete_prior_computation): Likewise.
7912         * local-alloc.c (validate_equiv_mem): Likewise.
7913         * loop.c (scan_loop): Likewise.
7914         * predict.c (estimate_probability): Likewise.
7915         * reload.c (reload): Likewise.
7916         * sched-deps (sched_analyze): Likewise.
7917         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
7918         * gcse.c (compute_hash_table): Likewise.
7919         (mark_call): Likewise.
7920         (store_killed_in_insn): Likewise.
7921
7922 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
7923
7924         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
7925
7926 2001-08-06  Richard Henderson  <rth@redhat.com>
7927
7928         * varasm.c (assemble_gc_entry): Remove.
7929         * output.h: Likewise.
7930
7931 2001-08-06  Richard Henderson  <rth@redhat.com>
7932
7933         * varasm.c (assemble_constructor): Take a symbol_ref and a
7934         priority instead of a bare string.  Move priority handling
7935         here from cp/decl2.c.
7936         * output.h: Update decls.
7937
7938         * c-decl.c (c_expand_body): Update calls to assemble_constructor
7939         and assemble_destructor.
7940         * profile.c (output_func_start_profiler): Likewise.
7941         * objc/objc-act.c (finish_objc): Likewise.
7942         (build_module_descriptor): Return the symbol not the symbol name.
7943
7944 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
7945
7946         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
7947         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
7948         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
7949         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
7950         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
7951         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
7952
7953 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7954
7955         * cpperror.c (print_containing_files): Moved to line-map.c.
7956         (print_location): line-map.c handles re-listing or otherwise.
7957         * cpphash.h (struct lexer_state): Remove next_bol.
7958         (struct cpp_buffer): Remove include_stack_listed.
7959         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
7960         Remove faked buffer handling.
7961         (_cpp_do_file_change): Tweak.
7962         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
7963         * cppmain.c (struct printer): Remove filename.
7964         (print_line, cb_file_change): Update accordingly.
7965         * line-map.c: Include intl.h.
7966         (init_line_maps): Initialize last_listed.
7967         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
7968         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
7969         (print_containing_files): New.
7970         * line-map.h (struct line_maps): New member last_listed.
7971         (print_containing_files, INCLUDED_FROM): New.
7972         * Makefile.in: Update.
7973         * po/POTFILES.in: Add line-map.c.
7974
7975 2001-08-06  Richard Henderson  <rth@redhat.com>
7976
7977         * except.c (convert_from_eh_region_ranges_1): Never mark
7978         USE or CLOBBER insns as throwing.
7979
7980         * expr.c (store_constructor): Don't clobber memory targets.
7981
7982 2001-08-06  Andreas Jaeger  <aj@suse.de>
7983
7984         * profile.c (branch_prob): Remove unused variable insn.
7985
7986         * Makefile.in (local-alloc.o): Add dependency on except.h.
7987
7988         * local-alloc.c: Include except.h for can_throw_internal prototype.
7989
7990 2001-08-06  Richard Henderson  <rth@redhat.com>
7991
7992         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
7993         * function.c (expand_main_function): Implement it.
7994         * doc/tm.texi: Document it.
7995
7996 2001-08-06  Stan Shebs  <shebs@apple.com>
7997
7998         * doc/install.texi: Document powerpc-*-darwin* details.
7999
8000 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
8001
8002         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
8003         (ASM_CPU_SPEC): Move back to rs6000.h
8004         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
8005
8006         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
8007
8008         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
8009         readded.
8010
8011         * config/rs6000/linux64.h: Ditto.
8012
8013         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8014         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
8015         nothing.
8016
8017         Remove accidently readded definitions of FUNCTION_PROLOGUE,
8018         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
8019
8020         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8021         to rs6000.h
8022
8023 2001-08-05  Richard Henderson  <rth@redhat.com>
8024
8025         * local-alloc.c (update_equiv_regs): Do not move insns that
8026         can throw.
8027
8028 2001-08-05  Jan Hubicka  <jh@suse.cz>
8029
8030         * Makefile.in (reload1.o): Add dedendancy on except.h
8031         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
8032         prototypes.
8033         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
8034         indicating wehther edges has been cleaned up.
8035         * reload1.c: Inlucde except.h
8036         (fixup_abnormal_edges): Accept deleted insns.
8037         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
8038         after combine.
8039
8040 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8041
8042         * cpplib.c (do_line): Correct line number after pop_buffer.
8043
8044 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8045
8046         PR preprocessor/3824
8047         * line-map.c: Update comments.
8048         * line-map.h: Update comments.
8049         * tradcif.y: Don't consider large numbers unsigned.
8050
8051 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8052
8053         PR preprocessor/3081
8054         * c-lex.c (map): New.
8055         (cb_file_change): Update map and use it.
8056         (cb_def_pragma, cb_define, cb_undef): Use map and line.
8057         (c_lex): Update to use map.
8058         * cpperror.c (print_location): Move to using logical line numbers.
8059         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
8060         (cpp_make_system_header): Similarly.
8061         (_cpp_execute_include): Stop line numbering hacks.  Store the
8062         line we will return to.
8063         * cpphash.h (CPP_BUF_LINE): Remove.
8064         (struct cpp_buffer): Remove lineno and pseudo_newlines.
8065         Add map and return_to_line.
8066         (_cpp_do_file_change): Update.
8067         * cppinit.c (cpp_start_read): Update line kludge.
8068         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
8069         (trigraph_ok): Use logical line numbers for diagnostics.
8070         (skip_block_comment): Likewise.
8071         (skip_whitespace): Likewise.
8072         (skip_line_comment): Use pfile->line instead.
8073         (_cpp_lex_token): Update to use logical line numbering exclusively.
8074         Handle BOL locally.  Accept new lines in directives, but keep
8075         pfile->line decremented.  Diagnostics use logical lines.  Update
8076         directive handling.
8077         * cpplib.c (SEEN_EOL): New.
8078         (skip_rest_of_line, check_eol): Use it.
8079         (end_directive): Increase line number when accepting the newline
8080         at the end of a directive.
8081         (run_directive): Simplify.
8082         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
8083         (_cpp_do_file_change): Update to take buffer line number as an
8084         argument, and store the current map in the cpp_reader.  Remove
8085         line number kludges.
8086         (_cpp_do__Pragma): Restore output position after a _Pragma.
8087         (cpp_push_buffer): Don't set output line or lineno.
8088         (_cpp_pop_buffer): Transfer more info from a faked buffer.
8089         Remove line kludge.  Set output_line.
8090         * cppmacro.c (builtin_macro): Update handling of __LINE__.
8091         (parse_arg): Use logical lines.
8092         (save_lookahead_token): Save EOFs too now.
8093         * cppmain.c (struct printer): Fix comments.
8094         (printer_init): Simplify, let caller do errors.
8095         (scan_translation_unit, check_multiline_token, dump_macro): Update.
8096         (maybe_print_line): Simplify.
8097         (print_line): Don't print a linemarker if -P.
8098         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
8099         (cb_file_change): Simplify.
8100         * line-map.h (LAST_SOURCE_LINE): Fix.
8101         (CURRENT_LINE_MAP): New.
8102
8103 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
8104
8105         * doloop.c (doloop_modify_runtime): Properly compute number of
8106         iterations if loop was unrolled.
8107
8108         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
8109         if their CSELIB_VAL_PTRs are.
8110
8111         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
8112         (setup_spill_pointers): Initialize it.
8113         (spill_restore_mem): Set it.
8114         (do_spill, do_restore): Use it to add REG_INC note.
8115         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
8116
8117         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
8118         asms if other insns are available.
8119
8120         * config/ia64/ia64.c (condop_operator): New predicate.
8121         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
8122         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
8123         patterns.
8124
8125         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
8126         temporary register than directly using a MEM.
8127
8128 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
8129
8130         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
8131         parameter in last change.
8132
8133 2001-08-04  Zack Weinberg  <zackw@panix.com>
8134
8135         * sparc.md: Don't use #if inside C test expression.
8136
8137 2001-08-04  Richard Henderson  <rth@redhat.com>
8138
8139         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
8140
8141 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
8142
8143         * cpphash.h (struct cpp_reader): New member directive_line.
8144         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
8145         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
8146         do_pragma): Pass line to callbacks.
8147         (start_directive): Record line of directive.
8148         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
8149         cb_include): Similarly.
8150         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
8151         Similarly.
8152
8153 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
8154
8155         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
8156         comment.
8157
8158 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
8159
8160         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
8161
8162         * reload1.c (fixup_abnormal_edges): New static function.
8163         (reload): Use it.
8164
8165         * flow.c (need_fake_edge_p): New function.
8166         (flow_call_edges_add): Fix handling of noreturn and sibbling calls;
8167         avoid call insn to be very last insn in the insn stream.
8168
8169         * profile.c (branch_prob): Call flow_call_edges_add instead of
8170         doing that by hand; cleanup cfg to re-merge basic blocks once
8171         we are done.
8172
8173 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8174
8175         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
8176         are also on line-map.h.
8177         * cppfiles.c (stack_include_file): Update.
8178         * cpphash.h (struct cpp_buffer): New member return_at_eof.
8179         (_cpp_pop_buffer): New.
8180         * cppinit.c (cpp_destroy, cpp_finish): Update.
8181         (do_includes): Mark each buffer to return at EOF.
8182         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
8183         return as requested.
8184         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
8185         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
8186         * cpplib.h (cpp_pop_buffer): Remove.
8187         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
8188         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
8189         buffers.
8190         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
8191         to pop buffers.
8192         (do_preprocessing): Update.
8193         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
8194         * c-parse.in (_yylex): Similarly.
8195         * scan-decls.c (scan_decls): Similarly.
8196         * line-map.h: Update comments.
8197
8198         * objc/Make-lang.in (objc-act.o): Update dependencies.
8199
8200 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8201
8202         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
8203         and soft register for operand 0.
8204         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
8205
8206 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8207
8208         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
8209         register for operand 0.
8210         ("bitcmpqi_z_used"): Allow memory for operand 0.
8211         (split "bitcmpqi"): New split to handle address reg as operand 1.
8212
8213 2001-08-04  Andreas Jaeger  <aj@suse.de>
8214
8215         * gcse.c: Revert Daniel's last patch.
8216
8217 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
8218
8219         * sparc-protos.h: Add prototypes for fp_zero_operand and
8220         reg_or_0_operand.
8221         * sh-protos.h: Add prototype for fpul_operand.
8222
8223 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
8224
8225         * doc/extend.texi (Other Builtins): Fix typo in last change.
8226
8227 2001-08-03  Richard Henderson  <rth@redhat.com>
8228
8229         * target.h (gcc_target): Add asm_out.named_section,
8230         section_type_flags, have_named_sections.
8231         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
8232         (TARGET_HAVE_NAMED_SECTIONS): New.
8233         (TARGET_SECTION_TYPE_FLAGS): New.
8234
8235         * Makefile.in (toplev.o): Depend on TARGET_H.
8236         (varasm.o, dbxout.o): Likewise.
8237         * c-common.c (decl_attributes): Check targetm.have_named_sections
8238         instead of ifdef ASM_OUTPUT_SECTION_NAME.
8239         * dbxout.c (dbxout_function_decl): Likewise.
8240         (dbxout_function_end): Likewise.
8241         * toplev.c (compile_file): Likewise.
8242         * varasm.c (exception_section): Likewise.
8243         * cp/decl2.c (finish_objects): Likewise.
8244
8245         * defaults.h (EH_FRAME_SECTION): Remove.
8246         (EH_FRAME_SECTION_ASM_OP): Remove.
8247         (EH_FRAME_SECTION_NAME): New.
8248         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
8249         (UNIQUE_SECTION_P): Remove.
8250         * dwarf2out.c (SECTION_FORMAT): Remove.
8251         (ASM_OUTPUT_SECTION): Remove.
8252         (output_call_frame_info): Use named_section_flags.
8253         (output_comp_unit, dwarf2out_start_source_file): Likewise.
8254         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
8255         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
8256         * varasm.c (in_eh_frame, eh_frame_section): Remove.
8257         (named_section_flags): New.
8258         (named_section): Use it and targetm.section_type_flags.
8259         (resolve_unique_section): New.
8260         (assemble_start_function): Use it.
8261         (asm_emit_uninitialised, assemble_variable): Likewise.
8262         (default_section_type_flags): New.
8263         (default_no_named_section, default_elf_asm_named_section): New.
8264         (default_coff_asm_named_section, default_pe_asm_named_section): New.
8265         * output.h: Update varasm.c decls.
8266         (SECTION_*): New flags.
8267
8268         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
8269         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
8270
8271         * config/elfos.h (UNIQUE_SECTION_P): Remove.
8272         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
8273         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
8274         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
8275         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
8276         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
8277         * config/mips/elf.h, config/mips/elf64.h: Likewise.
8278         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
8279         * config/pa/pa64-hpux.h,
8280
8281         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
8282         (TARGET_ASM_NAMED_SECTION): New.
8283         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
8284         * config/alpha/vms.h, config/arm/coff.h: Likewise.
8285         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
8286         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
8287         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
8288         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
8289         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
8290         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
8291         * config/i386/sco5.h, config/i386/win32.h: Likewise.
8292         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
8293         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
8294         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
8295         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
8296         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
8297         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
8298         * config/sparc/sysv4.h: Likewise.
8299
8300         * config/nextstep.h: Error until named sections implemented.
8301
8302         * config/a29k/a29k.c (a29k_asm_named_section): New.
8303         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
8304         (vms_section_type_flags, vms_asm_named_section): New.
8305         * config/arm/arm.c (arm_elf_asm_named_section): New.
8306         * config/avr/avr.c (asm_output_section_name): Remove.
8307         * config/avr/avr-protos.h: Update.
8308         * config/c4x/c4x.c (c4x_asm_named_section): New.
8309         * config/h8300/h8300.c (h8300_asm_named_section): New.
8310         * config/i386/i386.c (sco_asm_named_section): New.
8311         * config/i386/winnt.c (SECTION_PE_SHARED): New.
8312         (i386_pe_section_type_flags): New.
8313         (i386_pe_asm_named_section): New.
8314         * config/i386/i386-protos.h: Update.
8315         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
8316         * config/mcore/mcore.c (mcore_asm_named_section): New.
8317         * config/mips/mips.c (iris6_asm_named_section): New.
8318         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
8319         instead of UNIQUE_SECTION_P.
8320         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
8321         (xcoff_asm_named_section): New.
8322         * config/sh/sh.c (sh_asm_named_section): New.
8323         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
8324
8325         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
8326         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
8327         (EH_FRAME_SECTION_NAME): New.
8328         (EXCEPTION_SECTION): New.
8329         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
8330         (DEBUG_*_SECTION): Remove.
8331         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
8332         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
8333         (EH_FRAME_SECTION_ASM_OP): Remove.
8334
8335         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
8336         (ASM_OUTPUT_SECTION_NAME): Remove.
8337         (TARGET_ASM_NAMED_SECTION): New.
8338         (TARGET_HAVE_NAMED_SECTIONS): New.
8339         (TARGET_SECTION_TYPE_FLAGS): New.
8340         (EH_FRAME_SECTION_ASM_OP): Remove.
8341         (EH_FRAME_SECTION_NAME): New.
8342
8343 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
8344
8345         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
8346         for complex expressions when cfun == 0.
8347         * doc/extend.texi: Document that __builtin_constant_p can be
8348         used in data initializers as well as functions.
8349
8350 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
8351
8352         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
8353         variable I locally, instead of expecting a declaration in the
8354         calling context.
8355
8356 2001-08-03  Richard Henderson  <rth@redhat.com>
8357
8358         * except.c (collect_one_action_chain): Add an explicit cleanup
8359         action if regions surrounding a catch were encoded entirely
8360         within the call-site entry.
8361
8362 2001-08-03  Richard Henderson  <rth@redhat.com>
8363
8364         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
8365         don't take REGNO of a non-register.
8366
8367 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8368
8369         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
8370         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
8371         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
8372         (__gthread_mutex_init_function): New function for mutex initialization.
8373
8374 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
8375
8376         * Makefile.in: Revert screwed up commit.
8377
8378 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8379
8380         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
8381         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
8382         merged by linker script to get a final _exit().
8383         (__do_global_dtors): New for destructor handling in specific exit
8384         section.
8385         (__do_global_ctors): New for constructors in specific install section.
8386         (__map_data_section): Map data sections before running constructors.
8387         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
8388         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
8389         (DTORS_SECTION_ASM_OP): Likewise.
8390         (CTORS_SECTION_FUNCTION): Define to force a reference to
8391         __do_global_ctors.
8392         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
8393
8394 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
8395
8396         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
8397
8398         * Makefile.in: Add df.h to gcse.c dependencies.
8399
8400 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8401
8402         * varasm.c (output_constant_def_contents): Use for the length of a
8403         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
8404         depending on which is larger.
8405
8406 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
8407
8408         * gcse.c: Include df.h for use as a dataflow analyzer.
8409         Remove regvec.
8410         Declaration of reg_set_info: gone.
8411         New df_analyzer variable used by store motion.
8412         (reg_set_info): Deleted.
8413         (mark_mem_regs): New function, analyze regs used by a mem.
8414         (store_ops_ok): Use dataflow analyzer results to determine if
8415         necessary regs are changed in the block.
8416         (find_moveable_store): Remove check for symbol ref, we can handle
8417         much more complex expressions now.
8418         (compute_store_table): Remove most of the code, it's unnecessary
8419         now that the dataflow analyzer records the info for us.
8420         (store_killed_after): Add parameter to say whether to do the
8421         store_ops_okay test, used to speed up testing when we already know
8422         the answer, and just want to know if the store itself was killed.
8423         (build_store_vector): Largely rewritten to calculate the various
8424         vectors properly, and somewhat optimized.
8425         (store_motion): Init the df_analyzer, get REG_DEF chains.
8426         Also handle trapping expressions (since mems almost always trap)
8427         (simple_mem): Redefine what a simple mem is.
8428
8429 2001-08-03  DJ Delorie  <dj@redhat.com>
8430
8431         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
8432         set from a constant part of the condition.
8433
8434 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
8435
8436         * mkdeps.c (deps_add_default_target): Make local variable
8437         ``start'' a const char pointer.
8438         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
8439
8440 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8441
8442         * doc/install.texi (Configuration): Fix markup.
8443         (Specific, i?86-*-udk): Likewise.
8444         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
8445         --with-gnu-ld.
8446         Document --enable-threads and --enable-libgcj status.
8447         (Specific, mips-sgi-irix*): Canonicalize triples.
8448         (Specific, mips-sgi-irix5): Warn about problems with this config.
8449         Mention required GNU as patch.
8450         Native assembler problems are fixed.
8451         (Specific, mips-sgi-irix6): Update O32 ABI support status.
8452         Document --enable-threads and --enable-libgcj status.
8453
8454 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8455
8456         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
8457         of mkinstalldirs.
8458
8459 2001-08-03  Richard Henderson  <rth@redhat.com>
8460
8461         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
8462         constant data.
8463
8464 2001-08-03  Richard Henderson  <rth@redhat.com>
8465
8466         * rtlanal.c (find_first_parameter_load): Stop if we
8467         reach a CODE_LABEL at BOUNDARY.
8468
8469 2001-08-03  Richard Henderson  <rth@redhat.com>
8470
8471         * config/alpha/alpha.md (force_movdi): New insn.
8472         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
8473         Tweek FRP marking of VMS prologue insns.
8474         * config/alpha/vms.h (EPILOGUE_USES): New.
8475
8476 2001-08-02  Richard Henderson  <rth@redhat.com>
8477
8478         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
8479
8480 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
8481
8482         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
8483         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
8484         config/convex/convex.h, config/d30v/d30v.c,
8485         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8486         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
8487         config/mips/mips.h, config/mn10200/mn10200.h,
8488         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
8489         config/v850/v850.h, config/vax/openbsd.h,
8490         config/vax/openbsd1.h, config/vax/ultrix.h,
8491         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
8492         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
8493         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
8494         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
8495         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
8496         in comments and documentation.
8497
8498 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8499
8500         * line-map.c: New.
8501         * line-map.h: New.
8502         * Makefile.in (line-map.o): New.
8503         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
8504         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
8505         * cpperror.c (print_containing_files): Similarly.
8506         (print_location): Update.  Don't output a space before _Pragma.
8507         * cppfiles.c (stack_include_file): Set to line 1 immediately.
8508         (stack_include_filee, cpp_make_system_header): Update.
8509         (_cpp_execute_include): Get logical line number right for calling
8510         as-yet-unterminated #include.
8511         * cpphash.h (struct cpp_reader): Add line_maps.
8512         (_cpp_do_file_change): Update.
8513         * cppinit.c (cpp_create_reader): Initialize line maps.
8514         (cpp_destroy): Destroy line maps.
8515         (cpp_start_read): Get logical line number right.
8516         * cpplex.c (parse_string): Only warn once for multi-line strings.
8517         Use boolean variable for null warning.
8518         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
8519         already.
8520         (do_include_common): End the directive early.
8521         (do_line): Don't warn about out-of-range lines in preprocessed
8522         source.  Update.  Remove unused variables.
8523         (_cpp_do_file_change): Update for new line mapping.
8524         (pragma_cb): New typedef.
8525         (cpp_register_pragma): Stop looking ahead before calling the
8526         handler.  Clean up.
8527         (do_pragma_system_header): End directive early.
8528         (cpp_get_line_maps): New.
8529         (cpp_pop_buffer): Fudge logical line.  Update.
8530         * cpplib.h: Include line-map.h
8531         (enum cpp_fc_reason): Remove.
8532         (struct cpp_file_change): Update.
8533         (cpp_get_line_maps): New.
8534         * cppmain.c (struct_printer): New member map.
8535         (cb_file_change): Update for new mappings.
8536         * fix-header.c (cb_file_change): Similarly.
8537
8538 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8539
8540         * Makefile.in (libgcc.mk): Define mkinstalldirs.
8541         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
8542
8543 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
8544
8545         * config/vax/vax.c: include expr.h.
8546
8547 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8548
8549         * Makefile.in ($(srcdir)/configure): Only rebuild in
8550         maintainer mode.
8551         ($(srcdir)/config.in): Only define in maintainer mode.
8552         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
8553
8554 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
8555
8556         * doc/install.texi (Install GCC: Binaries): Update Bull info.
8557
8558 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8559
8560         * gcc.c (set_collect_gcc_options): New function, split out from
8561         main.
8562         Ignore elided switches.
8563         (do_spec_1): Invoke before executing command.
8564         (set_input): Export.
8565         Move declaration ...
8566         * gcc.h (set_input): ... here.
8567         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
8568         file.
8569
8570 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
8571
8572         Kill -fhonor-std.
8573         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
8574         interaction.
8575         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
8576
8577 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
8578
8579         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
8580         for the unnamed instructions it expands to.
8581
8582 2001-08-02  Richard Henderson  <rth@redhat.com>
8583
8584         * regclass.c (call_really_used_regs): Conditionally define.
8585         (init_reg_sets_1): Don't use it if not defined.
8586         (fix_register): Similarly, don't set it.
8587
8588 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8589
8590         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
8591         Correct comment that had been missed in the previous change.
8592
8593 2001-08-01  Stan Shebs  <shebs@apple.com>
8594
8595         * config/darwin.c (machopic_stub_name): Try matching by name.
8596         (update_stubs): New function.
8597         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
8598         unconditionally.
8599
8600 2001-08-01  Richard Henderson  <rth@redhat.com>
8601
8602         * except.c (output_function_exception_table): Use assemble_align.
8603         * varasm.c (assemble_eh_label): Remove.
8604         (assemble_eh_align, assemble_eh_integer): Remove.
8605
8606 2001-08-01  Robert Lipe  <robertl@caldera.com>
8607
8608         * dwarfout.c: Remove reference to README.DWARF.
8609
8610 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
8611
8612         * regclass.c (call_really_used_regs): New array for registers which
8613         are actually used by a call.
8614         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
8615         new array.
8616         (fix_register): Set call_really_used too.
8617         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
8618         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
8619
8620 2001-08-01  Richard Henderson  <rth@redhat.com>
8621
8622         * read-rtl.c (read_name): Consider \r whitespace.
8623
8624 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
8625
8626         * config.gcc: Recognize powerpc-*-netbsd*.
8627
8628         * doc/install.texi (Host/target specific installation notes for
8629         GCC): Mention powerpc-*-netbsd*.
8630
8631         * config/rs6000/netbsd.h: New file.
8632         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
8633         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
8634         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
8635         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
8636         (TARGET_VERSION): Redefine.
8637
8638         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
8639         mcall-netbsd as a match for mcall-sysv.
8640         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
8641         (ncrti.S, ncrtn.S): New targets.
8642         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
8643
8644         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
8645         "netbsd' as a V4 ABI.
8646         (ASM_SPEC): Check for -mcall-netbsd.
8647         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
8648         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
8649         (LIB_SPEC, ENDFILE_SPEC): Ditto.
8650         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
8651         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
8652         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
8653         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
8654
8655         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
8656         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
8657
8658 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
8659
8660         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
8661         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
8662         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
8663         including "unwind-pe.h".
8664
8665 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
8666
8667         * rs6000.md (define_splits): Kill unused constraints.
8668
8669 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
8670                               Jan Hubicka  <jh@suse.cz>
8671
8672         * function.c (thread_prologue_and_epilogue_insns): Kill code
8673         dealing with non-existent CFG.
8674
8675 2001-08-01  Kazu Hirata  <kazu@hxi.com>
8676
8677         * alias.c: Fix comment formatting.
8678         * bitmap.c: Likewise.
8679         * builtins.c: Likewise.
8680         * calls.c: Likewise.
8681         * c-common.c: Likewise.
8682         * c-decl.c: Likewise.
8683         * c-dump.c: Likewise.
8684         * c-lex.c: Likewise.
8685         * collect2.c: Likewise.
8686         * combine.c: Likewise.
8687         * conflict.c: Likewise.
8688         * cppfiles.c: Likewise.
8689         * cppinit.c: Likewise.
8690         * cpplex.c: Likewise.
8691         * cpplib.c: Likewise.
8692         * cppmacro.c: Likewise.
8693         * cppspec.c: Likewise.
8694         * c-pragma.c: Likewise.
8695         * crtstuff.c: Likewise.
8696         * cse.c: Likewise.
8697         * cselib.c: Likewise.
8698         * c-semantics.c: Likewise.
8699         * c-typeck.c: Likewise.
8700
8701 2001-08-01  H.J. Lu <hjl@gnu.org>
8702
8703         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
8704
8705 2001-08-01  H.J. Lu <hjl@gnu.org>
8706
8707         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
8708
8709 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
8710
8711         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
8712         contextualizing Objective-C class name lookup by the lexer.
8713         (typespec_reserved_nonattr): Disable ObjC class name lookup after
8714         seeing a TYPESPEC.
8715         (protocoldef): Add support for forward @protocol declarations.
8716         (yylexname): Suppress ObjC class name lookup in certain contexts;
8717         re-enable after lookup is complete.
8718         (_yylex): Re-enable ObjC class name lookup when certain
8719         punctuation marks are seen.
8720
8721         * objc/objc-act.c (check_protocol_recursively): New function used
8722         for finding circular dependencies in protocols.
8723         (objc_declare_protocols): New function for handling forward
8724         @protocol declarations.
8725         (receiver_is_class_object): Detect the case when 'self' is used
8726         inside of a class method.
8727         (build_message_expr): Issue a warning if class method is desired
8728         but instance method is found instead.
8729         (conforms_to_protocol): Streamline.
8730         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
8731         protocol Foo, even if 'Bar foo' does not.
8732         (check_protocols): Streamline.
8733         (start_protocol): Add checks for circular and duplicate protocol
8734         definitions.
8735         (encode_aggregate_within): For typedefs of structs, encode the
8736         underlying struct.
8737         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
8738         (objc_declare_protocols): New prototype.
8739
8740 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8741
8742         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
8743         * cpplex.c (handle_newline): Update prototype.  Maintain logical
8744         line number.
8745         (skip_escaped_newlines, skip_block_comment, parse_string):
8746         Update accordingly.
8747         (_cpp_lex_token): Update, and store token position within the token.
8748         * cpplib.h (struct cpp_token): Add line and column entries.
8749         * cppmacro.c (replace_args): Position stringified tokens correctly.
8750
8751 2001-08-01  Andreas Jaeger  <aj@suse.de>
8752
8753         * basic-block.h: Add prototype for last_loop_beg_note.
8754
8755 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
8756
8757         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
8758         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
8759         comment.
8760         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
8761         while handling WITH_CLEANUP_EXPR node. Use second operand calling
8762         expand_decl_cleanup.
8763         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
8764         the first RTX.
8765         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
8766         operand while calling simple_cst_equal.
8767         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
8768         operand is the cleanup expression, the third is the RTL_EXPR.
8769         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
8770
8771 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
8772
8773         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
8774
8775 2001-07-31  matthew green  <mrg@eterna.com.au>
8776
8777         * config.gcc (i386-*-netbsdelf): New description.
8778         * config/i386/netbsd-elf.h: New file.
8779
8780 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
8781
8782         * loop.c (check_dbra_loop): Use single_set to compute
8783         jump_label.
8784
8785 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
8786
8787         PowerPC reorg and support for powerpc64-*-linux*.
8788
8789         Also fixes emitting of constants on 32 bit and 64 bit
8790         platforms.
8791
8792         * config.gcc: powerpc64-*-linux* is a new target.
8793         Things that needed aix.h now also include xcoff.h
8794
8795         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
8796         xcoff.h.
8797         Move AIX specific stuff into aix.h.
8798         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
8799         with more than just XCOFF now.
8800         (SET_ASM_OP): Remove, now defined where needed.
8801         (FUNCTION_PROLOGUE): New macro definition.
8802         (FUNCTION_EPILOGUE): New macro definition.
8803         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
8804
8805         * config/rs6000/xcoff.h: New file.
8806
8807         * config/rs6000/linux64.h: New file.
8808
8809         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
8810
8811 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
8812
8813         * rs6000.c (print_operand_address): Handle ELF syntax.
8814         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
8815         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
8816         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
8817
8818 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
8819
8820         * rs6000.c (rs6000_override_options): Only disable
8821         flag_function_sections for XCOFF.
8822         (exact_log2_cint_operand): New predicate.
8823         (reg_or_{add,sub}_cint64_operand): New predicates.
8824         (add_operand): Compare CONST_INT with fewer function calls.
8825         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
8826         (print_operand, case 'p'): Ensure positive operand.
8827         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
8828         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
8829         (PREDICATE_CODES): Add new predicates.
8830         * rs6000.md (addsi3): Split 32-bit constants more correctly.
8831         (divsi3, modsi3): Ensure positive power-of-2.
8832         (adddi3): Use new predicate.  Split 32-bit constants more
8833         correctly.  Re-arrange splitter to handle any constant.
8834         (subdi3): Use new predicate.
8835         (divdi3, moddi3): Ensure positive power-of-2.
8836         (movdi): Use rs6000_emit_set_const.
8837         (load_toc_v4_pic_di): Delete.
8838
8839 2001-07-31  Graham Stott <grahams@redhat.com>
8840
8841         * function.c (pad_below): Revert 2001-07-26 patch.
8842
8843 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
8844
8845         * reg-stack (convert_regs_1): Fix best edge condition.
8846
8847 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
8848
8849         * jump.c (duplicate_loop_exit_test): Better test for jumps
8850         entering the loop; create loop pre_header.
8851
8852 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
8853
8854         * doc/install.texi: Add s390 and s390x as new targets.
8855         * doc/invoke.texi: Add documentation of S/390 and zSeries
8856         target options.
8857         * doc/md.texi: Add documentation of S/390 and zSeries constraints.
8858
8859 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
8860
8861         * config/m68k/m68k.md: Replace all general_operand with
8862         nonimmediate_operand for all destinations.
8863         * config/m68k/m68k.c (not_sp_operand): Likewise.
8864
8865 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
8866
8867         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
8868
8869 2001-07-30  Richard Henderson  <rth@redhat.com>
8870
8871         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
8872         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
8873
8874 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
8875
8876         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
8877         Add missing doc strings
8878         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
8879         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
8880
8881 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
8882
8883         * i386.c (ix86_output_main_function_alignment_hack): New function.
8884         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
8885
8886         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
8887         edges by EDGE_DFS_BACK flag.
8888         (dump_edge_info): Add dfs_back flag.
8889         * basic-block.h (EDGE_DFS_BACK): New constant.
8890         (mark_dfs_back_edges): Declare.
8891         * alias.c (loop_p): Remove.
8892         (mark_constant_function): Use mark_dfs_back_edges.
8893
8894         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
8895         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
8896         (compensate_edge): Break out from ...
8897         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
8898         (convert_regs_2): Set block_done once block is really done;
8899         Do updating of the predecesors counts.
8900
8901         * toplev.c (rest_of_compilation): Recompute block_for_insn
8902         before post-reload cfg_cleanup.
8903         * function.c (thread_prologue_epilogue_insns):
8904         Call set_block_for_new_insns when emitting prologue directly.
8905
8906 2001-07-30  Andreas Jaeger  <aj@suse.de>
8907
8908         * jump.c: Add prototype for mark_modified_reg.
8909
8910         * cse.c (set_live_p): Add unused attribute.
8911
8912         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
8913         overflow.
8914         (scan_for_source_files): Use long for count to avoid overflow.
8915         (output_data): Likewise.
8916         (output_data): Don't use string concatatenation to silence gcc
8917         -traditional.
8918
8919         * predict.c: Fix typos and grammar.
8920
8921         * gcse.c (insert_insn_end_bb): Remove unused variables.
8922
8923 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
8924
8925         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
8926         (attempt_auto_inc): LIkewise.
8927         (mark_used_reg): Likewise.
8928         (try_pre_increment_1): Likewise.
8929         * regclass.c (regclass): Likewise.
8930         * global.c (allocno_compare): Update comment; change scaling factor.
8931         * local-alloc.c (QTY_CMP_PRI): Likewise.
8932         * regs.h (REG_FREQ_FROM_BB): New.
8933         (REG_FREQ_MAX): Likewise.
8934
8935 2001-07-30  H.J. Lu <hjl@gnu.org>
8936
8937         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
8938         -D_GNU_SOURCE.
8939
8940 2001-07-30  H.J. Lu  (hjl@gnu.org)
8941
8942         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
8943         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
8944         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
8945
8946 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
8947
8948         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
8949         as -mthumb-interwork when -mcpu=arm7 is specified.
8950
8951 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8952
8953         * predict.def (noreturn, loop branch, loop exit): Mark as first
8954         match heuristics.
8955
8956 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
8957
8958         * combine.c (try_combine): Avoid barrier after noop jumps.
8959
8960 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8961
8962         * cpphash.h (struct cpp_reader): Remove import_warning.
8963         * cpplib.c (skip_rest_of_line): Don't bother turning off
8964         macro expansion.
8965         (parse_include): Move include handling to...
8966         (do_include_common): ... here.  Move import warning from...
8967         (do_import): ... here.
8968         (do_pragma_poison): Don't do a callback for poison identifiers.
8969         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
8970         * cppmain.c (setup_callbacks): Similarly.
8971
8972 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
8973
8974         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
8975         handle multiple sets.
8976         * except.c (sjlj_mark_call_sites): .... here.
8977         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
8978
8979 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
8980
8981         Suggested by Richard Henderson and Richard Kenner:
8982         * combine.c (recog_for_combine): Use the fake recog
8983         only if instruction does not match.
8984         * rtl.h (NOOP_MOVE_INSN_CODE): New.
8985         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
8986
8987         * combine.c (try_combine): Discover noop jump as direct jump.
8988
8989 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
8990
8991         * df.c (df_rd_global_compute): Add successors to worklist, not
8992         current item.
8993         (df_ru_global_compute): Ditto.
8994
8995 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
8996
8997         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
8998         increment REG_N_SETS.
8999
9000 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
9001
9002         * sbitmap.h: New prototype for sbitmap_a_xor_b.
9003
9004         * sbitmap.c (sbitmap_a_xor_b): New function.
9005         ifdef the basic block stuff on IN_GCC.
9006
9007 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9008
9009         * cppexp.c (parse_defined): Always record the macro name.
9010         (lex): Don't worry about identifiers, or special-case
9011         CPP_NOT here.
9012         (_cpp_parse_expr): Figure out at the end of the routine
9013         whether we saw a valid !defined() expression.
9014         * cppfiles.c (stack_include_file): Update for mi_valid.
9015         (_cpp_pop_file_buffer): Similarly.
9016         * cpplex.c (_cpp_lex_token): Similarly.
9017         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
9018         mi_if_not_defined, mi_lexed): Remove.
9019         (mi_valid): New.
9020         * cpplib.c (do_if): Simplify.
9021         (do_endif, push_conditional, _cpp_handle_directive): Update
9022         for renaming of mi_state to mi_valid.
9023 doc:
9024         * cpp.texi: Add index entries for digraphs, and add comment
9025         that C++ refers to them as alternative tokens.
9026
9027 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
9028
9029         * basic-block.h (CLEANUP_PRE_LOOP): New.
9030         * except.c (finish_eh_generation): Update call of cleanup_cfg.
9031         * sibcall.c (optimize_sibling_calls): Likewise.
9032         * toplev.c (rest_of_compilation): Likewise.
9033         * flow.c (try_forward_edges): Take argument MODE;
9034         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
9035         (try_optimize_cfg): Update call of try_forward_edges.
9036
9037 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
9038                                 Jan Hubicka  <jh@suse.cz>
9039
9040         * (validate_replace_rtx_1): Fix simplification of MINUS.
9041
9042 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9043
9044         PR preprocessor/3669
9045         * cppinit.c (init_dependency_output): Turn off dump requests
9046         if sending dependencies to stdout.
9047
9048 2001-07-28  Richard Henderson  <rth@redhat.com>
9049
9050         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
9051         not optimizing.
9052
9053 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
9054
9055         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
9056
9057 2001-07-28  Kazu Hirata  <kazu@hxi.com>
9058
9059         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
9060         is VAR_DECL first to prevent an ICE.
9061
9062 2001-07-28  Richard Henderson  <rth@redhat.com>
9063
9064         * varasm.c (immed_real_const_1): Don't elide special cases for
9065         nested functions.
9066         (clear_const_double_mem): Clear const_tiny_rtx too.
9067
9068 2001-07-28  Richard Henderson  <rth@redhat.com>
9069
9070         * dwarf2out.c (dw_val_class_offset): New.
9071         (struct dw_ranges_struct, dw_ranges_ref): New.
9072         (ranges_table, ranges_table_allocated): New.
9073         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
9074         (add_AT_offset, add_ranges, output_ranges): New.
9075         (print_die, output_die): Handle dw_val_class_offset.
9076         (attr_checksum, size_of_die, value_format): Likewise.
9077         (gen_lexical_block_die): Handle non-contiguous blocks.
9078         (gen_block_die): Likewise.
9079         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
9080         if needed.  Dump the ranges table.
9081         * final.c (final_start_function): Remove unnecessary notes and
9082         rebuild the block tree before numbering the blocks.
9083         * function.c (reorder_blocks_0): Walk the existing block tree
9084         to unmark all blocks.
9085         (reorder_blocks_1): Create block fragments when duplicate block
9086         notes are seen.
9087         (reorder_fix_fragments): New.
9088         (reorder_blocks): Call it.
9089         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
9090
9091 2001-07-28  Richard Henderson  <rth@redhat.com>
9092
9093         * emit-rtl.c (adjust_address): Make a copy of the memory address.
9094
9095 2001-07-28  Richard Henderson  <rth@redhat.com>
9096
9097         * flow.c (add_to_mem_set_list): New function.
9098         (init_propagate_block_info): Use it.
9099         (mark_set_1): Likewise.
9100         (insn_dead_p): Canonicalize memory address for dead store
9101         comparison.  Allow wider mode stores to kill narrower mode stores.
9102         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
9103         (invalidate_mems_from_set): Don't handle MEMs.
9104
9105 2001-07-28  Kazu Hirata  <kazu@hxi.com>
9106
9107         * config/h8300/h8300.h: Fix formatting.
9108
9109 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
9110
9111         * basic-block.h (EDGE_FREQUENCY): New macro.
9112         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
9113         for new BB/edges.
9114         * flow.c (find_sub_basic_blocks): Likewise.
9115         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
9116         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
9117
9118         * predict.c (DEF_PREDICTOR): New argument FLAGS.
9119         (HITRATE): New macro.
9120         (PRED_FLAG_FIRST_MATCH): New constant.
9121         (predictor_info): New field flgags.
9122         (combine_predictions_for_insn): Use DS theory to combine
9123         probabilities; set the edge probabilities when finished.
9124         (estimate_probability): Avoid duplicated matches
9125         of LOOP_BRANCH heuristics for nested loops; update comment.
9126         * predict.def: Add flags for each prediction, set probabilities
9127         according to B&L paper.
9128         * predict.h (DEF_PREDICTOR): New argument FLAGS.
9129
9130         * profile.c (compute_branch_probabilities):  Cleanup way the edge
9131         probabilities are computed and REG_BR_PROB notes are dropped; if
9132         values does not match, emit error.
9133         (init_branch_prob): Do error instead of warning when profile driven
9134         feedback is missing or corrupt.
9135
9136 2001-07-27  DJ Delorie  <dj@redhat.com>
9137
9138         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
9139         against a constant, try to adjust the compare to have the desired
9140         constant in it so that min/max optimizations happen more often.
9141
9142 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
9143
9144         * flow.c (last_loop_beg_note): New function.
9145         (redirect_edge_and_branch): Use it.
9146         (split_edge): Likewise.
9147
9148         * alias.c (loop_p): Avoid uninitialized memory access.
9149
9150         * flow.c (try_forward_edges): Avoid accessing freed memory.
9151
9152         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
9153         variable access.
9154
9155 2001-07-26  Andrew Haley  <aph@redhat.com>
9156         Joern Rennecke <amylaar@redhat.com>
9157
9158         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
9159         (SUBTARGET_CPP_ENDIAN_SPEC): New.
9160         (SUBTARGET_CPP_SPEC): New.
9161         (CPP_SPEC): Remove.
9162         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
9163         (SUBTARGET_CPP_PTR_SPEC): New.
9164         (CPP_DEFAULT_CPU_SPEC): New.
9165         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
9166         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
9167         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
9168         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
9169         (SUBTARGET_CPP_SPEC): Define as an empty string.
9170
9171 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9172
9173         * doc/install.texi (Configuration): Properly link the host
9174         specific instructions also when generating HTML.
9175
9176 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
9177
9178         * flow.c (redirect_edge_and_branch_force): Test
9179         target->global_live_at_start.
9180
9181 2001-07-26  Richard Henderson  <rth@redhat.com>
9182
9183         * simplify-rtx.c (avoid_constant_pool_reference): Export.
9184         * rtl.h (avoid_constant_pool_reference): Declare it.
9185         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
9186         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
9187
9188 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
9189
9190         * rtl.h (cleanup_barriers): Declare.
9191         * jump.c (cleanup_barriers): New function.
9192         * toplev.c (rest_of_compilation): Call cleanup_barriers
9193         before loop optimizer and after bb_reorder.
9194
9195         * flow.c (back_edge_of_syntactic_loop_p): New.
9196         (split_edge): Use it.
9197
9198 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9199
9200         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
9201
9202 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
9203
9204         * cse.c (cse_process_notes): Replace any registers if the address
9205         remains valid.
9206
9207 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
9208
9209         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
9210         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
9211         (propagate_block): Update prototype.
9212         * flow.c (update_life_info): Simplify the CFG and
9213         recalculate the global regs which are alive when
9214         removing dead code during a global update.
9215         (propagate_block): Return non-zero if an INSN is
9216         deleted.
9217
9218 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9219
9220         * Makefile.in (LIBICONV): Define.
9221
9222 2001-07-26  Catherine Moore  <clm@redhat.com>
9223
9224         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
9225         of conditional to avoid tree checking errors.
9226
9227 2001-07-26  Kazu Hirata  <kazu@hxi.com>
9228
9229         * regmove.c (regmove_optimize): Don't replace a reg with
9230         another reg of a different mode.
9231
9232 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
9233
9234         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
9235         limit length of dependency flush list.
9236         * params.h (MAX_PENDING_LIST_LENGTH): Define.
9237         * sched-int.h  (struct deps): Add pending_flush_length field.
9238         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
9239         has 1 element in it.
9240         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
9241         (sched_analyze): After a jump, if the pending memory flush list is too
9242         large, flush the pending lists.
9243         (init_deps): Initialize pending_flush_length to 0.
9244         * doc/invoke.texi (max_pending_list_length): Document parameter.
9245
9246 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
9247
9248         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
9249         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
9250         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
9251
9252 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9253
9254         * cpphash.h (struct_lexer_state): Delete was_skipping.
9255         Move skipping here from struct cpp_reader.
9256         * cpplex.c (parse_identifier): Update.
9257         (_cpp_lex_token): Don't skip tokens in a directive.
9258         * cpplib.c (struct if_stack): Update.
9259         (start_directive, end_directive): Don't change skipping state.
9260         (_cpp_handle_directive): Update.
9261         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
9262         (do_else, do_endif): Update; only check for excess tokens if not
9263         in a skipped conditional block.
9264         (push_conditional): Update for new struct if_stack.
9265
9266 2001-07-26  Graham Stott  <grahams@redhat.com>
9267
9268         * function.c (locate_and_pad_parm): Also pad initial offset
9269         so that the total argument size also includes the padding.
9270
9271 2001-07-26  Graham Stott <grahams@redhat.com>
9272
9273         * gensupport.c (alter_output_for_insn): Correct enable checking failure
9274         change XSTR to XTMPL.
9275
9276         (process_one_cond_exec): Likewise
9277
9278 2001-07-25  Richard Henderson  <rth@redhat.com>
9279
9280         * varasm.c (assemble_variable): Create DECL_RTL before setting
9281         TREE_ASM_WRITTEN.
9282
9283 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
9284
9285         * predict.c (estimate_probability): Avoid duplicated predictions.
9286
9287         * loop.c (find_and_verify_loops): Grok multiple barriers.
9288
9289 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9290
9291         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
9292
9293         * dbxout.c: Consistently use putc instead of fputc.
9294         (print_wide_int): New function; call instead of direct fprintf.
9295         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
9296         (dbxout_type_fields, dbxout_type_method_1): Likewise.
9297         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
9298         (print_int_cst_octal): Likewise.
9299         (print_octal): Show we wrote characters.
9300         (dbxout_type): Set have_used_extensions in more places.
9301
9302 2001-07-25  Catherine Moore  <clm@redhat.com>
9303
9304         * config/v850/v850.c (v850_va_arg):  Use addr
9305         instead of valist to build incr.
9306
9307 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
9308
9309         * flow.c (delete_dead_jumptables): New function.
9310         (life_analyzis): Call it.
9311         * bb-reorder.c (skip_insns_after_block): Handle contradictory
9312         sequences.
9313
9314 2001-07-25  Richard Henderson  <rth@redhat.com>
9315
9316         * except.c (reachable_handlers): Handle a region being removed
9317         out from under a RESX.
9318
9319 2001-07-25  Richard Henderson  <rth@redhat.com>
9320
9321         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
9322         swap GE/GT if it is an fp comparison.
9323
9324 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
9325
9326         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
9327         operands.
9328
9329 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
9330
9331         * ssa.c (rename_insn_1): Do not wrap an assignment to a
9332         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
9333         glitch.
9334
9335         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
9336         throw an exception.
9337         (visit_expression): When attempting to simplify an expression,
9338         retrieve any modes for arguments before they are simplified
9339         to constants.
9340
9341 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
9342             Janis Johnson  <janis@us.ibm.com>
9343
9344         * stmt.c (expand_goto): A nonlocal goto can be a call too.
9345         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
9346         pointer parameters to match documented usage of nonlocal_goto.
9347         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
9348         parameters to their correct order.
9349         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
9350         parameters to their correct order.
9351
9352 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
9353
9354         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
9355
9356 2001-07-25  Jan Hubicka  <jh@suse.cz>
9357             Richard Henderson  <rth@redhat.com>
9358
9359         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
9360         the sequence.
9361         (make_edges): New argument update_p; populate the edge cache if set.
9362         (find_basic_blocks): Update make_edges invocation.
9363
9364 2001-07-24  Joel Sherrill <joel@OARcorp.com>
9365
9366         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
9367
9368 2001-07-24  Joel Sherrill <joel@OARcorp.com>
9369
9370         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
9371         -Acpu and -Amachine.h.
9372         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
9373         Corrected header to say ELF not a.out.
9374         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
9375         when given -msoft-float.
9376
9377 2001-07-24  Joel Sherrill <joel@OARcorp.com>
9378
9379         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
9380         extra multilib parts like arm-elf.
9381         (i960-*-coff*, i960-*-rtems): Should not use collect2.
9382         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
9383         crtfini.o as extra multilib parts.
9384
9385 2001-07-24  Joel Sherrill <joel@OARcorp.com>
9386
9387         * configure.in: Add rtems as a supported thread model.
9388         * gthr-rtems.h: Add missing entry point __gthread_active_p.
9389         * configure: Rebuilt.
9390
9391 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
9392
9393         * stor-layout.c (get_mode_alignment): make it work when
9394         BITS_PER_UNIT is not a power of two.
9395         * builtins.c (get_pointer_alignment): Likewise.
9396
9397 2001-07-24  Richard Henderson  <rth@redhat.com>
9398
9399         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
9400         the retrieved constant into the expected mode.
9401
9402 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
9403
9404         * flow.c (try_simplify_condjump): Avoid duplicated edges.
9405         (verify_flow_info): Check for duplicated edges; clarify
9406         error reporting.
9407
9408         * flow.c (block_label): Update basic_block_for_insn.
9409         (commit_edge_insertions): Call compute_bb_for_insn.
9410
9411         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
9412         returns too.
9413
9414         * flow.c (redirect_edge_and_branch,
9415         try_optimize_cfg): Use redirect_edge_succ_nodup
9416         (redirect_edge_succ_nodup): New.
9417         * basic_block.h (redirect_edge_succ_nodup): Declare.
9418
9419         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
9420         after gcse.
9421
9422 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
9423
9424         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
9425         (try_crossjump_to_edge): Update commetns.
9426         (try_crossjump_bb): Likewise.
9427
9428 2001-07-24  Richard Henderson  <rth@redhat.com>
9429
9430         * combine.c (distribute_notes): Move set of need_refresh
9431         for noop_move_p down to catch all cases.
9432
9433 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
9434
9435         * recog.c (split_all_insns_noflow): New.
9436         * rtl.h (split_all_insns_noflow): Declare.
9437         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
9438         * m68hc11.c (m68hc11_reorg): Likewise.
9439         * sh.c (machine_dependent_reorg): Likewise.
9440         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
9441         call.
9442
9443 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
9444
9445         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
9446         (ashlsi3_n splitter): Likewise.
9447         (lshrsi3_n splitter): Likewise.
9448
9449         (GOTaddr2picreg): Make const SImode.
9450         (sym_label2reg): Likewise.
9451         (symGOT2reg): Likewise.
9452         (symGOTOFF2reg) Likewise.
9453
9454         (casesi_worker_0): Make unspec SImode.
9455
9456 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
9457
9458         * config/sh/sh.c (barrier_align): Check that an operand really is
9459         an insn before extracting its INSN_CODE.
9460
9461 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
9462
9463         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
9464         dangling else.
9465
9466         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
9467         for SImode to prevent overflow.
9468
9469 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9470
9471         * config/mips/irix6-libc-compat.c: New file.
9472         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
9473         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
9474         passing workaround.
9475
9476 2001-07-24  lars brinkhoff  <lars@nocrew.org>
9477
9478         * rtl.texi (REG_POINTER): Document.
9479         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
9480         QFmode, HFmode, TQFmode, QCmode, and HCmode.
9481
9482 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
9483
9484         * flow.c (delete_noop_moves): Do not confuse libcall regions.
9485
9486 2001-07-23  Richard Henderson  <rth@redhat.com>
9487
9488         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
9489
9490 2001-07-23  Kazu Hirata  <kazu@hxi.com>
9491
9492         * config/h8300/h8300-protos.h: Add a prototype for
9493         general_operand_dst_push.
9494         * config/h8300/h8300.c (general_operand_dst_push): New.
9495         * config/h8300/h8300.h (OK_FOR_T): New.
9496         (EXTRA_CONSTRAINT): Use it.
9497         * config/h8300/h8300.md (movqi_push): Remove and integrate into
9498         the existing movqi pattern.
9499         (movhi_push): Likewise.
9500
9501         * reload.c: Fix comment typos.
9502
9503 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
9504
9505         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
9506
9507 2001-07-23  H.J. Lu  (hjl@gnu.org)
9508
9509         * doc/extend.texi: Update __builtin_return_address and
9510         __builtin_frame_address.
9511
9512 2001-07-23  Richard Henderson  <rth@redhat.com>
9513
9514         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
9515         before CSE.
9516         * config/i386/i386.md: New setcc+movzbl peephole2.
9517
9518 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9519
9520         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
9521         * objc/objc-act.c: Include debug.h.
9522         (synth_module_prologue): Save and restore debug hooks too.
9523
9524 2001-07-23  lars brinkhoff  <lars@nocrew.org>
9525
9526         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
9527         and C4X_FLOAT_FORMAT.
9528         (BOOL_TYPE_SIZE): Document.
9529
9530 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
9531
9532         * unroll.c (loop_iterations): Fix miscalculation of initial
9533         giv offset.
9534
9535 2001-07-13  Andrew Haley  <aph@redhat.com>
9536
9537         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
9538         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
9539         * config/sh/sh.c (sh_can_redirect_branch): New function.
9540         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
9541         * reorg.c (steal_delay_list_from_target): Use
9542         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
9543
9544 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
9545
9546         * flow.c (try_simplify_condjump): Unlink insn chain on
9547         fallthru edge; use can_fallthru.
9548
9549 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
9550
9551         * basic-block.h (find_sub_basic_block): Declare.
9552         * flow.c (make_edges): New arguments MIN and MAX;
9553         (find_sub_basic_blocks): Revamp to use make_edges
9554         and purge_dead_edges.
9555         (find_basic_blocks): Update call of find_sub_basic_block.
9556
9557         * recog.c (split_all_insns): Always expect CFG to be consistent;
9558         call find_sub_basic_blocks in case something has changed.
9559         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
9560         has been built.
9561
9562         * basic-block.h (delete_noop_moves): Declare.
9563         * combine.c (combine_instructions): Call it.
9564         (recog_for_combine): Tolerate noop moves
9565         (distribute_notes): Force refresh when register dies at noop move.
9566         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
9567         too.
9568         (life_analysis): Update delete_noop_moves call.
9569         (set_noop_p): Move too ...
9570         * rtlanal.c (noop_move_p): ... here.
9571         * rtl.h (noop_move_p): Declare.
9572
9573         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
9574         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
9575         after combine.
9576         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
9577         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
9578
9579 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
9580
9581         * reload.c (push_reload): Fix typo in comment.
9582         (find_reloads_address): Ditto.
9583         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
9584
9585 2001-07-22  Richard Henderson  <rth@redhat.com>
9586
9587         * flow.c: Grammar check and clarify a lot of comments.
9588         (try_simplify_condjump): Rename variables to be clearer.
9589         (try_forward_edges): Skip complex and fallthru edges.
9590         Rearrange tests to avoid duplicate checks.
9591         (flow_find_cross_jump): Likewise.
9592         (outgoing_edges_match): Allow match if neither branch has
9593         probability data.  Loosen probability match to 5%.
9594         (try_crossjump_to_edge): Hoist repeated indirection into
9595         local variables.
9596         (try_crossjump_bb): Don't check complex edges.  Eliminate
9597         redundant crossjump tests.
9598         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
9599         checks before more expensive checks.
9600
9601 2001-07-22  Richard Henderson  <rth@redhat.com>
9602
9603         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
9604         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
9605         arguments.
9606
9607 2001-07-22  Richard Henderson  <rth@redhat.com>
9608
9609         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
9610         (const_sint32_operand): Likewise.
9611         * m68k.md (anon mulsi pattern): Use const_int_operand not
9612         const_sint32_operand.
9613         (umulsi3_highpart): Zero extend a constant input.
9614         (smulsi3_highpart): Don't bother checking SImode constant.
9615         (const_umulsi3_highpart): Give op3 DImode.
9616         (const_smulsi3_highpart): Likewise.
9617
9618 2001-07-22  Richard Henderson  <rth@redhat.com>
9619
9620         * flow.c (split_block): Make sure bb_note is included in the
9621         new block when splitting before a label.
9622
9623 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
9624
9625         * basic-block.h (redirect_edge_and_branch_force,
9626         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
9627         * flow.c (redirect_edge_and_branch_force,
9628         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
9629         (redirect_edge_and_branch_force): Fix copying of lifeness information.
9630         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
9631         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
9632         instead of label; update CFG after transformation.
9633         (find_if_case_1): Update call, use redirect_edge_and_branch_force
9634         for finishing the transformation; handle even case where ELSE
9635         does not follow THEN.
9636         (find_if_case_2): Update call of dead_or_predictable; simplify
9637         CFG update.
9638
9639         * emit-rtl.c (split_branch_probability): New global variable.
9640         (try_split): Take care to set split_branch_probability and
9641         create REG_BR_PROB note for new jump insns.
9642         * md.texi (define_split): Document new feature.
9643
9644         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
9645
9646 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
9647
9648         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
9649         (asm_out_file): Remove redundant declaration.
9650         (assemble_asm): Remove old #if 0 block.
9651         (assemble_variable): Remove end of function; debug output is
9652         now handled with global_decl.  Remove old #if 0 block.  Update.
9653         Remove saved_in_section and associated no-op code.
9654         * Makefile.in (varasm.o): Correct dependencies.
9655
9656 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
9657
9658         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9659         the definition in defaults.h.
9660
9661 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
9662
9663         * jump.c: Update comments.
9664         (delete_barrier_successors, delete_unreferenced_labels,
9665         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
9666         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
9667         jump_optimize, jump_optimize_minimal): Kill.
9668         (rebuild_jump_labels): Move code from jump_optimize_1.
9669         (purge_line_number_notes): Likewise.
9670         (copy_loop_headers): Likewise.
9671         * reg-stack.c: Update comment.
9672         * stmt.c: Likewise.
9673         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
9674         JUMP_AFTER_REGSCAN): Kill.
9675         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
9676         purge_line_number_notes and copy_loop_headers.
9677
9678 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
9679            Richard Henderson  <rth@redhat.com>
9680
9681         * dbxout.c (dbxout_global_decl): New.
9682         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
9683         * sdbout.c (sdbout_finish): New.
9684         (sdbout_debug_hooks): Use it, add comments.
9685         (sdbout_global_decl): Defer initialised public vars to
9686         sdbout_finish.
9687         * varasm.c (assemble_variable): Don't output debug information
9688         for file-scope variables.
9689
9690 2001-07-22  Richard Henderson  <rth@redhat.com>
9691
9692         * config/alpha/alpha.c (get_trap_mode_suffix): New.
9693         (get_round_mode_suffix): New.
9694         (print_operand): Use them for [/].  Remove support for [&'`()+].
9695         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
9696         * config/alpha/alpha.md (attr round_suffix): New.
9697         (attr trap_suffix): New.
9698         (all insns): Set them appropriately.  Use %/ instead of the
9699         myriad punctuators.
9700
9701 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9702
9703         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
9704
9705 2001-07-22  Richard Henderson  <rth@redhat.com>
9706
9707         * regrename.c (regrename_optimize): Compute nregs for each
9708         potential target register.
9709
9710 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
9711            Richard Henderson  <rth@redhat.com>
9712
9713         * dbxout.c (dbxout_global_decl): New.
9714         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
9715         * sdbout.c (sdbout_finish): New.
9716         (sdbout_debug_hooks): Use it, add comments.
9717         (sdbout_global_decl): Defer initialised public vars to
9718         sdbout_finish.
9719         * varasm.c (assemble_variable): Don't output debug information
9720         for file-scope variables.
9721
9722 2001-07-21  H.J. Lu  (hjl@gnu.org)
9723
9724         * config/mips/mips.c (mips_cpu): Moved into ...
9725         (override_options): Here.
9726
9727         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
9728         mips_tune.
9729         (mips_cpu): Removed.
9730
9731 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9732
9733         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
9734         ("iorqi3"): Likewise.
9735         ("xorqi3"): Likewise.
9736         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
9737         ("*subhi3_sp): Likewise.
9738         ("*subhi3"): Likewise.
9739         ("extendhisi2"): Accept D, X and Y as source operand to avoid
9740         reload problems.
9741
9742 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
9743
9744         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
9745         * config/freebsd.h: Likewise.
9746         * config/linux.h: Likewise.
9747         * config/openbsd.h: Likewise.
9748         * config/alpha/linux-elf.h: Likewise.
9749         * config/arm/linux-elf.h: Likewise.
9750         * config/d30v/d30v.h: Likewise.
9751         * config/fr30/fr30.h: Likewise.
9752         * config/ia64/aix.h: Likewise.
9753         * config/ia64/ia64.h: Likewise.
9754         * config/mips/linux.h: Likewise.
9755         * config/pj/pj.h: Likewise.
9756         * config/rs6000/linux.h: Likewise.
9757         * config/sparc/linux.h: Likewise.
9758         * config/sparc/linux64.h: Likewise.
9759
9760 2001-07-20  Bruce Korb  <bkorb@gnu.org>
9761
9762         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
9763         because getc() and char* may disagree on signedness.
9764
9765 2001-07-20  Richard Henderson  <rth@redhat.com>
9766
9767         * doc/rtl.texi (REG_DEAD): Update for current semantics.
9768
9769         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
9770         insns to delete in the presence of cc0 in a jump insn.
9771
9772 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
9773                                 Jan Hubicka  <jh@suse.cz>
9774
9775         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
9776         of doing the change by hand.
9777
9778 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
9779
9780         * rtlanal.c (set_noop_p): Return true for noop jumps.
9781
9782         * expr.c (emit_single_push_insn): Add call to push expander.
9783         * expr.h (optab_index): Add OTI_push
9784         (push_optab): New constant.
9785         * genopinit.c (optabs): Add push_optab.
9786         * optabs.c (init_optab): Init push optab.
9787         * md.texi (push??1): Document
9788
9789 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9790
9791         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
9792         expand to emit the pattern; put a REG_INC note for push/pop
9793         instructions.
9794         ("movdf", "movdf_internal"): Likewise.
9795         ("movsi", "movsi_internal"): Likewise.
9796         ("movsf", "movsf_internal"): Likewise.
9797         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
9798
9799 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9800
9801         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
9802         gen_highpart.
9803
9804 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
9805
9806         * params.def: Change default max inline insns to 100.
9807
9808 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
9809
9810         * combine.c (combine_simplify_rtx): Generate a new shift operation
9811         when simplifying the first operand of a (neg (ashift)) expression.
9812
9813 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
9814
9815         * regclass.c (N_REG_INTS): Use only 32 bits per element.
9816
9817 2001-07-20  Kelley Cook  <kelley.cook@home.com>
9818
9819         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
9820         information.   Move rest into ...
9821         (*-*-solaris): ... here.  Eliminate redundant information and
9822         reword necessary packages section.  Delete 4.x assembler bug info.
9823         (sparc-sun-*): Merge into ...
9824         (sparc-sun-sunos*): here.
9825
9826 2001-07-20  Catherine Moore  <clm@redhat.com>
9827
9828         * config/v850/v850.md (casesi): Generate LABEL_REF
9829         with Pmode.
9830
9831 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
9832
9833         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
9834         * i386.c (ix86_zero_extend_to_Pmode): Make global.
9835         * i386.md (strclrsi expander): Use it.
9836
9837 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
9838
9839         * integrate.c (copy_insn_list): handle
9840         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
9841         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
9842         identically as to CODE_LABEL.
9843
9844         * fold-const (fold): Convert A/B/C to A/(B*C) and
9845         A/(B/C) to (A/B)*C
9846
9847         * except.c (connect_post_landing_pads): Delete the RESX insns.
9848
9849 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
9850
9851         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
9852
9853         * config/mips/mips.md (nmadd/nmsub): Use macro.
9854
9855 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
9856
9857         * cppinit.c (remove_dup_dir): Make static.
9858         (remove_dup_dirs): Make static. Only warn about preempting a
9859         system directory with a non-system directory.
9860
9861 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
9862
9863         * ifcvt.c (noce_try_store_flag_constants): Correct order
9864         of parameters to trunc_int_for_mode.
9865
9866 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
9867
9868         * reorg.c (fill_simple_delay_slots): If an instruction might throw
9869         an exception that will be caught within this function, do not fill
9870         its delay slot with any subsequent instruction.
9871
9872 2001-07-19  Steve Ellcey <sje@cup.hp.com>
9873
9874         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
9875         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
9876         pointer extension instruction.
9877         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
9878         * simplify-rtx.c (simplify_unary_operation) Likewise.
9879         * explow.c (convert_memory_address) Check value of
9880         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
9881         less than zero.
9882         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
9883         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
9884         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
9885         Add Multilib Support.
9886         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
9887         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
9888         Add Multilib Support.
9889         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
9890         support.
9891         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
9892         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
9893         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
9894
9895 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
9896
9897         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
9898         old and new operands in `<', `3' and `b'.
9899
9900 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9901
9902         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
9903         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
9904         (toplev.o): Don't depend on xcoffout.h.
9905         * c-decl.c: Include debug.h
9906         (duplicate_decls): Use debug hook.
9907         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
9908         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9909         (dbxout_types): Remove.
9910         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
9911         * debug.c (do_nothing_debug_hooks): Update.
9912         (debug_true_tree, debug_nothing_rtx): New.
9913         * debug.h (struct rtx_def): New.
9914         (struct gcc_debug_hooks): New hooks ignore_block,
9915         outlining_inline_function and label.
9916         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
9917         dwarf2out_frame_finish): New.
9918         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
9919         Make static, update prototype.
9920         (dwarf2_debug_hooks): Update.
9921         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
9922         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
9923         * dwarfout.c (dwarf_debug_hooks): Update.
9924         * emit-rtl.c: Include debug.h.
9925         (remove_unnecessary_notes): Use debug hook.
9926         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
9927         (final_scan_insn): Use debug hook.
9928         * integrate.c (output_inline_function): Use debug hook.
9929         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
9930         (sdb_debug_hooks): Update.
9931         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
9932         * toplev.c: Don't include xcoffout.h.
9933         (note_outlining_of_inline_function, debug_ignore_block): Remove.
9934         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
9935         Remove.
9936         * tree.h (dwarf2out_do_frame): Remove.
9937
9938 2001-07-19  Catherine Moore  <clm@cygnus.com>
9939
9940         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
9941
9942 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
9943
9944         * reload1.c (eliminate_regs_in_insn): When updating a set
9945         to the frame pointer to the hardware frame pointer, perform
9946         the update always not just when REPLACE is set.
9947
9948         * reload1.c (choose_reload_regs): Don't inherit a reload
9949         that crosses multiple registers if registers past the first
9950         don't fit in the desired class.
9951
9952         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
9953         when negating constants.
9954
9955 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
9956
9957         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
9958         * doc/tree.texi: Ditto.
9959
9960 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
9961             Jakub Jelinek  <jakub@redhat.com>
9962
9963         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
9964         (extract_cie_info): Handle "eh" augmentation properly,
9965         remember eh_ptr.
9966         (struct frame_state, __frame_state_for): New.
9967
9968 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9969
9970         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
9971         HANDLE_SYSV_PRAGMA): Define.
9972         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
9973         previous args.
9974         (copy_object): Caller changed.
9975
9976 2001-07-19  Andreas Schwab  <schwab@suse.de>
9977
9978         * configure.in (assembler dwarf2 debug_line support): Define nop
9979         insn for m68k.
9980         * configure: Regenerated.
9981
9982 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9983
9984         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
9985         dwarfout.h.
9986         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
9987         to conditionally compiled block.
9988         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9989         * dbxout.h (dbxout_function): Remove.
9990         * debug.c (do_nothing_debug_hooks): Update.
9991         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
9992         global_decl, deferred_inline_function.
9993         * dwarf2out.c (dwarf2_debug_hooks): Update.
9994         (dwarf2out_global_decl): New.
9995         * dwarfout.c: Don't include dwarfout.h.
9996         (dwarfout_global_decl, dwarfout_function_decl,
9997         dwarfout_deferred_inline_function): New.
9998         (dwarf_debug_hooks): Update.
9999         * dwarfout.h: Remove.
10000         * final.c: Don't include dwarfout.h.
10001         * sdbout.c (sdbout_global_decl): New.
10002         (sdbout_debug_hooks): Update.
10003         * toplev.c: Don't include dwarfout.h.
10004         (check_global_declarations, rest_of_compilation): Use new debug hooks.
10005         (note_deferral_of_defined_inline_function): Remove.
10006         * toplev.h (note_deferral_of_defined_inline_function): Remove.
10007         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
10008         * ch/lex.c: Don't include dwarfout.h.
10009         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
10010         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
10011         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
10012         * cp/optimize.c: Include debug.h.
10013         (maybe_clone_body): Use debug hook.
10014         * cp/semantics.c: Include debug.h.
10015         (expand_body): Use debug hook.
10016         * po/POTFILES.in: Remove dwarfout.h.
10017
10018 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10019
10020         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
10021         * c-parse.in (yyerror, _yylex): Similarly.
10022         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
10023         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
10024         Update comments.
10025         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
10026         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
10027
10028 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
10029
10030         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
10031         in-class declaration at -g1.  Fixes c++/2814.
10032
10033 2001-07-18  Richard Henderson  <rth@redhat.com>
10034
10035         * doc/md.texi (reload_in/out): Document restrictions in predicates
10036         and constraints for these patterns.  Document empty string matching
10037         ALL_REGS.
10038
10039 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10040
10041         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
10042
10043 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
10044
10045         * cse.c: Undo my previous patch.
10046
10047 2001-07-18  Tom Tromey  <tromey@redhat.com>
10048
10049         For PR java/2812:
10050         * configure: Rebuilt.
10051         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
10052         instead.
10053         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
10054
10055 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
10056                                 Jan Hubicka  <jh@suse.cz>
10057
10058         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
10059         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
10060         * jump.c (mark_jump_label): Do not forward branches.
10061
10062 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
10063
10064         * cse.c (delete_trivially_dead_insns): Delete the libcall block
10065         when return value is unused.
10066
10067 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10068
10069         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
10070
10071 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
10072
10073         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
10074         on error.  We can't blindly return the result of
10075         pthread_mutex_trylock because it returns a positive number on
10076         error, while we must return -1 on error.
10077         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
10078         fixes.
10079         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
10080
10081 2001-07-18  Andreas Jaeger  <aj@suse.de>
10082
10083         * integrate.c (output_inline_function): Correct type of debug_hooks.
10084
10085 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
10086
10087         * combine.c (combine_simplify_rtx): DIV can be treated
10088         associatively for floats if unsafe math optimisations are enabled.
10089
10090 2001-07-17  Richard Henderson  <rth@redhat.com>
10091
10092         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
10093
10094 2001-07-17  Richard Henderson  <rth@redhat.com>
10095
10096         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
10097         don't force the function address into a register.
10098         (expand_call, emit_library_call_value_1): Update callers.
10099         * builtins.c (expand_builtin_apply): Likewise.
10100         * expr.h (prepare_call_address): Update decl.
10101
10102 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
10103
10104         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
10105         config directory.
10106         * config/i386/chorus.h: Move up.
10107         * config/sparc/chorus.h: Likewise.
10108         * config/rs6000/chorus.h: Likewise.
10109         * config/chorus.h: Moved here.
10110
10111 2001-07-17  Andreas Schwab  <schwab@suse.de>
10112
10113         * configure.in  (assembler eh_frame optimization): Handle big
10114         endian.
10115         * configure: Regenerated.
10116
10117 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
10118
10119         * expr.c (epxand_expr): Convert divisions into multiplications by
10120         reciprocals if -ffast-math.
10121
10122 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
10123
10124         * dbxout.c (dbxout_really_begin_function): Rename to
10125         dbxout_begin_function.
10126         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10127         (dbxout_begin_function): Remove.
10128         (dbxout_function): Update.
10129         (dbxout_source_line): Update prototype.
10130         * dbxout.h (dbxout_begin_function): Remove.
10131         * debug.c (do_nothing_debug_hooks): Update.
10132         (debug_nothing_tree): Update.
10133         (debug_nothing_charstar_rtx): Remove.
10134         * debug.h (union tree_node): Declare.
10135         (struct rtx_def): Remove.
10136         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
10137         begin_function.  Change source_line prototype.
10138         (debug_nothing_tree): New.
10139         (debug_nothing_charstar_rtx): Delete.
10140         (dwarf2out_begin_prologue): Moved from ...
10141         * tree.h: ... here.
10142         * dwarf2out.c (dwarf2_debug_hooks): Update.
10143         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
10144         debug info, call dwarf2out_source_line.
10145         (dwarf2out_souce_line): Update prototype.
10146         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
10147         Change prototype, make static.
10148         (dwarfout_source_line): Update prototype.
10149         (dwarf_debug_hooks): Update.
10150         * dwarfout.h (dwarfout_begin_function): Remove.
10151         * final.c (final_start_function, final_scan_insn): Use appropriate
10152         debug hooks, update to use notice_source_line.
10153         (output_source_line): Rename notice_source_line.  Don't call the
10154         source_line debug hook.
10155         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
10156         make static, update prototype.
10157         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
10158         prototype.
10159         (sdbout_end_prologue): New.
10160         (sdbout_source_line): Update prototype.
10161         (sdbout_debug_hooks): Update.
10162         (sdbout_symbol): Remove unused var.
10163         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
10164         Delete.
10165         * varasm.c: Include debug.h.
10166         (assemble_start_function): Use begin_function debug_hook.
10167         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
10168         update with prototype.
10169         (xcoffout_source_line): Update prototype.
10170         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
10171         update prototype.
10172         (xcoffout_source_line): Update prototype.
10173
10174 2001-07-17  Richard Henderson  <rth@redhat.com>
10175
10176         * c-typeck.c (build_binary_op): Do not shorten unsigned
10177         right shift after sign extension.
10178
10179 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
10180
10181         * combine.c (combine_simplify_rtx): Attempt to simplify
10182         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
10183
10184         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
10185         (simplify_binary_operation, simplify_unary_operation,
10186          simplify_relational_operation): Use it.
10187
10188         * combine.c (combine_simplify_rtx): Don't do associative law
10189         on divisions; allow associative law on floats.
10190
10191 2001-07-17  H.J. Lu <hjl@gnu.org>
10192             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10193
10194         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
10195         ASM_OUTPUT_WEAK_ALIAS are defined.
10196         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
10197         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
10198         Moved ...
10199         * config/mips/iris5.h: ... here.
10200         (HANDLE_SYSV_PRAGMA): Defined as 1.
10201         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
10202         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
10203         symbol.
10204
10205 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
10206
10207         * c-parse.in (all_prefix_attributes): New variable.
10208         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
10209         (maybe_resetattrs): New production.
10210         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
10211         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
10212         notype_initdcl, nested_function, notype_nested_function,
10213         component_decl, components, components_notype,
10214         component_declarator, component_notype_declarator,
10215         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
10216         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
10217         after a comma being applied to more than one declarator.
10218         * doc/extend.texi (Attribute Syntax): Update.  Remove
10219         documentation of bugs that are no longer present.
10220
10221 2001-07-13  Eric Christopher  <echristo@redhat.com>
10222
10223         * config/mips/mips.h: Change TUNE_MIPS* options to use
10224         mips_tune.
10225         (EXTRA_SPECS): Add cc1_cpu_spec.
10226         * config/mips/mips.md (muldf3): Fix typo.
10227
10228 2001-07-16  Richard Henderson  <rth@redhat.com>
10229
10230         * config/m68k/m68k.c: Include expr.h and reload.h.
10231         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
10232         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
10233
10234 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
10235             Richard Henderson  <rth@redhat.com>
10236
10237         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
10238         (insn_live_p): Fix fall off end of function.
10239         (dead_libcall_p): Remove COUNTS argument; update callers.
10240         (delete_trivially_dead_insns): Remove unused variables.
10241
10242 2001-07-17  Andreas Jaeger  <aj@suse.de>
10243
10244         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
10245         x86-64 pic support.
10246
10247         * lcm.c (optimize_mode_switching): Avoid warning for unused
10248         variable if !NORMAL_MODE.
10249
10250         * flow.c (try_crossjump_to_edge): Remove unused variable.
10251
10252 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10253
10254         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
10255         atexit declaration in stdlib.h.
10256
10257 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
10258
10259         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
10260
10261 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10262
10263         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
10264         * except.c (finish_eh_generation): Update call of cleanup_cfg;
10265         do rebuild_jump_labels instead of jump_optimize
10266         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
10267         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
10268         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
10269
10270         * flow.c: Include timevar.h
10271         (find_basic_block): Push/pop timevar;
10272         (cleanup_cfg): Likewise.
10273         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
10274         * Makefile: Add dependencies on timevar.h
10275
10276         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
10277         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
10278
10279         * rtl.h (delete_trivially_dead_insns): Add new parameter.
10280         * toplev.c (rest_of_compilation): Update calls.
10281         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
10282         (delete_trivially_dead_insns): ... here; accept new argument
10283         preserve_basic_blocks; preserve basic blocks if set.
10284
10285         * reg-stack.c (stack_regs_mentioned): Return 0 if
10286         stack_regs_mentioned_data is not initialized.
10287         (reg_to_stack): Make stack_regs_mentioned survive after the
10288         reg-stack is completted; do not call cleanup_cfg.
10289         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
10290         make cleanup_cfg after bb-reorder to output to debug file.
10291
10292 2001-07-16  Richard Henderson  <rth@redhat.com>
10293
10294         * regclass.c (init_reg_sets): Use only 32 bits per initializer
10295         from int_reg_class_contents.
10296
10297 2001-07-16  Richard Henderson  <rth@redhat.com>
10298
10299         * hard-reg-set.h (regs_invalidated_by_call): Declare.
10300         * regclass.c (regs_invalidated_by_call): Move from cse.c.
10301         (init_reg_sets_1): Move initialization from cse_main.
10302         * cse.c (regs_invalidated_by_call): Move to regclass.c.
10303         (cse_main): Move its initialization also.
10304         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
10305         * flow.c (propagate_one_insn): Likewise.
10306         * gcse.c (compute_hash_table): Likewise.
10307         (compute_kill_rd, compute_store_table): Likewise.
10308         * sched-deps.c (sched_analyze_1): Likewise.
10309
10310 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
10311
10312         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
10313         gen_rtx_SET.
10314
10315 2001-07-16  Steve Ellcey <sje@cup.hp.com>
10316
10317         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
10318         in if statement so we don't access undefined memory.
10319
10320 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
10321
10322         * gcse.c: Update comment at top.
10323         Update comment on mem handling.
10324         mem_last_set, mem_first_set, mem_set_in_block: gone.
10325         Declaration of reg_set_info: gone.
10326         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
10327         pointless with load_killed_in_block_p (they are *more*
10328         conservative then it, not less, and less accurate).
10329         (oprs_not_set_p): Ditto.
10330         (alloc_gcse_mem): Don't allocate mem_set_in_block
10331         (free_gcse_mem): Don't free it, either.
10332         (record_last_mem_set_info): Update comment in front, remove
10333         mem_*set_* stuff. Note the reason we don't handle stores directly
10334         here.
10335         (compute_hash_table): Update comments to reflect reality. Remove
10336         mem_*set_* references.
10337         (reset_opr_set_tables): Remove mem_*set_* references.
10338         (mark_call): Ditto.
10339         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
10340         (mark_clobber): Ditto (on both parts, we double set here too).
10341         (expr_killed_p): Remove mem_set_in_block test.
10342         (compute_transp): Remove mem_set_in_block test.
10343
10344         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
10345         of edge, and removal of phi alternative to dump file.
10346         (ssa_ccp_substitute_constants): Add note about register now being
10347         constant, and which uses were replaced in what insns to dump file.
10348
10349 2001-07-16  Andreas Jaeger  <aj@suse.de>
10350
10351         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
10352         variables of type HOST_WIDEST_INT.
10353
10354         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
10355         (__bb_exit_func): Correct type of count_max to avoid overflow.
10356         (num_digits): Handle long long argument.
10357
10358         * combine.c (gen_lowpart_for_combine): Remove unused variable.
10359
10360 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10361
10362         * output.h (sdb_begin_function_line): Restore as an extern
10363         variable.
10364         * sdbout.c (sdb_begin_function_line): Make extern.
10365
10366 2001-07-15  Richard Henderson  <rth@redhat.com>
10367
10368         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
10369         * genrecog.c (maybe_both_true_mode): New.
10370         (maybe_both_true_2): Use it.
10371         (write_switch): Don't put Pmode in a switch.
10372         * rtl.c (mode arrays): Don't explicitly size them.
10373
10374 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
10375
10376         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
10377         handling; move unconditional splitting before mode switching.
10378
10379         * i386.md (type): Add fistp type.
10380         (i387, length_attr, scheduling definitions): Handle this type.
10381         (fix_trunc?f?i2): Revamp to use mode switching.
10382         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
10383         * i386.h (fp_cw_mode): New enum
10384         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
10385         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
10386
10387 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10388
10389         * Makefile.in (integrate.o): Add debug.h.
10390         * integrate.c (debug.h): Add.
10391         (output_inline_function): Save, reset, and restore debug_hooks.
10392
10393 2001-07-15  Richard Henderson  <rth@redhat.com>
10394
10395         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
10396         instead of COMPARE for the EQUIV expression.
10397
10398 2001-07-15  Richard Henderson  <rth@redhat.com>
10399
10400         * flow.c (redirect_edge_and_branch_force): Initialize
10401         global_live_at_start and global_live_at_end.
10402         (allocate_bb_life_data): Export.
10403         * basic-block.h (allocate_bb_life_data): Declare.
10404         * toplev.c (rest_of_compilation): Call it.
10405
10406 2001-07-15  Richard Henderson  <rth@redhat.com>
10407
10408         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
10409         (alpha_tablejump_best_label): New.
10410         * config/alpha/alpha-protos.h: Declare them.
10411         * config/alpha/alpha.md: Use braced strings for code blocks.
10412         (tablejump_osf): Break out add with r29.
10413         (tablejump_osf_internal): Remove.
10414         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
10415         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
10416
10417 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
10418
10419         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
10420         of the movable.
10421
10422         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
10423
10424         * i386-protos.h (ix86_split_fp_branch): Update prototype.
10425         (ix86_fp_jump_nontrivial_p): New.
10426         * i386.md (fp_jcc_?): Update call of split_fp_branch;
10427         use ix86_fp_jump_nontrivial_p.
10428         * i386.c (ix86_fp_jump_nontrivial_p): New.
10429         (ix86_split_fp_branch): Accept code instead of rtx.
10430         (ix86_expand_compare): Expand comparison early in case
10431         doing so is resonably cheap.
10432
10433 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
10434
10435         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
10436         not 'machine'.
10437         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
10438         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
10439
10440 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
10441
10442         * dbxout.c (dbxout_source_line): Make static, update prototype.
10443         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
10444         (dbxout_init, dbxout_finish, dbxout_source_line,
10445         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
10446         * dbxout.h (dbxout_source_line): Delete.
10447         * debug.c (debug_nothing_file, debug_nothing_file_int,
10448         debug_nothing_file_charstar_rtx): New.
10449         (do_nothing_debug_hooks): Update.
10450         (debug_nothing_void, debug_nothing_charstar_rtx,
10451         dwarf2out_end_epilogue): New.
10452         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
10453         * debug.h (struct rtx_def): Declare.
10454         (gcc_debug_hooks): New hooks source_line, end_epilogue
10455         and end_function.
10456         (debug_nothing_void, debug_nothing_charstar_rtx,
10457         dwarf2out_end_epilogue): New.
10458         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
10459         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
10460         (dwarf2_debug_hooks): Update.
10461         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
10462         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
10463         * dwarf2out.h (dwarf2out_source_line): Remove.
10464         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
10465         Make static, update prototype.
10466         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
10467         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
10468         (dwarf_debug_hooks): Update.
10469         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
10470         dwarfout_end_function): Remove.
10471         * final.c (profile_function): Use debug hooks for ending functions
10472         and epilogues.
10473         (output_source_line, final_end_function): Update prototype,
10474         use debug hooks.
10475         (final_start_function, final_scan_insn): Update.
10476         * output.h (sdb_begin_function_line): Remove.
10477         (final_end_function): Update prototype.
10478         * sdbout.c (sdb_begin_function_line): Make static.
10479         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
10480         (sdbout_source_line): New.
10481         (sdbout_end_epilogue, sdbout_end_function): Make static, update
10482         prototypes.
10483         (sdb_debug_hooks): Update.
10484         (sdbout_init, sdbout_source_line,
10485         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
10486         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
10487         * toplev.c (compile_file, rest_of_compilation): Update.
10488         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
10489         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
10490         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
10491         Update for prototype changes.
10492         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
10493         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
10494
10495 2001-07-15  Richard Henderson  <rth@redhat.com>
10496
10497         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
10498         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
10499         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
10500         * config/alpha/alpha.c: Likewise.
10501         * config/alpha/alpha.md: Likewise.
10502         * config/alpha/alpha32.h: Likewise.
10503         * config/alpha/vms.h: Likewise.
10504         (OPEN_VMS): Remove.
10505
10506 2001-07-14  Richard Henderson  <rth@redhat.com>
10507
10508         * config/alpha/alpha.md: Use define_constants for unspec values.
10509         Substitute throughout.
10510
10511 2001-07-14  Tim Josling  <tej@melbpc.org.au>
10512
10513         * tree.def (EXPON_EXPR) remove. Never supported anyway.
10514
10515 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10516
10517         * pa.md: Remove unused constraints from define_split's.
10518
10519 2001-04-14  Richard Henderson  <rth@redhat.com>
10520
10521         * ifcvt.c (find_cond_trap): Test for exit block.
10522
10523 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
10524
10525         Re-install recently reverted patch.
10526         * emit-rtl.c (try_split): Update mark_jump_label call.
10527         * flow.c (find_sub_basic_blocks): Likewise.
10528         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
10529         jump_back_p): Kill.
10530         (mark_all_labels): Kill second parameter.
10531         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
10532         (rebuild_jump_labels, jump_optimize_minimal): Update call
10533         of jump_optimize_1.
10534         (jump_optimize_1): Kill crossjumping code.
10535         (mark_jump_label): Kill cross_jump parameter.
10536         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
10537         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
10538         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
10539          splitting.
10540         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
10541         DFI_bpro.
10542         (dump_file_info): Likewise.
10543         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
10544         reorganize passes to do reg-stack first, bb-reorder second.
10545         * invoke.texi (-d letters doc): Remove the jump2 pass.
10546
10547 2001-07-14  Richard Henderson  <rth@redhat.com>
10548
10549         * ifcvt.c (find_cond_trap): New.
10550         (find_if_header): Call it.
10551         (merge_if_block): Relax existing jump sanity check.
10552         * jump.c (jump_optimize_1): Remove conditional trap handling.
10553
10554 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
10555
10556         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
10557         millicode.
10558         (insn_refs_are_delayed): Correct comment.
10559         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
10560         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
10561         instead of r31.  Make associated insn !TARGET_64BIT, and
10562         provide an additional 64-bit insn that clobbers r2.
10563         (divsi3): Likewise.
10564         (udivsi3): Likewise.
10565         (modsi3): Likewise.
10566         (umodsi3): Likewise.
10567
10568 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
10569
10570         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
10571
10572         * flow.c (redirect_edge_and_branch_force, split_edge,
10573         try_crossjump_to_edge): Use set_block_for_new_insns.
10574         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
10575
10576 2001-07-13  H.J. Lu  (hjl@gnu.org)
10577
10578         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
10579         the correct patch.
10580
10581 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
10582
10583         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
10584
10585 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
10586
10587         * c-common.c (decl_attributes): Take a pointer to the node to
10588         which attributes are to be attached, and a flags argument.
10589         * c-common.h (enum attribute_flags): New.
10590         (decl_attributes): Update prototype.
10591         * c-decl.c (start_decl, push_parm_decl, finish_struct,
10592         finish_enum, start_function): Update calls to decl_attributes.
10593         * c-parse.in (component_declarator, component_notype_declarator,
10594         label): Update calls to decl_attributes.
10595
10596 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
10597
10598         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
10599         * config/avr/avr.c (legitimate_address_p): Return value changed
10600         from letter to register classes. For better debugging.
10601
10602 2001-07-13  Kazu Hirata  <kazu@hxi.com>
10603
10604         * jump.c (reversed_comparison_code_parts): Fix comment typos.
10605
10606 2001-07-13  H.J. Lu  (hjl@gnu.org)
10607
10608         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
10609
10610 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
10611
10612         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
10613         correctly for shared configurations.
10614         * config/t-libgcc-pic:  New.
10615         * config/{i386,m68k,sparc}/t-openbsd:  New.
10616         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
10617         Support -shared.  Support debugging libraries with -g.
10618         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
10619         frame information does not emit pointer diffs.
10620         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
10621         emit pointer diffs.
10622
10623 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
10624
10625         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
10626
10627 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
10628
10629         * combine.c (try_combine): Ensure const_int pow2 is positive.
10630
10631 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
10632
10633         * config.gcc: Add configuration for s/390.
10634         * config/s390/s390.c: New. Subroutines for code generation.
10635         * config/s390/s390.h: New. Definitions for s/390.
10636         * config/s390/s390-protos.h: New. Prototypes.
10637         * config/s390/linux.h: New. Definitions for linux for s/390.
10638         * config/s390/linux64.h: New. Definitions for linux for zSeries.
10639         * config/s390/t-linux: New. Makefile fragment.
10640         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
10641         * config/s390/fixdfdi.h: New. Fix L_fix*di.
10642
10643 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
10644
10645         * emit-rtl.c (try_split): Update mark_jump_label call.
10646         * flow.c (find_sub_basic_blocks): Likewise.
10647         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
10648         jump_back_p): Kill.
10649         (mark_all_labels): Kill second parameter.
10650         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
10651         (rebuild_jump_labels, jump_optimize_minimal): Update call
10652         of jump_optimize_1.
10653         (jump_optimize_1): Kill crossjumping code.
10654         (mark_jump_label): Kill cross_jump parameter.
10655         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
10656         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
10657         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
10658          splitting.
10659         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
10660         DFI_bpro.
10661         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
10662         reorganize passes to do reg-stack first, bb-reorder second.
10663         * invoke.texi (-d letters doc): Remove the jump2 pass.
10664
10665 2001-07-12  Steve Ellcey <sje@cup.hp.com>
10666
10667         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
10668
10669 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10670
10671         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
10672         basic blocks.
10673         (verify_flow_info): Make diagnostics prettier.
10674
10675 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
10676
10677         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
10678
10679         * flow.c (outgoing_edges_match): Return early if condition reversal
10680         failed.
10681
10682 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
10683
10684         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
10685         (mips_move_2words): When splitting a move into two instructions,
10686         prefix the second address operand with '%D'.
10687
10688 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
10689
10690         * Makefile.in (final.o): Depend on debug.h.
10691         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
10692         (dbx_debug_hooks): Add new hooks.
10693         (xcoff_debug_hooks): New.
10694         * debug.c (debug_nothing_file_int_int): New.
10695         (do_nothing_debug_hooks): Update.
10696         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
10697         (debug_nothing_file_int_int): New.
10698         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
10699         static, update prototype.
10700         (dwarf2_debug_hooks): Update.
10701         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
10702         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
10703         static, update prototype.
10704         (dwarf_debug_hooks): Update.
10705         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
10706         * final.c: Include debug.h.
10707         (final_scan_insn): Use debug hooks when beginning and ending blocks.
10708         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
10709         static, update prototype.
10710         (sdb_debug_hooks): Update.
10711         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
10712         * toplev.c: Distinguish between xcoff and dbx.
10713
10714         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
10715         Call all debug hooks, not just dwarf ones.
10716
10717 2001-07-11  Timothy Wall  <twall@redhat.com>
10718
10719         * config.gcc: Add configuration for AIX5/IA64.
10720         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
10721         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
10722         support prefix/suffix code.
10723         * config/ia64/t-aix: New.  Makefile fragment.
10724         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
10725
10726 2001-07-11  Kazu Hirata  <kazu@hxi.com>
10727
10728         * recog.c (validate_change): Fix a comment typo.
10729
10730 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
10731
10732         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
10733         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
10734         hooks directly.
10735         * dbxout.c (dbx_debug_hooks): Add new hooks.
10736         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
10737         make static.
10738         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
10739         make static.
10740         * dbxout.h (dbxout_start_new_source_file,
10741         dbxout_resume_previous_source_file): Delete.
10742         * debug.c (do_nothing_debug_hooks): Add new hooks.
10743         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
10744         (debug_nothing_int_charstar, debug_nothing_int): New.
10745         * debug.h (gcc_debug_hooks): New hooks define, undef,
10746         start_source_file and end_source_file.
10747         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
10748         (debug_nothing_int_charstar, debug_nothing_int): New.
10749         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
10750         the conditionally compiled section.
10751         (dwarf2out_start_source_file, dwarf2out_end_source_file,
10752         dwarf2out_define, dwarf2out_undef): Make static.
10753         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
10754         dwarf2out_define, dwarf2out_undef): Remove.
10755         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
10756         (dwarfout_start_source_file, dwarfout_end_source_file,
10757         dwarfout_define, dwarfout_undef): Make static.
10758         (dwarfout_start_source_file_check,
10759         dwarfout_end_source_file_check): New.
10760         (dwarfout_define, dwarfout_finish): Update.
10761         * dwarfout.h (dwarfout_start_new_source_file,
10762         dwarfout_resume_previous_source_file, dwarfout_define,
10763         dwarfout_undef): Remove.
10764         * sdbout.c (sdb_debug_hooks): Add new hooks.
10765         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
10766         make static.
10767         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
10768         make static, take an arg.
10769         * sdbout.h (sdbout_start_new_source_file,
10770         sdbout_resume_previous_source_file): Delete.
10771         * toplev.c (debug_start_source_file, debug_end_source_file,
10772         debug_define, debug_undef): Delete.
10773         * toplev.h (debug_start_source_file, debug_end_source_file,
10774         debug_define, debug_undef): Delete.
10775
10776         * java/jcf-parse.c: Include debug.h.
10777         (parse_class_file): Update to use debug hooks directly.
10778         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
10779
10780 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10781
10782         * alias.c (set_mem_alias_set): New function.
10783         * rtl.h (set_mem_alias_set): Declare it.
10784         * builtins.c (expand_builtin_return_addr): Call it instead of
10785         using MEM_ALIAS_SET accessor.
10786         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
10787         (get_memory_rtx, expand_builtin_va_arg): Likewise.
10788         (expand_builtin_va_copy):Likewise.
10789         * caller-save.c (setup_save_areas): Likewise.
10790         * calls.c (compute_argument_addresses): Likewise.
10791         * explow.c (set_mem_attributes): Likewise.
10792         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
10793         (expand_assignment, store_constructor_field, store_field): Likewise.
10794         (expand_expr_unaligned): Likewise.
10795         * function.c (assign_stack_temp_for_type): Likewise.
10796         (put_reg_into_stack, gen_mem_addressof): Likewise.
10797         * ifcvt.c (noce_try_cmove_arith): Likewise.
10798         * reload1.c (reload, alter_reg): Likewise.
10799         * config/alpha/alpha.c (get_aligned_mem): Likewise.
10800         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
10801         (alpha_expand_unaligned_store): Likewise
10802         (alpha_expand_unaligned_load_words): Likewise.
10803         (alpha_expand_unaligned_store_words): Likewise.
10804         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
10805         (alpha_expand_epilogue): Likewise.
10806         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
10807         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
10808         * config/i386/i386.c (legitimize_pic_address): Likewise.
10809         * config/i960/i960.c (setup_incoming_varargs): Likewise.
10810         * config/ia64/ia64.c (spill_restore_mem): Likewise.
10811         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
10812         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
10813         * config/mips/mips.c (mips_va_arg): Likewise.
10814         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10815         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
10816         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
10817         (setup_incoming_varargs, rs6000_va_arg): Likewise.
10818         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
10819         (rs6000_emit_epilogue): Likewise.
10820         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
10821         * config/sparc/sparc.c (sparc_va_arg): Likewise.
10822         * config/v850/v850.c (v850_va_arg): Likewise.
10823
10824 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
10825
10826         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
10827         when fallthru edge is present.
10828         (mege_blocks): Handle case where creation of jump insn
10829         is required.
10830
10831         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
10832         CLEANUP_POST_REGSTACK): New constants.
10833         * except.c (finish_eh_generation): Update call of cleanup_cfg,
10834         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
10835         * output.h (cleanup_cfg): Update prototype.
10836         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
10837         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
10838         cleanup_cfg call; kill missleading comment.
10839         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
10840         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
10841         parameter; control optimizations performed using it.
10842         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
10843         try_crossjump_bb): New functions.
10844
10845 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10846
10847         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
10848         extern.
10849         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
10850         pa_output_function_prologue.
10851         * pa-protos.h (pa_output_function_prologue): New prototype.
10852
10853 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10854
10855         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
10856         and low to get correct sign extension in low+high test.
10857
10858 2001-07-11  Janis Johnson <janis@us.ibm.com>
10859
10860         * gcov.c (arcdata): Use gcov_type to fix branch percentage
10861         for large hit count.
10862
10863         * profile.c (branch_prob): Fix .bbg info for computed gotos
10864         and C++ EH code.
10865
10866 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
10867
10868         * stmt.c (parse_output_constraint): New function, split out
10869         from ...
10870         (expand_asm_operands): ... here.  Use parse_output_constraint.
10871         * tree.h (parse_output_constraint): Declare it.
10872
10873 2001-07-11  Richard Henderson  <rth@redhat.com>
10874
10875         * bitmap.c: Comment some functions; fiddle whitespace.
10876         (bitmap_free): Don't export.
10877         (bitmap_element_allocate): Use memset.
10878         * bitmap.h (bitmap_free): Don't declare.
10879
10880 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
10881
10882         * gcse.c, lcm.c, sched-deps.c:
10883         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
10884
10885         * flow.c (flow_loops_find): Free dom if we found no loops, since
10886         we aren't going to save it.
10887
10888         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
10889         done.
10890
10891 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
10892
10893         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
10894
10895 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10896
10897         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
10898         #ifndef DWARF2_DEBUGGING_INFO.
10899
10900 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10901
10902         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
10903
10904 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10905
10906         * config/mips/mips.c (gen_int_relational): Tell the caller not to
10907         reverse a branch if a NE comparison is implemented with GTU.
10908
10909 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10910             H.J. Lu  <hjl@gnu.org>
10911
10912         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
10913         constant addresses.
10914         (call_internal2): Likewise.
10915         (call_value_internal1): Likewise.
10916         (call_value_internal2): Likewise.
10917         (call_value_multiple_internal1): Likewise.
10918         (call_value_multiple_internal2): Likewise.
10919
10920 2001-07-10  Kazu Hirata  <kazu@hxi.com>
10921
10922         * calls.c (emit_library_call_value_1): Fix a comment typo.
10923         * dwarf2out.c (mem_loc_descriptor): Likewise.
10924         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
10925
10926 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
10927
10928         * simplify-rtx.c (simplify_subreg): Fix typo in comment
10929
10930 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10931
10932         * recog.c (offsettable_address_p): Handle LO_SUM case.
10933         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
10934         instead of plus_constant.
10935
10936 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10937
10938         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
10939         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
10940
10941 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10942
10943         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
10944         adjust_address_nv instead of plus_constant.
10945
10946 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
10947
10948         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
10949         dwarf2out.o): Depend on debug.h, wrap long lines.
10950         * dbxout.c: Include debug.h.
10951         (dbx_debug_hooks): New.
10952         (dbxout_init): Make static, take just 2 args.
10953         (dbxout_finish): Make static.
10954         * dbxout.h (dbxout_init, dbxout_finish): Delete.
10955         * debug.c: New file.
10956         * debug.h: New file.
10957         * dwarf2out.c: Include debug.h.
10958         (dwarf2_debug_hooks): New.
10959         (dwarf2out_init): Make static.
10960         (dwarf2out_finish): Make static, take 2 args.
10961         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
10962         * dwarfout.c: Include debug.h.
10963         (dwarf_debug_hooks): New.
10964         (dwarfout_init): Make static.
10965         (dwarfout_finish): Make static, take 2 args.
10966         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
10967         * sdbout.c: Include debug.h.
10968         (sdb_debug_hooks): New.
10969         (sdbout_init): Make static, take 2 args.
10970         * sdbout.h (sdbout_init): Delete.
10971         * toplev.c: Include debug.h.
10972         (debug_hooks): New.
10973         (compile_file): Set deubg_hooks based on command line options.
10974         Use the hooks unconditionally rather than conditional compilation.
10975
10976 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
10977
10978         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
10979         first_insn_after_basic_block_note instead.
10980
10981         * df.c (df_bb_refs_unlink): #if 0 out for now.
10982
10983 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
10984
10985         * ssa.h: Add prototype for ssa_const_prop
10986         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
10987         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
10988         (ssa_fast_dce): Remove unused variable
10989
10990 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
10991
10992         * diagnostic.c (finish_diagnostic): Rename to
10993         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
10994         calls thourghout.
10995
10996 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
10997
10998         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
10999         .loc support.
11000
11001         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
11002         (dump_file): Only pad the demangled name with spaces if the
11003         mangled name was padded with spaces.
11004
11005 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
11006
11007         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
11008         edge detection.
11009
11010 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11011
11012         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
11013         extraction if no direct load if either EXPAND_CONST_ADDRESS or
11014         EXPAND_INITIALIZER.
11015
11016         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
11017         whether can put offset inside LO_SUM to check mode alignment, not size.
11018
11019 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11020
11021         * doc/tm.texi (Misc): Fix thinko.
11022
11023 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
11024
11025         * regmove.c (replace_in_call_usage): Fix warnings.
11026         * sched-deps.c (add_dependence): Fix warnings.
11027         * simplify-rtx.c (simplify_subreg): Likewise.
11028         Return NULL_RTX instead of NULL.
11029
11030         * reg-stack.c (emit_swap_insn): Eliminate warnings.
11031         (subst_asm_stack_regs): Likewise.
11032
11033         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
11034         warnings.
11035
11036         * dwarf2out.c (output_call_frame_info): Declare i as int.
11037         (build_abbrev_table): Declare n_alloc as int.
11038         (dwarf2out_finish): Initialize die.
11039         * except.c: Declare sjlj_funcdef_number as unsigned.
11040         (connect_post_landing_pads): Declare j as unsigned.
11041         (convert_to_eh_region_ranges): Initialize call_site.
11042         (output_function_exception_table): Initialize tt_format_size.
11043         * expr.c (move_by_pieces_1): Initialize to1.
11044         (store_constructor): Initialize minelt and maxelt.
11045         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
11046         * function.c (instantiate_decls): Avoid signed/unsigned warning.
11047
11048         * c-decl.c (combine_parm_decls): Unused, remove.
11049         * c-tree.h: Remove prototype for combine_parm_decls.
11050
11051         * reload.c (push_reload): Fix warning.
11052         (regno_clobbered_p): Likewise.
11053         * reload1.c (replace_pseudos_in_call_usage): Likewise.
11054         (reload_combine): Likewise.
11055
11056         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
11057         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
11058         warnings.
11059         * bitmap.c (bitmap_operation): Change user.
11060         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
11061
11062 2001-07-10  Eric Christopher  <echristo@redhat.com>
11063
11064         * config/mips/mips.c (override_options): Fix typo.
11065
11066 2001-07-09  Stan Shebs  <shebs@apple.com>
11067
11068         * target.h (struct gcc_target): New fields init_builtins and
11069         expand_builtin.
11070         * target-def.h (TARGET_INIT_BUILTINS): New macro.
11071         (TARGET_EXPAND_BUILTIN): New macro.
11072         (TARGET_INITIALIZER): Add them.
11073         * builtins.c: Include target.h.
11074         (expand_builtin): Use targetm.expand_builtin.
11075         (default_init_builtins): New function.
11076         (default_expand_builtin): New function.
11077         * expr.h (default_init_builtins): Declare.
11078         (default_expand_builtin): Declare.
11079         * c-common.c (c_common_nodes_and_builtins): Use
11080         targetm.init_builtins.
11081         * defaults.h (MD_INIT_BUILTINS): Remove.
11082         * Makefile.in (builtins.o): Depend on target.h.
11083
11084         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
11085         (TARGET_EXPAND_BUILTIN): Define.
11086         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
11087         (MD_EXPAND_BUILTIN): Remove.
11088
11089         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
11090         (TARGET_EXPAND_BUILTIN): Define.
11091         (c4x_init_builtins): Make endlink arg a local.
11092         (c4x_print_operand): Fix typos in adjust_address usages.
11093         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
11094         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
11095         (MD_EXPAND_BUILTIN): Remove.
11096
11097         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
11098         (TARGET_EXPAND_BUILTIN): Define.
11099         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
11100         (ix86_init_builtins): Call new function only if TARGET_MMX.
11101         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
11102         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
11103         (MD_EXPAND_BUILTIN): Remove.
11104
11105         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
11106         (TARGET_EXPAND_BUILTIN): Define.
11107         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
11108         (MD_EXPAND_BUILTIN): Remove.
11109
11110         * doc/tm.texi: Document these changes.
11111
11112 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
11113
11114         * basic-block.h (tree_node): Forward declare if needed.
11115         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
11116         (BLOCK_HEAD_TREE): Define.
11117         (BLOCK_END_TREE): Define.
11118         (struct loops): Rename field 'tree' to 'tree_root'.
11119         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
11120         'end_tree'.
11121         (flow_loops_tree_build): Rename reference to field 'tree' to
11122         'tree_root'.
11123         (flow_loops_level_compute): Ditto.
11124         * predict.c (estimate_bb_frequencies): Ditto.
11125         * tree.h (struct tree_common): Add field 'aux'.
11126
11127 2001-07-09  Stan Shebs  <shebs@apple.com>
11128
11129         * config/darwin.c (darwin_encode_section_info): Don't mark any
11130         DECL_EXTERNAL node as defined.
11131
11132 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11133
11134         * pa.c (pa_init_machine_status, pa_mark_machine_status,
11135         pa_free_machine_status, hppa_init_pic_save): Delete.
11136         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
11137         (hppa_profile_hook): Use hppa_pic_save_rtx.
11138         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
11139         hppa_init_pic_save): Delete.
11140         (hppa_pic_save_rtx): Declare.
11141         * pa.md (call, call_value, sibcall, sibcall_value,
11142         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
11143
11144 2001-07-09  Kazu Hirata  <kazu@hxi.com>
11145
11146         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
11147         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
11148
11149 2001-07-09  Andreas Jaeger  <aj@suse.de>
11150
11151         * output.h: Add declaration of final_forward_branch_p.
11152
11153         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
11154
11155         * varray.c: Include errors.h for internal_error and trim_filename
11156         declarations.
11157
11158         * Makefile.in (varray.o): Add errors.h.
11159
11160 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
11161
11162         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
11163         * optabs.c (have_add2_insn): Check whether the add insn chosen
11164         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
11165         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
11166
11167 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
11168
11169         * Makefile.in (OBJS): Add ssa-ccp.o
11170         (ssa-ccp.o): Add dependencies.
11171         * toplev.c (DFI_ssa_ccp): New dump file enum.
11172         (dump_file): Add entry for dumping after SSA CCP.
11173         (flag_ssa_ccp): New flag variable.
11174         (f_options): Add -fssa-ccp.
11175         (rest_of_compilation): Run SSA CCP if requested.
11176         * timevar.def (TV_SSA_CCP): New timevar.
11177         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
11178         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
11179         Fix minor typo in SSA DCE documentation.
11180         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
11181         Add documentation for new dump option.  Renumber dump files
11182         appropriately.
11183
11184 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11185
11186         * emit-rtl.c (gen_highpart_mode): New.
11187         * rtl.h (gen_highpart_mode): Declare.
11188         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
11189         operand can be VOIDmode constant.
11190
11191 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
11192
11193         * flow.c (redirect_edge_and_branch_force): New.
11194         (can_fallthru): Ensure that basic blocks are succeeding.
11195         (try_optimize_cfg): Do not delete basic block if it is the last one.
11196
11197         * flow.c (try_redirect_by_replacing_jump): Do not remove
11198         jumps with side effects, unlink chain on fallthru edge;
11199         set block for new jump instruction; avoid basic block to
11200         over by line number note.
11201
11202         * flow.c (try_simplify_condjump): Verify that the condjump
11203         is not always falling trought.
11204
11205         Re-install patch:
11206         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
11207
11208         * flow.c (forwarder_block_p): Fix for fallthru blocks.
11209         (try_redirect_by_replacing_jump): Update properly the count
11210         and frequency information.
11211
11212 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11213
11214         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
11215         address that is a LO_SUM specially.
11216         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
11217
11218         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
11219
11220         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
11221         (operand_subword): Use them.
11222         (change_address_1): Renamed from change_address; new arg VALIDATE.
11223         * expr.h: Reflect above changes; change_address now macro.
11224         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
11225         making MEM.
11226         * cselib.c (add_mem_for_addr): Likewise.
11227         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
11228         * regmove.c (try_apply_stack_adjustment): Likewise.
11229         * reload.c (push_reload, make_memloc): Likewise.
11230         * reload1.c (eliminate_regs): Likewise.
11231         * simplify-rtx.c (simplify_replace_rtx): Likewise.
11232         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
11233         adjust_addess.
11234         * combine.c (make_extraction, simplify_shift_const): Likewise.
11235         (gen_lowpart_for_combine): Likewise.
11236         * cse.c (gen_lowpart_if_possible): Likewise.
11237         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
11238         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
11239         * optabs.c (gen_move_insn): Likewise.
11240         * reload1.c (alter_reg): Likewise.
11241         * simplify-rtx.c (simplify_subreg): Likewise.
11242         * stmt.c (expand_anon_union_decl): Likewise.
11243         * recog.c (validate_replace_rtx_1): Likewise.
11244         (expr.h): Include.
11245         * Makefile.in (recog.o): Add $(EXPR_H).
11246         * explow.c (stabilize): Call replace_equiv_address.
11247         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
11248         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
11249
11250 2001-07-03  Andrew Haley  <aph@redhat.com>
11251
11252         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
11253         the mode of the memory location.
11254
11255 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
11256
11257         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
11258
11259 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
11260
11261         * final.c (output_addr_const): Use target opening and
11262         closing parentheses.
11263         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
11264         defaults, add to TARGET_ASM_OUT.
11265         * target.h (struct gcc_target): Add open_paren and close_paren.
11266         * doc/md.texi: Update.
11267         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
11268         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
11269         TARGET_ASM_CLOSE_PAREN.
11270         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
11271         Override.
11272         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
11273         Override.
11274         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
11275         * config/a29k/a29k.h: Similarly.
11276         * config/alpha/alpha.h: Similarly.
11277         * config/arc/arc.h: Similarly.
11278         * config/arm/aof.h: Similarly.
11279         * config/arm/aout.h: Similarly.
11280         * config/avr/avr.h: Similarly.
11281         * config/c4x/c4x.h: Similarly.
11282         * config/clipper/clipper.h: Similarly.
11283         * config/convex/convex.h: Similarly.
11284         * config/d30v/d30v.h: Similarly.
11285         * config/dsp16xx/dsp16xx.h: Similarly.
11286         * config/elxsi/elxsi.h: Similarly.
11287         * config/fr30/fr30.h: Similarly.
11288         * config/h8300/h8300.h: Similarly.
11289         * config/i370/i370.h: Similarly.
11290         * config/i386/i386.h: Similarly.
11291         * config/i860/i860.h: Similarly.
11292         * config/i960/i960.h: Similarly.
11293         * config/ia64/ia64.h: Similarly.
11294         * config/m32r/m32r.h: Similarly.
11295         * config/m68hc11/m68hc11.h: Similarly.
11296         * config/m68k/m68k.h: Similarly.
11297         * config/m88k/m88k.h: Similarly.
11298         * config/mcore/mcore.h: Similarly.
11299         * config/mips/mips.h: Similarly.
11300         * config/mn10200/mn10200.h: Similarly.
11301         * config/mn10300/mn10300.h: Similarly.
11302         * config/ns32k/ns32k.h: Similarly.
11303         * config/pa/pa.h: Similarly.
11304         * config/pdp11/pdp11.h: Similarly.
11305         * config/pj/pj.h: Similarly.
11306         * config/romp/romp.h: Similarly.
11307         * config/rs6000/rs6000.h: Similarly.
11308         * config/sh/sh.h: Similarly.
11309         * config/sparc/sparc.h: Similarly.
11310         * config/v850/v850.h: Similarly.
11311         * config/vax/vax.h: Similarly.
11312         * config/we32k/we32k.h: Similarly.
11313
11314 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
11315
11316         * doc/c-tree.texi: Document representation of attributes.
11317
11318 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11319
11320         * doc/tm.texi: Update some places for the rename of target to
11321         targetm.  Fix typo.
11322
11323 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11324
11325         * target.h (struct gcc_target): Add insert_attributes.
11326         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
11327         (TARGET_INITIALIZER): Update.
11328         * tree.c, tree.h (default_insert_attributes): New function.
11329         Update comments on other default functions to refer to targetm,
11330         not target.
11331         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
11332         TARGET_INSERT_ATTRIBUTES.
11333         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
11334         * c-common.c (decl_attributes): Use targetm.insert_attributes.
11335         Don't use PRAGMA_INSERT_ATTRIBUTES.
11336         * Makefile.in (c-common.o): Depend on $(TARGET_H).
11337         * c-decl.c (start_decl, start_function): Don't call
11338         SET_DEFAULT_DECL_ATTRIBUTES.
11339         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
11340         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
11341         declare.
11342         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
11343         (c4x_check_attribute): Avoid modifying attribute list itself.
11344         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
11345         Make static.
11346         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
11347         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
11348         declare.
11349         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
11350         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
11351         Make static.
11352         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
11353         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
11354         declare.
11355         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
11356         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
11357         Adjust parameters.  Make static.
11358
11359 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11360
11361         * c-common.c (decl_attributes): Only take a single attributes
11362         parameter.
11363         * c-common.h (decl_attributes): Update prototype.
11364         * c-decl.c (start_decl, start_function): Only take a single
11365         attributes parameter.  Update calls to decl_attributes.
11366         (finish_struct, finish_enum): Update calls to decl_attributes.
11367         (push_parm_decl): Expect unified list of attributes.  Update call
11368         to decl_attributes.
11369         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
11370         notype_nested_function, component_declarator,
11371         component_notype_declarator, label): Update calls to
11372         decl_attributes.
11373         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
11374         lists that are passed to push_parm_decl.
11375         * c-tree.h (start_function, start_decl): Update prototypes.
11376         * config/sh/sh-protos.h, config/sh/sh.c
11377         (sh_pragma_insert_attributes): Only take a single attributes
11378         parameter.
11379         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
11380         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
11381         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
11382         build_module_descriptor, generate_static_references,
11383         generate_strings, build_selector_translation_table,
11384         generate_descriptor_table, generate_protocols,
11385         generate_ivars_list, generate_dispatch_table,
11386         generate_protocol_list, generate_category,
11387         generate_shared_structures, really_start_method, add_objc_decls,
11388         generate_classref_translation_entry): Update calls to start_decl
11389         and start_function.
11390         (build_tmp_function_decl, start_method_def): Unify attribute lists
11391         that are passed to push_parm_decl.
11392
11393 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
11394
11395         * final.c (no_asm_to_stream): New.
11396         (final_scan_insn): Use target structures for prologue ends
11397         and epilogue starts.
11398         * output.h (no_asm_to_stream): New.
11399         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
11400         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
11401         (TARGET_ASM_OUT): Update.
11402         * target.h (struct gcc_target): New members function_end_prologue
11403         and function_begin_epilogue.
11404         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
11405         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
11406         * config/alpha/alpha.c (output_end_prologue): Rename to
11407         alpha_output_function_end_prologue.  Use in target struct
11408         and make static.
11409         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
11410         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
11411         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
11412         ia64_output_function_end_prologue.  Use in target struct
11413         and make static.
11414         (ia64_function_prologue, ia64_funciton_epilogue): Rename
11415         mistyped prototypes.
11416         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
11417         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
11418         Delete.
11419         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
11420         an use in target struct, make static.
11421         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
11422         Delete.
11423
11424 2001-07-08  Richard Henderson  <rth@redhat.com>
11425
11426         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
11427
11428 2001-07-08  Richard Henderson  <rth@redhat.com>
11429
11430         * config/i386/i386.md: Remove constraints strings from define_split
11431         and define_peephole2 patterns.
11432         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
11433         (eh_return): Use them.
11434
11435 2001-07-08  Richard Henderson  <rth@redhat.com>
11436
11437         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
11438         Document MD_FALLBACK_FRAME_STATE_FOR.
11439
11440 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11441
11442         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
11443         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
11444         elimination.
11445         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
11446
11447 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
11448
11449         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
11450         of the label inside NAME as opposed to just the end of NAME.
11451
11452 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
11453
11454         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
11455         * config/alpha/alpha.c (alpha_init_machine_status,
11456         alpha_mark_machine_status, alpha_free_machine_status): Delete.
11457         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
11458         (vms_valid_decl_attribute_p): Make static, conditionally compile.
11459         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
11460
11461 2001-07-06  Stan Shebs  <shebs@apple.com>
11462
11463         * target.h (targetm): Rename global from "target", so as not to
11464         conflict with local variables.
11465         * c-decl.c: Ditto.
11466         * c-typeck.c: Ditto.
11467         * final.c: Ditto.
11468         * tree.c: Ditto.
11469         * cp/decl.c: Ditto.
11470         * cp/decl2.c: Ditto.
11471         * cp/typeck.c: Ditto.
11472         * 1750a/1750a.c: Ditto.
11473         * a29k/a29k.c: Ditto.
11474         * arc/arc.c: Ditto.
11475         * arm/arm.c: Ditto.
11476         * avr/avr.c: Ditto.
11477         * clipper/clipper.c: Ditto.
11478         * convex/convex.c: Ditto.
11479         * d30v/d30v.c: Ditto.
11480         * dsp16xx/dsp16xx.c: Ditto.
11481         * elxsi/elxsi.c: Ditto.
11482         * fr30/fr30.c: Ditto.
11483         * h8300/h8300.c: Ditto.
11484         * i370/i370.c: Ditto.
11485         * i386/i386.c: Ditto.
11486         * i860/i860.c: Ditto.
11487         * i960/i960.c: Ditto.
11488         * ia64/ia64.c: Ditto.
11489         * m32r/m32r.c: Ditto.
11490         * m68hc11/m68hc11.c: Ditto.
11491         * m68k/m68k.c: Ditto.
11492         * m88k/m88k.c: Ditto.
11493         * mips/mips.c: Ditto.
11494         * ns32k/ns32k.c: Ditto.
11495         * pa/pa.c: Ditto.
11496         * pdp11/pdp11.c: Ditto.
11497         * romp/romp.c: Ditto.
11498         * rs6000/rs6000.c: Ditto.
11499         * sh/sh.c: Ditto.
11500         * sparc/sparc.c: Ditto.
11501         * vax/vax.c: Ditto.
11502         * we32k/we32k.c: Ditto.
11503         * doc/tm.texi: Update the manual to match.
11504
11505 2001-07-06  Richard Henderson  <rth@redhat.com>
11506
11507         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
11508         DWARF2_UNWIND_INFO not just whether it is defined.
11509
11510 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
11511
11512         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
11513         call to simplify_binary_operation returns a new pattern.
11514
11515 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
11516
11517         * glimits.h (__SHRT_MAX__): New.
11518         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
11519         (SHRT_MAX): Define in terms of __SHRT_MAX__.
11520
11521 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
11522
11523         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
11524         avoid warnings.
11525
11526 2001-07-06  Richard Henderson  <rth@redhat.com>
11527
11528         * bitmap.c (bitmap_release_memory): Move adjacent to the
11529         allocation functions.
11530         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
11531         the implementation.  Binary search for the set bit.
11532         (bitmap_union_of_diff): Allocate the temporary on the stack
11533         instead of using xmalloc.
11534
11535 2001-07-06  Richard Henderson  <rth@redhat.com>
11536
11537         * genrecog.c (validate_pattern): Warn for constraints in
11538         define_{expand,split,peephole2}.  Remove strict_low_part
11539         before looking up match_dup.
11540
11541 2001-07-06  DJ Delorie  <dj@redhat.com>
11542
11543         * doc/gcc.texi (Makefile): Rename to be a more general purpose
11544         chapter about various build hints and history.  Add section
11545         talking about the various types of native and cross builds.
11546
11547 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
11548
11549         * Makefile.in (final.o): Depend on target.h.
11550         * final.c: Include target.h.
11551         (default_function_pro_epilogue): New.
11552         (final_start_function): Use target structure for function prologues.
11553         (final_end_function): Use target structure for function epilogues.
11554         * fold-const.c (real_hex_to_f): Constify s and p.
11555         * output.h (default_function_pro_epilogue): New.
11556         * real.h (real_hex_to_f): Update prototype.
11557         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
11558         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
11559         (TARGET_INITIALIZER): Update.
11560         * target.h (gcc_target): Add struct asm_out.
11561         * doc/tm.texi: Update.
11562
11563 config:
11564         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
11565         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
11566         in cpu/cpu.c, or rename old functions consistently.  Take
11567         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
11568         redundant macros and prototypes.  Make new functions static.
11569
11570         * 1750a/1750a.c: Similarly.
11571         * 1750a/1750a.h: Similarly.
11572         * a29k/a29k-protos.h: Similarly.
11573         * a29k/a29k.c: Similarly.
11574         * a29k/a29k.h: Similarly.
11575         * arc/arc-protos.h: Similarly.
11576         * arc/arc.c: Similarly.
11577         * arc/arc.h: Similarly.
11578         * arm/arm-protos.h: Similarly.
11579         * arm/arm.c: Similarly.
11580         * arm/arm.h: Similarly.
11581         * avr/avr-protos.h: Similarly.
11582         * avr/avr.c: Similarly.
11583         * avr/avr.h: Similarly.
11584         * clipper/clipper-protos.h: Similarly.
11585         * clipper/clipper.c: Similarly.
11586         * clipper/clipper.h: Similarly.
11587         * convex/convex.c: Similarly.
11588         * convex/convex.h: Similarly.
11589         * d30v/d30v-protos.h: Similarly.
11590         * d30v/d30v.c: Similarly.
11591         * d30v/d30v.h: Similarly.
11592         * d30v/d30v.md: Similarly.
11593         * dsp16xx/dsp16xx-protos.h: Similarly.
11594         * dsp16xx/dsp16xx.c: Similarly.
11595         * dsp16xx/dsp16xx.h: Similarly.
11596         * elxsi/elxsi.c: Similarly.
11597         * elxsi/elxsi.h: Similarly.
11598         * fr30/fr30.c: Similarly.
11599         * fr30/fr30.md: Similarly.
11600         * h8300/h8300-protos.h: Similarly.
11601         * h8300/h8300.c: Similarly.
11602         * h8300/h8300.h: Similarly.
11603         * i370/i370-protos.h: Similarly.
11604         * i370/i370.c: Similarly.
11605         * i370/i370.h: Similarly.
11606         * i386/i386.c: Similarly.
11607         * i386/osf1elf.h: Similarly.
11608         * i386/osfrose.h: Similarly.
11609         * i860/i860-protos.h: Similarly.
11610         * i860/i860.c: Similarly.
11611         * i860/i860.h: Similarly.
11612         * i960/i960-protos.h: Similarly.
11613         * i960/i960.c: Similarly.
11614         * i960/i960.h: Similarly.
11615         * ia64/ia64-protos.h: Similarly.
11616         * ia64/ia64.c: Similarly.
11617         * ia64/ia64.h: Similarly.
11618         * m32r/m32r-protos.h: Similarly.
11619         * m32r/m32r.c: Similarly.
11620         * m32r/m32r.h: Similarly.
11621         * m68hc11/m68hc11-protos.h: Similarly.
11622         * m68hc11/m68hc11.c: Similarly.
11623         * m68hc11/m68hc11.h: Similarly.
11624         * m68k/crds.h: Similarly.
11625         * m68k/dpx2.h: Similarly.
11626         * m68k/m68k-protos.h: Similarly.
11627         * m68k/m68k.c: Similarly.
11628         * m68k/m68k.h: Similarly.
11629         * m68k/news.h: Similarly.
11630         * m88k/m88k-protos.h: Similarly.
11631         * m88k/m88k.c: Similarly.
11632         * m88k/m88k.h: Similarly.
11633         * mips/mips-protos.h: Similarly.
11634         * mips/mips.c: Similarly.
11635         * mips/mips.h: Similarly.
11636         * ns32k/merlin.h: Similarly.
11637         * ns32k/ns32k.c: Similarly.
11638         * ns32k/ns32k.h: Similarly.
11639         * ns32k/tek6000.h: Similarly.
11640         * pa/pa-protos.h: Similarly.
11641         * pa/pa.c: Similarly.
11642         * pa/pa.h: Similarly.
11643         * pdp11/2bsd.h: Similarly.
11644         * pdp11/pdp11-protos.h: Similarly.
11645         * pdp11/pdp11.c: Similarly.
11646         * pdp11/pdp11.h: Similarly.
11647         * romp/romp-protos.h: Similarly.
11648         * romp/romp.c: Similarly.
11649         * romp/romp.h: Similarly.
11650         * rs6000/rs6000-protos.h: Similarly.
11651         * rs6000/rs6000.c: Similarly.
11652         * rs6000/rs6000.h: Similarly.
11653         * rs6000/sysv4.h: Similarly.
11654         * sh/sh-protos.h: Similarly.
11655         * sh/sh.c: Similarly.
11656         * sh/sh.h: Similarly.
11657         * sparc/sparc-protos.h: Similarly.
11658         * sparc/sparc.c: Similarly.
11659         * sparc/sparc.h: Similarly.
11660         * vax/vax.c: Similarly.
11661         * vax/vax.h: Similarly.
11662         * vax/vms.h: Similarly.
11663         * we32k/we32k.c: Similarly.
11664         * we32k/we32k.h: Similarly.
11665
11666 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
11667
11668         * basic-block.h (first_insn_after_basic_block_note): Declare.
11669         * flow.c (first_insn_after_basic_block_note): Define.  Moved
11670         from...
11671         * ssa.c (first_insn_after_basic_block_note): Remove.
11672         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
11673         necessary.
11674         (ssa_eliminate_dead_code): Properly update the CFG and PHI
11675         nodes when we find a dead conditional branch.  Insert BARRIERs
11676         after any blocks with no successors, but which do not have
11677         any BARRIERs.
11678
11679 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
11680
11681         * varray.c (varray_check_failed): Use internal_error.
11682
11683 2001-07-05  Andrew Haley  <aph@redhat.com>
11684
11685         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
11686         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
11687         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
11688
11689 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
11690
11691         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
11692         reference if the target constant is also a SYMBOL_REF.
11693
11694 2001-07-05  Eric Christopher  <echristo@redhat.com>
11695
11696         * config/mips/mips.h (MASK_MIPS3900): Remove.
11697         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
11698         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
11699         (TARGET_MIPS3900): Change to use mips_arch.
11700         (TARGET_MIPS4000): New.
11701         (TARGET_MIPS4100): New.
11702         (TARGET_MIPS4300): New.
11703         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
11704         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
11705         for -mipsX.
11706         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
11707         (ISA_HAS_BRANCHLIKELY): To here.
11708         (CC1_CPU_SPEC):  New.
11709         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
11710         (mips_arch_string): Declare.
11711         (mips_arch): Declare.
11712         (TARGET_OPTIONS): Add -march and -mtune.
11713
11714         * config/mips/mips.c (mips_arch_string): New.
11715         (mips_arch): New.
11716         (override_options): Handle -march for codegen and -mtune
11717         for scheduling. Use mips_arch. Move tx39 target default here.
11718         (mips_parse_cpu): Move error message to override_options.
11719
11720         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
11721
11722         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
11723
11724         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
11725         (MIPS Options): Ditto.  Change mcpu entry to historical text.
11726
11727 2001-07-05  H.J. Lu  (hjl@gnu.org)
11728
11729         * config/mips/mips.c (mips_parse_cpu): New function to parse
11730         -march=*/-mcpu=*.
11731
11732 2001-07-05  Jim Wilson  <wilson@redhat.com>
11733
11734         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
11735         * config/ia64/t-ia64: Likewise.
11736         (LIB1ASMFUNCS): Update comment.
11737
11738 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
11739
11740         * doc/install.texi (Install GCC: Binaries): Fix typo.
11741
11742 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11743
11744         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
11745         reference using the stack pointer, adjust it since we push Y
11746         temporarily.
11747         ("*ashrsi3"): Likewise.
11748         ("*lshrsi3"): Likewise.
11749
11750 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11751
11752         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
11753         when -fomit-frame-pointer is used.
11754
11755 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
11756
11757         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
11758         (try_redirect_by_replacing_jump): Reverse updating properly the
11759         count and frequency information.  Reverse removing cc0 setter.
11760         (forwarder_block_p): Reverse fixing for fallthru blocks.
11761
11762 2001-07-05  DJ Delorie  <dj@redhat.com>
11763
11764         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
11765         (translate_options): If the above is defined, use it to map
11766         given options to new options.
11767         * doc/tm.texi: Document it.
11768
11769 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
11770             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11771
11772         * doc/invoke.texi (Optimize Options): Document that -fgcse may
11773         cause programs using computed gotos to run more slowly.
11774
11775 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11776
11777         * doc/install.texi (Specific): Markup, spelling and typo fixes.
11778         Fixed sorting.
11779         Consistently require binutils 2.11.2, not prereleases.
11780         (Specific, decstation-*): Canonicalize as mips-dec-*.
11781         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
11782         always necessary.
11783         (Specific, m68k-altos): Removed reference to README.altos, deleted.
11784         (Specific, mips-*): Reword MIPS C compiler requirements.
11785         (Specific, powerpc*-*-*): New, mention --with-cpu once.
11786         (Specific, sunv5): Removed, obsolete.
11787
11788 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
11789
11790         * dwarf2out.c (output_loc_list): Use an all ones mask for
11791         .text asm output and don't rely on long long
11792         literals. Reformat some long lines.
11793
11794 2001-07-05  Andreas Jaeger  <aj@suse.de>
11795
11796         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
11797         section.
11798
11799 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11800
11801         * dwarf2out.c (dwarf2out_define): Update comment.
11802         (dwarf2out_undef): Ditto.
11803         (dwarf2out_start_source_file): Ditto.
11804         (dwarf2out_end_source_file): Ditto.
11805         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
11806         since we never call the start/end debug hook for the primary file.
11807
11808 2001-07-04  Kazu Hirata  <kazu@hxi.com>
11809
11810         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
11811         from shll.
11812
11813 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
11814
11815         * cppinit.c (remove_dup_dirs): Inform if a system include
11816         directory is being reordered.
11817         * doc/invoke.texi (Directory Options): GCC warns if you hide a
11818         system include.
11819         * doc/cpp.texi (Search Paths): Likewise.
11820         * doc/gcc.texi (Interoperation): Remove information about
11821         -I/usr/include.
11822
11823 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
11824
11825         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
11826         (VARRAY_TOP_CHAR_PTR): Likewise.
11827
11828 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11829
11830         * gcc.c (process_command): Don't assign elements of a const char*.
11831
11832 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11833
11834         * emit-rtl.c (change_address): Don't abort if invalid address while
11835         reload is in progress.
11836
11837 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11838
11839         * c-lex.c (cb_file_change): Pass line number to
11840         debug_start_source_file.
11841         (cb_undefine): Pass correct line number to debug_undef.
11842
11843         * toplev.c (debug_start_source_file): Add line number to
11844         parameters. Pass it along to dwarf2out_start_source_file.
11845         (decode_g_option): Stop resetting debug level back to normal when
11846         we change debug formats, unless the current level is
11847         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
11848         3).
11849
11850         * toplev.h (debug_start_source_file): Add line number to
11851         parameters.
11852
11853         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
11854         parameters.
11855
11856         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
11857         parameters.
11858         Output debug_macinfo data for starting file if requested.
11859         (dwarf2out_end_source_file): Output debug_macinfo data for ending
11860         file if requested.
11861         (dwarf2out_define): Output debug_macinfo data for defining a macro
11862         if requested.
11863         (dwarf2out_undef): Output debug_macinfo data for undefining a
11864         macro if requested.
11865         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
11866         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
11867         (macinfo_section_label): New. DWARF2 macro info section label.
11868         (dwarf2out_init): If we want macro info, output the start label
11869         for the section.
11870         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
11871         attribute to the compilation unit die pointing to the macro info.
11872
11873 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11874
11875         * dwarf2out.c (new_loc_list): Move to inside #ifdef
11876         DWARF2_DEBUGGING_INFO.
11877         (add_loc_descr_to_loc_list): Ditto.
11878         (output_loc_list): Ditto.
11879         Also, fix thinko in curr not being initialized.
11880         (gen_internal_sym): Ditto.
11881
11882 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11883
11884         * emit-rtl.c (replace_equiv_address): New function.
11885         * expr.h (replace_equiv_address): New declaration.
11886         * explow.c (validize_mem): Call it instead of change_address and
11887         also call if -fforce-addr and address is constant.
11888         * expr.c: Replace more calls to change_address with adjust_address
11889         and/or replace_equiv_address or to validize_mem.
11890         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
11891         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
11892         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
11893         * config/i370/i370.md, config/i860/i860.md: Likewise.
11894         * config/i960/i960.md, config/mips/mips.c: Likewise.
11895         * config/mips/mips.md, config/pa/pa.md: Likewise.
11896         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
11897         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
11898
11899 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11900
11901         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
11902
11903         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
11904         function.
11905
11906 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11907
11908         * doc/include: New directory.
11909         * doc/fdl.texi: Move to doc/include/fdl.texi.
11910         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
11911         * doc/include/funding.texi, doc/include/gpl.texi: New files.
11912         * doc/gcc.texi: Use funding.texi and gpl.texi.
11913         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
11914         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
11915         Update dependencies and use -I $(docdir)/include.
11916
11917 2001-07-04  Anthony Green  <green@redhat.com>
11918
11919         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
11920
11921 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11922
11923         * doc/install.texi (sparc64-*-*): Remove garbage.
11924
11925 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
11926
11927         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
11928         Fix typo in last change to use adjust_address.
11929
11930 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11931
11932         * doc/install.texi (Specific): Update information for *-*-solaris*.
11933
11934 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11935
11936         * explow.c (plus_constant_wide): Reinitialize Y for restart.
11937
11938 2001-07-03  Stan Shebs  <shebs@apple.com>
11939
11940         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
11941         case for flag_no_mach_text_sections.
11942         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
11943         * config/darwin.c (flag_no_mach_text_sections): Remove.
11944         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
11945
11946 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11947
11948         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
11949         and avoid checking for constant as first operand.
11950         * recog.c (find_constant_term_loc): No longer static.
11951         (adj_offettable_operand): Delete.
11952         * rtl.h (adj_offsettable_operand): Delete declaration.
11953         (find_constant_term): Add declaration.
11954         * caller-save.c: Replace calls to adj_offsettable_operand with calls
11955         to adjust_address.
11956         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
11957         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
11958         * config/i386/i386.c, config/i386/i386.md: Likewise.
11959         * config/i860/i860.c, config/i960/i960.c: Likewise.
11960         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
11961         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
11962         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
11963         * config/mips/mips.c, config/mips/mips.md: Likewise.
11964         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
11965         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
11966         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
11967         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
11968         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
11969         * config/ns32k/ns32k.md: Likewise.
11970
11971 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
11972
11973         * rtl.c (copy_rtx): Handle 'T' format letter.
11974         * gensupport.c (collect_insn_data): Likewise.
11975         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
11976
11977 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
11978
11979         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
11980         -B option.  Use 'dir' not 'foo' as example directory name.
11981
11982 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11983
11984         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11985         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
11986
11987 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
11988
11989         * doc/cppinternals.texi: Improve formatting and logical markup.
11990
11991 2001-07-03  Andreas Jaeger  <aj@suse.de>
11992
11993         * Makefile.in (insn-recog.o): Add dependency on reload.h.
11994
11995         * genrecog.c (write_header): Include reload.h for prototypes in
11996         insn-recog.c.
11997
11998 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
11999
12000 config:
12001         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
12002         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12003         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
12004         i386_pe_valid_type_attribute_p): Add.
12005         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
12006         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
12007
12008 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12009
12010         * explow.c (plus_constant_wide, case LO_SUM): New case.
12011         (plus_constant_for_output_wide): Delete.
12012         * rtl.h (plus_constant_for_output): Delete.
12013         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
12014         instead of plus_constant_for_output.
12015         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
12016         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
12017         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
12018         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
12019         * config/sparc/sparc.md: Likewise.
12020         Convert some change_address calls to adjust_address.
12021
12022 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12023
12024         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
12025         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
12026         documentation of -std and -Wwrite-strings.
12027
12028 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12029
12030         * cse.c (canon_hash): Don't register registers in very small
12031         register classes, as extending their lifetime might cause
12032         reload to fail.
12033
12034 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12035
12036         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
12037
12038         * flow.c (forwarder_block_p): Fix for fallthru blocks.
12039         (try_redirect_by_replacing_jump): Update properly the count
12040         and frequency information.
12041
12042 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
12043
12044         * toplev.c (dump_file_index): Move SSA dumps just after first
12045         jump dump.
12046         (dump_file): Corresponding changes.
12047         (rest_of_compilation): Move SSA path to just after the first
12048         jump pass.
12049         * doc/gcc.texi (Passes): Update due to movement of SSA path.
12050         * doc/invoke.texi: Update dump file #s as they were completely
12051         out of date with reality.
12052
12053 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12054
12055         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
12056
12057         * expr.c (emit_move_insn_1): Deal with non-default
12058         STACK_PUSH_CODE.
12059
12060         * expr.c (emit_single_push_insn): Fix warning.
12061
12062 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12063
12064         * expr.c (emit_move_insn_1): Avoid modifying
12065         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
12066
12067 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12068
12069         * emit-rtl.c (adjust_address): New function.
12070         * expr.h (adjust_address): Add declaration.
12071         * builtins.c: Replace some calls to change_address with calls to it
12072         or to validize_mem.
12073         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
12074         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
12075         * config/arm/arm.c, config/convex/convex.c: Likewise.
12076         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
12077         * config/i386/i386.c, config/i386/i386.md: Likewise.
12078         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
12079         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
12080         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
12081         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
12082         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
12083
12084 2001-07-02  Jim Wilson  <wilson@redhat.com>
12085
12086         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
12087
12088 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
12089
12090         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
12091         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
12092
12093 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
12094
12095         * cppinit.c (lang_defaults): New table.
12096         (set_lang): Just read from lang_defaults into the live options
12097         structure.
12098
12099 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
12100
12101         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
12102         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
12103         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
12104
12105 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12106
12107         * doc/install.texi: Various spelling and markup fixes.
12108         (Installing GCC): Component specific installation instructions are
12109         gone.
12110         Fix reference.
12111         Warn about removing old install dir in the presence of shared libs.
12112         (Configuration): Invoke with options target to match configure
12113         --help.
12114         Consistently refer to gas, gld pathnames.
12115         Invert --enable-multilib documentation.
12116         Remove references to old compiler versions.
12117
12118 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12119
12120         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
12121
12122 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12123
12124         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
12125         section.
12126         (Specific, mips*-sgi-irix5): Note IDO download.
12127         Reworded MIPS C hints.
12128         Use GNU as instead of GAS.
12129         Markup fixes.
12130         Removed SGI Freeware reference, IRIX 6 only.
12131         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
12132         Note N64 library requirement/workaround.
12133         Update O32 hints.
12134         Complete list of structure passing bug victims.
12135
12136 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12137
12138         * doc/install.texi: Remove CVS Id.
12139
12140 2001-07-02  Andreas Jaeger  <aj@suse.de>
12141
12142         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
12143         (find_inherently_necessary): Remove unused variable.
12144
12145 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
12146
12147         * c-common.h (TDI_inlined): New ast dump phase.
12148         (dump_flag_name): New function.
12149         * c-dump.c (dump_files): Add inlined phase.
12150         (dump_flag_name): Define.
12151         * doc/invoke.texi (-fdump-ast-inlined): Document.
12152
12153 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12154
12155         * stor-layout.c (layout_decl): Revert change to handling of alignment
12156         in packed types.
12157
12158 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12159
12160         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
12161         for FIELD_DECL.
12162
12163 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
12164
12165         * doc/tm.texi (FUNCTION_ARG): Document that the last call
12166         is special.
12167
12168 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
12169
12170         * tlink.c (recompile_files): Remove COMPILER_PATH and
12171         LIBRARY_PATH from the environment.
12172
12173 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
12174
12175         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
12176         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
12177         enumerators.
12178         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
12179
12180         * c-parse.in (OBJC_STRING): Kill.
12181         (objc_string): Decompose to [objc_string] '@' STRING.
12182         (reswords): Take the leading '@' off all the Objective C keywords.
12183         (objc_rid_sans_at): Kill.
12184         (init_reswords): Don't initialize it.
12185         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
12186         (_yylex): Kill reconsider label.  Look ahead one token after
12187         an '@'; if we get an identifier, check whether it's an
12188         Objective C @-keyword.  If so, return the keyword.  Otherwise,
12189         put back the token and return the '@' as a terminal.
12190
12191         * cpplib.c (lex_macro_node): Remove unnecessary check for
12192         leading '@' on identifier.  Clarify control flow and commentary.
12193
12194 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12195
12196         * cse.c (new_label_ref): Variable deleted.
12197         (insert): Remove set of new_label_ref.
12198         (check_for_label_ref): New function.
12199         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
12200
12201 See ChangeLog.5 for earlier changes.