OSDN Git Service

* config/alpha/alpha.c (alpha_start_function, VMS): Cast shift
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Sun Nov 18 07:40:07 2001  Douglas B. Rupp  <rupp@gnat.com>
2
3         * config/alpha/alpha.c (alpha_start_function, VMS): Cast shift
4         arg to HOST_WIDE_INT, not long.
5
6         * config/alpha/vms.h (DIR_SEPARATOR, PREFIX). Don't define.
7         (HAS_INIT_SECTION): Define.
8         (REAL_ARITHMETIC): Don't undefine.
9
10 2001-11-18  Egor Duda  <deo@logos-m.ru>
11
12         * config/i386/cygwin.h: Strip leading '*' from name, if any.
13
14 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
15
16         * Makefile.in (c-parse.o, c-common.o): Update dependencies.
17         * c-common.c: Include diagnostic.h.
18         (c_common_finish): New.
19         * c-common.h (c_common_finish): New.
20         * c-lang.c (LANG_HOOKS_FINISH): Override.
21         * c-parse.in: Don't include diagnostic.h.
22         (finish_parse): Remove.
23         * langhooks.h: Update comments.
24         * toplev.c (lang_dependent_init): New prototype.
25         (finalize): New.
26         (compile_file): Split cleanup code out to finalize.
27         (lang_dependent_init): Stop if lang_hooks.init fails.
28         (toplev_main): Update.
29         * tree.h (finish_parse): Remove.
30 objc:
31         * objc-act.c (LANG_HOOKS_FINISH): Override.
32
33 Sat Nov 17 23:30:44 2001  Douglas B. Rupp  <rupp@gnat.com>
34
35         * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms_tramp.asm.
36         * config/alpha/vms_tramp.asm: New file.
37         * config/alpha/vms-tramp.asm: Removed.
38
39 2001-11-18  Joseph S. Myers  <jsm28@cam.ac.uk>
40
41         * c-common.c (struct disabled_builtin, disabled_builtins,
42         disable_builtin_function, builtin_function_disabled_p): New.
43         (builtin_function_2): Check for disabled built-in functions.
44         * c-common.h (disable_builtin_function): Declare.
45         * c-decl.c (c_decode_option): Handle -fno-builtin-FUNCTION.
46         * doc/invoke.texi: Document -fno-builtin-FUNCTION.
47         * doc/extend.texi: Mention -fno-builtin-FUNCTION.
48
49 2001-11-17  Craig Rodrigues  <rodrigc@gcc.gnu.org>
50
51         PR target/4606
52         * config.gcc: Remove reference to va-clipper.h.
53
54 2001-11-17  Stan Shebs  <shebs@apple.com>
55
56         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix the
57         AltiVec-related bitfields.
58
59 Sat Nov 17 12:06:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
60
61         * except.c (enum eh_region_type): Add ERT_UNKNOWN.
62         (mark_eh_region, case ERT_UKNONW): New case.
63
64 2001-11-17  Christopher Faylor  <cgf@redhat.com>
65             Corinna Vinschen  <vinschen@redhat.com>
66
67         * config/i386/cygwin.h: Search target specific include directory for
68         w32api stuff, if appropriate.
69
70 Sat Nov 17 08:20:44 2001  Douglas Rupp  <rupp@gnat.com>
71
72         * config/alpha/vms.h (REG_ALLOC_ORDER): Redefine.
73
74 2001-11-16  Aldy Hernandez  <aldyh@redhat.com>
75
76         * config/rs6000/rs6000.md: Change all ldvx to lvx.
77
78 2001-11-16  Alexandre Oliva  <aoliva@redhat.com>
79
80         * gensupport.c (process_rtx): Don't assume filename is the first
81         argument of any rtl.
82
83 2001-11-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
84
85         * vax-protos.h (reg_was_0_p): New prototype.
86         * vax.md (movsi, movhi, movqi): Use reg_was_0_p.
87         * vax.c (follows_p, reg_was_0_p): New functions.
88
89 2001-11-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
90
91         * vax.md (casesi): Swap arguments in "(plus:SI (pc) (mult))". Reformat.
92         (casesi1): Likewise.  Define new pattern which arises by simplification
93         when operand 1 is a constant int.  Correct pattern which arises by
94         simplification when operand 1 is zero.
95
96 2001-11-16  David O'Brien  <obrien@FreeBSD.org>
97
98         * config.gcc (arm*-*-rtems*, arm-*-coff*, armel-*-coff*,
99         arm-*-vxworks*, arm-*-riscix1.[01]*, arm-*-riscix*,
100         arm-semi-aout, armel-semi-aout, arm-semi-aof, armel-semi-aof,
101         arm*-*-netbsd*, arm*-*-linux*, arm*-*-uclinux*, arm*-*-aout,
102         arm*-*-ecos-elf, arm*-*-elf, arm*-*-conix*, arm*-*-oabi,
103         arm-*-pe*, strongarm-*-elf*, strongarm-*-coff*, strongarm-*-pe,
104         xscale-*-elf, xscale-*-coff: Include various CPU headers via tm_file.
105         * config/arm/aof.h: Don't include arm.h.
106         * config/arm/aout.h: Likewise.
107         * config/arm/coff.h: Don't include semi.h and aout.h.
108         * config/arm/elf.h: Don't include aout.h.
109         * config/arm/netbsd.h: Don't include netbsd.h and aout.h.
110         (TARGET_VERSION): Undef before defining.
111         (ARM_OS_NAME): Likewise
112         (TARGET_DEFAULT): Likewise
113         (TARGET_MEM_FUNCTIONS): Do not need to undefine now.
114         * config/arm/pe.h: Don't include arm/coff.h.
115         * config/arm/riscix.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Use
116         SUBTARGET_CPP_SPEC rather than overiding the arm.h CPP_SPEC definition.
117         * config/arm/riscix1-1.h: Likewise.
118         * config/arm/rix-gas.h: Don't include riscix.h.
119         (DBX_CONTIN_LENGTH): Undef before defining.
120         * config/arm/semi.h: Don't include aout.h.
121         * config/arm/semiaof.h: Don't include aof.h.
122         * config/arm/strongarm-coff.h: Don't include coff.h.
123         * config/arm/strongarm-pe.h: Don't include strongarm-coff.h and pe.h.
124         * config/arm/vxarm.h: Don't include arm/coff.h.
125         * config/arm/xscale-coff.h: Don't include coff.h.
126
127 Fri Nov 16 15:22:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
128
129         * config/pa/pa.c: Reflect changes in calling sequences of alter_reg and
130         emit_cmp_insn.
131
132 2001-11-16  Andreas Jaeger  <aj@suse.de>
133
134         * cfglayout.c (fixup_fallthru_exit_predecesor): Make void, rename
135         to ....
136         (fixup_fallthru_exit_predecessor): ... this.
137         Change callers and prototype.
138
139 2001-11-16  Bernd Schmidt  <bernds@redhat.com>
140
141         * config/i386/i386.c (ix86_expand_sse_comi): Generate setcc by
142         hand; don't use gen_setcc_2.
143         (ix86_expand_builtin): Fix pshufw.
144         * config/i386/i386.md (maskncmpv4sf3, vmmmaskncmpv4sf3): Special
145         case UNORDERED to emit the right assembler instruction.
146         (mmx_pshufw): Lose operand 2.
147         (cvtsi2ss): Fix representation.
148         From Graham Stott:
149         (mmx_clrdi, sse_clrti, stmxcsr, ldmxcsr): Set memory attribute.
150
151 2001-11-16  Joseph S. Myers  <jsm28@cam.ac.uk>
152
153         * doc/include/linux-and-gnu.texi: Remove.
154         * doc/gnu.texi: New.
155         * doc/gcc.texi: Include gnu.texi instead of linux-and-gnu.texi.
156         * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies.
157
158 2001-11-16  Kazu Hirata  <kazu@hxi.com>
159
160         * config/a29k/a29k.c: Fix comment formatting.
161         * config/a29k/a29k.h: Likewise.
162         * config/arc/arc.c: Likewise.
163         * config/arc/arc.h: Likewise.
164         * config/vax/vax.c: Likewise.
165         * config/vax/vax.h: Likewise.
166         * config/we32k/we32k.c: Likewise.
167         * config/we32k/we32k.h: Likewise.
168
169 2001-11-16  Jeff Law  <law@redhat.com>
170
171         * unroll.c (copy_loop_body): Initialize JUMP_LABEL field after
172         creating a new jump insn.
173
174 Fri Nov 13 09:06:25 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
175
176         * expr.c (expand_expr, case ADDR_EXPR): Refine test for when to
177         copy misaligned data.
178         * varasm.c (assemble_variable): Set alignment into MEM when changed.
179
180 2001-11-16  Graham Stott  <grahams@redhat.com>
181
182         * optabs.c (prepare_cmp_insn): Correct lossage in last change fix
183         OPALIGN type.
184
185 2001-11-16  Olivier Hainque <hainque@act-europe.fr>
186
187         * except.c: Support for catching a list of types with a single handler
188         (struct eh_region): Change type and filter to lists for catch regions.
189         (mark_eh_region): Mark the filter list for GC also.
190         (expand_start_catch): Always build a list if argument not NULL and
191         register each type of the list through add_type_for_runtime.
192         (duplicate_eh_region_1): Change type into type_list for catch regions.
193         (assign_filter_values): Assign a filter to each type associated with a
194         catch region. Assign filter for NULL types in a unique entry in the
195         filter list.
196         (build_post_landing_pads): Emit compare and jump for each filter of
197         the list associated with a catch region.
198         (reachable_next_level): When the type thrown is known, stop the search
199         as soon as one type within a catch list matches. Also, a handler is
200         potentially reachable only if at least one of the types it catches
201         has not been previously caught.
202         (collect_one_action_chain): Retrieve the filter for a NULL type list
203         from the first filter list entry. For non NULL type lists, add an
204         action record for every filter assigned.
205         * except.h: Reflect changes in comment before expand_start_catch.
206
207 Fri Nov 16 07:12:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
208
209         * expr.c (expand_expr, case ADDR_EXPR): Only copy for misaligned if
210         BLKmode.
211
212 Fri Nov 16 06:37:05 2001  Andreas Tobler  <a.tobler@schweiz.ch>
213
214         * config/sparc/sparc.c: Remove ALIGN arg from emit_cmp_insn.
215
216 2001-11-16  Jakub Jelinek  <jakub@redhat.com>
217
218         * c-lang.c (finish_file): Don't emit static inline functions if
219         they weren't referenced.
220
221 2001-11-15  Stan Shebs  <shebs@apple.com>
222
223         * expr.c (expand_expr, case COMPONENT_REF): Fix variable ref.
224
225 2001-11-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
226
227         * config/s390/s390.md: Remove ALIGN arg from emit_cmp_and_jump_insns
228         call.
229         * config/i386/i386.md: Likewise.
230
231 Thu Nov 15 21:40:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
232
233         * timevar.c (rtl.h): Include so get fancy abort.
234
235 2001-11-15  Dale Johannesen  <dalej@apple.com>
236
237         * config/darwin.h (SELECT_RTX_SECTION):  Force address
238         initializers into 'const' section
239         * config/rs6000/rs6000.c (rs6000_emit_cmove):  Fix mode of
240         if_then_else to match result, not operands
241
242 Thu Nov 15 17:57:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
243
244         * alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P.
245         * emit-rtl.c (change_address): Fix typo in default alignment.
246         (adjust_address_1): Use mode of NEW, not MODE, when setting size.
247         * expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case.
248         * rtl.h (REGNO_PTR_FRAME_P): New macro.
249
250         * expr.c (store_field): Pass tree instead of max size; callers changed.
251         Change handling of alignment.
252         Only copy to_rtx if is TARGET.
253         (expand_expr_unaligned): Delete; callers now use expand_expr.
254         (emit_cmp_insn): No longer take ALIGN parm; all callers changed.
255         (expand_assignment): Change handling of alignment.
256         Only copy to_rtx if was original.
257         (get_inner_reference): No longer return alginment; callers changed.
258         (expand_expr, case COMPONENT_REF): Change handling of alignment.
259         (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned.
260         (compare_from_rtx): Delete ALIGN parm; all callers changed.
261         (do_compare_rtx_and_jump): Likewise.
262         * expr.h: Reflect above changes.
263         * tree.h: Likewise.
264         * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter
265         to get_inner_reference.
266         * builtins.c: Remove ALIGN parm in call to emit_cmp_and_jump_insns.
267         * doloop.c, except.c, explow.c, loop.c, stmt.c, unroll.c: Likewise.
268         * optabs.c: Likewise.
269         (prepare_cmp_insn): Now static; remove ALIGN parm.  Callers changed.
270         (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed.
271         * expmed.c: Remove ALIGN arg from calls to compare_from_rtx,
272         compare_rtx_and_jump, and emit_cmp_jump_insns.
273         * fold-const.c: Remove PALIGN in calls to get_inner_reference.
274         * function.c (assign_stack_temp_for_type): No longer static.
275         * optabs.h (emit_cmp_insn): Remove ALIGN parm.
276         (prepare_cmp_insn): Delete declaration.
277         * rtl.h (assign_stack_temp_for_type): Add declaration.
278         * config/alpha/alpha.c, config/d30v/d30v.c: Reflect above changes.
279         * config/clipper/clipper.c, config/h8300/h8300.c: Likewise.
280         * config/i386/i386.c,config/mips/mips.c: Likewise.
281         * config/i860/i860.c, config/ia64/ia64.c: Likewise.
282         * config/rs6000/rs6000.c, config/sh/sh.c: Likewise.
283
284 2001-11-15  Stan Shebs  <shebs@apple.com>
285
286         * config/rs6000/rs6000.h: Fix a comment typo.
287         (RTX_COSTS): Sort processor versions better.
288
289 2001-11-15  Kazu Hirata  <kazu@hxi.com>
290
291         * config/h8300/h8300.md: Fix insn length of bit insns.
292
293 2001-11-15  Jason Merrill  <jason@redhat.com>
294
295         * dwarf2out.c (dwarf2out_finish): Don't abort because of orphan
296         DIEs if there were errors in the source.
297
298         * config/alpha/alpha-interix.h, config/alpha/elf.h,
299         config/arm/coff.h, config/i386/djgpp.h, config/i386/i386.c,
300         config/i386/i386.h, config/i386/sco5.h, config/i960/i960-coff.h,
301         config/m68k/coff.h, config/m88k/m88k.h, config/m88k/m88k.c,
302         config/pa/pa64-hpux.h, config/sh/sh.h, config/sparc/litecoff.h,
303         config/elfos.h, config/lynx.h, config/netware.h,
304         config/m68hc11/m68hc11.h, config/mcore/mcore-pe.h,
305         config/s390/linux64.h: Remove definitions of INT_ASM_OP, change
306         uses to use ASM_LONG.
307
308 2001-11-15  Alan Matsuoka  <alanm@redhat.com>
309
310         * gensupport.c  process_include : Change call to alloca to
311         xmalloc.
312
313 2001-11-15  Aldy Hernandez  <aldyh@redhat.com>
314
315         * config/rs6000/rs6000.md: Use spaces instead of tabs in output
316         templates.
317
318 Thu Nov 15 08:36:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
319
320         * final.c (alter_subreg): If simplify_subreg can't do anything,
321         handle REG ourselves and abort for others.
322
323 2001-11-15  Richard Hodson  <hodsonr@dionecorp.com>
324
325         * config/h8300/h8300.c (dosize): Avoid corrupting R3 in interrupt
326         routines.
327
328 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
329
330         * fix-header.c (read_scan_file): Update.
331
332 Thu Nov 15 08:36:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
333
334         * toplev.c (toplev_main): Don't start timing until after
335         command-line options are parsed.
336
337 2001-11-15  Andreas Schwab  <schwab@suse.de>
338
339         * config.gcc: Set STMP_FIXPROTO and FIXPROTO_DEFINES in target
340         makefile frag, not host makefile frag.
341         (m88k-dg-dguxbcs*): Add m88k/t-dgux to tmake_file.
342         (hppa*): Add pa/t-bsd to tmake_file where no special xmake_file is
343         used.
344         (hppa*-*-openbsd*): Don't use nonexitent pa/t-openbsd.
345         * config/m88k/t-dguxbcs: Remove definitions already in t-dgux.
346         * config/m88k/t-dgux (STMP_FIXPROTO): Define.
347         * config/i386/t-cygwin (STMP_FIXPROTO): Define.
348         * config/i386/t-dgux (STMP_FIXPROTO): Define.
349         * config/x-interix: Don't define STMP_FIXPROTO and
350         FIXPROTO_DEFINES.
351         * config/t-interix: New file, define STMP_FIXPROTO.
352         * config/i386/x-beos (STMP_FIXPROTO): Don't define here.
353         * config/i386/t-beos (STMP_FIXPROTO): Define here instead.
354         * config/t-svr4 (FIXPROTO_DEFINES): Define.
355         * config/arm/t-riscix (FIXPROTO_DEFINES): Define.
356         * config/i386/t-sco5 (FIXPROTO_DEFINES): Define.
357         * config/i386/t-sco5gas (FIXPROTO_DEFINES): Define.
358         * config/m68k/t-hp3200: Renamed from x-hp3200.
359         * config/i370/t-oe: Renamed from x-oe.
360         * config/mips/t-iris: Renamed from x-iris.
361         * config/pa/t-bsd: Renamed from x-pa.
362         * config/pa/t-pa-hpux: Renamed from x-pa-hpux.
363         * config/x-linux, config/i386/x-cygwin, config/i386/x-dgux,
364         config/m88k/x-dgux, config/x-svr4, config/arm/x-riscix,
365         config/i386/x-sco5, config/m68k/x-hp320g, config/mips/x-iris6,
366         config/rs6000/x-cygwin: Remove files.
367
368         * configure.in: Check for target objdump and use that in eh_frame
369         optimization test.
370         * configure: Regenerated.
371
372 2001-11-15  Jakub Jelinek  <jakub@redhat.com>
373
374         * jump.c (squeeze_notes): Return true if no real insns were found.
375         * rtl.h (squeeze_notes): Adjust prototype.
376         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): If
377         squeeze_notes finds no real instructions, abort.
378         (merge_blocks_move_successor_nojumps): Likewise.
379         * loop.c (find_and_verify_loops): Likewise.
380         * stmt.c (expand_end_case): Likewise.
381         * ifcvt.c (dead_or_predicable): Return TRUE if squeeze_notes doesn't
382         find any real instructions.
383
384         * config/ia64/ia64.c (ia64_adjust_cost): Handle SUBREGs.
385
386         * cfgcleanup.c (try_optimize_cfg): If try_simplify_condjump optimized
387         conditional jump, request updating life into for the block
388         containing it.  Fix a typo which prevented life info update.
389         Clear blocks bitmap before using it.
390
391 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
392
393         * c-common.c: Include c-lex.h.
394         (c_common_lang_init): Change prototype.  Call init_c_lex and
395         init_pragma from here.
396         * c-common.h (c_common_lang_init): Change prototype.
397         * c-decl.c (init_decl_processing): Rename.  Call c_parse_init.
398         * c-lang.c (c_init): Change prototype.  Update.
399         (c_init_options): Update.
400         * c-lex.c (cpp_filename): Remove.
401         (init_c_lex): Update.  Read the main file, and get the original
402         file name.
403         (yyparse): Finish the command line options.
404         * c-parse.in (c_parse_init): Call init_reswords here.
405         (init_parse): Remove.
406         * c-tree.h (c_init_decl_processing): New.
407         * cpphash.c (_cpp_init_hashtable): After initializing the hash
408         table, populate it.
409         * cppinit.c (read_original_filename, cpp_finish_options): New.
410         (cpp_create_reader): New prototype. Defer hash table initialization.
411         (cpp_start_read): Rename cpp_read_main_file.  Initialize the
412         hash table.  Get the original filename.
413         * cpplib.h (cpp_create_reader): Update.
414         (cpp_start_read): Remove.
415         (cpp_read_main_file, cpp_finish_options): New.
416         * cppmain.c (main, do_preprocessing): Update.
417         * langhooks.h (struct langhooks): Update init prototype.
418         * toplev.c (general_init, parse_options_and_default_flags,
419         process_options, lang_indpendent_init, lang_dependent_init,
420         init_asm_output): New; perform the bulk of initialization.
421         (compile_file): Move most of initialization to above functions.
422         (debug_hooks): Initialize statically.
423         (set_Wunused): Relocate.
424         (toplev_main): Move most of initialization to other init functions.
425         Have a clear logic flow.
426         * tree.h (init_parse, init_decl_processing): Remove.
427 objc:
428         * objc-act.c (objc_init): Update prototype, combine with old
429         init_parse.
430         (objc_init_options): Update.
431
432
433 2001-11-15  Andreas Jaeger  <aj@suse.de>
434
435         * cfgrtl.c (purge_all_dead_edges): Use int as argument for
436         portability.
437         * basic-block.h: Adjust prototype.
438
439 2001-11-15  Kazu Hirata  <kazu@hxi.com>
440
441         * config/rs6000/aix31.h: Fix comment formatting.
442         * config/rs6000/beos.h: Likewise.
443         * config/rs6000/darwin.h: Likewise.
444         * config/rs6000/eabi.asm: Likewise.
445         * config/rs6000/linux.h: Likewise.
446         * config/rs6000/linux64.h: Likewise.
447         * config/rs6000/lynx.h: Likewise.
448         * config/rs6000/netbsd.h: Likewise.
449         * config/rs6000/rs6000.c: Likewise.
450         * config/rs6000/rs6000.h: Likewise.
451         * config/rs6000/rs6000.md: Likewise.
452         * config/rs6000/sol2.h: Likewise.
453         * config/rs6000/tramp.asm: Likewise.
454         * config/rs6000/xcoff.h: Likewise.
455         * config/rs6000/xm-beos.h: Likewise.
456
457 2001-11-14  Alan Matsuoka  <alanm@redhat.com>
458
459         * rtl.def (INCLUDE) : Define.
460         * gensupport.c  (init_include_reader, process_include,
461         save_string) :  New functions to implement an include facility
462         in .md files.
463         * gensupport.h : Add prototype for init_md_reader_args.
464         * genattr.c genattrtab.c gencodes.c genconfig.c genemit.c
465         genextract.c genflags.c genopinit.c genoutput.c
466         genpeep.c genrecog.c: Change call to init_md_reader to
467         init_md_reader_args.
468         * md.texi: Document (include "path") and -I directives for RTL
469         generation tools.
470
471 2001-11-14  DJ Delorie  <dj@redhat.com>
472
473         * integrate.c (get_hard_reg_initial_reg): New.
474         * integrate.h (get_hard_reg_initial_reg): Prototype.
475         * local-alloc.c (block_alloc): Don't tie pseudos that
476         represent call-saved hard regs' initial values.
477
478 2001-11-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
479
480         * m68k/linux.h: Include <linux.h> not "linux.h" to avoid infinite
481         recursion.
482
483 2001-11-14  Roger Sayle <roger@eyesopen.com>
484
485         * fold-const.c (fold): Optimize strlen comparisons against zero.
486
487 2001-11-14  David O'Brien  <obrien@FreeBSD.org>
488
489         * config.gcc (sparc64-wrs-vxworks*, sparc-*-netbsd*, sparc-*-openbsd*,
490         sparc-*-chorusos*, sparc-*-elf*, sparc-*-linux*aout*,
491         sparc-*-linux*libc1*, sparc-*-linux*, sparc-*-lynxos*, sparc-*-rtems*,
492         sparc-*-rtemself*, sparc-hal-solaris2*, sparc-*-solaris2*,
493         sparc-*-sunos4.0*, sparc-*-sunos4*, sparc-*-sunos3*, sparc-*-sysv4*,
494         sparc-*-vxsim*, sparclite-*-aout*, sparclite-*-elf*, sparc86x-*-aout*,
495         sparc86x-*-elf*, sparc64-*-aout*, sparc64-*-elf*, sparc64-*-linux*):
496         Include various CPU headers via tm_file.  a.out based platforms now
497         properly include sparc/aout.h.  sol2.h usage now implies including
498         elfos.h, svr4.h, and sparc/sysv4.h.
499         * config/netbsd.h (TARGET_MEM_FUNCTIONS): Undef before defining it.
500         Also define to '1'.
501         * sparc/sparc.h (CPP_PREDEFINES, TARGET_VERSION, WORD_SWITCH_TAKES_ARG,
502         SELECT_SECTION, ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP,
503         DATA_SECTION_ASM_OP, DBX_REGISTER_NUMBER, ASM_OUTPUT_SOURCE_LINE):
504         Remove.  They are a.out specific and belong in sparc/aout.h.
505         * sparc/aout.h (TARGET_VERSION, WORD_SWITCH_TAKES_ARG, SELECT_SECTION,
506         ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
507         DBX_REGISTER_NUMBER, ASM_OUTPUT_SOURCE_LINE): Define.  Moved here from
508         sparc/sparc.h.
509         * sparc/litecoff.h (WORD_SWITCH_TAKES_ARG, ASM_DECLARE_FUNCTION_NAME,
510         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, DBX_REGISTER_NUMBER): Define.
511         Moved here from sparc/sparc.h.
512         * config/sparc/linux-aout.h (DEFAULT_PCC_STRUCT_RETURN): Undef before
513         defining.
514         * config/sparc/linux64.h (UNALIGNED_DOUBLE_INT_ASM_OP): Undef before
515         * config/sparc/lynx.h:  Don't include lynx.h.
516         (SELECT_SECTION): Do not undef.
517         * config/sparc/openbsd.h: Don't include sparc/sparc.h.
518         * config/sparc/sol2-sld-64.h: Include sparc/sparc.h, elfos.h, svr4.h,
519         and sparc/sysv4.h.
520         * config/sparc/sol2.h: Don't include sparc/sparc.h and sparc/sysv4.h.
521         * config/sparc/sp64-aout.h (CPP_PREDEFINES): Don't define.  Get from
522         sparc/aout.h now.
523         * config/sparc/sp64-elf.h (DWARF_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO):
524         Don't undef, there is no need.
525         * config/sparc/splet.h (CPP_PREDEFINES): Define.
526         * config/sparc/sun4o3.h (CPP_PREDEFINES): Likewise.
527         * config/sparc/sunos4.h (CPP_PREDEFINES): Likewise.
528         Don't include sparc/sparc.h.
529         * config/sparc/sysv4.h (WORD_SWITCH_TAKES_ARG, ASM_OUTPUT_SOURCE_LINE,
530         SELECT_SECTION, ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP,
531         DATA_SECTION_ASM_OP): Don't undef, there is no need now.  Don't include
532         elfos.h and svr4.h.
533         (TARGET_VERSION): Define.
534         * config/sparc/vxsim.h (TARGET_VERSION): Define.
535
536 Wed Nov 14 19:46:08 CET 2001  Jan Hubicka  <jh@suse.cz>
537
538         * cfglayout.c (fixup_fallthru_exit_predecesor): New static function.
539         (cfg_layout_finalize): Use it.
540         * bb-reorder.c (HAVE_epilogue): Remove.
541         (make_reorder_chain): Do not care special placement of
542         last basic block.
543
544         * predict.c (expected_value_to_br_prob): Delete the note
545         once transformed.
546
547         * c-decl.c (c_expand_body): Fix TV_EXPAND nesting problem;
548         measure integration time separately.
549
550 Wed Nov 14 12:30:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
551
552         * function.c (struct temp_slot): ALIGN now unsigned.
553
554 2001-11-14  Kazu Hirata  <kazu@hxi.com>
555
556         * config/dsp16xx/dsp16xx.c: Fix comment formatting.
557         * config/dsp16xx/dsp16xx.h: Likewise.
558         * config/dsp16xx/dsp16xx.md: Likewise.
559
560 2001-11-14  Kazu Hirata  <kazu@hxi.com>
561
562         * config/h8300/h8300.c (get_shift_alg): Reorganize the code
563         that deals with 7-bit shifts in HImode.
564
565 Wed Nov 14 14:17:05 CET 2001  Jan Hubicka  <jh@suse.cz>
566
567         * dbxout.c (dbxout_symbol_location): Update call of alter_subreg.
568         * final.c (walk_alter_subreg): Take pointer; update call of alter_subreg.
569         (final_scan_insn): Update call of alter_subreg.
570         (cleanup_subreg_operands): Likewise.
571         (alter_subreg): Rewrite using simplify_subreg.
572         (output_address, output_operand): Update call of alter_subreg.
573         * output.h (alter_subreg): Update prototype.
574         * sdbout.c (sdbout_symbol): Update call of alter_subreg.
575         * simplify-rtx.c (simplify_subreg): Copy ORIGINAL_REGNO.
576         * Makefile.in (final.o): Add depdendancy on expr.h
577
578 Wed Nov 14 06:37:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
579
580         * c-lang.c (finish_file): Make I unsigned to eliminate warning.
581
582 2001-11-13  Jeff Sturm  <jsturm@one-point.com>
583
584         * doc/install.texi (sparc-*-linux*): Mention requirements for
585         binutils and glibc.
586
587 2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
588
589         * Makefile.in (POD2MAN): Don't include --section=1.
590         (manext): Rename to man1ext.  All users changed.
591         (man7ext): New.
592         (man7dir): New.
593         (generated-manpages): Also depend on $(docdir)/gfdl.7,
594         $(docdir)/gpl.7, and $(docdir)/fsf-funding.7.
595         ($(docdir)/gcov.1, $(docdir)/cpp.1, $(docdir)/gcc.1): Include
596         --section=1 in calls to $(POD2MAN).
597         ($(docdir)/gfdl.7, $(docdir)/gpl.7, $(docdir)/fsf-funding.7): New.
598         (maintainer-clean, install, uninstall): Handle the new man pages.
599         ($(docdir)/cpp.info, cpp.dvi): Depend on fdl.texi.
600         (installdirs): Create man7dir.
601         * doc/cpp.texi: Include GFDL in this manual.  In the man page,
602         refer to gfdl(7) for the GFDL.  Apply Front Cover and Back Cover
603         texts to man page.  Include gpl(7), gfdl(7) and fsf-funding(7) in
604         the SEE ALSO man page section.
605         * doc/gcov.texi: Apply GFDL to man page.  Include gpl(7), gfdl(7)
606         and fsf-funding(7) in the SEE ALSO man page section.
607         * doc/invoke.texi: Apply GFDL to man page.  Include gpl(7),
608         gfdl(7) and fsf-funding(7) in the SEE ALSO man page section.
609         * doc/include/fdl.texi, doc/include/funding.texi,
610         doc/include/gpl.texi: Adjust for conversion by texi2pod.pl.
611         * doc/.cvsignore: Add gfdl.7, gpl.7 and fsf-funding.7.
612
613 2001-11-13  Richard Henderson  <rth@redhat.com>
614
615         * dwarf2asm.c (dw2_force_const_mem): Set PUBLIC or STATIC
616         as appropriate for the artificial decl.
617
618 2001-11-13  Richard Henderson  <rth@redhat.com>
619
620         * loop.c (combine_movables): Turn off combination until
621         move_movables validation bugs are fixed.
622
623 2001-11-13  DJ Delorie  <dj@redhat.com>
624
625         * config.gcc (powerpc|rs6000): Set default cpp options based
626         on --with-cpu settings.
627         * config/rs6000/softfloat.h: New.
628
629 2001-11-13  Kazu Hirata  <kazu@hxi.com>
630
631         * config/h8300/h8300.c (shift_alg_si): Use special code for
632         25-bit shifts on H8/S.
633         (get_shift_alg): Generate special code for 25-bit shifts on
634         H8/S.
635
636 2001-11-13  Jakub Jelinek  <jakub@redhat.com>
637
638         * emit-rtl.c (adjust_address_1): Add ADJUST argument.
639         (adjust_automodify_address_1): New.
640         * expr.h (adjust_address, adjust_address_nv): Adjust.
641         (adjust_automodify_address, adjust_automodify_address_nv): Define.
642         (adjust_address_1): Update prototype.
643         (adjust_automodify_address_1): Add prototype.
644         * expr.c (move_by_pieces_1): Use adjust_automodify_address.
645         (store_by_pieces_2): Likewise.
646
647 Tue Nov 13 05:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
648
649         * Makefile.in (explow.o): Now depends on ggc.h.
650         * explow.c (ggc.h): Include.
651         (set_stack_check_libfunc): Mark stack_check_libfunc as ggc root.
652
653         * Makefile.in (expr.o): Depends on insn-attr.h.
654         * expr.c (insn-attr.h): New include.
655         (force_operand): If INSN_SCHEDULING, deal with paradoxical SUBREG
656         of MEM.
657         (highest_pow2_factor, case INTEGER_CST): Handle negative values.
658         (expand_expr): Remove unneeded mark_temp_addr_taken calls and
659         clean up related usage in ADDR_EXPR.
660         (expand_expr_unaligned): Likewise.
661
662         * emit-rtl.c (change_address): Fix typo in alias setting.
663
664 2001-11-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
665
666         * Makefile.in (cfgcleanup.o): Depend on insn-config.h
667
668 2001-11-12  Craig Rodrigues  <rodrigc@gcc.gnu.org>
669
670         PR bootstrap/3451
671         * c-pragma.c: Rename macros BAD, BAD2, BAD_ACTION to
672         GCC_BAD, GCC_BAD2, GCC_BAD_ACTION.
673
674 2001-11-12  David O'Brien  <obrien@FreeBSD.org>
675
676         * config.gcc (sparc-tti-*, sparc64-wrs-vxworks*, sparc-wrs-vxworks*,
677         sparclite-wrs-vxworks*, sparc-*-aout*, sparc-*-netbsd*,
678         sparc-*-chorusos*, sparc-*-linux*aout*, sparc-*-linux*libc1*,
679         sparc-*-linux*, sparc-*-lynxos*, sparc-*-rtemsaout*, sparc-*-rtems*,
680         sparc-*-rtemself*, sparc-*-solaris2*, sparc-*-sunos3*, sparc-*-sysv4*,
681         sparc-*-vxsim*, sparclet-*-aout*, sparclite-*-coff*, sparclite-*-aout*,
682         sparc86x-*-aout*, sparc86x-*-elf*, sparc64-*-aout*, sparc64-*-elf*,
683         sparc64-*-linux*):  Include various CPU headers via tm_file.
684         * config/svr3.h (ASM_OUTPUT_IDENT): Undef before defining it.
685         (SELECT_SECTION): Likewise.
686         (SELECT_RTX_SECTION): Likewise.
687         * config/sparc/sparc_bi.h: New file.
688         * config/sparc/aout.h: Don't include sparc/sparc.h and aoutos.h.
689         * config/sparc/linux-aout.h: Likewise.
690         * config/sparc/linux.h: Don't include sparc/sysv4.h.
691         * config/sparc/linux64.h: Likewise.
692         (SPARC_BI_ARCH): Don't define.  sparc_bi.h will do it instead.
693         * config/sparc/lite.h:  Don't include sparc/sparc.h and gofast.h.
694         * config/sparc/litecoff.h: Don't include sparc/lite.h, svr3.h,
695         and dbxcoff.h
696         (ASM_OUTPUT_IDENT): Do not #undef.
697         (SELECT_SECTION): Likewise.
698         (SELECT_RTX_SECTION): Likewise.
699         * config/sparc/liteelf.h: Don't include gofast.h.
700         * config/sparc/lynx-ng.h: Don't include sparc/sparc.h and lynx-ng.h.
701         * config/sparc/lynx.h: Don't include sparc/sparc.h.
702         * config/sparc/pbd.h: Likewise.
703         * config/sparc/netbsd.h: Don't include sparc/sparc.h and netbsd.h.
704         * config/sparc/rtems.h: Don't include sparc/aout.h and rtems.h.
705         * config/sparc/rtemself.h: Don't include rtems.h.
706         * config/sparc/sol2-64.h: Don't include sparc/sol2-sld-64.h.
707         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Don't define, include
708         sparc_bi.h instead.
709         * config/sparc/sol2-sld.h: Don't include sparc/sol2.h.
710         * config/sparc/sol2.h: Include sparc/sparc.h directly.
711         * config/sparc/sp64-aout.h: Don't include sparc/sparc.h and aoutos.h.
712         * config/sparc/sp64-elf.h: Don't include sparc/sol2.h.
713         * config/sparc/sp86x-aout.h: Don't include sparc/sparc.h and gofast.h.
714         * config/sparc/sp86x-elf.h: Don't include gofast.h.
715         * config/sparc/splet.h: Don't include sparc/aout.h.
716         * config/sparc/sun4o3.h: Don't include sparc/sparc.h.
717         * config/sparc/sysv4.h: Don't include sparc/sparc.h directly.
718         * config/sparc/vxsim.h: Don't include sparc/sysv4.h.
719         * config/sparc/vxsparc.h: Don't include sparc/aout.h and gofast.h.
720         * config/sparc/vxsparc64.h: Don't include gofast.h.
721         (SPARC_BI_ARCH): Don't define.  sparc_bi.h will do it instead.
722
723 2001-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
724
725         * doc/standards.texi: Mention C99 TC1.
726
727 2001-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
728
729         * mips-protos.h (mips_output_conditional_branch): Const-ify.
730         * mips.c (mips_output_conditional_branch): Likewise.
731
732 2001-11-12  Kazu Hirata  <kazu@hxi.com>
733
734         * config/h8300/h8300.c (shift_alg_si): Use special code for
735         15-bit logical shifts and 31-bit logical shifts.
736         (get_shift_alg): Generate special code for 15-bit and 31-bit
737         logical shifts.
738
739 2001-11-12  Kazu Hirata  <kazu@hxi.com>
740
741         * config/h8300/h8300.c (shift_alg_qi): Use rotations when
742         doing 6-bit logical shifts on H8/S.
743         (shift_alg_qi): Use special code for 21-bit shifts on H8/S.
744         (get_shift_alg): Generate special code for 21-bit shifts on
745         H8/S.
746
747 2001-11-12  Kazu Hirata  <kazu@hxi.com>
748
749         * config/h8300/h8300.c (get_shift_alg): Remove a redundant
750         label.
751
752 Mon Nov 12 11:58:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
753
754         * alias.c (nonoverlapping_memrefs_p): Only update size from memref
755         if both size and offset known.
756
757 2001-11-12  David O'Brien  <obrien@FreeBSD.org>
758
759         * config/ia64/freebsd.h: Fix misspelling.
760
761 2001-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
762
763         * doc/gcc.texi: Move several chapters out to ...
764         * doc/configterms.texi, doc/fragments.texi, doc/hostconfig.texi,
765         doc/include/linux-and-gnu.texi, doc/interface.texi,
766         doc/makefile.texi, doc/passes.texi, doc/portability.texi:
767         ... here.  New files.
768         * doc/gcc.texi, doc/contrib.texi: Move section headings into
769         contrib.texi.
770         * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies.
771
772 2001-11-12  Kazu Hirata  <kazu@hxi.com>
773
774         * config/alpha/alpha-interix.h: Fix comment formatting.
775         * config/alpha/alpha.c: Likewise.
776         * config/alpha/alpha.h: Likewise.
777         * config/alpha/alpha32.h: Likewise.
778         * config/alpha/freebsd.h: Likewise.
779         * config/alpha/unicosmk.h: Likewise.
780         * config/alpha/vms.h: Likewise.
781
782 2001-11-12  Kazu Hirata  <kazu@hxi.com>
783
784         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
785
786 2001-11-12  Jakub Jelinek  <jakub@redhat.com>
787
788         * dbxout.c (dbxout_symbol_location): Avoid emitting invalid register
789         numbers.
790
791 Mon Nov 12 05:18:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
792
793         * emit-rtl.c (set_mem_attributes): If making object, can set alignment
794         from type.
795         (replace_equiv_address): Call update_temp_slot_address.
796
797         * dwarf2out.c (loc_descriptor_from_tree, case COMPOUND_EXPR): New case.
798
799         * alias.c (nonoverlapping_memrefs_p): Handle DECL_RTL being a CONCAT.
800
801 2001-11-12  Kazu Hirata  <kazu@hxi.com>
802
803         * config/h8300/h8300.c (shift_alg_qi): New.
804         (shift_alg_hi): Likewise.
805         (shift_alg_si): Likewise.
806         (get_shift_alg): Change the type of count to unsigned int.
807         Use the tables.
808
809 2001-11-11  Alexandre Oliva  <aoliva@redhat.com>
810
811         * Makefile.in (c-lang.o): Depend on $(VARRAY_H).
812         * c-decl.c (c_expand_body): Take argument can_defer_p.  Use it
813         to decide whether to defer a function.
814         (finish_function): Adjust.
815         (c_expand_deferred_function): New function.
816         * c-lang.c (deferred_fns): New variable.
817         (c_init): Initialize it, and mark it as a root.
818         (defer_fn): New function.
819         (finish_file): Expand all deferred functions.
820         * c-tree.h (defer_fn): Declare.
821         (c_expand_deferred_function): Likewise.
822         * objc/Make-lang.in (objc-act.o): Depend on $(VARRAY_H).
823         * objc-act.c (deferred_fns): New variable.
824         (objc_init): Initialize it, and mark it as a root.
825         (defer_fn): New function.
826         (finish_file): Expand all deferred functions.
827
828 2001-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
829
830         * alpha.c (unicosmk_special_name): Prototype.
831         (unicosmk_ssib_name): Delete unused variable.
832         * alpha/unicosmk.h (common_section, ssib_section): Prototype.
833         * alpha/vms.h (PREFIX): Undef before defining.
834         * arm/pe.h (SUBTARGET_NAME_ENCODING_LENGTHS): Likewise.
835         * i370/i370.c (mvs_hash_alias): Prototype.  Wrap with macro
836         controlling usage.  Const-ify.
837         (alias_number): Delete unused variable.
838         * m32r/m32r.c (m32r_sched_init): Add missing argument.
839         (m32r_expand_block_move): Fix uninitialized warnings.
840         * mn10300/mn10300.h (REGNO_IN_RANGE_P): Fix 'unsigned >=0 is
841         always true' warnings.
842         * openbsd.h (TARGET_MEM_FUNCTIONS): Don't redefine.
843         * sh/sh.c: Include "integrate.h".
844         (output_far_jump): Fix uninitialized warning.
845         * final.c (shorten_branches): Avoid automatic aggregate
846         initialization.
847         * integrate.c (subst_constants): Likewise.
848
849 2001-11-11  Kazu Hirata  <kazu@hxi.com>
850
851         * config/h8300/h8300.c (shift_alg): Remove SHIFT_MAX.
852         (get_shift_alg): Remove redundant code.
853
854 2001-11-11  Kazu Hirata  <kazu@hxi.com>
855
856         * config/pa/milli64.S: Fix comment formatting.
857         * config/pa/pa-64.h: Likewise.
858         * config/pa/pa-linux.h: Likewise.
859         * config/pa/pa-protos.h: Likewise.
860         * config/pa/pa.c: Likewise.
861         * config/pa/pa.h: Likewise.
862         * config/pa/pa32-linux.h: Likewise.
863         * config/pa/pa32-regs.h: Likewise.
864         * config/pa/pa64-hpux.h: Likewise.
865         * config/pa/pa64-regs.h: Likewise.
866         * config/pa/som.h: Likewise.
867
868 2001-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
869
870         * doc/gcc.texi: Move several chapters out to ...
871         * doc/bugreport.texi, doc/contribute.texi, doc/frontends.texi,
872         doc/service.texi, doc/standards.texi, doc/trouble.texi,
873         doc/vms.texi: ... here.  New files.
874         * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies.
875
876 2001-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
877
878         * ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog,
879         cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c,
880         collect2.c, combine.c, config.in, configure, configure.in,
881         conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c,
882         genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c,
883         reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix
884         spelling errors.
885
886 Sun Nov 11 05:56:01 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
887
888         * config/rs6000/rs6000.c (rs6000_hash_constant, toc_hash_eq):
889         Adjust operand number in CONST_DOUBLE.
890
891         * expmed.c (extract_bit_field): No longer pass in alignment.
892         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
893         (store_bit_field, store_fixed_bit_field, store_split_bit_field):
894         Likewise.
895         * expr.c (store_constructor, store_constructor_field): Likewise.
896         (store_field, emit_group_load, emit_group_store): Likewise.
897         * expr.h (emit_group_load, emit_group_store): Delete ALIGN parm.
898         (store_bit_field, extract_bit_field): Likewise.
899         * calls.c, expr.c, function.c: Change calls to above functions.
900         * ifcvt.c, stmt.c: Likewise.
901
902         * alias.c (nonoverlapping_memrefs_p): Not overlapping if one base is
903         constant and one is on frame.
904         If know memref offset, adjust size from decl.
905
906 2001-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
907
908         * alpha/unicosmk.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Fix
909         format specifier warning.
910         * convex.h (ASM_OUTPUT_BYTE): Likewise.
911         * elfos.h (ALIGN_ASM_OP): Undef before defining.
912         * i386/att.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
913         warning.
914         * i386/bsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
915         * i386/gas.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
916         * i386-interix.h (gen_stdcall_suffix): Prototype.
917         * i386.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
918         * i386elf.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
919         ASM_OUTPUT_LONG_DOUBLE): Likewise.
920         * i386/interix.c (gen_stdcall_suffix): Const-ify.
921         * i386/next.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
922         ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Fix format
923         specifier warnings.
924         * i386/osfrose.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
925         * i386/ptx4-i.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
926         ASM_OUTPUT_LONG_DOUBLE): Likewise.
927         * i386/sco5.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
928         * i386/sequent.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
929         * i386/sun386.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
930         * i386/svr3dbx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
931         * m68k/3b1.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_LONG_DOUBLE,
932         ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Likewise.
933         * m68k/altos3068.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
934         * m68k/amix.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL):
935         Likewise.
936         * m68k/atari.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL):
937         Likewise.
938         * m68k/crds.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Likewise.
939         * m68k/dpx2.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
940         ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE, ASM_OUTPUT_FLOAT_OPERAND):
941         Likewise.
942         * m68k/hp320.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_BYTE):
943         Likewise.
944         * m68k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE):
945         Likewise.
946         * m68k/m68kv4.h (ASM_OUTPUT_ASCII): Delete unused variable.
947         * m68k/mot3300.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
948         * m68k/news.h (PRINT_OPERAND): Likewise.
949         * m68k/next.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
950         ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
951         * m68k/next21.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
952         * m68k/plexus.h (ASM_SPEC): Insert space between macro name and
953         definition.
954         * m68k/sgs.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
955         ASM_OUTPUT_FLOAT, ASM_OUTPUT_ASCII, ASM_OUTPUT_FLOAT_OPERAND,
956         ASM_OUTPUT_DOUBLE_OPERAND): Fix format specifier warnings.
957         * m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
958         * m68k/tower-as.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_DOUBLE,
959         ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE,
960         PRINT_OPERAND): Likewise.
961         * m88k/m88k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE):
962         Likewise.
963         * mips/elf.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise.
964         * mips/elf64.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise.
965         * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
966         * mips/linux.h (ASM_DECLARE_OBJECT_NAME): Likewise.
967         * mips.c (mips_output_external_libcall): Mark parameter with
968         ATTRIBUTE_UNUSED.
969         (mips_asm_file_start): Move variable into the scope where it's
970         used.
971         * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
972         * mips/netbsd.h (ASM_DECLARE_OBJECT_NAME): Likewise.
973         * mips/sni-gas.h (PUT_SDB_SIZE): Likewise.
974         * ns32k/encore.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
975         * ns32k.c (print_operand): Likewise.
976         * pa.c (print_operand, output_div_insn): Likewise.
977         * pa.h (ASM_OUTPUT_MI_THUNK, ASM_GENERATE_INTERNAL_LABEL,
978         ASM_OUTPUT_BYTE, PRINT_OPERAND_ADDRESS): Likewise.
979         * pa/pa64-hpux.h (UNIQUE_SECTION): Const-ify.
980         * sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Fix format
981         specifier warnings.
982         * sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
983         * sparc/pbd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
984         (ASM_OUTPUT_SOURCE_LINE): Don't list macro arguments in undef.
985         * sparc/vxsim.h (ASM_GENERATE_INTERNAL_LABEL): Fix format
986         specifier warnings.
987         * svr3.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
988
989         * sdbout.c (sdbout_end_epilogue): Mark parameter with
990         ATTRIBUTE_UNUSED.
991         * varasm.c (assemble_global): Likewise.
992
993 2001-11-11  H.J. Lu <hjl@gnu.org>
994
995         * config.gcc: Add "elfos.h svr4.h" to $tm_file for Linux/mips.
996
997 Sun Nov 11 01:26:00 CET 2001  Jan Hubicka  <jh@suse.cz>
998
999         * final.c (*_MAX_SKIP): Use *_max_skip variables.
1000         * flags.h (align_loops_max_skip, align_jumps_max_skip,
1001         align_labels_max_skip): New global variables.
1002         * toplev.c (align_loops_max_skip, align_jumps_max_skip,
1003         align_labels_max_skip): New global variables.
1004         (toplev_main): Set new variables.
1005         * i386.c (override_options): Set max_skip values.
1006
1007 2001-11-10  Geoffrey Keating  <geoffk@redhat.com>
1008
1009         * doc/tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF.
1010         * final.c (output_addr_const): Use ASM_OUTPUT_LABEL_REF.
1011         * config/stormy16/stormy16.c (xstormy16_print_operand): For '%C',
1012         don't print an @fptr for labels either.
1013         (xstormy16_output_addr_vec): Don't print @fptr here.
1014         * config/stormy16/stormy16.h (ASM_OUTPUT_LABEL_REF): New macro.
1015
1016 Sat Nov 10 08:50:50 2001  Jeffrey A Law  (law@cygnus.com)
1017
1018         * ssa-ccp.c (examine_flow_edges): Use old-style definition, not
1019         an ANSI/ISO definitino.
1020         (ssa_const_prop): Likewise.
1021
1022 2001-11-10  Aldy Hernandez  <aldyh@redhat.com>
1023
1024         * config/rs6000/rs6000.c (rs6000_reg_names): Remove leading "v" or
1025         altivec registers.
1026
1027 2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1028
1029         * cppexp.c (parse_number): Use ISXDIGIT/hex_value.
1030         * cpplex.c (hex_digit_value): Use hex_p/hex_value.
1031         * cppmain.c (general_init): Call hex_init.
1032         * tradcif.y (parse_number): Use TOLOWER/ISXDIGIT/hex_value/hex_p.
1033
1034         * config.gcc (i[34567]86-dg-dgux*): Don't set `out_file'.
1035
1036         * i386/dgux.h (ASM_FILE_START): Set to the meaningful portions
1037         of dgux.c:output_file_start().
1038
1039         * i386/dgux.c: Delete file.
1040
1041 2001-11-09  Richard Henderson  <rth@redhat.com>
1042
1043         * config/alpha/alpha.c (decl_in_text_section): New.
1044         (current_file_function_operand): Use it.
1045         (alpha_encode_section_info, alpha_end_function): Likewise.
1046
1047 2001-11-07  David O'Brien  <obrien@FreeBSD.org>
1048
1049         * config.gcc: Add FreeBSD/IA-64 target. Expand config/i64/elf.h headers.
1050         * config/i64/ia64.h (TARGET_VERSION,ASM_SPEC,LINK_SPEC): Remove,
1051         they are OS specific.  Use CPP_CPU_SPEC rather than CPP_PREDEFINES,
1052         so OS specific files and use CPP_PREDEFINES for their needs.
1053         * config/i64/elf.h (TARGET_VERSION): Add.  Also, move inclusion of
1054         target headers to tm_file.
1055         * config/ia64/aix.h (TARGET_VERSION): Likewise.
1056         * config/ia64/hpux.h (TARGET_VERSION): Likewise.
1057         * config/ia64/linux.h (TARGET_VERSION): Likewise.
1058         (FUNCTION_PROFILER): Remove.
1059         * config/ia64/ia64.h (FUNCTION_PROFILER): Update defintion using the
1060         version in config/ia64/linux.h.
1061         * config/ia64/freebsd.h: New file.
1062         * config/freebsd.h: Tidy up.
1063         (_USING_CONFIG_FREEBSD): Define.
1064         (FBSD_CPP_PREDEFINES): Add __KPRINTF_ATTRIBUTE__.
1065         (FBSD_CPP_SPEC): Define generic FreeBSD spec.
1066         (FBSD_STARTFILE_SPEC): Likewise.
1067         (FBSD_ENDFILE_SPEC): Likewise.
1068         (FBSD_LIB_SPEC): Likewise.
1069         (WCHAR_UNSIGNED): Undefine, FreeBSD's wchars are signed.
1070         (USER_LABEL_PREFIX): Define to ELF compatible value as some CPU headers
1071         set an ELF-improper one.
1072
1073 2001-11-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1074
1075         * pa.c (emit_move_sequence): Use cint_ok_for_move to check whether a
1076         constant can be loaded in a single instruction to a register.  When
1077         loading immediate constants, use PLUS instead of HIGH/LO_SUM.  Use
1078         depdi for insertion of most significant 32-bits on 64-bit hosts.
1079         * pa.h (LEGITIMATE_CONSTANT_P): Accept constants that can be built
1080         with ldil/ldo/depdi instruction sequence on 64-bit hosts.
1081         * pa.md: New addmove pattern for adding constant_int to HImode
1082         register and moving result to HImode register.  Remove HImode HIGH
1083         and LO_SUM patterns.
1084
1085 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1086
1087         * Makefile.in: Update.
1088         * c-decl.c (print_lang_decl, print_lang_type): Remove.
1089         (print_lang_identifier): Rename c_print_identifier.
1090         * c-lang.c (LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
1091         (print_lang_statistics, lang_print_xnode): Remove.
1092         * c-parse.in (set_yydebug): Rename c_set_yydebug.
1093         * c-tree.h (c_set_yydebug, c_print_identifier): New.
1094         * langhooks-def.h (lhd_print_tree_nothing, lhd_set_yydebug): New.
1095         LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
1096         LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
1097         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
1098         (LANG_HOOKS_INITIALIZER): Update.
1099         * langhooks.h (struct lang_hooks): New members.
1100         (lang_print_tree_hook): New.
1101         * langhooks.c (lhd_print_tree_nothing, lhd_set_yydebug): New.
1102         * print-tree.c: Include langhooks.h.
1103         (print_node): Update.
1104         * toplev.c (decode_d_option): Update.
1105         * tree.c: Include langhooks.h.
1106         (dump_tree_statistics): Update.
1107         * tree.h (print_lang_statistics, print_lang_decl, print_lang_type,
1108         print_lang_identifier, set_yydebug, lang_print_xnode): Remove.
1109 objc:
1110         * objc-act.c (LANG_HOOKS_PRINT_IDENTIFIER,
1111         LANG_HOOKS_SET_YYDEBUG): Override.
1112         (lang_print_xnode, print_lang_statistics): Remove.
1113
1114 2001-11-09  Richard Henderson  <rth@redhat.com>
1115
1116         * dwarf2asm.c (dw2_force_const_mem): Invoke STRIP_NAME_ENCODING
1117         on the symbol string.
1118
1119 2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1120
1121         * pa/elf.h (ASM_DECLARE_FUNCTION_NAME,
1122         ASM_OUTPUT_EXTERNAL_LIBCALL): Undef before defining.
1123         * config.gcc (hppa1.1-*-rtems*): Remove duplicate clause.
1124
1125         * clipper.h (ASM_OUTPUT_REG_POP): Fix typo.
1126
1127         * tlink.c (recompile_files): Copy strings passed to `putenv'.
1128
1129 2001-11-09  Geoffrey Keating  <geoffk@redhat.com>
1130
1131         * tree.h (TYPE_VOLATILE): Trap use not on TYPEs.
1132         (TYPE_READONLY): Likewise.
1133
1134         * flow.c (insn_dead_p): Allow for AUTO_INC notes all the time.
1135
1136         * config/stormy16/stormy16.h (ASM_SPEC): Revert last change,
1137         don't pass --gdwarf2 to the assembler if the compiler will also
1138         provide debug info.
1139
1140         * config/stormy16/stormy16.c (xstormy16_expand_casesi):
1141         Don't change INDEX.
1142
1143 Fri Nov  9 17:51:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1144
1145         * alias.c (nonoverlapping_memrefs_p): New function.
1146         (true_dependence, canon_true_depenence, write_dependence_p): Call it.
1147
1148         * emit-rtl.c (set_mem_attributes): Get alignments for constants.
1149
1150 2001-11-09  Aldy Hernandez  <aldyh@redhat.com>
1151
1152         * rs6000.h (REG_CLASS_CONTENTS): Add VRSAVE bit to ALL_REGS.
1153         (CONDITIONAL_REGISTER_USAGE): Disable AltiVec registers unless
1154         generating altivec code.
1155         (FIXED_REGISTERS): VRSAVE is fixed.
1156         (CALL_USED_REGISTERS): VRSAVE is call used.
1157
1158 2001-11-09  Jason Eckhardt  <jle@rice.edu>
1159
1160         * config/mips/mips.c (mips_output_conditional_branch): Do not hard
1161         code the branch target as ".+16/.+12", but rather use labels.
1162
1163 Fri Nov  9 11:27:42 2001  Jeffrey A Law  (law@cygnus.com)
1164
1165         * config/pa/milli64.S: Use %r25 and %r0 instead of arg1 and r0
1166         to work around limitations of certain versions of GAS.
1167
1168         * pa.md (mulsi3): Remove PA64 hack to work around SUBREG issues.
1169         (muldi3): Update due to SUBREG_BYTE changes.
1170         (casesi): Similarly.
1171
1172 2001-11-09  Zack Weinberg  <zack@codesourcery.com>
1173
1174         * doc/invoke.texi: Remove comment referring to -xf77-version.
1175
1176 2001-11-09  Kazu Hirata  <kazu@hxi.com>
1177
1178         * config/convex/convex.c: Fix comment formatting.
1179         * config/convex/convex.h: Likewise.
1180
1181 2001-11-08  Zack Weinberg  <zack@codesourcery.com>
1182
1183         * Makefile.in (.po.pox): Look both in srcdir and builddir
1184         for $(PACKAGE).pot.
1185         (po/$(PACKAGE).pot): Don't move-if-change the new potfile over
1186         to the source directory.
1187
1188 2001-11-09 Ben Elliston  <bje@redhat.com>
1189            Michael Meissner  <meissner@redhat.com>
1190            Andrew MacLeod  <amacleod@redhat.com>
1191            Richard Henderson  <rth@redhat.com>
1192            Nick Clifton  <nickc@redhat.com>
1193            Catherine Moore  <clm@redhat.com>
1194
1195         * m32r.c: Add support for m32rx processor.
1196         * m32r.h: Ditto.
1197         * m32r.md: Ditto.
1198         * t-m32r: Ditto.
1199         * m32r-protos.h: Add prototypes for m32rx functions.
1200         * doc/invoke.texi: Document -m32rx option.
1201
1202 2001-11-09  Jakub Jelinek  <jakub@redhat.com>
1203
1204         * config/sparc/sparc.md (movdf): Avoid calling validize_mem during
1205         or after reload.
1206
1207 2001-11-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1208
1209         * doc/install.texi2html: Use $MAKEINFO --no-split.
1210
1211 2001-11-09  Andreas Schwab  <schwab@suse.de>
1212
1213         * Makefile.in ($(HOST_PREFIX_1)rtl.o,
1214         $(HOST_PREFIX_1)print-rtl.o, $(HOST_PREFIX_1)bitmap.o,
1215         $(HOST_PREFIX_1)vfprintf.o, $(HOST_PREFIX_1)doprint.o,
1216         $(HOST_PREFIX_1)strstr.o, $(HOST_PREFIX_1)errors.o,
1217         $(HOST_PREFIX_1)ggc-none.o): Update dependencies.
1218
1219 2001-11-09  H.J. Lu <hjl@gnu.org>
1220
1221         * config/mips/mips.c (mips_output_function_prologues): Cast
1222         `tsize' to long for output.
1223
1224 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1225
1226         * c-lang.c (LANG_HOOKS_NAME): New.
1227         (lang_hooks): Constify.
1228         (c_init_options): Update.
1229         (lang_identify): Remove.
1230         * c-parse.in (language_string): Remove.
1231         * dbxout.c: Include langhooks.h.
1232         (dbxout_symbol_location): Update.
1233         * dwarf2out.c: Include langhooks.h.
1234         (gen_compile_unit_die): Update.
1235         * dwarfout.c: Include langhooks.h.
1236         (prototyped_attribute, output_compile_unit_die): Update.
1237         * langhooks-def.h (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): New.
1238         (LANG_HOOKS_INITIALIZER): Update.
1239         * langhooks.h (struct lang_hooks): New members.  Constify.
1240         * stringpool.c: Don't include toplev.h.
1241         (set_identifier_size): Remove.
1242         * toplev.c (toplev_main): Initialize identifier size.
1243         (print_version): Update.
1244         * tree.h (language_string, init_lex, lang_identify,
1245         set_identifier_size): Remove.
1246         * Makefile.in: Update dependencies.
1247         * config/darwin.c: Include langhooks.h.
1248         (func_name_maybe_scoped): Update.
1249         * config/darwin.h (ASM_END_FILE): Update.
1250         * config/nextstep.h (ASM_END_FILE): Update.
1251         * config/nextstep21.h (ASM_END_FILE): Update.
1252         * config/i386/sun386.h (ASM_END_FILE): Update.
1253         * config/rs6000/rs6000.c (ASM_END_FILE): Include langhooks.h.
1254         (rs6000_output_function_epilogue): Update.
1255 objc:
1256         * objc-act.c (LANG_HOOKS_NAME): Override.
1257         (struct lang_hooks): Constify.
1258         (objc_init_options): Update.
1259         (lang_identify): Remove.
1260
1261 Fri Nov  9 00:25:18 EST 2001  John Wehle  (john@feith.com)
1262
1263         * fold-const.c (lshift_double): Honor PREC.
1264         (rshift_double): Likewise.
1265
1266 2001-11-08  Kazu Hirata  <kazu@hxi.com>
1267
1268         * config/1750a/1750a.c: Fix comment formatting.
1269         * config/1750a/1750a.h: Likewise.
1270
1271 2001-11-08  Phil Edwards  <pedwards@disaster.jaj.com>
1272
1273         * configure.in (--enable-languages): Be more permissive about
1274         syntax.  Check for empty lists better.  Warn about $LANGUAGES.
1275         * configure: Regenerated.
1276
1277 2001-11-08  Richard Henderson  <rth@redhat.com>
1278
1279         * dwarf2asm.c (dw2_force_const_mem): Fix typo.
1280
1281 2001-11-08  Geoffrey Keating  <geoffk@redhat.com>
1282
1283         * config.gcc: Rename stormy16 to xstormy16.
1284         * config/stormy16/stormy-abi: Likewise.
1285         * config/stormy16/stormy16-protos.h: Likewise.
1286         * config/stormy16/stormy16.c: Likewise.
1287         * config/stormy16/stormy16.h: Likewise.
1288         * config/stormy16/stormy16.md: Likewise.
1289
1290 2001-11-06  Geoffrey Keating  <geoffk@redhat.com>
1291
1292         * tree.h (TYPE_VOLATILE): Add enable-checking code.
1293         (TYPE_READONLY): Likewise.
1294
1295 Thu Nov  8 18:00:55 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1296
1297         * reload1.c (reload): Don't delete equiv insn if can throw.
1298
1299         * expr.c (emit_block_move): If X is readonly emit CLOBBER for it.
1300         (clear_storage): Likewise, for OBJECT.
1301
1302 Thu Nov  8 16:23:51 2001  Jeffrey A Law  (law@cygnus.com)
1303
1304         * pa.c (emit_move_sequence): Fix SUBREG expression to
1305         use proper byte offset when extending a constant from
1306         SImode to DImode.
1307
1308 2001-11-09  Jakub Jelinek  <jakub@redhat.com>
1309
1310         * cfgrtl.c (purge_dead_edges): Remove REG_EH_REGION note for insns
1311         which cannot throw.
1312
1313 Thu Nov  8 18:00:55 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1314
1315         * explow.c (convert_memory_address, case SUBREG): Only return
1316         inner object if SUBREG_PROMOTED_VAR_P or known to be pointer.
1317
1318 2001-11-08  Richard Henderson  <rth@redhat.com>
1319
1320         * Makefile.in (GCC_FOR_TARGET): Add build_tooldir/sys-include.
1321         (CROSS_SYSTEM_HEADER_DIR): Use build_tooldir not tooldir.
1322         (ORDINARY_FLAGS_TO_PASS, stmp-fixinc): Likewise.
1323
1324 2001-11-08  Aldy Hernandez  <aldyh@redhat.com>
1325
1326         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -maltivec.
1327
1328 2001-11-08  Jakub Jelinek  <jakub@redhat.com>
1329
1330         * dwarf2out.c (debug_str_hash): New.
1331         (struct indirect_string_node): New.
1332         (struct dw_val_struct): Change type of val_str to it.
1333         (DEBUG_STR_SECTION_FLAGS): Define.
1334         (add_AT_string): Push string into hashtable, increment reference
1335         counter.
1336         (AT_string): Return string from ht_identifier.
1337         (AT_string_form): New.
1338         (free_AT): For dw_val_class_str, just decrement reference counter.
1339         (size_of_string): Remove.
1340         (size_of_die): Use AT_string_form to decide what size the string
1341         occupies in DIE.
1342         (size_of_pubnames): Use strlen instead of size_of_string.
1343         (value_format): Use AT_string_form for dw_val_class_str.
1344         (output_die): Output DW_FORM_strp strings using
1345         dw2_asm_output_offset.
1346         (indirect_string_alloc, output_indirect_string): New.
1347         (dwarf2out_finish): Emit .debug_str strings if there are any.
1348
1349 2001-11-08  Andreas Franck  <afranck@gmx.de>
1350
1351         * configure.in: Add AC_ARG_PROGRAM to support program name
1352         transformation with --program-prefix, --program-suffix and
1353         --program-transform-name.
1354         * configure: Regenerated.
1355         * Makefile.in (GCC_INSTALL_NAME, CPP_INSTALL_NAME,
1356         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
1357         GCCBUG_INSTALL_NAME, GCC_CROSS_NAME, CPP_CROSS_NAME,
1358         PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Handle
1359         program_transform_name the way suggested by autoconf.
1360         (GCC_TARGET_INSTALL_NAME): Define.
1361         (install-driver): Use the transformed target alias name.
1362
1363 2001-11-08  Richard Henderson  <rth@redhat.com>
1364
1365         * config/mips/mips.c (save_restore_insns): Remove GP from the
1366         restore registers mask early instead of special casing it inside
1367         the loop.
1368
1369 2001-11-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1370
1371         * cp/decl.c (shadow_warning): New function.
1372         (pushdecl): Improve -Wshadow warnings.  Don't give both a warning
1373         and an error when a block scope decl shadows a parameter.
1374
1375 2001-11-08  Richard Henderson  <rth@redhat.com>
1376
1377         * config/fp-bit.h (usi_to_float): Define for US_SOFTWARE_GOFAST
1378         case as well.
1379
1380 2001-11-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1381
1382         * pa.md (negdf2, negsf2): Use multiplication rather than subtraction
1383         to implement floating negation on processors prior to PA 2.0.
1384
1385 2001-11-08  Jakub Jelinek  <jakub@redhat.com>
1386
1387         * dwarf2asm.c (mark_indirect_pool_entry, mark_indirect_pool): New.
1388         (USE_LINKONCE_INDIRECT): Define.
1389         (dw2_output_indirect_constant_1): Try to output indirect constants
1390         into linkonce sections if possible.
1391         (dw2_force_const_mem): Likewise.  Register indirect_pool with GGC.
1392         (dw2_output_indirect_constants): Likewise.
1393
1394 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
1395
1396         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Add vrsave.
1397
1398 2001-11-07  Neil Booth  <neil@daikokuya.demon.co.uk>
1399
1400         * c-decl.c (pushdecl): Remove file and line.
1401         * c-typeck.c (pop_init_level): Remove size.
1402
1403 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
1404
1405         * doc/invoke.texi: Add -maltivec, -mno-altivec, and -mabi=altivec
1406         for rs6000.
1407
1408         * config/rs6000/rs6000.h (MASK_ALTIVEC): New.
1409         (TARGET_ALTIVEC): New.
1410         (TARGET_SWITCHES): Add altivec.
1411         (FIRST_PSEUDO_REGISTER): Change to 109.
1412         (CALL_USED_REGISTERS): Same.
1413         (FIRST_ALTIVEC_REGNO): New.
1414         (LAST_ALTIVEC_REGNO): New.
1415         (ALTIVEC_REGNO_P): New.
1416         (UNITS_PER_ALTIVEC_WORD): New.
1417         (ALTIVEC_VECTOR_MODE): New.
1418         (FIXED_REGISTERS): Add altivec registers.
1419         (REG_ALLOC_ORDER): Same.
1420         (HARD_REGNO_NREGS): Adjust for altivec registers.
1421         (HARD_REGNO_MODE_OK): Same.
1422         (MODES_TIEABLE_P): Same.
1423         (REGISTER_MOVE_COST): Same.
1424         (REGNO_REG_CLASS): Same.
1425         (reg_class): Add ALTIVEC_REGS.
1426         (REG_CLASS_NAMES): Same.
1427         (REG_CLASS_CONTENTS): Same.
1428         (REG_CLASS_FROM_LETTER): Add 'v' constraint for ALTIVEC_REGS.
1429         (ALTIVEC_ARG_RETURN): New.
1430         (FUNCTION_VALUE): Handle VECTOR_TYPE.
1431         (LIBCALL_VALUE): Handle altivec vector modes.
1432         (VECTOR_MODE_SUPPORTED_P): New.
1433         (ALTIVEC_ARG_MIN_REG): New.
1434         (ALTIVEC_ARG_MAX_REG): New.
1435         (ALTIVEC_ARG_NUM_REG): New.
1436         (FUNCTION_VALUE_REGNO_P): Return true for altivec return register.
1437         (FUNCTION_ARG_REGNO_P): Support passing args in altivec registers.
1438         (REGISTER_NAMES): Add altivec regs.
1439         (DEBUG_REGISTER_NAMES): Same.
1440         (ADDITIONAL_REGISTER_NAMES): Same.
1441         (rs6000_builtins): New.
1442         (MD_EXPAND_BUILTIN): New.
1443         (MD_INIT_BUILTINS): New.
1444         (LEGITIMATE_OFFSET_ADDRESS_P): This addressing mode is not valid
1445         for AltiVec instructions.
1446         (LEGITIMATE_LO_SUM_ADDRESS_P): Same.
1447         (HARD_REGNO_MODE_OK): Altivec modes can only go in altivec
1448         registers.
1449         (SECONDARY_MEMORY_NEEDED): We need memory to copy vector modes.
1450         (TARGET_SWITCHES): Add no-altivec.
1451         (DATA_ALIGNMENT): Align vectors to 128 bits.
1452         (TARGET_OPTIONS): Add abi= option.
1453         Add rs6000_abi_string extern.
1454         (LOCAL_ALIGNMENT): New.
1455         (CPP_CPU_SPEC): Define __ALTIVEC__ when -maltivec.
1456         (MASK_ALTIVEC_ABI): New.
1457         (TARGET_ALTIVEC_ABI): New.
1458         (CONDITIONAL_REGISTER_USAGE): Set first 20 AltiVec registers to
1459         call-saved.
1460         (STACK_BOUNDARY): Adjust for altivec.
1461         (BIGGEST_ALIGNMENT): Same.
1462         (rs6000_args): Add vregno.
1463         (USE_ALTIVEC_FOR_ARG_P): New.
1464         (FIXED_REGISTERS): Add vrsave register.
1465         (CALL_USED_REGISTERS): Same.
1466         (CONDITIONAL_REGISTER_USAGE): Set VRSAVE info.
1467         (VRSAVE_REGNO): New.
1468         (reg_class): Add VRSAVE_REGS.
1469         (REG_CLASS_NAMES): Same.
1470         (REG_CLASS_CONTENTS): Same.
1471         (REGNO_REG_CLASS): Same.
1472
1473         * config/rs6000/sysv4.h (STACK_BOUNDARY): Adjust for altivec.
1474         (ABI_STACK_BOUNDARY): Same.
1475         (BIGGEST_ALIGNMENT): Same.
1476         (ADJUST_FIELD_ALIGN): Remove undef.  Define anew.
1477         (ROUND_TYPE_ALIGN): Same.
1478
1479         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
1480         to 64.
1481
1482         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
1483         to 64.
1484
1485         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
1486         to 64.
1487
1488         * config/rs6000/rs6000.c (rs6000_expand_builtin): New.
1489         (altivec_expand_builtin): New.
1490         (altivec_init_builtins): New.
1491         (TARGET_EXPAND_BUILTIN): New.
1492         (TARGET_INIT_BUILTINS): New.
1493         (rs6000_init_builtins): New.
1494         (struct builtin_description): New.
1495         (bdesc_2arg): New.
1496         (rs6000_reg_names): Add altivec registers.
1497         (alt_reg_names): Same.
1498         (secondary_reload_class): Altivec regs can hold altivec regs and
1499         memory.
1500         (rs6000_emit_move): Force constants into memory for AltiVec moves.
1501         (print_operand): Add 'y' case for printing altivec memory
1502         operands.
1503         (rs6000_legitimize_address): Legitimize vector addresses into
1504         [REG+REG] or [REG].
1505         (altivec_expand_binop_builtin): New.
1506         New string rs6000_current_abi.
1507         (rs6000_override_options): Call rs6000_parse_abi_options.
1508         (rs6000_parse_abi_options): New.
1509         (function_arg_boundary): Vector arguments must be 16
1510         byte aligned.
1511         (function_arg_advance): Handle vector arguments.
1512         (function_arg_partial_nregs): Same.
1513         (init_cumulative_args): Same.
1514         (function_arg): Same.
1515
1516         * config/rs6000/rs6000.md (altivec_lvx): New.
1517         (type): Add altivec attribute.
1518         (movv4si): New.
1519         (*movv4si_internal): New.
1520         (movv16qi): New.
1521         (*movv16qi_internal): New.
1522         (movv8hi): New.
1523         (*movv8hi_internal1): New.
1524         (movv4sf): New.
1525         (*movv4sf_internal1): New.
1526         (altivec_stvx): New.
1527         (vaddubm): New.
1528         (vadduhm): New.
1529         (vadduwm): New.
1530         (vaddfp): New.
1531         (vaddcuw): New.
1532         (vaddubs): New.
1533         (vaddsbs): New.
1534         (vadduhs): New.
1535         (vaddshs): New.
1536         (vadduws): New.
1537         (vaddsws): New.
1538         (vand): New.
1539         (vandc): New.
1540         (vavgub): New.
1541         (vavgsb): New.
1542         (vavguh): New.
1543         (vavgsh): New.
1544         (vavguw): New.
1545         (vavgsw): New.
1546         (vcmpbfp): New.
1547         (vcmpequb): New.
1548         (vcmpequh): New.
1549         (vcmpequw): New.
1550         (vcmpeqfp): New.
1551         (vcmpgefp): New.
1552         (vcmpgtub): New.
1553         (vcmpgtsb): New.
1554         (vcmpgtuh): New.
1555         (vcmpgtsh): New.
1556         (vcmpgtuw): New.
1557         (vcmpgtsw): New.
1558         (vcmpgtfp): New.
1559         (vcmpgefp): New.
1560         (vcmpgtub): New.
1561         (vcmpgtsb): New.
1562         (vcmpgtuh): New.
1563         (vcmpgtsh): New.
1564         (vcmpgtuw): New.
1565         (vcmpgtsw): New.
1566         (vcmpgtfp): New.
1567         (vmaxub): New.
1568         (vmaxsb): New.
1569         (vmaxuh): New.
1570         (vmaxsh): New.
1571         (vmaxuw): New.
1572         (vmaxsw): New.
1573         (vmaxfp): New.
1574         (vmrghb): New.
1575         (vmrghh): New.
1576         (vmrghw): New.
1577         (vmrglb): New.
1578         (vmrglh): New.
1579         (vmrglw): New.
1580         (vminub): New.
1581         (vminsb): New.
1582         (vminuh): New.
1583         (vminsh): New.
1584         (vminuw): New.
1585         (vminsw): New.
1586         (vminfp): New.
1587         (vmuleub): New.
1588         (vmulesb): New.
1589         (vmuleuh): New.
1590         (vmulesh): New.
1591         (vmuloub): New.
1592         (vmulosb): New.
1593         (vmulouh): New.
1594         (vmulosh): New.
1595         (vnor): New.
1596         (vor): New.
1597         (vpkuhum): New.
1598         (vpkuwum): New.
1599         (vpkpx): New.
1600         (vpkuhss): New.
1601         (vpkshss): New.
1602         (vpkuwss): New.
1603         (vpkswss): New.
1604         (vpkuhus): New.
1605         (vpkshus): New.
1606         (vpkuwus): New.
1607         (vpkswus): New.
1608         (vrlb): New.
1609         (vrlh): New.
1610         (vrlw): New.
1611         (vslb): New.
1612         (vslh): New.
1613         (vslw): New.
1614         (vsl): New.
1615         (vslo): New.
1616         (vsrb): New.
1617         (vrsh): New.
1618         (vrsw): New.
1619         (vsrab): New.
1620         (vsrah): New.
1621         (vsraw): New.
1622         (vsr): New.
1623         (vsro): New.
1624         (vsububm): New.
1625         (vsubuhm): New.
1626         (vsubuwm): New.
1627         (vsubfp): New.
1628         (vsubcuw): New.
1629         (vsububs): New.
1630         (vsubsbs): New.
1631         (vsubuhs): New.
1632         (vsubshs): New.
1633         (vsubuws): New.
1634         (vsubsws): New.
1635         (vsum4ubs): New.
1636         (vsum4sbs): New.
1637         (vsum4shs): New.
1638         (vsum2sws): New.
1639         (vsumsws): New.
1640         (vxor): New.
1641
1642 2001-11-07  Daniel Berlin  <dan@cgsoftware.com>
1643
1644         * Makefile.in (df.o): Add fibheap.h to dependencies.
1645
1646         * df.h: Add prototypes for transfer functions, iterative_dataflow
1647         functions.
1648         (enum df_flow_dir): New enum.
1649         (enum df_confluence_op): New enum.
1650         (struct df): Add inverse_rts_map.
1651
1652         * df.c: Add sbitmap.h to the list of includes.
1653         (df_rd_global_compute): Removed.
1654         (df_ru_global_compute): Removed.
1655         (df_lr_global_compute): Removed.
1656         (df_rd_transfer_function): New function.
1657         (df_ru_transfer_function): New function.
1658         (df_lr_transfer_function): New function.
1659         (df_analyse_1): allocate/compute/free df->inverse_rts_map.
1660         Use iterative_dataflow_bitmap instead of df_*_global_compute.
1661         (iterative_dataflow_sbitmap): New function.
1662         (iterative_dataflow_bitmap): New function.
1663
1664 2001-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1665
1666         * doc/gcc.texi: Move terminology and spelling conventions to
1667         htdocs/codingconventions.html.
1668
1669 2001-11-07  Graham Stott  <grahams@redhat.com>
1670
1671         * cse.c (cse_insn): Emit BARRIER after unconditional jump.
1672
1673 Wed Nov  7 13:33:34 CET 2001  Jan Hubicka  <jh@suse.cz>
1674
1675         * expmed.c (expand_mult): Force operand to register before computing
1676         cost.
1677         * i386.c (x86_decompose_lea): New global vairable.
1678         * i386.h (x86_decompose_lea): Declare.
1679         (TARGET_DECOMPOSE_LEA): New macro.
1680         (RTX_COST): Handle leas properly.
1681
1682 2001-11-06  Richard Henderson  <rth@redhat.com>
1683
1684         * config/alpha/elf.h (DO_SELECT_SECTION): TREE_READONLY is not
1685         defined for a CONSTRUCTOR; don't check it.
1686
1687 2001-11-06  Danny Smith  <dannysmith@users.sourceforge.net>
1688
1689         * gcov.c (output_data): Use IS_ABSOLUTE_PATHNAME to
1690         test for absolute pathnames.
1691
1692 2001-11-06  Olivier Hainque <hainque@act-europe.fr>
1693
1694         * unwind-dw2.c (execute_cfa_program): Evaluate call frame
1695         instructions up to the target pc inclusive.
1696
1697 2001-11-06  Steve Christiansen  <smc@us.ibm.com>
1698
1699         * loop.c (loop_regs_scan):  Don't invalidate PIC register.
1700
1701 2001-11-06  Eric Christopher  <echristo@redhat.com>
1702
1703         * config/mips/mips.md(movdf_internal2): Add constraints for float
1704         to general register move.
1705         * config/mips/elf64.h: Add default ABI.
1706
1707 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1708
1709         * alias.c:: Include langhooks.h.
1710         * emit-rtl.c: Similarly.
1711         * toplev.c: Similarly.
1712         * tree-inline.c: Similarly.
1713         * langhooks-def.h: New, the old langhooks.h.  Give the default
1714         hooks a common prefix.
1715         * langhooks.h: Contents extracted from toplev.h.
1716         * toplev.h: Move langhook stuff to langhooks.h.
1717         * langhooks.c: Give default hooks a common prefix.
1718
1719         * c-lang.c: Include langhooks-def.h.
1720         * objc/objc-act.c: Similarly.
1721         * Makefile.in: Update.
1722         * objc/Make-lang.in: Update.
1723
1724 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
1725
1726         * doc/install.texi: Document that configure options not listed in
1727         this file are unsupported.  Document --with-system-zlib.
1728
1729 Tue Nov  6 09:21:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1730
1731         * rtl.h (mem_for_const_double): New declaration.
1732         * varasm.c (mem_for_const_double): New function.
1733         * config/convex/convex.md (movdf): Use it.
1734         * config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
1735         * config/m68k/linux.h, config/m68k/m68k.h: Likewise.
1736         * config/m68k/m68kv4.h: Likewise.
1737
1738         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Adjust for addition
1739         of new GP reg classes.
1740
1741         * expr.c (store_field): When making temp object for unaligned
1742         component, set it to alias set 0.
1743
1744 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
1745
1746         * c-common.c (c_expand_expr_stmt): Apply default conversions to
1747         non-lvalue arrays if C99.
1748         * c-typeck.c (default_conversion): Split out code handling
1749         array-to-pointer and function-to-pointer conversions into a
1750         separate default_function_array_conversion function.
1751         (default_function_array_conversion): New function.  Keep track of
1752         whether any NON_LVALUE_EXPRs were stripped.  Return non-lvalue
1753         arrays unchanged outside C99 mode instead of giving an error for
1754         them.
1755         (build_component_ref): Use pedantic_non_lvalue when handling
1756         COMPOUND_EXPR.  Don't handle COND_EXPR specially.
1757         (convert_arguments): Use default_function_array_conversion.
1758         (build_unary_op): For ADDR_EXPR, take a flag indicating whether
1759         non-lvalues are OK.
1760         (unary_complex_lvalue): Likewise.
1761         (internal_build_compound_expr): Use
1762         default_function_array_conversion.  Apply default conversions to
1763         function in compound expression.
1764         (build_c_cast, build_modify_expr, digest_init, build_asm_stmt):
1765         Use default_function_array_conversion.
1766         * doc/extend.texi: Update documentation of subscripting non-lvalue
1767         arrays.
1768         Fixes PR c/461.
1769
1770 2001-11-05  Zack Weinberg  <zack@codesourcery.com>
1771
1772         * aclocal.m4: (AM_WITH_NLS): Don't look at ALL_LINGUAS.
1773         (AM_GNU_GETTEXT): Set CATALOGS to a list of .gmo files
1774         corresponding to the complete set of .po and .gmo files in
1775         the source directory's po subdir, modified by LINGUAS.  Don't
1776         look at ALL_LINGUAS.
1777         * configure.in: Don't set ALL_LINGUAS.
1778         * configure: Regenerate.
1779
1780         * Makefile.in (.po.gmo): Don't move into source directory.
1781         (.po.pox): Clarify comments.
1782         (install-po): Look for .gmo files in both srcdir and objdir;
1783         don't fail if a file is totally missing.
1784         (distclean): rmdir ada subdirectory too.
1785
1786 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
1787
1788         * config/rs6000/rs6000.c (rs6000_select_section): Handle
1789         CONSTRUCTORs _correctly_.
1790
1791 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1792
1793         * c-decl.c (delete_block): Remove.
1794         * c-tree.h (delete_block): Remove.
1795
1796 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1797
1798         * cppexp.c (lex, parse_defined): Update warning about defined.
1799
1800 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
1801
1802         * config/rs6000/rs6000.c (rs6000_select_section): Handle
1803         CONSTRUCTORs too.
1804
1805 2001-11-05  Nick Clifton  <nickc@cambridge.redhat.com>
1806
1807         * config/arm/arm.c (arm_return_in_memory): Cope with
1808         int_size_in_bytes returning -1.
1809
1810         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Handle
1811         DECL being NULL.
1812
1813 Mon Nov  5 16:15:25 CET 2001  Jan Hubicka  <jh@suse.cz>
1814
1815         * Makefile.in (bb-reoder.o): Add dependency on cfglayout.h;
1816         remove unneeded dependencies;
1817         (cfglayout.o): New.
1818         * cfglayout.c, cfglayout.h: New files; break out from ...
1819         * bb-reorder.c: ... here; Remove unneeded includes;
1820
1821 2001-11-04  Alan Modra  <amodra@bigpond.net.au>
1822
1823         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used.
1824
1825 2001-11-04  David Edelsohn  <edelsohn@gnu.org>
1826
1827         * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit
1828         mode as well.  Do not explicitly create intermediate regs.
1829
1830 2001-11-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1831
1832         * arm/aof.h (aof_text_section, aof_data_section): Don't declare.
1833         (common_section): Delete unused variable.
1834         (ASM_OUTPUT_ASCII): Fix signed/unsigned warnings.
1835         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
1836         * arm-protos.h (arm_poke_function_name, aof_add_import,
1837         aof_delete_import): Const-ify.
1838         * arm.c (legitimize_pic_address): Wrap variables in the macro
1839         controlling their usage.
1840         (arm_finalize_pic): Mark variable with ATTRIBUTE_UNUSED.
1841         (arm_poke_function_name, pic_chain, import, aof_add_import,
1842         aof_delete_import): Const-ify.
1843         * i386.c (ix86_osf_output_function_prologue): Const-ify.
1844         * i386/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
1845         ASM_OUTPUT_LONG_DOUBLE): Fix format specifier warnings.
1846         * i860/fx2800.h (DBX_OUTPUT_STANDARD_TYPES): Const-ify.
1847         * i860/sysv3.h: Add missing comment closure.
1848         * m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Add missing semi-colon.
1849         * m88k/dgux.h (SELECT_RTX_SECTION): Add missing argument in call
1850         to symbolic_operand.
1851
1852         * config.gcc (m680[02]0-*-*): Rename case from m68000-*-*.
1853         (i960-*-*): Set tmake_file.
1854         (sparc86x-*-elf*): Fix typo in header name.
1855
1856         * sched-rgn.c (schedule_insns): Delete unused variable.
1857
1858 2001-11-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1859
1860         PR c/2820
1861         * c-typeck.c (lookup_field): Rework to return a chain down to
1862         the looked-up field.
1863         (build_component_ref): Use the new lookup_field to handle
1864         nested anonymous entities correctly.
1865
1866 Sun Nov  4 11:53:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1867
1868         * config/sparc/sparc.c (sparc_emit_set_const32, GEN_HIGHINT64):
1869         Change parameters to gen_rtx_CONST_DOUBLE.
1870         (GEN_INT64, sparc_emit_set_const64): Likewise.
1871         * config/sparc/sparc.md (movdf split): Likewise.
1872
1873 2001-11-03  Geoffrey Keating  <geoffk@redhat.com>
1874
1875         * unroll.c (calculate_giv_inc): Use find_last_value rather
1876         than just hoping the last instruction is the right SET.
1877         [Fixes 990604-1.c on stormy16.]
1878
1879         * config/stormy16/stormy16.h (LIB_SPEC): Don't supply any libgloss
1880         library at all if -T is used.
1881
1882         * config/stormy16/stormy16.c (stormy16_print_operand): Avoid
1883         some uses of uninitialized variables in error cases.
1884
1885         * config/stormy16/stormy16.c (stormy16_output_shift): Don't
1886         look at 'temp' if we won't be using it.
1887
1888         * config/stormy16/stormy16.h (CONST_COSTS): Define.
1889         (RTX_COSTS): Define.
1890         (ADDRESS_COST): Define.
1891         (MEMORY_MOVE_COST): Allow for memory_move_secondary_cost.
1892
1893         * config/stormy16/stormy16.h (ASM_SPEC): Pass -g to the assembler.
1894
1895         * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Call
1896         stormy16_asm_output_mi_thunk.
1897         * config/stormy16/stormy16.c (stormy16_asm_output_mi_thunk): New
1898         function.
1899         * config/stormy16/stormy16-protos.h
1900         (stormy16_asm_output_mi_thunk): New prototype.
1901
1902 2001-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1903
1904         * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog,
1905         FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c,
1906         caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c,
1907         cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c,
1908         sched-int.h, toplev.c, config/alpha/alpha.c,
1909         config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h,
1910         config/cris/cris.md, config/i370/i370.md, config/i386/i386.c,
1911         config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h,
1912         config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md,
1913         config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h,
1914         config/ns32k/ns32k.md, config/rs6000/rs6000.c,
1915         config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors.
1916
1917 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1918
1919         * Makefile.in (dbxout.o): Depend on function.h.
1920         * collect2.c (is_in_list): Hide unused function.
1921         * dbxout.c: Include function.h.
1922         (source_label_number, dbxout_source_line, dbxout_source_file,
1923         dbxout_function_end, dbxout_begin_function): Wrap/move inside
1924         macros controlling usage.
1925         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Undef before defining.
1926         * output.h (exports_section): Prototype.
1927
1928         * convex.c (convex_output_function_prologue): Fix format specifier
1929         warning.
1930         (asm_declare_function_name): Fix signed/unsigned warning.
1931         (print_operand): Fix format specifier warning.
1932         * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning.
1933         * dsp16xx-protos.h (uns_comparison_operator,
1934         num_1600_core_shifts): Prototype.
1935         * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h.
1936         (frame_size, frame_pointer_offset): Delete.
1937         (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue):
1938         Make static.  Fix format specifier warnings.
1939         * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning.
1940         (EXTRA_SECTION_FUNCTIONS): Prototype const_section.
1941         * dsp16xx.md: Add default case in switches.
1942         * fr30.h (IN_RANGE): Delete.
1943         * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
1944         * mcore-protos.h (mcore_output_cmov): Const-ify.
1945         * mcore.c (mcore_output_cmov): Likewise.
1946         * mcore.h (switch_to_section): Make static and prototype.
1947         * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix
1948         unsigned>=0 warnings.
1949         * mn10300.h (REGNO_IN_RANGE_P): Likewise.
1950         * rs6000-protos.h (read_only_data_section,
1951         read_only_private_data_section): Prototype.
1952         * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
1953         * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED.
1954         * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning.
1955
1956 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1957
1958         * dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with
1959         ATTRIBUTE_UNUSED.
1960         * final.c (final_scan_insn): Add brackets around body of if-stmt.
1961         * gcc.c (convert_filename): Add static prototype.  Const-ify.
1962         Wrap variable in macros controlling its use.
1963         * output.h (sdata_section): Add prototype.
1964
1965         * 1750a.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
1966         (ASM_OUTPUT_ASCII): Avoid signed/unsigned warning.
1967         * c4x.h (INIT_SECTION_FUNCTION): Add prototype.
1968         (ASM_FILE_START): Const-ify.
1969         (ASM_OUTPUT_BYTE_FLOAT, ASM_OUTPUT_SHORT_FLOAT): Fix format
1970         specifier warning.
1971         * c4x.md: Don't use the 'U' integer suffix.
1972         * clipper.md (clipper_movstr): Delete declaration.
1973         * d30v-protos.h (d30v_move_2words): Const-ify.
1974         (debug_stack_info): Add prototype.
1975         * d30v.c: Include "integrate.h".
1976         (d30v_function_arg_boundary, d30v_function_arg,
1977         d30v_function_arg_partial_nregs, d30v_function_arg_advance): Avoid
1978         signed/unsigned warnings.
1979         (d30v_print_operand_memory_reference, d30v_move_2words):
1980         Const-ify.
1981         * d30v.h (REG_CLASS_FROM_LETTER): Use unsigned array subscript.
1982         * fr30.c (fr30_pass_by_reference, fr30_pass_by_value): Prototype.
1983         * fr30.md: Const-ify.
1984         * h8300.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
1985         * i370.c (i370_label_scan, mvs_get_label): Make definition static.
1986         (mvs_get_label_page): Hide unused static function.
1987         * i860.c (current_function_original_name): Const-ify.
1988         * i860/sysv3.h (current_function_original_name): Likewise.
1989         * i860/sysv4.h (current_function_original_name): Likewise.
1990         * i960.md: Add default case in switches.  Remove unused variable.
1991         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Undef before defining.
1992         * m32r.md: Const-ify.
1993         * m68hc11-protos.h (m68hc11_asm_file_start): Const-ify.
1994         * m68hc11.c: Include "reload.h".
1995         (static_chain_reg, print_options, m68hc11_asm_file_start):
1996         Const-ify.
1997         * m68hc11.md: Delete unused variable.  Const-ify.  Add parens
1998         around & in comparison.
1999         * mcore.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
2000         * mn10200.c (shift_mode): Remove trailing comma.
2001         * mn10300-protos.h (output_tst): Const-ify.
2002         * mn10300.c (output_tst): Likewise.
2003         * pa/long_double.h (ASM_OUTPUT_LONG_DOUBLE): Fix format specifier
2004         warnings.
2005         * pa-protos.h (output_ascii): Use regular char *, not unsigned.
2006         * pa.c (output_ascii): Likewise.
2007         * pa/som.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
2008         * pdp11.md (expand_unop): Delete declarations.
2009         * pj-protos.h (pj_output_addsi3): Const-ify.
2010         * pj.c (pj_output_push_int, pj_output_load, pj_output_inc,
2011         pj_output_cnv_op, mode_to_char, pj_output_varidx, pj_print_cond,
2012         unique_src_operand): Add prototypes.
2013         (pj_output_store_into_lval): Make definition static.
2014         (pj_function_incoming_arg): Don't use unary plus.
2015         (pj_output_addsi3): Const-ify.
2016         * romp.md (get_symref): Delete declarations.
2017         * v850-c.c (mark_current_function_as_interrupt): Don't return
2018         value from void function.
2019         * v850.c: Include "integrate.h".
2020         * v850.h (ASM_OUTPUT_LABELREF): Const-ify.
2021         * vax-protos.h (const_section): Add prototype.
2022
2023 2001-11-03  Aldy Hernandez  <aldyh@redhat.com>
2024
2025         * machmode.def: Add documentation for the seventh argument in
2026         vector modes.
2027
2028 2001-11-04  Hans-Peter Nilsson  <hp@bitrange.com>
2029
2030         * doc/invoke.texi (MMIX Options) <-mno-knuthdiv>: Say remainder
2031         consistently.
2032         <-mno-toplevel-symbols>: Change @code{:} to @samp{:}.
2033         <-melf>: Don't have markup for ELF acronym.
2034
2035 2001-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
2036
2037         * config.gcc (mmix-*-*): New target.
2038         * doc/invoke.texi: Document MMIX options.
2039         * doc/contrib.texi: Add note about MMIX port to my entry.
2040         * config/mmix/t-mmix: New file.
2041         * config/mmix/mmix.h: New file.
2042         * config/mmix/mmix-protos.h: New file.
2043         * config/mmix/mmix.c: New file.
2044         * config/mmix/mmix.md: New file.
2045         * config/mmix/crti.asm: New file.
2046         * config/mmix/crtn.asm: New file.
2047
2048 2001-11-03  Kazu Hirata  <kazu@hxi.com>
2049
2050         * config/sparc/linux-aout.h: Fix comment formatting.
2051         * config/sparc/linux.h: Likewise.
2052         * config/sparc/linux64.h: Likewise.
2053         * config/sparc/lynx.h: Likewise.
2054         * config/sparc/pbd.h: Likewise.
2055         * config/sparc/sol2-sld-64.h: Likewise.
2056         * config/sparc/sol2.h: Likewise.
2057         * config/sparc/sparc.c: Likewise.
2058         * config/sparc/sparc.h: Likewise.
2059         * config/sparc/sparc.md: Likewise.
2060         * config/sparc/sunos4.h: Likewise.
2061         * config/sparc/vxsim.h: Likewise.
2062         * config/sparc/vxsparc.h: Likewise.
2063         * config/sparc/vxsparc64.h: Likewise.
2064
2065 Sat Nov  3 10:37:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2066
2067         * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove
2068         reference to CONST_DOUBLE_MEM in comment.
2069         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand.
2070         (gen_rtx, case CONST_DOUBLE): Call it with one less operand.
2071         (init_emit_once): Don't clear CONST_DOUBLE_MEM.
2072         * function.c (pop_function_context_from): Don't call
2073         restore_varasm_status.
2074         * function.h (restore_varasm_status): Delete declaration.
2075         * gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot.
2076         * rtl.c: Likewise.
2077         * rtl.def (CONST_DOUBLE): Update comment.
2078         * rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number.
2079         (CONST_DOUBLE_CHAIN): Likewise.
2080         (CONST_DOUBLE_MEM): Delete.
2081         (gen_rtx_CONST_DOUBLE): Update parameters.
2082         * varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT.
2083         Remove reference to CONST_DOUBLE_MEM.
2084         (const_alias_set): New variable.
2085         (immed_double_const): Change call to gen_rtx_CONST_DOUBLE.
2086         (immed_real_const_1): Adjust tests for 0, 1, and 2.
2087         Don't set CONST_DOUBLE_MEM.
2088         (clear_const_double_mem): Don't do anything with const_tiny_rtx.
2089         (output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST.
2090         Put constant in const_alias_set.
2091         (struct pool_constant): ALIGN now unsigned.
2092         OFFSET now HOST_WIDE_INT.
2093         Delete LABEL.
2094         (restore_varasm_status): Deleted.
2095         (mark_pool_constant): Mark desc->rtl.
2096         (force_const_mem): Rework to store rtl in hash table,
2097         not CONST_DOUBLE_MEM.
2098         Put constant in const_alias_set.
2099         (find_pool_constant): Check desc->rtl.
2100         (mark_constants, mark_constant): Don't special-case CONST_DOUBLE.
2101         (init_varasm_once): Initialize const_alias_set.
2102
2103         * expr.c (expand_expr, case ADDDR_EXPR): If at top level, don't call
2104         force_const_mem.
2105
2106         * reload.c (combine_reloads): Don't combine an output reload if there
2107         are other reloads around for part of the output.
2108
2109         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
2110         constant expression.
2111         (set_mem_decl): New function.
2112         * expr.h (set_mem_decl): New declaration.
2113         * final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
2114         (output_asm_operand_names): Add tab.
2115         * reload1.c (alter_reg): Set decl of MEM from REG_DECL.
2116
2117         * builtins.c (get_memory_rtx): Properly set MEM alias set and
2118         attributes.
2119
2120 2001-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
2121
2122         * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi:
2123         Use "invalid" instead of "illegal".  Use @r in comments in
2124         examples.
2125
2126 2001-11-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2127
2128         * c-decl.c (pushdecl): Move block inside if conditional to remove
2129         possibility of a segfault.  Lookup block-level extern
2130         variables in enclosing scopes correctly.
2131
2132         * testsuite/gcc.c-torture/compile/20001018-1.x: Remove XFAIL.
2133
2134 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
2135
2136         * expmed.c (store_bit_field): Use simplify_gen_subreg to make
2137         SUBREG so we avoid SUBREGing memory.
2138
2139         * expmed.c (store_bit_field): Same.
2140
2141 2001-11-02  DJ Delorie  <dj@redhat.com>
2142
2143         * config/rs6000/rs6000.c (rs6000_emit_move): Make sure that
2144         using FP registers for DImode mem-mem moves is acceptable.
2145
2146 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
2147
2148         * builtins.c (apply_args_size): Handle vector arguments.
2149         (apply_result_size): Same.
2150
2151         * machmode.def: Set WIDER mode field for all vector entries.
2152
2153 2001-11-02  Graham Stott  <grahams@redhat.com>
2154
2155         * recog.c (decode_asm_operands):  Check that the SRC is ASM_OPERANDS.
2156
2157 2001-11-01  Eric Christopher  <echristo@redhat.com>
2158
2159         * config.gcc: Revert part of earlier patch.
2160         * config/mips/linux.h: Ditto.
2161         * df.c: Include tm_p.h to avoid warnings.
2162         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Add defaults.  Adjust
2163         #if/#endif.
2164         * config/mips/mips.c: Define mips_abi regardless.
2165         (mips_output_function_prologues): Add long casts for .frame
2166         output.
2167         (override_options): Allow use of ABI_32.
2168
2169 2001-11-01  Kazu Hirata  <kazu@hxi.com>
2170
2171         * config/m68hc11/m68hc11.c: Fix comment formatting.
2172         * config/m68hc11/m68hc11.h: Likewise.
2173         * config/m68hc11/m68hc11.md: Likewise.
2174
2175 2001-11-01  Neil Booth  <neil@daikokuya.demon.co.uk>
2176
2177         * c-typeck.c (default_conversion): Retain the original expression
2178         codes.
2179         * gcc.dg/Wparentheses.c: New tests.
2180
2181 2001-11-01  David S. Miller  <davem@redhat.com>
2182
2183         * doc/install.texi (Specific, sparc-sun-solaris2*): Bring
2184         64-bit Sparc description more in line with reality.
2185
2186 2001-11-01  Joseph S. Myers  <jsm28@cam.ac.uk>
2187
2188         * Makefile.in (GCOV_OBJS): Add version.o.
2189         * gcov.c: Include "version.h" and <getopt.h>.
2190         (gcov_version_string): Remove.
2191         (print_usage): Take a parameter to determine whether this is a
2192         call from --help or an error message.  Give fuller output that
2193         follows the GNU Coding Standards for --help.
2194         (print_version): New function.
2195         (options): New.
2196         (process_args): Use getopt_long.  Support long options.  Follow
2197         GNU Coding Standards for --help and --version.
2198         * doc/gcov.texi: Document long options.
2199         Addresses part of PR other/704.
2200
2201 2001-11-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2202
2203         * pa.c (output_move_double): Fix typo in double load.
2204
2205 2001-11-01  Kazu Hirata  <kazu@hxi.com>
2206
2207         * config/h8300/h8300.c (h8300_encode_label): Compute a string
2208         before passing it to ggc_alloc_string.
2209
2210 2001-11-01  Kazu Hirata  <kazu@hxi.com>
2211
2212         * config/m68k/3b1.h: Fix comment formatting.
2213         * config/m68k/3b1g.h: Likewise.
2214         * config/m68k/a-ux.h: Likewise.
2215         * config/m68k/amix.h: Likewise.
2216         * config/m68k/apollo68.h: Likewise.
2217         * config/m68k/atari.h: Likewise.
2218         * config/m68k/aux-exit.c: Likewise.
2219         * config/m68k/ccur-GAS.h: Likewise.
2220         * config/m68k/crds.h: Likewise.
2221         * config/m68k/dpx2.h: Likewise.
2222         * config/m68k/dpx2g.h: Likewise.
2223         * config/m68k/hp310.h: Likewise.
2224         * config/m68k/hp320.h: Likewise.
2225         * config/m68k/isi.h: Likewise.
2226         * config/m68k/linux.h: Likewise.
2227         * config/m68k/lynx.h: Likewise.
2228         * config/m68k/m68k-psos.h: Likewise.
2229         * config/m68k/m68k.c: Likewise.
2230         * config/m68k/m68k.h: Likewise.
2231         * config/m68k/m68k.md: Likewise.
2232         * config/m68k/m68kelf.h: Likewise.
2233         * config/m68k/m68kv4.h: Likewise.
2234         * config/m68k/mot3300.h: Likewise.
2235         * config/m68k/news.h: Likewise.
2236         * config/m68k/next.h: Likewise.
2237         * config/m68k/pbb.h: Likewise.
2238         * config/m68k/plexus.h: Likewise.
2239         * config/m68k/sgs.h: Likewise.
2240         * config/m68k/sun3.h: Likewise.
2241         * config/m68k/tower.h: Likewise.
2242         * config/m68k/vxm68k.h: Likewise.
2243
2244 2001-10-31  DJ Delorie  <dj@redhat.com>
2245
2246         * config/mips/mips.h (mips_cache_flush_func): Prototype.
2247         (TARGET_OPTIONS): Support -mflush-func= and -mno-flush-func.
2248         (INITIALIZE_TRAMPOLINE): Use mips_cache_flush_func if nonzero.
2249         * config/mips/mips.c (mips_cache_flush_func): New.
2250         * doc/invoke.texi: Document the new options.
2251
2252 2001-10-31  Hans-Peter Nilsson  <hp@axis.com>
2253
2254         * config.gcc (cris-*-linux*, tm_file): Rearrange order.
2255         * config/cris/linux.h (LIB_SPEC, STARTFILE_SPEC): Don't redefine.
2256
2257         * config/cris/cris.h (EH_RETURN_DATA_REGNO): Fix formatting.
2258
2259         * config/cris/cris.c: Include output.h after tree.h but before
2260         target.h.
2261
2262 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
2263
2264         * Makefile.in (INTL_TARGETS, POSUB): Delete all references.
2265         (INTL_SUBDIRS): Just intl.
2266         (.SUFFIXES): Add .gmo .po .pox.
2267         (native): Also depend on build-@POSUB@.
2268         (intl.all, intl.install): Depend on config.h and things it includes.
2269         (po-generated): New target; depend on c-parse.c and tradcif.c.
2270         (install-normal): Also depend on install-@POSUB@.
2271         (XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables.
2272         (build-, install-, build-po, update-po, install-po,
2273         .po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules.
2274
2275         * aclocal.m4: Prefix each entry in CATALOGS with "po/"
2276         * configure.in: Don't munge XGETTEXT.  Don't generate
2277         po/Makefile.in.
2278         * configure: Regenerate.
2279
2280         * exgettext: Delete.
2281         * config/m68k/m68k.h: Add doc strings for -msky and -mnosky.
2282         * objc/Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
2283
2284 2001-10-31  Kazu Hirata  <kazu@hxi.com>
2285
2286         * config/h8300/h8300.md (two anonymous patterns): New.
2287
2288 2001-10-31  Aldy Hernandez  <aldyh@redhat.com>
2289
2290         * tree.h (tree_index): Add support for V16QI and V8HI.
2291         (V8HI_type_node): New.
2292         (V16QI_type_node): New.
2293
2294         * tree.c (build_common_tree_nodes_2): Same.
2295
2296         * c-common.c (type_for_mode): Same.
2297
2298 2001-10-31  Kazu Hirata  <kazu@hxi.com>
2299
2300         * config/i386/att.h: Fix comment formatting.
2301         * config/i386/beos-elf.h: Likewise.
2302         * config/i386/bsd.h: Likewise.
2303         * config/i386/bsd386.h: Likewise.
2304         * config/i386/crtdll.h: Likewise.
2305         * config/i386/cygwin.asm: Likewise.
2306         * config/i386/cygwin.h: Likewise.
2307         * config/i386/djgpp.h: Likewise.
2308         * config/i386/freebsd-aout.h: Likewise.
2309         * config/i386/freebsd.h: Likewise.
2310         * config/i386/gas.h: Likewise.
2311         * config/i386/i386-interix.h: Likewise.
2312         * config/i386/i386-protos.h: Likewise.
2313         * config/i386/i386.c: Likewise.
2314         * config/i386/i386.h: Likewise.
2315         * config/i386/i386.md: Likewise.
2316         * config/i386/i386elf.h: Likewise.
2317         * config/i386/interix.c: Likewise.
2318         * config/i386/isc.h: Likewise.
2319         * config/i386/isccoff.h: Likewise.
2320         * config/i386/iscdbx.h: Likewise.
2321         * config/i386/linux.h: Likewise.
2322         * config/i386/lynx.h: Likewise.
2323         * config/i386/mingw32.h: Likewise.
2324         * config/i386/netbsd-elf.h: Likewise.
2325         * config/i386/next.h: Likewise.
2326         * config/i386/osf1elf.h: Likewise.
2327         * config/i386/osfrose.h: Likewise.
2328         * config/i386/sco5.h: Likewise.
2329         * config/i386/seq-gas.h: Likewise.
2330         * config/i386/seq-sysv3.h: Likewise.
2331         * config/i386/sequent.h: Likewise.
2332         * config/i386/sol2.h: Likewise.
2333         * config/i386/sun386.h: Likewise.
2334         * config/i386/uwin.asm: Likewise.
2335         * config/i386/uwin.h: Likewise.
2336         * config/i386/vxi386.h: Likewise.
2337         * config/i386/win32.h: Likewise.
2338         * config/i386/winnt.c: Likewise.
2339         * config/i386/xm-cygwin.h: Likewise.
2340         * config/i386/xm-mingw32.h: Likewise.
2341
2342 2001-10-31  Kazu Hirata  <kazu@hxi.com>
2343
2344         * builtins.def: Fix comment typos.
2345         * config/alpha.c: Likewise.
2346         * config/arm/arm.c: Likewise.
2347         * config/avr/avr.h: Likewise.
2348         * config/d30v/d30v.c: Likewise.
2349         * config/d30v/d30v.h: Likewise.
2350         * config/d30v/d30v.md: Likewise.
2351         * config/dsp16xx/dsp16xx.c: Likewise.
2352         * config/fr30/fr30.c: Likewise.
2353         * config/fr30/fr30.md: Likewise.
2354         * config/i386/i386.c: Likewise.
2355         * config/i860/i860.c: Likewise.
2356         * config/i960/i960.c: Likewise.
2357         * config/ia64/ia64.c: Likewise.
2358         * config/mips/mips.c: Likewise.
2359         * config/pa/pa.c: Likewise.
2360         * config/rs6000/rs6000.c: Likewise.
2361         * config/s390/s390.c: Likewise.
2362         * config/sparc/sparc.c: Likewise.
2363
2364 2001-10-30  Kazu Hirata  <kazu@hxi.com>
2365
2366         * config/mips/elf.h: Fix comment formatting.
2367         * config/mips/elf64.h: Likewise.
2368         * config/mips/iris5.h: Likewise.
2369         * config/mips/iris5gas.h: Likewise.
2370         * config/mips/iris6.h: Likewise.
2371         * config/mips/isa3264.h: Likewise.
2372         * config/mips/linux.h: Likewise.
2373         * config/mips/mips.c: Likewise.
2374         * config/mips/mips.h: Likewise.
2375         * config/mips/mips.md: Likewise.
2376         * config/mips/mips16.S: Likewise.
2377         * config/mips/netbsd.h: Likewise.
2378         * config/mips/osfrose.h: Likewise.
2379         * config/mips/r3900.h: Likewise.
2380         * config/mips/sni-svr4.h: Likewise.
2381         * config/mips/svr4-t.h: Likewise.
2382         * config/mips/ultrix.h: Likewise.
2383
2384 2001-10-30  Daniel Berlin  <dan@cgsoftware.com>
2385
2386         * bitmap.c (bitmap_element_free): Don't forget to update head->indx
2387         when we update head->current.
2388
2389 2001-10-30  Neil Booth  <neil@daikokuya.demon.co.uk>
2390
2391         * tree.c (id_string_size): Remove.
2392         (dump_tree_statistics): Update.
2393         * toplev.c (compile_file): If dumping stats, dump tree stats too.
2394
2395 Tue Oct 30 19:00:43 CET 2001  Jan Hubicka  <jh@suse.cz>
2396
2397         * sched-rgn.c (schedule_insns): Fix comment.
2398
2399 2001-10-30  Zack Weinberg  <zack@codesourcery.com>
2400
2401         * configure.in: Correct previous change: don't assume that
2402         gas's version number _isn't_ the last thing on the line, or
2403         isn't the only number on the line, either.
2404         * configure: Regenerate.
2405
2406 2001-10-30  Kazu Hirata  <kazu@hxi.com>
2407
2408         * cfgcleanup.c: Fix a comment typo.
2409
2410 2001-10-30  Kazu Hirata  <kazu@hxi.com>
2411
2412         * alias.c: Fix comment formatting.
2413         * recog.c: Likewise.
2414         * config/cris/cris.c: Likewise.
2415         * config/cris/cris.h: Likewise.
2416         * config/i960/i960.c: Likewise.
2417         * config/i960/i960.h: Likewise.
2418
2419 2001-10-30  Kazu Hirata  <kazu@hxi.com>
2420
2421         * config/arm/arm.c: Fix a comment typo.
2422         * config/arm/arm.h: Likewise.
2423         * config/ia64/ia64.c: Likewise.
2424
2425 2001-10-30  Jakub Jelinek  <jakub@redhat.com>
2426
2427         * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or
2428         REG_EQUIV notes for ASM_OPERANDS.  Return the new note (if any).
2429         * rtl.h (set_unique_reg_note): Change return value.
2430         * gcse.c (try_replace_reg): Use set_unique_reg_note.
2431         * cse.c (cse_insn): Likewise.
2432         * expr.c (emit_move_insn): Likewise.
2433         * explow.c (force_reg): Likewise.
2434         * local-alloc (update_equiv_regs): Likewise.
2435         * loop.c (move_moveables, load_mems): Likewise.
2436         * reload (find_reloads): Likewise.
2437
2438 2001-10-30  Paolo Bonzini  <bonzini@gnu.org>
2439
2440         Localization fixes.
2441         * c-decl.c (parmlist_tags_warning, start_struct,
2442         check_for_loop_decls): Separate messages for struct, union and
2443         enum cases to allow for languages in which they have different
2444         genders.
2445         * c-format.c (scanf_flag_specs): Separate short and long name of
2446         the assignment suppression feature.
2447         (check_format_types): Localize "pointer" and "different types"
2448         strings.
2449         * c-lex.c (lex_number): Localize "an unsigned long int" and
2450         related strings.
2451         (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on
2452         warning message.
2453         * c-typeck.c (build_unary_up): Separate messages for increment and
2454         decrement cases to allow for languages in which they use different
2455         articles.  Localize the strings "increment" and "decrement" in one
2456         case.
2457
2458 Tue Oct 30 11:08:11 CET 2001  Jan Hubicka  <jh@suse.cz>
2459
2460         * lcm.c (optimize_mode_switching):  Do not rebuild liveness information
2461         when no changes has been made.
2462
2463         * gcse.c (reg_set_bitmap): Turn into reg_set.
2464         (modify_mem_list_set, canon_modify_mem_list_set)
2465         (clear_modify_mem_tables, free_modify_mem_tables): New.
2466         (gcse_main); Use free_modify_mem_tables.
2467         (free_gcse_mem): Likewise; free the bitmaps.
2468         (alloc_gcse_main): Initialize the bitmaps.
2469         (canon_list_insert): Set canon_modify_mem_list_set.
2470         (record_last_mem_set_info): Likewise; set modify_mem_list_set.
2471         (compute_hash_table): Use clear_modify_mem_tables.
2472         (reset_opr_set_tables): Likewise.
2473         (oprs_not_set_p): reg_set_bitmap is regset.
2474         (mark_set, mark_clobber): Likewise.
2475
2476         * df.h (DF_EQUIV_NOTES): New constant.
2477         (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes
2478         when asked for.
2479
2480         * sched-rgn.c (CHECK_DEAD_NOTES): New constant.
2481         (init_regions, schedule_insns): Conditionalize the checking
2482         code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info.
2483
2484 Tue Oct 30 11:02:31 CET 2001  Jan Hubicka  <jh@suse.cz>
2485
2486         * i386.md (movti_rex64 splitter): Fix condition.
2487
2488 2001-10-29  Zack Weinberg  <zack@codesourcery.com>
2489
2490         * configure.in: Do not assume that gas's version number is the
2491         last thing on the first line of as --version output.
2492         * configure: Regenerate.
2493
2494         * tradcpp.c: Include intl.h.  Rename WARNING, ERROR, FATAL to
2495         MT_WARNING, MT_ERROR, MT_FATAL.
2496         (main): Call gcc_init_libintl.
2497         (v_message): Call gettext on msgid and "warning: "
2498         * tradcif.y: Include intl.h.
2499         (yyerror): Make parameter definition consistent with
2500         prototype.  Call gettext on msgid argument.
2501
2502 2001-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2503
2504         * combine.c (num_sign_bit_copies): Avoid signed/unsigned
2505         warnings.
2506
2507         * sparc/sol2.h: Include <sys/mman.h> when L_trampoline is defined.
2508
2509 Mon Oct 29 19:22:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2510
2511         * reload1.c (eliminate_regs): Test for reg_renumber being allocated
2512         before referencing it.
2513
2514 2001-10-26  DJ Delorie  <dj@redhat.com>
2515
2516         * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to
2517         override -G, and force -G0.
2518
2519 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2520
2521         * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10,
2522         FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c,
2523         c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c,
2524         timevar.h, tree.h, varasm.c: Fix spelling errors and typos.
2525
2526         * loop.h (struct induction): Rename ext_dependant to
2527         ext_dependent.
2528         * loop.c: Change all uses.
2529         (check_ext_dependant_givs): Rename to check_ext_dependent_givs.
2530         All callers changed.
2531         * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter.
2532
2533 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2534
2535         * c-parse.in (expr_no_commas, primary), c-typeck.c
2536         (parser_build_binary_op): Use IS_EXPR_CODE_CLASS.
2537
2538 2001-10-29  David Edelsohn  <edelsohn@gnu.org>
2539
2540         Undo assemble_name change in earlier patch.
2541
2542 Mon Oct 29 21:11:40 2001  Nicola Pero  <n.pero@mi.flashnet.it>
2543
2544         * objc/objc-act.c (finish_message_expr): For the GNU runtime: when
2545         determining the type of the receiver, do not check that TREE_CODE
2546         of receiver is CALL_EXPR before calling receiver_is_class_object().
2547         (receiver_is_class_object): For the GNU runtime: recognize
2548         the case that the receiver is self in a class method context.
2549         Check that TREE_CODE of receiver is CALL_EXPR when checking that
2550         the receiver is a call to objc_get_class.
2551
2552 2001-10-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2553
2554         * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero.
2555
2556 Mon Oct 29 07:23:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2557
2558         * Makefile.in (OBJS): Put all files in alphabetical order.
2559
2560         * dwarf2out.c (add_const_value_attribute): Fix error in last
2561         change.
2562
2563 Mon Oct 29 12:43:06 CET 2001  Jan Hubicka  <jh@suse.cz>
2564
2565         * basic-block.h (purge_all_dead_edges): Add update_life_p argument.
2566         * cfgcleanup.c (merge_blocks): Update the life flag after merging;
2567         fix warning.
2568         * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness.
2569         (life_analysis): call purge_all_dead_edges after deleting noops.
2570         (delete_noop_move): Do not purge CFG.
2571         * toplev.c (rest_of_compilation): Update purge_all_dead_edges call.
2572
2573 2001-10-28  David Edelsohn  <edelsohn@gnu.org>
2574
2575         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
2576         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
2577         (ASM_GLOBALIZE_LABEL): Use assemble_name.
2578         (ASM_OUTPUT_COMMON): Likewise.
2579         * config/rs6000/rs6000.c (print_operand): Use assemble_name.
2580         (rs6000_output_function_epilogue): Likewise.
2581         (output_mi_thunk): Fix typo.
2582         (rs6000_output_symbol_ref): Use assemble_name.
2583         (output_toc): Likewise.
2584         * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
2585         * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
2586         assemble_name calls STRIP_NAME_ENCODING.
2587         (ASM_OUTPUT_LABEL): Use assemble_name.
2588         (ASM_GLOBALIZE_LABEL): Likewise.
2589         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2590         (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op.  Use assemble_name.
2591         (ASM_OUTPUT_LOCAL): Likewise.
2592
2593 Sun Oct 28 15:45:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2594
2595         * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
2596         (expand_builtin_apply, expand_builtin_return): Likewise.
2597         (expand_builtin_va_arg, expand_builtin_va_copy): Likewise.
2598
2599 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
2600
2601         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
2602         ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11,
2603         c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc,
2604         configure, configure.in, except.c, except.h, flow.c, function.c,
2605         gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def,
2606         predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c,
2607         sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c,
2608         unroll.c: Fix spelling errors.
2609
2610         * doc/extend.texi, doc/invoke.texi: Fix spelling.
2611
2612         * doc/gcc.texi: Document use of "dependent" and American spelling.
2613
2614 Sun Oct 28 17:05:36 CET 2001  Jan Hubicka  <jh@suse.cz>
2615
2616         * expr.c (emit_group_load): Support CONCATs by storing them to memory
2617         and reloading.
2618
2619 Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2620
2621         * expr.c (store_constructor_field): Only call adjust_address on MEM.
2622
2623 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
2624
2625         * genrecog.c (write_switch):  Output if before switch for
2626         DT_elt_zero_wide_safe.
2627
2628 2001-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2629
2630         * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
2631         * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
2632         (FUNCTION_PROFILER): Const-ify.
2633         * halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
2634         (eliminate_constant_term, assemble_name, output_addr_const):
2635         Remove declarations.
2636         (ptr_half_pic_address_p, half_pic_hash): Prototype.
2637         (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
2638         half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
2639         * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
2640         (half_pic_declare, half_pic_external): Const-ify.
2641         * toplev.c: Include "halfpic.h".
2642
2643 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
2644
2645         * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h,
2646         config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe,
2647         config/i386/i386.c, config/i386/i386-interix.h,
2648         config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h,
2649         config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c,
2650         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md,
2651         config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c,
2652         config/sparc/sparc.c, config/m68hc11/m68hc11.c,
2653         config/cris/cris.c, config/cris/cris.h, config/s390/s390.c,
2654         config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix
2655         spelling errors.
2656
2657         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
2658         ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
2659         c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
2660         collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
2661         haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
2662         regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
2663         system.h, toplev.c: Fix spelling errors.
2664
2665 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2666
2667         * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET.
2668
2669         * dwarf2out.c (reg_number): Abort if pseudo.
2670         (reg_loc_descriptor): Return 0 if pseudo.
2671         (is_based_loc): Return 0 if pseudo.
2672         (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from
2673         recursive calls.
2674         (concat_loc_descriptor): Return 0 if either part's descriptor is 0.
2675         (loc_descriptor): Return 0 if can't find location and handle 0
2676         return from recursive calls.
2677         (loc_descriptor_from_tree): Likewise.
2678         Fix handling of indirect.
2679         Also return 0 for PLACEHOLDER_EXPR.
2680         Clean up COMPONENT_REF cases.
2681         (add_AT_location_descriptor): Simplify, but handle 0 return from
2682         loc_descriptor.
2683         (add_const_value_attribute): Avoid shift count warning.
2684         (add_bound_info): Remove test for PLACEHOLDER_EXPR here.
2685         Set comp_unit_die as context if not in function.
2686
2687         * config/mips/mips-protos.h: Break up long lines.
2688         Remove needless #ifdef/#endif blocks.
2689         Don't declare functions declared in file made by genpreds or recog.h.
2690         * config/mips/mips.c (mips_output_function_prologue): TSIZE
2691         is now HOST_WIDE_INT; delete unneeded casts.
2692         * config/mips/mips.h: Don't use #elif.
2693
2694         * expr.c (stor_constructor_field): Always call adjust_address.
2695         Copy TARGET before changing its alias set.
2696         (store_field): Likewise, for TO_RTX.
2697         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
2698         replacement.
2699         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
2700         (find_placeholder): Return 0 if can't find object.
2701         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
2702         returns 0.
2703
2704 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
2705
2706         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
2707
2708 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
2709
2710         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
2711         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
2712         (merge_blocks): Properly udpate life after making edge nonfallthru.
2713         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
2714
2715 2001-10-26  Kazu Hirata  <kazu@hxi.com>
2716
2717         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
2718
2719 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2720
2721         * c-typeck.c (convert_arguments): When comparing for enumeral
2722         type equality, use TYPE_MAIN_VARIANT.
2723         * gcc.dg/Wconversion.c: New tests.
2724
2725 2001-10-26  Kazu Hirata  <kazu@hxi.com>
2726
2727         * s390/s390.c: Fix comment typos.
2728         * s390/s390.h: Likewise.
2729         * s390/s390.md: Likewise.
2730
2731 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
2732
2733         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
2734         (walk_tree): Use it for tail calls where appropriate.
2735
2736 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
2737
2738         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
2739         non-local label_refs.
2740
2741 2001-10-26  Kazu Hirata  <kazu@hxi.com>
2742
2743         * config/h8300/h8300.md (4 anonymous patterns): New.
2744
2745 2001-10-26  Kazu Hirata  <kazu@hxi.com>
2746
2747         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
2748         algorithm through the shift_info structure.
2749         (emit_a_shift): Update the use of get_shift_alg.
2750
2751 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
2752
2753         * sched-rgn.c: Remove bitset typedef.
2754         Change bitset to sbitmap in prototypes / variable types.
2755         Remove bbset_size.
2756         Remove edgeset_bits.
2757         Remove edgeset_size.
2758         s/BITSET_ADD/SET_BIT/g
2759         s/BITSET_INVERT/sbitmap_ones/g
2760         s/BITSET_INTER/sbitmap_a_and_b/g
2761         s/BITSET_UNION/sbitmap_a_or_b/g
2762         s/BITSET_DIFFER/sbitmap_difference/g
2763         s/bitset_member/TEST_BIT/g
2764         (BITSET_*): Removed.
2765         (bitset_member): Removed.
2766         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
2767         EXECUTE_IF_SET_IN_SBITMAP.
2768         (split_edges): Rewrite, use sbitmap functions instead of bitset
2769         operations.
2770         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
2771
2772 2001-10-26  Andreas Schwab  <schwab@suse.de>
2773
2774         * reload1.c (emit_input_reload_insns): Fix parens in last
2775         (undocumented) change that was supposed to change only whitespace.
2776
2777 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2778
2779         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
2780
2781         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
2782         ASM_OPERANDS.
2783
2784 2001-10-26  Andreas Jaeger  <aj@suse.de>
2785
2786         * flow.c (clear_log_links): Remove unused variable.
2787         * cfgcleanup.c (cleanup_cfg): Likewise.
2788
2789 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
2790
2791         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
2792         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
2793
2794 2001-10-26  Richard Henderson  <rth@redhat.com>
2795
2796         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
2797         rename PV_REG to R27_REG.
2798         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
2799         (REG_CLASS_FROM_LETTER): Update.
2800         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
2801         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
2802         (udivsi3, modsi3, umodsi3): Likewise.
2803         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
2804
2805 2001-10-26  Richard Henderson  <rth@redhat.com>
2806
2807         * cfg.c (clear_aux_for_blocks): Split out of ...
2808         (free_aux_for_blocks): here.
2809         (clear_aux_for_edges): Split from ...
2810         (free_aux_for_edges): here.
2811         * basic-block.h: Declare them.
2812         * lcm.c (compute_antinout_edge): Use them.
2813         (compute_laterin, compute_available, compute_nearerout): Likewise.
2814         (optimize_mode_switching): Likewise.
2815
2816 2001-10-26  Richard Henderson  <rth@redhat.com>
2817
2818         * Makefile.in (unstage*): Remove as, ld, collect-ld before
2819         moving everything back to the main build directory.
2820
2821 2001-10-26  Christopher Faylor  <cgf@redhat.com>
2822
2823         * config/i386/cygwin.h: Search target specific include directory, if
2824         appropriate.
2825
2826 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2827
2828         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
2829         of macro guards. Fix #endif comment.
2830
2831         * output.h (default_exception_section, default_eh_frame_section):
2832         Move prototypes outside of macro guard.
2833
2834         * crtstuff.c: Fix #endif comment.
2835
2836 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
2837
2838         * doc/md.texi (movMM): Clarify semantics of storing into a
2839         non-paradoxical SUBREG.
2840
2841 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
2842
2843         * langhooks.c (lang_hook_default_clear_binding_stack): New.
2844         (lang_hook_default_get_alias_set): Move next to other alias
2845         hooks.
2846         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
2847         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
2848         (LANG_HOOKS_INITIALIZER): Add it.
2849         * toplev.h (struct lang_hooks): Add clear_binding_stack.
2850         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
2851         instead of a loop calling poplevel.
2852
2853 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
2854
2855         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
2856         occurrences of #elif with #if...#endif.
2857
2858 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2859
2860         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
2861
2862 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2863
2864         * alias.c (can_address_p): No longer static.
2865         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
2866         Return 0 if all parameters are default values.
2867         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
2868         (adjust_address_1): Try harder to compute a size.
2869         * expr.c (expand_assignment, store_constructor): If can't address,
2870         set MEM_KEEP_ALIAS_SET_P.
2871         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
2872         (store_field): Likewise.
2873         (store_constructor): Simplify call to store_constructor_field.
2874         * expr.h (can_address_p): New declaration.
2875         * gensupport.c (gen_rtx_CONST_INT): New function.
2876         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
2877         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
2878         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
2879
2880         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
2881
2882 2001-10-24  Christopher Faylor  <cgf@redhat.com>
2883
2884         * config/i386/cygwin.h: Use proper path for mingw crt files when
2885         -mno-cygwin.
2886
2887 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2888
2889         * dwarf2out.c (file_info_cmp): Always return consistent results.
2890
2891 2001-10-24  Roger Sayle <roger@eyesopen.com>
2892
2893         * stmt.c (expand_end_case): Index jumptables from zero for
2894         suitably small values of minval.
2895
2896 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
2897
2898         * stor-layout.c (place_union_field): If any field was aligned with
2899         attribute aligned, set record type's TYPE_USER_ALIGN.
2900         (place_field): Likewise.
2901         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
2902         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
2903
2904 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
2905
2906         * c-common.h (struct c_common_identifier): Remove rid_code field.
2907         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
2908
2909         * c-typeck.c (constructor_designated): New local flag.
2910         (struct constructor_stack): Add "designated" field to match.
2911         (start_init): Clear it.
2912         (really_start_incremental_init, push_init_level): Push and
2913         clear it.
2914         (pop_init_level): Pop it.
2915         (set_designator): Set it.
2916
2917         (pop_init_level): Suppress "missing initializer" warnings if
2918         constructor_designated is true.
2919         (process_init_element): Suppress warning about union
2920         initialization under traditional C, if constructor_designated
2921         is true.
2922
2923 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2924
2925         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
2926         change.
2927
2928 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
2929
2930         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
2931
2932 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
2933
2934         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
2935         the node was already a set to a constant.
2936
2937 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2938
2939         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
2940         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
2941
2942 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2943
2944         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
2945         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
2946         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
2947         * s390.c (s390_final_chunkify): Don't use string concatenation.
2948         (s390_function_prologue, s390_function_epilogue): Const-ify.
2949         * s390.h (FUNCTION_PROFILER): Remove unused variable.
2950
2951 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
2952
2953         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
2954         prototypes.
2955
2956 2001-10-23  Stan Shebs  <shebs@apple.com>
2957
2958         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
2959         -traditional-cpp in first-stage compilation.
2960
2961 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2962
2963         * gensupport.c (target_flags): Add.
2964
2965 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
2966
2967         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
2968         if needed.
2969         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
2970         * except.c (expand_builtin_frob_return_addr): Likewise.
2971         (expand_builtin_eh_return): Likewise.
2972         * stmt.c (expand_computed_goto): Likewise.
2973         * explow.c (memory_address): Likewise.
2974         (allocate_dynamic_stack_space): Clean up predicate testing.
2975         (probe_stack_range): Convert SIZE to Pmode.
2976         * calls.c (rtx_for_function_call): Only call convert_memory_address
2977         if needed.
2978         Pass function call operand as ptr_mode, not Pmode.
2979         * expr.c (expand_assignment): Clean up calls to convert_memory
2980         address by only doing so when needed and making offsets Pmode.
2981         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
2982         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
2983         is in Pmode, not ptr_mode.
2984
2985 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2986
2987         * darwin-protos.h (constructor_section, destructor_section,
2988         mod_init_section, mod_term_section): Prototype.
2989         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
2990         Const-ify.
2991         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
2992         Likewise.
2993         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
2994         objc_section_init declaration.
2995         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
2996         (objc_section_init, try_section_alias): Make static.
2997         (alias_section): Make static and hide unused function.
2998         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
2999
3000 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3001
3002         * alias.c (can_address_p): Compnonents are not addressable if
3003         the containing type has alias set 0.
3004         (get_alias_set): Rework to use STRIP_NOPS.
3005         Only call front-end routine on object, type, or object with
3006         NOPs stripped, not inner values.
3007         Use language hook to call front-end routine.
3008         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
3009         (expand_builtin_apply): Call set_mem_align on MEMs we make.
3010         Don't pass alignment to emit_block_move.
3011         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
3012         (expand_builtin_memset): Likewise, but for clear_storage.
3013         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
3014         and remove C++ specific parts.
3015         * c-common.h (c_common_get_alias_set): Add declaration.
3016         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
3017         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
3018         (save_fixed_argument_area): Call set_mem_align.
3019         Remove alignment in call to emit_block_move.
3020         (emit_library_call_value_1, store_one_arg): Likewise.
3021         (target_for_arg): Remove; disabled long ago.
3022         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
3023         once and similar cleanups.
3024         (offset_address): Use proper introductory comment.
3025         * expr.c (emit_block_move): Use alignment from that of MEM args, not
3026         from explicit operand; all callers changed.
3027         (clear_storage): Likewise.
3028         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
3029         (store_field): Remove kludge on alias set used for to_rtx.
3030         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
3031         (expand_expr_unaligned): Call set_mem_attributes instead of
3032         set_mem_alias_set.
3033         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
3034         * function.c (assign_stack_temp_for_type): Set MEM alignment.
3035         (expand_function_end): Track MEM attributes of trampolines.
3036         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
3037         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
3038         attributes from original.
3039         * langhooks.c (lang_hook_default_get_alias_set): New function.
3040         (hook_get_alias_set_0): New function.
3041         * langhooks.h (hook_get_alias_set_0): New declaration.
3042         (lang_hook_default_get_alias_set): Likewise.
3043         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
3044         * reload1.c (alter_reg): Use adjust_address_nv.
3045         * rtl.c (get_mode_alignment): Moved to here.
3046         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
3047         change default if unknown from 1 to BITS_PER_UNIT.
3048         * stor-layout.c (get_mode_alignment): Remove from here.
3049         * toplev.h (struct lang_hoks): Add get_alias_set field.
3050         * tree.h (lang_get_alias_set): Delete declaration.
3051         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
3052         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
3053         (ix86_va_arg): Likewise.
3054         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
3055         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
3056         * config/sparc/sparc.c (sparc_va_arg): Likewise.
3057         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
3058         (expand_block_move_mem): Remove dead code.
3059
3060 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3061
3062         * c-common.c (warn_div_by_zero): New.
3063         * c-common.h (warn_div_by_zero): New.
3064         * c-decl.c (c_decode_option): Take it on the command line.
3065         * c-typeck.c (build_binary_op): Warn about division by zero.
3066         * doc/invoke.texi: Document the new command line option, fix
3067         documentation of -Wmultichar.
3068         * testsuite/gcc.dg/divbyzero.c: New tests.
3069         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
3070
3071 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
3072
3073         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
3074
3075         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
3076         to avoid update_life_info call.
3077         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
3078         * cfgcleanup.c (bb_flags): New enum.
3079         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
3080         (notice_new_block, update_forwarder_flag): New functions.
3081         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
3082         (try_forward_edges): Likewise; update flags.
3083         (merge_blocks): Likewise.
3084         (outgoing_edges_match): Likewise.
3085         (try_crossjump_to_edge): Likewise.
3086         (try_optimize_cfg): Likewise; initialize and clear the flags;
3087         recompute life info if needed.
3088         (cleanup_cfg): No need to clear aux pointers.
3089
3090 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
3091
3092         * config/i386/i386.c (override_options): Default to minimum
3093         stack alignment when optimizing for code size.
3094         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
3095         change.
3096
3097         * config/i386/i386.c (override_options): Set upper limit of
3098         -mpreferred-stack-boundary to 12.
3099
3100 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
3101
3102         * recog.c (peephole2_optimize): Add default case to switch.
3103
3104 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
3105
3106         * doc/gcc.texi (Sending Patches): Remove.
3107
3108 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
3109
3110         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
3111         fields when comparing.
3112
3113 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3114
3115         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
3116         * arm.c (HOST_INT, HOST_UINT): Likewise.
3117
3118 2001-10-22  Stan Shebs  <shebs@apple.com>
3119
3120         * config/darwin-protos.h (darwin_exception_section): Declare.
3121         (darwin_eh_frame_section): Declare.
3122
3123 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
3124
3125         * i386.md (movti_rex64): Fix mode.
3126
3127 2001-10-22  Stan Shebs  <shebs@apple.com>
3128
3129         * target.h (struct gcc_target): Add asm_out.exception_section,
3130         asm_out.eh_frame_section.
3131         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
3132         (TARGET_ASM_EH_FRAME_SECTION): New.
3133         (TARGET_INITIALIZER): Update.
3134         * output.h (default_exception_section): Declare.
3135         (default_eh_frame_section): Declare.
3136         * dwarf2out.c: Include target.h.
3137         (output_call_frame_info): Call target hook for eh frames.
3138         (default_eh_frame_section): New function.
3139         * except.c: Include target.h.
3140         (output_function_exception_table): Call target hook for exception
3141         section.
3142         * varasm.c (default_exception_section): Rename from
3143         exception_section, remove EXCEPTION_SECTION macro.
3144
3145         * config/darwin.h (darwin_eh_frame_section): New function.
3146         (EXCEPTION_SECTION): Remove.
3147         (TARGET_ASM_EXCEPTION_SECTION): Define.
3148         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
3149         (nextstep_exception_section): New function.
3150         (nextstep_eh_frame_section): New function.
3151         (TARGET_ASM_EXCEPTION_SECTION): Define.
3152         (TARGET_ASM_EH_FRAME_SECTION): Define.
3153
3154         * config/pa/som.h (EXCEPTION_SECTION): Remove.
3155         (TARGET_ASM_EXCEPTION_SECTION): Define.
3156         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
3157         (EXCEPTION_SECTION): Remove.
3158         (TARGET_ASM_EXCEPTION_SECTION): Define.
3159         * config/stormy16/stormy16.h: Remove comments referencing
3160         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
3161
3162         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
3163         TARGET_ASM_EH_FRAME_SECTION.
3164
3165 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
3166
3167         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
3168         terms.
3169
3170         * c-format.c: Fix spelling typo in comment.
3171
3172         * sched-int.h: Fix typo in GCC preamble.
3173
3174 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3175
3176         PR debug/4252
3177         * doc/invoke.texi: Remove references to -fdump-translation-unit.
3178
3179 2001-10-22  Richard Henderson  <rth@redhat.com>
3180
3181         * config/i386/i386.c (ix86_expand_clear): New.
3182         * config/i386/i386-protos.h: Declare it.
3183         * config/i386/i386.md (setcc peep2s): Use it.
3184         (movsi_xor): Unexport.
3185
3186 2001-10-22  Richard Henderson  <rth@redhat.com>
3187
3188         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
3189         free_EXPR_LIST_list for LOG_LINKS.
3190
3191 2001-10-21  Robert Lipe  <robertlipe@usa.net>
3192
3193         * config/i386/i386.c (sco_asm_named_section): Delete.
3194         (sco_asm_out_constructor): Delete.
3195         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
3196         (ASM_OUTPUT_DOUBLE_INT): Likewise.
3197         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
3198         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
3199         (EXCEPTION_SECTION): Delete EH scn renaming hack.
3200
3201 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3202
3203         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
3204         and/or fold extra calls into fewer ones.
3205         * collect2.c (dump_file): Likewise.
3206         * cppexp.c (parse_number): Likewise.
3207         * cpplex.c (_cpp_lex_direct): Likewise.
3208         * final.c (output_asm_insn, asm_fprintf): Likewise.
3209         * fix-header.c (inf_scan_ident, main): Likewise.
3210         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
3211         Likewise.
3212         * fold-const.c (real_hex_to_f): Likewise.
3213         * gen-protos.c (parse_fn_proto): Likewise.
3214         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
3215         * genrecog.c (change_state, write_action): Likewise.
3216         * gensupport.c (shift_output_template): Likewise.
3217         * local-alloc.c (requires_inout): Likewise.
3218         * mips-tfile.c (IS_ASM_IDENT): Likewise.
3219         * protoize.c (is_id_char, main): Likewise.
3220         * real.c (asctoeg): Likewise.
3221         * recog.c (asm_operand_ok): Likewise.
3222         * reload.c (find_reloads): Likewise.
3223         * scan.c (scan_identget_token): Likewise.
3224         * sched-vis.c (print_value): Likewise.
3225         * stringpool.c (ggc_alloc_string): Likewise.
3226         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
3227         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
3228         * tradcpp.c (rescan): Likewise.
3229         * tree.c (clean_symbol_name): Likewise.
3230         * varasm.c (decode_reg_name): Likewise.
3231
3232         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
3233         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
3234         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
3235         * m88k.c (output_ascii): Likewise.
3236         * m88k.h (OVERRIDE_OPTIONS): Likewise.
3237         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
3238         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
3239         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
3240
3241 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3242
3243         * langhooks.c (lang_hook_default_do_nothing,
3244         lang_hook_default_decode_option): New defaults.
3245         * langhooks.h: Make hooks unconditional and non-NULL.
3246         * toplev.c (compile_file, toplev_main): Update.
3247         * toplev.h: Update comments.
3248         * objc/objc-act.c (lang_hooks): Update to new paradigm.
3249
3250 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3251
3252         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
3253
3254         * system.h (IN_RANGE): New macro.
3255
3256 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
3257
3258         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
3259         INTLDEPS variable, which does not include $LIBICONV.
3260         * Makefile.in: Use INTLDEPS in LIBDEPS.
3261         * configure: Regenerate.
3262
3263 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3264
3265         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
3266         * cpplex.c (lex_percent, lex_dot): Remove.
3267         (get_effective_char, skip_block_comment, skip_line_comment,
3268         parse_identifier_slow, parse_number, parse_string, save_comment,
3269         _cpp_lex_direct): Update to do lookback freely.
3270         (IF_NEXT_IS, BACKUP): New macros.
3271         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
3272         * cppmacro.c (paste_tokens): Update.
3273
3274 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
3275
3276         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
3277
3278 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
3279
3280         * reload1.c (reload): Check CONSTANT_P before calling
3281         LEGITIMATE_PIC_OPERAND_P.
3282         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
3283         workaround of 2001-10-13.
3284
3285 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
3286
3287         * i386.c (split_di): Handle splitting of DFmode.
3288
3289 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3290
3291         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
3292         (adjust_address_1, offset_address): Likewise.
3293
3294         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
3295         (output_asm_insn): Call it for each line output.
3296         Don't record an operand more than once.
3297
3298         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
3299         * main.c: Include config.h and system.h, but not ansidecl.h.
3300         * Makefile.in (main.o): Update accordingly.
3301
3302 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
3303
3304         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
3305
3306 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
3307
3308         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
3309         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
3310         Break out from ...
3311         (find_sub_basic_blocks): ... here;
3312         (find_many_sub_basic_blocks): New.
3313         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
3314
3315         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
3316
3317         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
3318
3319         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
3320
3321         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
3322         * flow.c (update_life_info): Measure time.
3323         * c-decl.c: Include timevar.h
3324         (c_expand_body): Measure time.
3325         * toplev.c (rest_of_compilation): Measure time of mode switching
3326         separately.
3327         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency.
3328
3329         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
3330         (lang_independent_options): Add asynchronous-unwind-tables
3331         (toplev_main): flag_asynchronous_unwind_tables implies
3332         flag_unwind_tables.
3333         * flags.h (flag_asynchronous_unwind_tables): Declare.
3334         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
3335         flag_asynchronous_unwind_tables.
3336         (output_call_frame_info): Likewise.
3337         * invoke.texi (-fasynchronous-unwind-tables): Document.
3338         * i386.c (optimization_options): Enable
3339         flag_asynchronous_unwind_tables.
3340
3341         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
3342         * i386.md (s* expanders): Destination is QImode.
3343
3344         * toplev.c (rest_of_compilation): Do not call clear_log_links.
3345         * rtl.h (clear_log_links): Kill.
3346         * flow.c (clear_log_links): Make static; accept blocks parameter;
3347         do no clear life info.
3348         (update_life_info): Call clear_log_links.
3349
3350         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
3351
3352 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3353
3354         * cpplex.c (handle_newline, skip_escaped_newlines,
3355         get_effective_char, skip_block_comment, skip_line_comment,
3356         parse_identifier_slow, parse_number, parse_string,
3357         _cpp_lex_direct): Update to do more stepping back.
3358         (trigraph_ok): Similarly.  Rename trigraph_p.
3359         (SAVE_STATE, RESTORE_STATE): Remove.
3360         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
3361
3362         * cpplib.c (destringize): Rename destringize_and_run, and
3363         call run_directive directly.
3364         (_cpp_do__Pragma): Simplify.
3365
3366 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3367
3368         * pe.c (arm_pe_unique_section): Const-ify.
3369         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
3370         (switch_to_section): Add static prototype.
3371
3372         * output.h (drectve_section): Prototype.
3373
3374 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3375
3376         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
3377         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
3378         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
3379         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
3380         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
3381         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
3382         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
3383         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
3384         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
3385         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
3386         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
3387         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
3388         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
3389         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
3390         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
3391         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
3392         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
3393         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
3394         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
3395         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
3396         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
3397         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
3398         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
3399         cris-*-none, cris-*-linux*: Update ${tmfile} list.
3400         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
3401         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
3402         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
3403         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
3404         v850-*-*): Delete superflous ${cpu_type} setting.
3405         * config/linux.h: Delete svr4.h include.
3406         (SET_ASM_OP): Delete.
3407         * config/netware.h (INT_ASM_OP): Undef before define.
3408         * config/ptx4.h: Delete elfos.h include.
3409         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
3410         * config/svr4.h: Delete elfos.h include. Update commentary.
3411         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
3412         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
3413         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
3414         config/v850/v850.h: Delete svr4.h include.
3415         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
3416         config/m68k/m68kv4.h, config/m88k/sysv4.h,
3417         config/sparc/sysv4.h: Update includes.
3418         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
3419         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
3420         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
3421         config/m88k/dguxbcs.h: Delete includes.
3422         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
3423         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
3424         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
3425         it.
3426         * config/m88k/dgux.h: Delete include.
3427         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
3428         defining it.
3429         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
3430         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
3431         * config/sh/elf.h: Update include.
3432         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3433         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
3434
3435 2001-10-19  Catherine Moore  <clm@redhat.com>
3436
3437         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
3438         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
3439         base and count fields.
3440         (stormy16_expand_builtin_va_start):  last_reg_count changed to
3441         size_of_reg_args.  Use count + size in first comparison.
3442
3443 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3444
3445         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
3446         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
3447         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
3448         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
3449         Set alignment from type if INDIRECT_REF.
3450         (adjust_address_1, offset_address): Simplify alignment compuitation.
3451         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
3452         here; done by set_mem_attributes.
3453
3454 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3455
3456         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
3457         * arm-protos.h (rdata_section, zero_init_section, common_section):
3458         Prototype.
3459         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
3460         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
3461         traditional mode stringification.
3462         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
3463         in macros controling its use.
3464         * rtlanal.c: Include tm_p.h.
3465         * varasm.c (asm_output_aligned_bss): Mark parameter with
3466         ATTRIBUTE_UNUSED.
3467         (assemble_constant_align, assemble_start_function, assemble_align,
3468         assemble_variable, assemble_trampoline_template,
3469         output_constant_def_contents): Wrap potentially empty if-stmt body
3470         in brackets.
3471
3472 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3473
3474         * a29k-protos.h (literal_section): Prototype.
3475         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
3476         * a29k.md: Ensure function pointers are prototyped.
3477         * genattrtab.c (write_eligible_delay): Mark parameter with
3478         ATTRIBUTE_UNUSED.
3479
3480 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3481
3482         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
3483         * 1750a.c (print_operand): Fix format specifier warning.
3484         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
3485         * 1750a.md: Likewise.
3486         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
3487         * genemit.c (output_add_clobbers): Mark parameter with
3488         ATTRIBUTE_UNUSED.
3489         * genrecog.c (write_subroutine): Likewise.
3490         * integrate.c (expand_inline_function): Delete unused variable.
3491         * varasm.c (remove_from_pending_weak_list): Wrap with
3492         ASM_WEAKEN_LABEL.
3493
3494 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
3495
3496         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
3497         field is different to previous argument's neg field.
3498
3499         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
3500
3501 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3502
3503         * final.c (get_decl_from_op): New function.
3504         (output_asm_insn): Call it; write "*" when item with decl is address.
3505
3506 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
3507
3508         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
3509         about 64-bit support from the 3.0_branch version.
3510
3511 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
3512
3513         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
3514         USE_INCLUDED_LIBINTL when appropriate.
3515         * configure, config.in: Regenerate.
3516         * Makefile.in (datadir): Set to @datadir@.
3517         (intl.o): Also depend on $(CONFIG_H) and system.h.
3518
3519         * intl.c: Factor out common gettext initialization sequence.
3520         (gcc_init_libintl):  New function.
3521         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
3522         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
3523         off NLS.  Add multiple include guard.  No need to #ifdef-guard
3524         an #undef.  Prototype gcc_init_libintl here.
3525
3526         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
3527         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
3528         Use gcc_init_libintl.
3529
3530 2001-10-19  Catherine Moore  <clm@redhat.com>
3531
3532         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
3533
3534         * config/stormy16/stormy16.c (stormy16_split_move):  Make
3535         sure that REG_INC notes are present for auto_inc operands.
3536
3537 2001-10-19  Andreas Jaeger  <aj@suse.de>
3538
3539         * configure: Regenerated.
3540         * configure.in: Add x86_64 to switch statements.
3541
3542 2001-10-18  Richard Henderson  <rth@redhat.com>
3543
3544         * config/alpha/alpha.md (sibcall_osf_1): Load destination
3545         address into $27 explicitly.
3546         (sibcall_value_osf_1): Likewise.
3547
3548 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3549
3550         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
3551         (offset_address): New function.
3552         (free_emit_status): Free regno_decl.
3553         (init_emit): Pass proper number of elements to xcalloc.
3554         Allocate regno_decl.
3555         (mark_emit_status): Mark regno_decl values.
3556         * expr.c (highest_pow2_factor): New function.
3557         (expand_assigment): Use it and offset_address.
3558         Properly handle ptr_mode vs. Pmode in offset calculation.
3559         (store_constructor, expand_expr_unaligned): Likewise.
3560         (expand_expr, case COMPONENT_EXPR): Likewise.
3561         * expr.h (offset_address): New decl.
3562         * function.h (struct emit_status): Add regno_decl.
3563         (REGNO_DECL): New macro.
3564         * final.c (output_asm_name): Move in file and don't conditionalize
3565         on flag_print_asm_name.
3566         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
3567         Output names of operands, if known.
3568         * function.c (assign_parms): Set REGNO_DECL.
3569         * integrate.c (integrate_decl_tree): Likewise.
3570         * stmt.c (expand_decl): Likewise.
3571         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
3572
3573 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
3574
3575         * attribs.c (handle_noinline_attribute): New function.
3576         (handle_used_attribute): Likewise.
3577         (c_common_attribute_table): Added noinline and used.
3578         * doc/extend.texi (Function Attributes): Document them.
3579         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
3580         Warn when merging inline with attribute noinline.
3581         (start_decl, start_function): Warn if inline and attribute
3582         noinline appear in the same declaration.
3583
3584 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3585
3586         * config.gcc: Update c4x and i370 for C front end-specific
3587         dependencies.
3588         * config/c4x/c4x-c.c: New.
3589         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
3590         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
3591         New declarations.
3592         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
3593         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
3594         Make extern.
3595         (c4x_init_pragma): Remove.
3596         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
3597         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
3598         c4x_pr_ignored): Move to c4x-c.c.
3599         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
3600         * config/c4x/t-c4x: Update.
3601         * config/i370/i370-c.c: New.
3602         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
3603         (i370_pr_map): Move to i370-c.c.
3604         * config/i370/t-i370: New.
3605
3606         * doc/tm.texi: Update.
3607
3608 2001-10-17  Stan Shebs  <shebs@apple.com>
3609
3610         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
3611         typo fixes throughout.
3612         (machopic_output_stub): Remove some dead code.
3613
3614 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
3615
3616         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
3617         leak.
3618
3619 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3620
3621         * Makefile.in (print-rtl.o): Depend on TREE_H.
3622         * alias.c (get_alias_set): Make two passes over objects to first
3623         see if inner object is access via restricted pointer.
3624         Defer allocating alias set for restricted pointer until here.
3625         Call find_placeholder with second arg nonzero.
3626         Minor cleanups.
3627         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
3628         set for restricted pointer types.
3629         * emit-rtl.c (set_mem_attributes): Set more attributes.
3630         (set_mem_align, change_address, adjust_address_1): New functions.
3631         (change_address_1): Now static.
3632         (adjust_address, adjust_address_nv): Deleted.
3633         (replace_equiv_address): Call change_address_1.
3634         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
3635         (find_placeholder): Get starting point from PLIST arg.
3636         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
3637         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
3638         (adjust_address, adjust_address_nv): New macros.
3639         * print-rtl.c (tree.h): New include.
3640         (print_rtx, case MEM): Print all memory attributes.
3641
3642 2001-10-17  Richard Henderson  <rth@redhat.com>
3643
3644         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
3645
3646 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3647
3648         * c-tree.texi: Eliminate duplicated word.
3649         * cpp.texi: Likewise.
3650         * install.texi: Likewise.
3651         * invoke.texi: Likewise.
3652         * tm.texi: Likewise.
3653
3654 2001-10-17  Michael Collison  <collison@isisinc.net>
3655
3656         * dsp16xx.c: Fix comment formatting to match GNU standards.
3657         (dsp16xx_output_function_prologue): Change type of 'size'
3658         parameter from 'int' to HOST_WIDE_INT.
3659         (dsp16xx_output_function_epilogue): Change type of 'size'
3660         parameter from 'int' to HOST_WIDE_INT.
3661
3662 2001-10-16  Richard Henderson  <rth@redhat.com>
3663
3664         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
3665         * configure, config.in: Rebuild.
3666
3667         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
3668         (ix86_output_addr_diff_elt): New.
3669         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
3670         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3671         (JUMP_TABLES_IN_TEXT_SECTION): New.
3672         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
3673         * config/i386/i386-protos.h: Update.
3674
3675         * config/i386/386bsd.h, config/i386/beos-elf.h,
3676         config/i386/freebsd-aout.h, config/i386/freebsd.h,
3677         config/i386/i386-interix.h, config/i386/i386elf.h,
3678         config/i386/linux.h, config/i386/netbsd-elf.h,
3679         config/i386/netbsd.h, config/i386/openbsd.h,
3680         config/i386/ptx4-i.h, config/i386/rtemself.h,
3681         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
3682         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
3683
3684 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
3685
3686         * stmt.c (expand_asm_operands): Update commentary.
3687
3688 2001-10-16  Stan Shebs  <shebs@apple.com>
3689
3690         * config/darwin.h (GCC_NAME): Remove, no longer used.
3691         (NO_MATH_LIBRARY): Ditto.
3692         (MATH_LIBRARY): Define to emptiness.
3693         (DWARF2_DEBUGGING_INFO): Define.
3694         (PREFERRED_DEBUGGING_TYPE): Define.
3695         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
3696         (EXCEPTION_SECTION): Define.
3697         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
3698         * config/darwin.c (darwin_encode_section_info): Handle case of
3699         DECL_INITIAL being error_mark_node.
3700
3701 2001-10-16  Richard Henderson  <rth@redhat.com>
3702
3703         * alpha.c (current_file_function_operand): Don't fail for profiling.
3704         (direct_call_operand): New.
3705         * alpha-protos.h: Declare it.
3706         * alpha.h (EXTRA_CONSTRAINT): Use it.
3707         (PREDICATE_CODES): Add it.
3708         (ASM_OUTPUT_MI_THUNK): Remove.
3709         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
3710         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
3711
3712 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
3713
3714         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
3715         (JUMP_TABLES_IN_TEXT_SECTION): Define.
3716
3717 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
3718
3719         * cfg.c (free_edge): Break out from ....
3720         (remove_edge): ... here.
3721         (clear_edges): Use free_edge.
3722
3723         * att.h (ASM_QUAD): Add comment.
3724         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
3725
3726 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
3727
3728         * i386.c (split_ti): New function.
3729         (ix86_split_to_parts): Support TImodes.
3730         * i386.h (VALID_INT_MODE_P): Add TImode.
3731         * i386.md (movdi splitter): Fix.
3732         (movti): Support 64bit integer registers.
3733         (movti_rex64): New function and splitter.
3734
3735         * i386.c (*_cost): Add movsx/movzx cost.
3736         * i386.h (struct processor_costs): Add movsx/movzx fields.
3737         (RTX_COSTS): Handle zero/sign extend + avoid believing that
3738         64bit operations require split on 64bit machine.
3739         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
3740
3741         * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS.
3742         (ix86_expand_move): Avoid pushes of memory if size does not match;
3743         move long constants to register.
3744         (x86_initialize_trampoline): Fix mode.
3745         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
3746         Use ASM_QUAD on 64bit.
3747         * i386.md (test pattern): Disallow impossible constants.
3748         (tablejump PIC expander): Fix emitting of sum.
3749         (movdicc_rex64): Rename to movdicc.
3750         * linux64.h (LINK_SPEC): Add missing '%'.
3751
3752 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
3753
3754         * tree-inline.c (inlinable_function_p): Leave it up to the
3755         front-end to turn -finline-functions into DECL_INLINE set for all
3756         functions.
3757
3758 2001-10-16  Stan Shebs  <shebs@apple.com>
3759
3760         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
3761
3762 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
3763
3764         * recog.c: Formatting and comment typo fixes.
3765
3766         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
3767         version in single tree build.
3768         * configure: Regenerate.
3769
3770 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
3771
3772         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
3773         MODE arguments to gen_rtx and compare operand with const0_rtx.
3774
3775 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3776
3777         * system.h: Poison old unused target macros.
3778         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
3779         * config/stormy16/stormy16.c: Update references to obsolete macros.
3780         * config/stormy16/stormy16.h: Similarly.
3781         * config/stormy16/stormy16.md: Similarly.
3782         * config/cris/cris.h: Similarly.
3783
3784 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3785
3786         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
3787         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
3788         cpp_register_pragma): Update accordingly.
3789
3790 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3791
3792         * c-pragma.h (cpp_register_pragma_space): Remove.
3793         * cpplib.h (cpp_register_pragma_space): Remove.
3794         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
3795         (cpp_register_pragma_space): Remove.
3796         (cpp_register_pragma): Simplify using lookup_pragma_entry,
3797         add sanity checks.
3798         (do_pragma): Similarly.
3799         (_cpp_init_internal_pragmas): Don't register namespaces.
3800
3801         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
3802         Don't register namespaces.
3803         * cp/lex.c (init_cp_pragma): Similarly.
3804         * doc/tm.texi: Update.
3805
3806 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3807
3808         PR c/4157
3809         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
3810
3811 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
3812
3813         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
3814         add scheduling support.
3815         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
3816         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
3817         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
3818
3819
3820 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
3821
3822         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
3823         missing CONSTANT_P test in core GCC.
3824
3825 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3826
3827         * cppmain.c (struct printer): New member source.
3828         (scan_translation_unit): Fix spacing at start of lines.
3829         (cb_line_change): Update.
3830
3831         * gcc.dg/cpp/spacing2.c: New test.
3832
3833 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
3834
3835         * config/cris/arit.c: Use __builtin_labs, not abs.
3836
3837         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
3838
3839         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
3840         misplaced sprintf and fprintf argument.
3841
3842 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
3843
3844         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
3845         * configure.in, Makefile.in: Take out obsolete check-po logic.
3846         * configure, config.in: Regenerate.
3847
3848 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
3849
3850         * objc/objc-act.c (finish_objc): Correct precondition for emitting
3851         symtab declarations.
3852
3853 2001-10-12  Stan Shebs  <shebs@apple.com>
3854
3855         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
3856         declarations of arguments and local variables.
3857
3858 2001-10-12  Christopher Faylor  <cgf@redhat.com>
3859
3860         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
3861         ENDFILE_SPEC definition.
3862
3863 2001-10-12  Kazu Hirata  <kazu@hxi.com>
3864
3865         * gthr-dce.h: Fix comment formatting.
3866         * gthr-posix.h: Likewise.
3867         * gthr-single.h: Likewise.
3868         * gthr-solaris.h: Likewise.
3869         * gthr-vxworks.h: Likewise.
3870         * gthr-win32.h: Likewise.
3871
3872 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
3873
3874         * final.c (output_asm_insn): Make sure assembly dialects are
3875         terminated, not nested.  Output `|' and `}' characters if they
3876         don't appear inside assembly dialect selection.
3877         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
3878         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
3879         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
3880         strsetsi_rex_1): Add {} braces.
3881
3882 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
3883
3884         * toplev.c (compile_file): Ignore return value from yyparse.
3885         Always pop any nested binding levels after yyparse returns.
3886
3887 2001-10-11  Richard Henderson  <rth@redhat.com>
3888
3889         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
3890
3891 2001-10-11  Richard Henderson  <rth@redhat.com>
3892
3893         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
3894         fall back to add_AT_long_long for large CONST_INT.
3895
3896 2001-10-11  Richard Henderson  <rth@redhat.com>
3897
3898         * config/i386/i386.md (setcc splitters): Add four splitters to
3899         simplify compound compares that simplify_comparison can't handle.
3900
3901 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
3902
3903         * cpplex.c (digraph_spellings, token_spellings): Make static.
3904
3905 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3906
3907         * unroll.c (loop_iterations): Fixup last patch.
3908
3909 2001-10-11  Richard Henderson  <rth@redhat.com>
3910
3911         * rtl.h (REG_VTABLE_REF): New.
3912         * rtl.c (reg_note_name): Add it.
3913         * combine.c (distribute_notes): Handle it.
3914         * final.c (final_scan_insn): Handle it.
3915         * tree.def (VTABLE_REF): New.
3916         * expr.c (expand_expr): Handle it.
3917         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
3918         * output.h: Declare them.
3919
3920 2001-10-11  Richard Henderson  <rth@redhat.com>
3921
3922         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
3923         for a DECL_INITIAL.
3924
3925 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
3926
3927         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
3928         available in 64-bit mode.
3929
3930 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
3931
3932         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
3933         cris-*-linux* cases.
3934         * config/cris/cris-protos.h: New file.
3935         * config/cris/cris.c: New file.
3936         * config/cris/cris.h: New file.
3937         * config/cris/cris.md: New file.
3938         * config/cris/linux.h: New file.
3939         * config/cris/aout.h: New file.
3940         * config/cris/arit.c: New file.
3941         * config/cris/cris_abi_symbol.c: New file.
3942         * config/cris/mulsi3.asm: New file.
3943         * config/cris/t-aout: New file.
3944         * config/cris/t-cris: New file.
3945         * config/cris/t-elfmulti: New file.
3946         * config/cris/t-linux: New file.
3947         * doc/invoke.texi: Add CRIS options.
3948         * doc/install.texi (Specific): Add blurb for CRIS.
3949
3950 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
3951
3952         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
3953         before using it.
3954         * config/float/i32.h: Likewise.
3955         * config/float-i386.h: Likewise.
3956         * config/float-i64.h: Likewise.
3957         * config/float-m68k.h: Likewise.
3958         * config/float-sh.h: Likewise.
3959         * config/float-sparc.h: Likewise.
3960
3961 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
3962
3963         * doc/contrib.texi: Add note about CRIS port to my entry.
3964
3965 2001-10-11  Kazu Hirata  <kazu@hxi.com>
3966
3967         * basic-block.h: Fix formatting.
3968         * bitmap.h: Likewise.
3969         * cpplib.h: Likewise.
3970         * c-tree.h: Likewise.
3971         * diagnostic.h: Likewise.
3972         * flags.h: Likewise.
3973         * ggc.h: Likewise.
3974         * longlong.h: Likewise.
3975         * real.h: Likewise.
3976         * reload.h: Likewise.
3977         * rtl.h: Likewise.
3978         * tree.h: Likewise.
3979
3980 2001-10-10  Richard Henderson  <rth@redhat.com>
3981
3982         * c-parse.in (asm_operand): Allow named operands.
3983         * genconfig.c (max_recog_operands): Set to 29.
3984         * local-alloc.c (requires_inout): Skip multiple digits.
3985         * recog.c (asm_operand_ok): Likewise.
3986         (preprocess_constraints): Use strtoul for matching constraints.
3987         (constrain_operands): Likewise.
3988         * regmove.c (find_matches): Likewise.
3989         * reload.c (find_reloads): Likewise.
3990         * stmt.c (parse_output_constraint): Don't reject in-out
3991         constraint on operands > 9.  Reject '[' in constraint.
3992         (expand_asm_operands): Handle named operands.  Use strtoul
3993         for matching constraints.
3994         (check_operand_nalternatives): Split out from expand_asm_operands.
3995         (check_unique_operand_names): New.
3996         (resolve_operand_names, resolve_operand_name_1): New.
3997
3998         * doc/extend.texi (Extended Asm): Document named operands.
3999         * doc/md.texi (Simple Constraints): Document matching constraints
4000         on operands > 9.
4001
4002 2001-10-10  Richard Henderson  <rth@redhat.com>
4003
4004         * combine.c (try_combine): Handle a SEQUENCE of one insn.
4005
4006         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
4007         (jcc splitters): Add two splitters to simplify compound compares
4008         that simplify_comparison can't handle.
4009
4010 2001-10-10  Richard Henderson  <rth@redhat.com>
4011
4012         * langhooks.c: Include langhooks.h.
4013         * Makefile.in (langhooks.o): Depend on it.
4014
4015 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
4016
4017         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
4018         should not be considered as a no-op.
4019         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
4020
4021 2001-10-10  Stan Shebs  <shebs@apple.com>
4022
4023         * alias.c: Remove uses of "register" specifier in declarations
4024         of arguments and local variables.
4025         * c-common.c: Ditto.
4026         * c-convert.c: Ditto.
4027         * c-decl.c: Ditto.
4028         * c-format.c: Ditto.
4029         * c-semantics.c: Ditto.
4030         * c-typeck.c: Ditto.
4031         * caller-save.c: Ditto.
4032         * calls.c: Ditto.
4033         * cfg.c: Ditto.
4034         * cfgbuild.c: Ditto.
4035         * cfgrtl.c: Ditto.
4036         * collect2.c: Ditto.
4037         * combine.c: Ditto.
4038         * convert.c: Ditto.
4039         * cppexp.c: Ditto.
4040         * cppfiles.c: Ditto.
4041         * cse.c: Ditto.
4042         * dbxout.c: Ditto.
4043         * defaults.h: Ditto.
4044         * df.c: Ditto.
4045         * dwarf2out.c: Ditto.
4046         * dwarfout.c: Ditto.
4047         * emit-rtl.c: Ditto.
4048         * explow.c: Ditto.
4049         * expmed.c: Ditto.
4050         * expr.c: Ditto.
4051         * final.c: Ditto.
4052         * fix-header.c: Ditto.
4053         * floatlib.c: Ditto.
4054         * flow.c: Ditto.
4055         * fold-const.c: Ditto.
4056         * function.c: Ditto.
4057         * gcc.c: Ditto.
4058         * gcse.c: Ditto.
4059         * gen-protos.c: Ditto.
4060         * genattrtab.c: Ditto.
4061         * gencheck.c: Ditto.
4062         * genconfig.c: Ditto.
4063         * genemit.c: Ditto.
4064         * genextract.c: Ditto.
4065         * genflags.c: Ditto.
4066         * gengenrtl.c: Ditto.
4067         * genoutput.c: Ditto.
4068         * genpeep.c: Ditto.
4069         * genrecog.c: Ditto.
4070         * gensupport.c: Ditto.
4071         * global.c: Ditto.
4072         * gmon.c: Ditto.
4073         * graph.c: Ditto.
4074         * haifa-sched.c: Ditto.
4075         * hard-reg-set.h: Ditto.
4076         * hash.c: Ditto.
4077         * integrate.c: Ditto.
4078         * jump.c: Ditto.
4079         * lists.c: Ditto.
4080         * local-alloc.c: Ditto.
4081         * loop.c: Ditto.
4082         * mips-tdump.c: Ditto.
4083         * mips-tfile.c: Ditto.
4084         * optabs.c: Ditto.
4085         * prefix.c: Ditto.
4086         * print-rtl.c: Ditto.
4087         * read-rtl.c: Ditto.
4088         * real.c: Ditto.
4089         * recog.c: Ditto.
4090         * reg-stack.c: Ditto.
4091         * regclass.c: Ditto.
4092         * regmove.c: Ditto.
4093         * reload.c: Ditto.
4094         * reload1.c: Ditto.
4095         * reorg.c: Ditto.
4096         * resource.c: Ditto.
4097         * rtl.c: Ditto.
4098         * rtlanal.c: Ditto.
4099         * scan.c: Ditto.
4100         * sched-deps.c: Ditto.
4101         * sched-rgn.c: Ditto.
4102         * sdbout.c: Ditto.
4103         * simplify-rtx.c: Ditto.
4104         * stmt.c: Ditto.
4105         * stor-layout.c: Ditto.
4106         * toplev.c: Ditto.
4107         * tradcif.y: Ditto.
4108         * tradcpp.c: Ditto.
4109         * tree.c: Ditto.
4110         * unroll.c: Ditto.
4111         * varasm.c: Ditto.
4112         * xcoffout.c: Ditto.
4113
4114 2001-10-10  Richard Henderson  <rth@redhat.com>
4115
4116         * rtl.h (can_reverse_comparison_p): Remove.
4117
4118 2001-10-10  Christopher Faylor <cgf@redhat.com>
4119
4120         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
4121         used.
4122
4123 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
4124
4125         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
4126         (Thanks to Chris Faylor for suggesting macro name).
4127         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
4128         WIN32 defines.
4129         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
4130         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
4131         (MATH_LIBRARY): Undef before definition.
4132         (OUTPUT_QUOTED_STRING): Likewise.
4133         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
4134
4135 2001-10-10  Richard Henderson  <rth@redhat.com>
4136
4137         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
4138         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
4139         a tristate comparison value.
4140         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
4141
4142 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4143
4144         PR c++/4512
4145         * unroll.c (loop_iterations): Ignore insns generated by loop
4146         unrolling.
4147
4148         * config.gcc (mips*-*-gnu*): Delete support.
4149         * config/mips/gnu.h: Remove.
4150
4151 2001-10-10  Kazu Hirata  <kazu@hxi.com>
4152
4153         * calls.c: Fix formatting.
4154         * c-decl.c: Likewise.
4155         * cfgcleanup.c: Likewise.
4156         * combine.c: Likewise.
4157         * cppfiles.c: Likewise.
4158         * cpplib.c: Likewise.
4159         * cppmacro.c: Likewise.
4160         * crtstuff.c: Likewise.
4161         * cse.c: Likewise.
4162         * dwarf2out.c: Likewise.
4163         * expmed.c: Likewise.
4164         * expr.c: Likewise.
4165         * fold-const.c: Likewise.
4166         * function.c: Likewise.
4167         * gcse.c: Likewise.
4168         * genattrtab.c: Likewise.
4169         * ggc-page.c: Likewise.
4170         * integrate.c: Likewise.
4171         * libgcc2.c: Likewise.
4172         * loop.c: Likewise.
4173         * optabs.c: Likewise.
4174         * profile.c: Likewise.
4175         * protoize.c: Likewise.
4176         * real.c: Likewise.
4177         * recog.c: Likewise.
4178         * reload1.c: Likewise.
4179         * reload.c: Likewise.
4180         * reorg.c: Likewise.
4181         * resource.c: Likewise.
4182         * sched-rgn.c: Likewise.
4183         * sdbout.c: Likewise.
4184         * stmt.c: Likewise.
4185         * toplev.c: Likewise.
4186         * varasm.c: Likewise.
4187
4188 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
4189
4190         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
4191         * Makefile.in (langhooks.o): Add dependencies.
4192
4193 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
4194
4195         * rs6000.c (rs6000_emit_load_toc_table): Don't
4196         strdup the toc label.
4197         (create_TOC_reference): Likewise.
4198
4199 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
4200
4201         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
4202         version default.
4203
4204 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
4205
4206         * config/i386/i386.c (ix86_attribute_table): Correct
4207         min_len, max_len fields for dllimport, dllexport and shared.
4208
4209 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
4210
4211         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
4212         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
4213         Consistently use "nonzero" instead of "non-zero".
4214
4215 2001-10-09  Kazu Hirata  <kazu@hxi.com>
4216
4217         * acconfig.h: Fix comment formatting.
4218         * c-dump.h: Likewise.
4219         * c-tree.h: Likewise.
4220         * conditions.h: Likewise.
4221         * expr.h: Likewise.
4222         * function.h: Likewise.
4223         * gthr.h: Likewise.
4224         * hwint.h: Likewise.
4225         * integrate.h: Likewise.
4226         * intl.h: Likewise.
4227         * loop.h: Likewise.
4228         * optabs.h: Likewise.
4229
4230 2001-10-09  Kazu Hirata  <kazu@hxi.com>
4231
4232         * c-common.h: Fix comment formatting.
4233         * c-dump.c: Likewise.
4234         * cfg.c: Likewise.
4235         * diagnostic.h: Likewise.
4236         * except.c: Likewise.
4237         * gcc.h: Likewise.
4238         * gcov-io.h: Likewise.
4239         * genattrtab.c: Likewise.
4240         * output.h: Likewise.
4241         * predict.h: Likewise.
4242         * reload1.c: Likewise.
4243         * reload.h: Likewise.
4244         * resource.h: Likewise.
4245         * scan.h: Likewise.
4246         * system.h: Likewise.
4247         * tree.h: Likewise.
4248         * tree-inline.c: Likewise.
4249         * tsystem.h: Likewise.
4250         * varasm.c: Likewise.
4251         * xcoffout.h: Likewise.
4252
4253 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
4254
4255         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
4256
4257 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
4258
4259         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
4260         config/i386/i386elf.h, config/i386/netbsd-elf.h,
4261         config/i386/netware.h, config/mcore/gfloat.h,
4262         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
4263         config/netware.h, gccbug.in: Update FSF address.
4264
4265 2001-10-09  Kazu Hirata  <kazu@hxi.com>
4266
4267         * c-common.c: Fix comment typos.
4268         * cfgrtl.c: Likewise.
4269         * collect2.c: Likewise.
4270         * cpplex.c: Likewise.
4271         * doloop.c: Likewise.
4272         * dwarf2out.c: Likewise.
4273         * dwarfout.c: Likewise.
4274         * expr.c: Likewise.
4275         * fold-const.c: Likewise.
4276         * gcc.c: Likewise.
4277         * gcov.c: Likewise.
4278         * gcse.c: Likewise.
4279         * global.c: Likewise.
4280         * ifcvt.c: Likewise.
4281         * loop.c: Likewise.
4282         * optabs.c: Likewise.
4283         * protoize.c: Likewise.
4284         * regclass.c: Likewise.
4285         * reorg.c: Likewise.
4286         * rtl.h: Likewise.
4287         * stmt.c: Likewise.
4288         * tree.h: Likewise.
4289         * doc/cpp.texi: Likewise.
4290         * doc/c-tree.texi: Likewise.
4291         * doc/extend.texi: Likewise.
4292         * doc/invoke.texi: Likewise.
4293         * doc/objc.texi: Likewise.
4294         * doc/tm.texi: Likewise.
4295
4296 2001-10-08  Richard Henderson  <rth@redhat.com>
4297
4298         * varasm.c (set_named_section_flags): Initialize "declared".
4299
4300 2001-10-08  Robert Lipe  <robertlipe@usa.net>
4301
4302         * varasm.c (struct in_named_entry): Add declared.
4303         (named_section_first_declaration): New function.
4304         (default_elf_asm_named_section): Use it.
4305         * output.h (named_section_first_declaration): New.
4306
4307 2001-10-08  Richard Henderson  <rth@redhat.com>
4308
4309         * i386.md (movsi_xor): Export.
4310         (setcc peep2): Use it when available; add an alternative to
4311         match zero_extendhisi2_and.
4312
4313 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4314
4315         * romp-protos.h (romp_initialize_trampoline): New function.
4316         * romp.c (romp_initialize_trampoline): Likewise.
4317         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
4318         romp_initialize_trampoline.
4319
4320 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4321
4322         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
4323         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
4324         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
4325         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
4326
4327 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4328
4329         * unroll.c (loop_iterations): Extend check for multiple back edges.
4330
4331 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
4332
4333         * langhooks.h: New file.
4334         * Makefile.in (OBJS): Added langhooks.o.
4335         (c-lang.o): Depend on langhooks.h.
4336         (c-common.o): Don't depend on tree-inline.h.
4337         (tree-inline.o): Depend on toplev.h.
4338         (langhooks.o): New rule.
4339         * c-common.c: Don't include tree-inline.h.
4340         (c_mark_lang_decl): Mark argument c as unused.
4341         (c_common_lang_init): Don't initialize hooks here.
4342         * c-lang.c: Include langhooks.h, then override some macros.
4343         (lang_hooks): Initialize with macros in langhooks.h.
4344         (c_init): Don't initialize hooks here.
4345         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
4346         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
4347         * tree-inline.c: Include toplev.h.  Don't define hook variables.
4348         * tree-inline.h: Don't define hook types nor declare hook
4349         variables.  Move macros to...
4350         * langhooks.c: ... new file, as functions.  Adjust all callers.
4351
4352 2001-10-08  Jeffrey A Law  <law@cygnus.com>
4353
4354         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
4355         purge_mem_unchanging_flag on all instructions, not just on those
4356         before NOTE_INSN_FUNCTION_BEG.
4357
4358 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4359
4360         * cppmacro.c (_cpp_create_definition): Leave comments off.
4361
4362         * doc/cpp.texi: Update.
4363
4364 2001-10-08  DJ Delorie  <dj@redhat.com>
4365
4366         * c-decl.c (grokfield): Make sure the only unnamed fields
4367         we're allowing are either structs or unions.
4368         * doc/extend.texi: Add documentation for the unnamed field
4369         extension.
4370
4371 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
4372
4373         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
4374         * configure.in: Use it.
4375         * configure: Regenerated.
4376         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
4377         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
4378
4379 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4380
4381         * cppfiles.c (open_file): Don't mark zero-length files
4382         never-reread here.  Don't output diagnostics here either.
4383         (stack_include_file): Mark them never-reread here.
4384         (_cpp_read_file): Update.
4385
4386 2001-10-08  Richard Henderson  <rth@redhat.com>
4387
4388         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
4389
4390 2001-10-08  Richard Henderson  <rth@redhat.com>
4391
4392         * expr.c (store_expr): When converting a CONST_INT for storage
4393         in a SUBREG, convert it to both SUBREG modes before stripping
4394         the SUBREG.
4395
4396 2001-10-08  Richard Henderson  <rth@redhat.com>
4397
4398         * varasm.c (restore_varasm_status): New.
4399         * function.h: Declare it.
4400         * function.c (pop_function_context_from): Call it.
4401
4402 2001-10-08  Richard Henderson  <rth@redhat.com>
4403
4404         * c-common.h (struct c_lang_decl): Add declared_inline.
4405         * c-tree.h (DECL_DECLARED_INLINE_P): New.
4406         * c-lang.c (c_disregard_inline_limits): Use it.
4407         * c-decl.c (duplicate_decls): Likewise.
4408         (pushdecl, redeclaration_error_message): Likewise.
4409         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
4410         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
4411         Set DECL_INLINE if -finline-functions.
4412         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
4413
4414 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4415
4416         * cppmacro.c (funlike_invocation_p): Move some logic to caller
4417         in enter_macro_context.  Create a padding token in its own context
4418         if necessary when the search for '(' fails.
4419         (enter_macro_context): Update.
4420
4421 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4422
4423         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
4424         genmultilib, toplev.c: Fix spelling errors of "separate" as
4425         "seperate", and corresponding spelling errors of related words.
4426
4427 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4428
4429         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
4430         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
4431         Likewise.
4432         * c-dump.c (dump_option_value_info): Likewise.
4433         * c-format.c (format_length_info, format_char_info,
4434         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
4435         * collect2.c (names): Likewise.
4436         * cppdefault.h (default_include): Likewise.
4437         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
4438         * flow.c (life_analysis): Likewise.
4439         * gcc.c (dir_separator_str, modify_target, option_map,
4440         target_option_translations, spec_list_1, extra_specs_1,
4441         init_spec): Likewise.
4442         * gcov.c (gcov_version_string): Likewise.
4443         * genattr.c (write_units): Likewise.
4444         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
4445         * gengenrtl.c (rtx_definition, defs): Likewise.
4446         * genrecog.c (pred_table): Likewise.
4447         * global.c (global_alloc): Likewise.
4448         * lcm.c (optimize_mode_switching): Likewise.
4449         * local-alloc.c (find_free_reg): Likewise.
4450         * params.h (param_info): Likewise.
4451         * predict.c (predictor_info): Likewise.
4452         * protoize.c (unexpansion_struct): Likewise.
4453         * real.c (bmask): Likewise.
4454         * recog.h (insn_operand_data, insn_data): Likewise.
4455         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
4456         * stmt.c (expand_nl_goto_receiver): Likewise.
4457         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
4458         target_switches, target_options): Likewise.
4459         * tradcif.y (token, tokentab2, yylex): Likewise.
4460         * tree.h (attribute_spec): Likewise.
4461
4462         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
4463         Likewise.
4464         * arc.c (arc_output_function_epilogue): Likewise.
4465         * arm.c (processors, all_cores, all_architectures,
4466         arm_override_options, isr_attribute_arg, isr_attribute_args,
4467         arm_isr_value): Likewise.
4468         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
4469         Likewise.
4470         * c4x.c (c4x_int_reglist): Likewise.
4471         * d30v.c (override_options): Likewise.
4472         * h8300.c (shift_insn): Likewise.
4473         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
4474         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
4475         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
4476         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
4477         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
4478         * i386.h (processor_costs, ix86_cost): Likewise.
4479         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
4480         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
4481         * m68k.c (codes_68881, codes_FPA): Likewise.
4482         * m88k.c (mode_from_align, max_from_align, all_from_align,
4483         best_from_align, m_options): Likewise.
4484         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
4485         * mcore.c (mode_from_align): Likewise.
4486         * mips/elf64.h (UNIQUE_SECTION): Likewise.
4487         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
4488         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
4489         * mips.h (mips_regno_to_class): Likewise.
4490         * ns32k.c (scales): Likewise.
4491         * pa.c (import_string, magic_milli): Likewise.
4492         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
4493         * sparc.c (leaf_reg_remap, sparc_override_options,
4494         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
4495         Likewise.
4496         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
4497
4498 2001-10-07  Dale Johannesen  <dalej@apple.com>
4499
4500         * reload1.c (reload_reg_free_p): Teach register interference
4501         checking that multiple output reloads are emitted in
4502         reverse order.
4503         reload1.c (reload_reg_reaches_end_p):  Ditto.
4504         reload1.c (reloads_conflict):  Ditto.
4505
4506 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4507
4508         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
4509         NULL_TREE inside @code.
4510
4511 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4512
4513         * doc/gcc.texi: Document consistent style of "32-bit",
4514         "Objective-C", and "@code{NULL}".
4515
4516 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
4517
4518         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
4519         (cpp_token_len, cpp_spell_token, cpp_output_token,
4520         _cpp_equiv_tokens): Handle it.
4521         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
4522         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
4523         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
4524         error messages.
4525
4526 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4527
4528         * gcc.c (default_compilers): Remove .ada.
4529
4530 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
4531
4532         * doc/cppinternals.texi: Update.
4533
4534 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
4535
4536         * gcc.c (main): Set this_file_error if the appropriate
4537         compiler for a language has not been installed.
4538
4539 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
4540
4541         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
4542
4543 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4544
4545         * gccbug.in (CATEGORIES): Add ada.
4546
4547 2001-10-05  Catherine Moore  <clm@redhat.com>
4548
4549         * config/stormy16/stormy-abi:  Document abi changes.
4550         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
4551         (ICALL_REGS): New register class.
4552         (NUM_ARGUMENT_REGISTERS): Now 6.
4553         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
4554         in registers.
4555         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
4556         * config/stormy16.md (call_internal, call_value_internal,
4557         indirect_jump): Use new 'z' constraint.
4558
4559 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4560
4561         * doc/cppinternals.texi: Update.
4562
4563 2001-10-05  Richard Henderson  <rth@redhat.com>
4564
4565         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
4566         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
4567         the gas section-name-as-label feature.
4568
4569 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4570
4571         * doc/cppinternals.texi: Update.
4572
4573 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4574
4575         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
4576         to ensure valid SImode constants.
4577
4578 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
4579
4580         * Makefile.in (c-decl.o): Depend on tree-inline.h.
4581         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
4582         * c-decl.c: Include tree-inline.h.
4583         (c_expand_body): Call optimize_inline_calls. Determine whether
4584         a function is inlinable upfront, and only clear
4585         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
4586         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
4587         (c_disregard_inline_limits): New function.
4588         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
4589         (c_post_options): Enable tree inlining if inlining is enabled.
4590         Don't inline trees when instrumenting functions.
4591         (c_init): Initialize lang_disregard_inline_limits and
4592         lang_cannot_inline_tree_fn.
4593         * tree-inline.c (initialize_inlined_parameters): Handle calls
4594         with fewer arguments than declared parameters, and fewer
4595         parameters than passed arguments.  Don't assume value is a
4596         DECL.
4597         (declare_return_variable): Convert return value back to the
4598         original type, if it was promoted.
4599         (tree_inlinable_function_p): New function.
4600         (inlinable_function_p): Don't look at DECL_INLINE if we're
4601         inlining all functions.  Make it work with a NULL id.
4602         Re-check DECL_UNINLINABLE after language-specific checks.
4603         * tree-inline.h (tree_inlinable_function_p): Declare it.
4604         * integrate.c (save_for_inline): Don't bother to prepare argvec
4605         when not inlining.
4606         * cse.c (check_for_label_ref): Don't check deleted labels.
4607
4608         * Makefile.in (tree-inline.o): Depend on newly-included headers.
4609         * tree-inline.c: Include headers needed for the functions moved in.
4610         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
4611         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
4612         (copy_body, initialize_inlined_parameters): Likewise.
4613         (declare_return_variable, inlinable_function_p): Likewise.
4614         (expand_call_inline, expand_calls_inline): Likewise.
4615         (optimize_inline_calls, clone_body): Likewise.
4616         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
4617         (copy_tree_r, remap_save_expr): Likewise.
4618
4619 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
4620
4621         * Makefile.in (OBJS): Added tree-inline.o.
4622         (c-common.o): Depend on tree-inline.h.
4623         (tree-inline.o): New target.
4624         * c-common.c: Include tree-inline.h.
4625         (c_mark_lang_decl): Don't mark saved_tree.
4626         (c_common_lang_init): Set lang_anon_aggr_type_p.
4627         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
4628         (struct c_lang_decl): Moved saved_tree to tree_decl.
4629         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
4630         * integrate.h (function_attribute_inlinable_p): Declare it.
4631         * integrate.c (function_attribute_inlinable_p): Export it.
4632         * tree-inline.c: New file.  Define variables declared in...
4633         * tree-inline.h: New file.  Declare functions to be moved to
4634         tree-inline.c.  Define macros and declare types and hooks for
4635         language-specific tree inlining.
4636         (flag_inline_trees): Moved definition from cp/decl2.c.
4637         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
4638         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
4639         (struct tree_decl): Moved saved_tree from c_lang_decl and
4640         inlined_fns from C++'s lang_decl.
4641
4642 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
4643
4644         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
4645         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
4646
4647 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4648
4649         * doc/cppinternals.texi: Update.
4650
4651 2001-10-04  Eric Christopher  <echristo@redhat.com>
4652
4653         * config/mips/mips.c (init_cumulative_args): Remember to set
4654         cum->prototype.
4655         * config.gcc: Redo linux configuration. Add target_cpu_default
4656         of soft-float to all mipsisa32 combinations and tx39.
4657         * config/mips/linux.h: Remove include of mips.h.
4658
4659 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
4660
4661         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
4662         HOST_LDFLAGS and HOST_CPPFLAGS.
4663
4664 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
4665
4666         * c-parse.in (objc_inherit_code, objc_pq_context,
4667         objc_public_flag): Make static.
4668         (objc_interface_context, objc_implementation_context,
4669         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
4670         global tree array in objc/objc-act.[ch].
4671         (methoddef): Remove unnecessary code.
4672
4673         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
4674         Hoist struct definitions to objc-act.h.
4675         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
4676         cat_count): Place declaration in objc-act.h.
4677         (objc_tree_index): Move enumeration to objc-act.h.
4678         (objc_global_trees): Place declaration and macro accessors in
4679         objc-act.h.
4680         (implementation_context): Remove duplicate; use
4681         objc_implementation_context instead:
4682         (method_context): Remove duplicate; use objc_method_context
4683         instead.
4684         (objc_ellipsis_node, objc_method_prototype_template,
4685         implemented_classes, function_type): Move global vars to
4686         objc_global_trees.
4687         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
4688         (build_message_expr): Move actual construction of ObjC message
4689         send nodes to finish_message_expr.
4690         (finish_message_expr): New routine, contains code formerly in
4691         build_message_expr.
4692         * objc/objc-act.h (finish_message_expr): New prototype.
4693         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
4694         declarations; these vars are now part of objc_global_trees.
4695         (objc_tree_index, objc_global_trees): Move definitions from
4696         objc-act.c.
4697         * objc/objc-tree.def: Update copyright info.
4698
4699 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
4700
4701         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
4702         op is NULL.
4703         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
4704         only if TARGET_ARCH64.
4705
4706 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
4707
4708         * doc/extend.texi: Fix some problems with previous checkin.
4709         * doc/invoke.texi: Likewise.
4710
4711 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4712
4713         * cpphash.h: Update comments.
4714         (cpp_context): Update.
4715         (spec_nodes): Remove n__Pragma.
4716         * cppinit.c (cpp_create_reader): Update.
4717         (builtin_array): Add _Pragma.
4718         * cpplib.h: Update comments.
4719         (NODE_DISABLED, BT_PRAGMA): New.
4720         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
4721         * cppmacro.c (struct cpp_macro): Remove disabled.
4722         (builtin_macro): Return int, handle _Pragma, push the new token
4723         on the context stack.
4724         (funlike_invocation_p): Unconstify, update.
4725         (enter_macro_context): Handle builtins here.
4726         (replace_args, push_token_context, push_ptoken_context):
4727         Update for prototype changes.
4728         (_cpp_pop_context): Update.
4729         (cpp_get_token): Don't handle buitins, nor _Pragma here.
4730         (cpp_sys_macro_p): Update.
4731         (_cpp_free_definition): Clear disabled flag.
4732         (_cpp_create_definition): Upate.
4733         * cppmain.c: Update comments.
4734
4735 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
4736                                 Andreas Jaeger <aj@suse.de>,
4737                                 Jan Hubicka    <jh@suse.cz>
4738
4739         * doc/invoke.texi (i386 Options): Document x86-64 options.
4740         (i386 and x86-64 Options): Rename i386 options section.
4741
4742         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
4743         (TARGET_SWITCHES): Add -munwind-info.
4744         (MASK_NO_UNWIND_INFO): New.
4745         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
4746         biarch compilation.
4747         (ASM_OUTPUT_DOUBLE_INT): New.
4748
4749         * config/i386/linux64.h: New spec file for Linux x86-64 support.
4750         * config.gcc: Fix tm_file settings for x86-64.
4751         * config/i386/x86-64.h: New file with OS independent x86-64
4752         definitions.
4753         * config/i386/biarch64.h: New file used to configure compiler
4754         to biarch/64bit compilation.
4755
4756         * config/i386/i386.c: (override_options): Set flags default
4757         for 64bit compilation.
4758
4759 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
4760
4761         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
4762         (ix86_expand_int_movcc): Optimize DImode conditional moves with
4763         constants on x86_64.
4764         (ix86_attr_length_immediate_default): Support MODE_DI.
4765         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
4766         condition.
4767         (indirect_jump, tablejump): Turn into expander.
4768
4769 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4770
4771         * c-common.c (c_format_attribute_table): Make format and
4772         format_arg attributes apply to function types rather than to
4773         decls.
4774         (is_valid_printf_arglist): Construct an attribute list and pass
4775         that to check_function_format rather than a name.
4776         * c-common.h (check_function_format): Adjust prototype.
4777         * c-decl.c (duplicate_decls): Preserve attributes from type of
4778         built-in decl when allowing for harmless conflict in types.
4779         * c-format.c (record_function_format,
4780         record_international_format, function_format_list,
4781         international_format_info, international_format_list): Remove.
4782         (function_format_info): Remove next, name and assembler_name.
4783         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
4784         (decode_format_attr): New.
4785         (handle_format_attribute): Handle receiving a type rather than a
4786         decl.  Call decode_format_attr.  Store format information in a
4787         function_format_info.
4788         (handle_format_arg_attribute): Correct comment.  Handle receiving
4789         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
4790         arg_num.
4791         (check_format_info_recurse, check_format_info_main): Take argument
4792         numbers as unsigned HOST_WIDE_INT.
4793         (check_function_format): Take a list of attributes from the
4794         function type rather than a name or assembler name.  Check for
4795         format attributes in that list and the attributes on the type of
4796         the current function rather than looking through
4797         function_format_list.
4798         (check_format_info): Use unsigned HOST_WIDE_INT for argument
4799         numbers.
4800         (check_format_info_recurse): Take format_arg attributes from the
4801         type of the function calls rather than using
4802         international_format_list.  Allow for multiple format_arg
4803         attributes.
4804         * c-typeck.c (build_function_call): Pass type attributes to
4805         check_function_format rather than name or assembler name.  Don't
4806         require there to be a name or assembler name to check formats.
4807
4808 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4809
4810         * attribs.c (decl_attributes): Possibly call
4811         insert_default_attributes to insert default attributes on
4812         functions in a lazy manner.
4813         * builtin-attrs.def: New file; define the default format and
4814         format_arg attributes.
4815         * c-common.c (c_format_attribute_table): Move to earlier in the
4816         file.
4817         (c_common_nodes_and_builtins): Initialize format_attribute_table.
4818         (enum built_in_attribute, built_in_attributes,
4819         c_attrs_initialized, c_init_attributes,
4820         c_common_insert_default_attributes): New.
4821         (c_common_lang_init): Don't initialize format_attribute_table.  Do
4822         call c_init_attributes.
4823         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
4824         * c-common.h (init_function_format_info): Don't declare.
4825         (c_common_insert_default_attributes): Declare.
4826         * c-decl.c (implicitly_declare, builtin_function): Call
4827         decl_attributes.
4828         (init_decl_processing): Don't call init_function_format_info.
4829         (insert_default_attributes): New.
4830         * c-format.c (handle_format_attribute,
4831         handle_format_arg_attribute): Be quiet about inappropriate
4832         declaration when applying default attributes.
4833         (init_function_format_info): Remove.
4834         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
4835         (insert_default_attributes): Declare.
4836
4837 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4838
4839         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
4840
4841 2001-10-01  Jim Wilson  <wilson@redhat.com>
4842
4843         * sched-deps.c (add_dependence): When elide conditional dependence,
4844         check that insn doesn't modify cond2.
4845
4846 2001-10-01  Dale Johannesen  <dalej@apple.com>
4847
4848         * config/rs6000/rs6000.h (enum processor_type): Add support
4849         for 7400 (G4) and 7450.
4850         (RTX_COSTS): Ditto.
4851         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
4852         (rs6000_issue_rate): Ditto.
4853         (rs6000_adjust_cost): Fix cycle counts for compares.
4854         (debug_stack_info):  Fix an obvious typo.
4855         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
4856         * doc/invoke.texi: Document.
4857         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
4858         for Darwin.
4859         (PROCESSOR_DEFAULT): Ditto.
4860
4861 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
4862
4863         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
4864         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
4865         later recursive make invocation.
4866
4867 2001-10-01  Hans Boehm  <boehm@acm.org>
4868
4869         * optabs.c (emit_libcall_block): When using non-call exceptions,
4870         don't add REG_LIBCALL reg notes to trapping calls.
4871
4872 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
4873
4874         * flow.c (propagate_block_delete_libcall): Remove unused first arg
4875         (propagate_one_insn):  Update for above change
4876
4877 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
4878
4879         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
4880         _Unwind_GetTextRelBase): Argument is unused.
4881
4882 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4883
4884         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
4885         Loop through NOPs, placeholders, and components.
4886         Don't go through NOPs if change mode.
4887         (record_alias_subset): Do nothing if SUBSET and SET are the same.
4888         * emit-rtl.c (set_mem_alias_set): Enable check.
4889         * expr.c (find_placeholder): New function.
4890         (expand_expr, case PLACEHOLDER_EXPR): Use it.
4891         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
4892         to modify it and avoid unneeded copies.
4893         * expr.h (expand_expr): Always define.
4894         (find_placeholder): New declaration.
4895
4896 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4897
4898         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
4899         operand 2 is the stack pointer.
4900         ("addr-peephole"): Fix address computation peephole when operand 2
4901         is the stack pointer.
4902
4903 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4904
4905         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
4906         (ix86_setup_incoming_varargs): Likewise.
4907
4908 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
4909
4910         * stor-layout.c (layout_type): Don't complain about too-large
4911         array here.
4912
4913 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4914
4915         * function.c (keep_stack_depressed): Don't use delete_insn.
4916
4917         * expr.h (set_mem_alias_set): Move decl to here.
4918         * rtl.h (mem_attrs): New typedef and struct.
4919         (union rtunion_def): Add field for mem_attrs.
4920         (X0MEMATTR, MEM_ATTRS): New macros.
4921         (MEM_ALIAS_SET): Use MEM_ATTRS.
4922         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
4923         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
4924         (set_mem_alias_set): Delete decl from here.
4925
4926         * alias.c (set_mem_alias_set): Delete from here.
4927         * emit-rtl.c (mem_attrs_htab): New variable.
4928         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
4929         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
4930         (mem_attrs_mark, get_mem_attrs): Likewise.
4931         (gen_rtx_MEM): Clear MEM_ATTRS.
4932         (set_mem_attributes): Move to here.
4933         (set_mem_alias_set): Likewise, and call get_mem_attrs.
4934         (init_emit_once): const_int_htab now deletable htab.
4935         Initialize mem_attrs_htab.
4936         * explow.c (set_mem_attributes): Delete from here.
4937         * function.c (put_var_into_stack): Clear MEM_ATTRS.
4938         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
4939         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
4940         * reload1.c (reload): Rework changing REG to MEM.
4941
4942 2001-09-30  H.J. Lu <hjl@gnu.org>
4943
4944         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
4945         * config.in: Rebuild.
4946
4947 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4948
4949         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
4950         ("tsthi_1"): Avoid allocation in register y.
4951         ("*movqi_68hc12"): Reorganize and fix constraints.
4952         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
4953         ("addqi3"): Likewise.
4954         ("addhi3"): Fix constraints.
4955         ("*logicalhi3_zexthi"): Disparage soft registers.
4956
4957 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4958
4959         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
4960         to tmp reg.
4961
4962 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4963
4964         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
4965         that we use setjmp/longjmp exceptions.
4966
4967 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
4968
4969         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
4970         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
4971         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
4972         _cpp_pool_alloc, _cpp_next_chunk): Remove.
4973         (_cpp_extend_buff, BUFF_ROOM): Update.
4974         (_cpp_append_extend_buff): New.
4975         (struct cpp_reader): Remove macro_pool, add a_buff.
4976         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
4977         macro_pool.
4978         (cpp_destroy): Free a_buff instead of macro_pool.
4979         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
4980         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
4981         _cpp_pool_alloc, ): Remove.
4982         (parse_number, parse_string): Update use of _cpp_extend_buff.
4983         (_cpp_extend_buff): Update.
4984         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
4985         * cpplib.c (glue_header_name, parse_answer):
4986         Update use of _cpp_extend_buff.
4987         (cpp_register_pragma, cpp_register_pragma_space): Use
4988         _cpp_aligned_alloc.
4989         (do_assert, do_unassert): Check for EOL, update.
4990         * cppmacro.c (stringify_arg, collect_args): Update to use
4991         _cpp_extend_buff and _cpp_append_extend_buff.
4992         (save_parameter, parse_params, alloc_expansion_token,
4993         _cpp_create_definition): Rework memory management.
4994
4995 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
4996
4997         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
4998         update md_exec_prefix.
4999         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
5000         to string constant.
5001
5002 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
5003
5004         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
5005         (SELECT_CC_MODE): Use s390_select_ccmode.
5006         * config/s390/s390-protos.h (s390_select_ccmode): Add.
5007         * config/s390/s390.c (s390_select_ccmode): New.
5008         (s390_match_ccmode): Add CCLmode.
5009         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
5010         (output_branch_condition, output_inverse_branch_condition): Removed.
5011         (print_operand): Use s390_branch_condition_mnemonic.
5012         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
5013         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
5014         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
5015
5016         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
5017         when converting conditional branches to far branches.
5018         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
5019         cmpint_di): Use CCSmode instead of CCUmode.
5020
5021         * config/s390/s390.c (legitimate_la_operand_p): New.
5022         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
5023         * config/s390/s390.md (movsi): Convert load address patterns to
5024         arithmetic operations when necessary.
5025         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
5026         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
5027         (*do_la_reg_0): Don't use before reload.
5028
5029         * config/s390/s390.c (legitimize_address): Make more efficient
5030         use of two-register addressing mode.
5031
5032         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
5033         with -mno-backchain in some corner cases.
5034
5035         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
5036
5037 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
5038
5039         * reload.c (find_reloads): Mark new USE insns with QImode.
5040         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
5041         find_reloads_subreg_address): Likewise.
5042         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
5043         encountered.
5044         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
5045         CLOBBERs.
5046         (reload): Make sure there are no USEs with mode other than
5047         VOIDmode.  At the end, remove those marked with QImode.
5048
5049 2001-09-29  Per Bothner  <per@bothner.com>
5050
5051         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
5052         * Makefile.in (includedir):  Rename to local_includedir.
5053         (includedir):  Define as $(prefix)/include.
5054         * config.in (PREFIX_INCLUDE_DIR):  New variable.
5055         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
5056
5057 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
5058
5059         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
5060         storehps builtins.
5061         * doc/extend.texi (Vector Extensions): New node.
5062         * doc/invoke.texi (Machine Dependent Options): Add documentation for
5063         i386 -mmmx, -msse, -m3dnow.
5064
5065 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
5066
5067         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
5068
5069 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
5070
5071         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
5072
5073         * doc/invoke.texi (Optimize Options): Delete spurious @table.
5074
5075 2001-09-28  Richard Henderson  <rth@redhat.com>
5076
5077         * varasm.c (assemble_integer): Bound alignment check by
5078         BIGGEST_ALIGNMENT.
5079
5080         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
5081
5082 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5083
5084         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
5085
5086 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
5087
5088         Mostly from Graham Stott  <grahams@redhat.com>
5089         * c-common.c (type_for_mode): Add support for V2SFmode.
5090         * tree.c (build_common_tree_nodes_2): Likewise.
5091         * tree.h (enum tree_index, global_trees): Likewise.
5092         * config/i386/i386.c (x86_3dnow_a): New variable.
5093         (override_options): Support 3Dnow extensions.
5094         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
5095         Athlon's version of 3Dnow.
5096         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
5097         (ix86_expand_builtin): Handle them.
5098         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
5099         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
5100         TARGET_3DNOW_A): New macros.
5101         (TARGET_SWITCHES): Add 3Dnow switches.
5102         (VALID_MMX_REG_MODE_3DNOW): New macro.
5103         (VECTOR_MODE_SUPPORTED_P): Use it.
5104         (enum ix86_builtins): Add entries for 3Dnow builtins.
5105         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
5106         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
5107         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
5108         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
5109         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
5110         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
5111         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
5112         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
5113         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
5114         sfence_insn, prefetch): Make these available if TARGET_SSE or
5115         TARGET_3DNOW_A.
5116
5117 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
5118
5119         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
5120         ix86_va_start, ix86_build_va_list): Declare.
5121         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
5122         ix86_va_start, ix86_build_va_list): New global functions.
5123         * i386.md (sse_prologue_save_insn): New insn.
5124         (sse_prologue_save): New expander.
5125         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
5126         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
5127
5128 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5129
5130         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
5131         Use size_t everywhere, make definitions consistent with
5132         prototypes.
5133
5134 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
5135
5136         * gcse.c (replace_store_insn): Use delete_insn.
5137         * loop.c (move_movables): Likewise; avoid delete_insn
5138         from clobbering notes moved elsewhere.
5139         (check_dbra_loop): Use delete_insn.
5140         * ssa.c (convert_from_ssa): Likewise.
5141         * cse.c (cse_insn): Use delete_insn.
5142
5143 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5144
5145         * cpphash.h (struct cpp_buff): Make unsigned.
5146         (_cpp_get_buff): Take length of size_t.
5147         (_cpp_unaligned_alloc): New.
5148         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
5149         (struct cpp_reader): Remove ident_pool.  Add u_buff.
5150         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
5151         (cpp_destroy): Destroy u_buff, not ident_pool.
5152         * cpplex.c (parse_number, parse_string, save_comment,
5153         cpp_token_as_text): Update to use the unaligned buffer.
5154         (new_buff): Make unsigned.
5155         (_cpp_unaligned_alloc): New.
5156         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
5157         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
5158         Similarly.
5159         (collect_args): Make unsigned.
5160
5161 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
5162
5163         * cpplex.c (cpp_output_token): Use a putc loop for
5164         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
5165
5166         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
5167         * configure, config.in: Regenerate.
5168         * system.h: Replace fwrite and fprintf with their unlocked
5169         variants if available.
5170
5171 2001-09-27  Richard Henderson  <rth@redhat.com>
5172
5173         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
5174         in favour of .eh_frame.
5175
5176 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
5177
5178         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
5179         to macros.
5180         (LIBCALL_VALUE): Likewise.
5181
5182 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5183
5184         * cpphash.h: Update comment.
5185         * cpplex.c: Update comments.
5186         (_cpp_can_paste): Remove.
5187         * cpplib.h (_cpp_can_paste): Remove.
5188         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
5189         lexer rather than _cpp_can_paste.
5190
5191 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5192
5193         * doc/cppinternals.texi: Update.
5194
5195 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5196
5197         * cpphash.h (struct cpp_pool): Remove locks and locked.
5198         (struct cpp_context): Add member buff.
5199         (struct cpp_reader): Remove member argument_pool.
5200         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
5201         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
5202         * cpplex.c (chunk_suitable): Remove pool argument.
5203         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
5204         (new_buff, _cpp_extend_buff): Update.
5205         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
5206         which buffer is returned.
5207         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
5208         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
5209         * cppmacro.c (lock_pools, unlock_pools): Remove.
5210         (push_ptoken_context): Take a _cpp_buff.
5211         (enter_macro_context): Pool locking removed.
5212         (replace_args): Use a _cpp_buff for the replacement list with
5213         arguments replaced.
5214         (push_token_context): Clear buff.
5215         (expand_arg): Use _cpp_pop_context.
5216         (_cpp_pop_context): Free a context's buffer, if any.
5217
5218 2001-09-26  DJ Delorie  <dj@redhat.com>
5219
5220         * c-typeck.c (digest_init): Check for sizeless arrays.
5221
5222 2001-09-26  Richard Henderson  <rth@redhat.com>
5223
5224         * optabs.c (init_one_libfunc): Create a dummy function type
5225         instead of using error_mark_node.
5226
5227 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5228
5229         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
5230         _cpp_extend_buff, _cpp_free_buff): New.
5231         (struct cpp_reader): New member free_buffs.
5232         * cppinit.c (cpp_destroy): Free buffers.
5233         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
5234         _cpp_extend_buff, _cpp_free_buff): New.
5235         * cpplib.h (struct cpp_options): Remove unused member.
5236         * cppmacro.c (collect_args): New.  Combines the old parse_arg
5237         and parse_args.  Use _cpp_buff for memory allocation.
5238         (funlike_invocation_p, replace_args): Update.
5239
5240 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
5241
5242         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
5243
5244 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
5245
5246         * except.c (sjlj_mark_call_sites): Change address inside sequence.
5247
5248 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
5249
5250         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
5251         glibc.
5252
5253 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
5254             Jim Wilson  <wilson@redhat.com>
5255
5256         * doc/install.texi (Specific, ia64-*-linux): Document.
5257
5258 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
5259
5260         * Makefile.in (cfgrtl.o): Add.
5261         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
5262         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
5263         free_aux_for_edge): Declare.
5264         * cfg.c
5265         (HAVE_return): Undefine.
5266         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
5267         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
5268         free_aux_for_edge): New global functions.
5269         (first_delete_block): New static variable.
5270         (init_flow): Clear first_delete_block.
5271         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
5272          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
5273          try_redirect_by_replacing_jump, last_loop_beg_note,
5274          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
5275          delete_insn, delete_insn_chain, create_basic_block_structure,
5276          create_basic_block, flow_delete_block, compute_bb_for_insn,
5277          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
5278          set_block_for_new_insns, split_block, merge_blocks_nomove,
5279          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
5280          redirect_edge_and_branch, force_nonfallthru_and_redirect,
5281          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
5282          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
5283          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
5284          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
5285          purge_all_dead_edges): Move to ....
5286         * cfgrtl.c: New file; .... Here.
5287
5288         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
5289         (reroder_basic_block): Use alloc_aux_for_blocks.
5290         * predict.c (estimate_bb_frequencies): Likewise; use
5291         alloc_aux_for_edges.
5292         * profile.c (compute_branch_probabilities): Likewise.
5293         (branch_prob): Likewise.
5294         * reg-stack.c (reg_to_stack): Likewise.
5295
5296         * emit-rtl.c (emit_insns_after): Never return NULL.
5297
5298         * basic-block.h (set_block_for_new_insns): Delete.
5299         * cfgrtl.c (set_block_for_new_insns): Delete.
5300
5301         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
5302         calls when crossjumping.
5303
5304         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
5305         * unroll.c (copy_loop_body): Use delete_insn.
5306
5307         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
5308         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
5309         keep_stack_depressed): Likewise.
5310         * gcse.c (cprop_cc0_jump): Likewise.
5311         * local-alloc.c (update_equiv_regs): Likewise.
5312         * loop.c (scan_loop, loop_delete_insns): Likewise.
5313         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
5314         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
5315         delete_output_reload, delete_address_reloads_1,
5316         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
5317         Likewise.
5318         * sibcall.c (replace_call_placeholder): Likewise.
5319         * cse.c (cse_insn): Likewise.
5320
5321 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
5322
5323         From Graham Stott  <grahams@redhat.com>
5324         (def_builtin): Only define builtins appropriate for target_flags.  All
5325         callers changed.
5326         (builtin_decsription): Add new field mask which is used to determine
5327         when to define the builtin via the macro def_builtin.
5328
5329         (bdesc_comi): Initialise new mask fields.
5330         (bdesc_2srg): Likewise.
5331         (bdesc_1arg): Likewise.
5332
5333         * config/i386/i386.c (ix86_init_builtins): Correct return type
5334         building v4hi_ftype_v4hi_int_int tree node.
5335         (ix86_expand_sse_comi): Fix typo swapping operands.
5336         Don't swap comparision condition, it is already swapped.
5337         (ix86_expand_sse_compare): Before swapping operands
5338         move operand 1 into new rtx and not the target rtx.
5339         Don't swap comparison condition, it is already swapped.
5340         Always check whether we need to create a new TARGET.
5341
5342         * config/i386/i386.md: (sse_comi) Fix typos.
5343         (sse_ucomi): Likewise.
5344         (cvtss2si): Fix operand 0 contraint.
5345         (cvttss2si): Likewise.
5346         (sse_unpckhps): Fix mode for operand 2.
5347         (sse_unpcklps): Likewise.
5348
5349 2001-09-25  Graham Stott  <grahams@redhat.com>
5350
5351         * sibcall.c (skip_copy_to_return_value): Tighten return value
5352         copy check.
5353
5354 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
5355
5356         * rs6000.c (lwa_operand): Address must be word aligned.
5357
5358 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5359
5360         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
5361         number has been set.
5362         (type_hash_mark): Mark type itself.
5363
5364 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5365
5366         * c-lex.c (cb_def_pragma): Update.
5367         (c_lex): Update, and skip padding.
5368         * cppexp.c (lex, parse_defined): Update, remove unused variable.
5369         * cpphash.h (struct toklist): Delete.
5370         (union utoken): New.
5371         (struct cpp_context): Update.
5372         (struct cpp_reader): New members eof, avoid_paste.
5373         (_cpp_temp_token): New.
5374         * cppinit.c (cpp_create_reader): Update.
5375         * cpplex.c (_cpp_temp_token): New.
5376         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
5377         (cpp_output_token): Don't print leading whitespace.
5378         (cpp_output_line): Update.
5379         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
5380         do_include_common, do_line, do_ident, do_pragma,
5381         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
5382         parse_assertion): Update.
5383         (get_token_no_padding): New.
5384         * cpplib.h (CPP_PADDING): New.
5385         (AVOID_LPASTE): Delete.
5386         (struct cpp_token): New union member source.
5387         (cpp_get_token): Update.
5388         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
5389         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
5390         replace_args, quote_string, stringify_arg, parse_arg, next_context,
5391         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
5392         _cpp_backup_tokens, _cpp_create_definition): Update.
5393         (push_arg_context): Delete.
5394         (padding_token, push_token_context, push_ptoken_context): New.
5395         (make_string_token, make_number_token): Update, rename.
5396         (cpp_get_token): Update to handle tokens as pointers to const,
5397         and insert padding appropriately.
5398         * cppmain.c (struct printer): New member prev.
5399         (check_multiline_token): Constify.
5400         (do_preprocessing, cb_line_change): Update.
5401         (scan_translation_unit): Update to handle spacing.
5402         * scan-decls.c (get_a_token): New.
5403         (skip_to_closing_brace, scan_decls): Update.
5404         * fix-header.c (read_scan_file): Update.
5405
5406         * doc/cpp.texi: Update.
5407
5408 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5409
5410         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
5411         leak by passing malloc'ed pointer to reconcat, not concat.
5412
5413 2001-09-24  DJ Delorie  <dj@redhat.com>
5414
5415         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
5416
5417 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
5418
5419         * flow.c (delete_dead_jumptables): Delete jumptable if the only
5420         reference is from the literal pool.
5421
5422 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
5423
5424         * doc/install.texi (Final install): Request additional information
5425         in mail about successful builds.
5426
5427 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5428
5429         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
5430         initial value of return pointer register instead of value in frame-20.
5431         Revise comments.
5432
5433 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5434
5435         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
5436         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
5437         the libcall if there isn't a referenced identifier for the symbol.
5438
5439 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5440
5441         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
5442         non 64-bit machines.  Use these as a plabel for the trampoline.
5443         (TRAMPOLINE_SIZE): Adjust size for new words.
5444         (INITIALIZE_TRAMPOLINE): Initialize new words.
5445         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
5446         pointer to the plabel in the trampoline.
5447
5448 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5449
5450         * pa.c (function_arg): Pass floating arguments in both general and
5451         floating registers in indirect (dynamic) calls when generating code
5452         for the 32 bit ABI and the HP assembler.
5453
5454 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5455
5456         * doc/install.texi: Markup fixes.
5457         Use Solaris 2, SunOS 4 as appropriate.
5458         (Specific, *-*-solaris2*): Explain this.
5459         Unconditionally warn against /usr/ucb tools.
5460         Remove Sun as warning, obsolete.
5461         Move X11 header bug workaround here, update patches.
5462         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
5463         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
5464
5465 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
5466
5467         * errors.h (warning, error, fatal, internal_error): Don't mark
5468         with ATTRIBUTE_PRINTF_n.
5469         * toplev.h (internal_error, fatal_io_error, warning, error,
5470         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
5471         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
5472         Likewise.
5473
5474 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5475
5476         * function.c (pop_function_context_from): var_refs_queue
5477         and temp slots now in GC memory.
5478         (mark_function_status, free_after_compilation): Likewise;
5479         also struct function now in GC memory.
5480         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
5481         (combine_temp_slots): Likewise.
5482         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
5483         (prepare_function_start): Use GC memory for struct function.
5484         (mark_temp_slot): Deleted.
5485         (gcc_mark_struct_function): struct function now in GC memory.
5486
5487         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
5488         code for division, not modulus.
5489
5490         * rtl.def (MEM): Remove obsolete part of comment.
5491
5492 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
5493
5494         * c-format.c (init_function_format_info): Check __builtin_printf
5495         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
5496         in gnu89 mode.
5497
5498 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5499
5500         * c-common.c (format_attribute_table): Remove decl.
5501         * tree.h (format_attribute_table, lang_attribute_table): New decls.
5502         (lang_attribute_common): Likewise.
5503
5504         * function.c (fix_lexical_address): Use set_mem_alias_set.
5505         (expand_function_start): Likewise.
5506         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
5507
5508         * varasm.c (output_constant): Fix unused variable warning.
5509
5510         * attribs.c: New file, from c-common.c.
5511         (attribute_tables): Now four elements.
5512         (format_attribute_table, lang_attribute_common): New variables.
5513         (init_attributes): Reflect above changes.
5514         (handle_mode_attribute): Delete check for wider than uintmax.
5515         * c-common.c: Delete parts moved to attribs.c.
5516         (enum attrs): Deleted; unused.
5517         (c_format_attribute_table): New variable.
5518         (c_common_lang_init): Initialize format_attribute_table with it.
5519         * c-common.h (decl_attributes): Remove decl.
5520         * tree.h (decl_attribute): Move it to here.
5521         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
5522         (attribs.o): New rule.
5523
5524 2001-09-22  Andreas Jaeger  <aj@suse.de>
5525
5526         * builtins.c (c_getstr): Remove unused variable.
5527
5528 2001-09-21  Richard Henderson  <rth@redhat.com>
5529
5530         * reload1.c (reload): Use delete_insn instead of splatting
5531         NOTE_INSN_DELETED.
5532
5533 2001-09-21  Richard Henderson  <rth@redhat.com>
5534
5535         * reload.c (push_secondary_reload): Don't check for "=" in output
5536         constraint after ""->ALL_REGS check.
5537
5538 2001-09-21  Richard Henderson  <rth@redhat.com>
5539
5540         * predict.c (expected_value_to_br_prob): Use pc_set.
5541
5542         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
5543         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
5544
5545 2001-09-21  Richard Henderson  <rth@redhat.com>
5546
5547         * rtl.h (LCT_RETURNS_TWICE): New.
5548         * calls.c (emit_call_1): Set current_function_calls_setjmp for
5549         ECF_RETURNS_TWICE.
5550         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
5551         to ECF_RETURNS_TWICE.
5552         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
5553         call to setjmp.
5554
5555         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
5556
5557         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
5558         (JMP_BUF_SIZE): New.
5559
5560 2001-09-21  Richard Henderson  <rth@redhat.com>
5561
5562         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
5563         to R8_REGS.
5564
5565 2001-09-21  Richard Henderson  <rth@redhat.com>
5566
5567         * tree.def (FDESC_EXPR): New.
5568         * expr.c (expand_expr): Handle it.
5569         * varasm.c (initializer_constant_valid_p): Likewise.
5570         (output_constant): Likewise.
5571         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
5572         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
5573         (ASM_OUTPUT_FDESC): New.
5574         * doc/tm.texi: Document the new macros.
5575
5576 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
5577
5578         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
5579         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
5580         once merging is complete.
5581
5582 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5583
5584         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
5585
5586 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
5587
5588         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
5589         that would be invalid after a merge.
5590
5591 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
5592
5593         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
5594         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
5595         remove some labels.
5596         (flow_delete_insn): This one.
5597         (delete_insn_chain): Rename from ...; do not care labels.
5598         (flow_delete_insn_chain): ... this one.
5599         (flow_delete_block): Remove the insns one BB has been expunged.
5600         (merge_blocks_nomove): Likewise.
5601         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
5602         updating BB boundaries.
5603         (tidy_fallthru_edge): Likewise.
5604         (commit_one_edge_insertion): Likewise.
5605         * cfgbuild.c (find_basic_block): Likewise.
5606         (find_basic_blocks_1): Likewise.
5607         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
5608         (try_crossjump_to_edge): Likewise.
5609         (try_optimize_cfg): Likewise.
5610         * cse.c (delete_trivially_dead_insns): Likewise.
5611         * df.c (df_insn_delete): Likewise.
5612         * doloop.c (doloop_modify): Use delete_related_insns.
5613         * emit-rtl.c (try_split): Likewise.
5614         (remove_insn): Update BB boundaries.
5615         * expect.c (connect_post_landing_pads): Use delete_related_insns.
5616         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
5617         updating BB boundaries.
5618         (propagate_block_delete_insn): Likewise.
5619         (propagate_block_delete_libcall): Likewise.
5620         * function.c (delete_handlers): Use delete_related_insns.
5621         (thread_prologue_and_epilogue_insns): Likewise.
5622         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
5623         * genpeep.c (gen_peephole): Use delete_related_insns.
5624         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
5625         BB boundaries.
5626         (find_cond_trap): Likewise.
5627         * integrate.c (save_for_inline): Use delete_related_insns.
5628         (copy_insn_list): Likewise.
5629         * jump.c (pruge_linie_number_notes): Likewise.
5630         (duplicate_loop_exit_test): Likewise.
5631         (delete_computation): Likewise.
5632         (delete_related_insn): Rename from ...; use delete_insn
5633         (delete_insn): ... this one.
5634         (redirect_jump): Use delete_related_insns.
5635         * loop.c (scan_loop): Likewise.
5636         (move_movables): Likewise.
5637         (find_and_verify_loops): Likewise.
5638         (check_dbra_loop): Likewise.
5639         * recog.c (peephole2_optimize): Likewise.
5640         * reg-stack.c (delete_insn_for_stacker): Remove.
5641         (move_for_stack_reg): Use delete_insn.
5642         * regmove.c (combine_stack_adjustments_for_block): Likewise.
5643         * reload1.c (delete_address_reloads): Use delete_related_insns.
5644         (fixup_abnormal_edges): Use delete_insn.
5645         * recog.c (emit_delay_sequence): Use delete_related_insns.
5646         (delete_from-delay_slot): Likewise.
5647         (delete_scheduled_jump): likewise.
5648         (optimize_skip): Likewise.
5649         (try_merge_delay_insns): Likewise.
5650         (full_simple_delay_slots): Likewise.
5651         (fill_slots_from_thread): Likewise.
5652         (relax_delay_slots): Likewise.
5653         (make_return_insns): Likewise.
5654         (dbr_schedule): Likewise.
5655         * rtl.h (delete_insn): Rename to delete_related_insns.
5656         (delete_insn, delete_insn_chain): New prototypes.
5657         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
5658         by df_insn_delete already.
5659         * ssa-dce.c (delete_insn_bb): Use delete_insn.
5660         * ssa.c (convert_from_ssa): Use delete_related_insns.
5661         * unroll.c (unroll_loop): Likewise.
5662         (calculate_giv_inc): Likewise.
5663         (copy_loop_body): Likewise.
5664
5665         * i386-protos.h (ix86_libcall_value, ix86_function_value,
5666         ix86_function_arg_regno_p, ix86_function_arg_boundary,
5667         ix86_return_in_memory, ix86_function_value): Declare.
5668         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
5669         new static valurables.
5670         (x86_64_reg_class): New enum
5671         (x86_64_reg_class_name): New array.
5672         (classify_argument, examine_argument, construct_container,
5673          merge_classes): New static functions.
5674         (optimization_options): Enable flag_omit_frame_pointer and disable
5675         flag_pcc_struct_return on 64bit.
5676         (ix86_libcall_value, ix86_function_value,
5677         ix86_function_arg_regno_p, ix86_function_arg_boundary,
5678         ix86_return_in_memory, ix86_function_value): New global functions.
5679         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
5680         (function_arg_advance): Handle x86_64 passing conventions.
5681         (function_arg): Likewise.
5682         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
5683         (RETURN_IN_MEMORY): Move offline.
5684         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
5685         (FUNCTION_VALUE_REGNO_P): New macro.
5686         (FUNCTION_ARG_REGNO_P): Move offline.
5687         (struct ix86_args): Add maybe_vaarg.
5688         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
5689         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
5690
5691 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
5692
5693         * s390.md: Changed attributes for scheduling.
5694         * s390.c: (s390_adjust_cost, s390_adjust_priority)
5695         Changed scheduling
5696
5697 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5698
5699         Table-driven attributes.
5700         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
5701         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
5702         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
5703         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
5704         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
5705         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
5706         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
5707         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
5708         * tree.h (struct tree_decl): Change machine_attributes to
5709         attributes.
5710         * doc/c-tree.texi: Document that all attributes are now attached
5711         to decls and types.
5712         * c-common.c (add_attribute, attrtab, attrtab_idx,
5713         default_valid_lang_attribute, valid_lang_attribute): Remove.
5714         (attribute_tables, attributes_initialized,
5715         c_common_attribute_table, default_lang_attribute_table): New
5716         variables.
5717         (handle_packed_attribute, handle_nocommon_attribute,
5718         handle_common_attribute, handle_noreturn_attribute,
5719         handle_unused_attribute, handle_const_attribute,
5720         handle_transparent_union_attribute, handle_constructor_attribute,
5721         handle_destructor_attribute, handle_mode_attribute,
5722         handle_section_attribute, handle_aligned_attribute,
5723         handle_weak_attribute, handle_alias_attribute,
5724         handle_no_instrument_function_attribute,
5725         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
5726         handle_no_limit_stack_attribute, handle_pure_attribute): New
5727         functions.
5728         (init_attributes, decl_attributes): Rewrite to implement
5729         table-driven attributes.
5730         * c-common.h (enum attribute_flags): Move to tree.h.
5731         * c-format.c (decl_handle_format_attribute,
5732         decl_handle_format_arg_attribute): Rename to
5733         handle_format_attribute and handle_format_arg_attribute.  Update
5734         for table-driven attributes.
5735         * c-common.h (decl_handle_format_attribute,
5736         decl_handle_format_arg_attribute): Remove prototypes.
5737         (handle_format_attribute, handle_format_arg_attribute): Add
5738         prototypes.
5739         * c-decl.c (grokdeclarator): Handle attributes nested inside
5740         declarators.
5741         * c-parse.in (setattrs, maybe_setattrs): Remove.
5742         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
5743         Update to handle nested attributes properly.
5744         (maybe_resetattrs, after_type_declarator,
5745         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
5746         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
5747         properly.
5748         (make_pointer_declarator): Update to handle nested attributes
5749         properly.
5750         * doc/extend.texi: Update documentation of limits of attributes
5751         syntax.  Warn about problems with attribute semantics in C++.
5752         * target.h (struct target): Remove valid_decl_attribute and
5753         valid_type_attribute.  Add attribute_table and
5754         function_attribute_inlinable_p.
5755         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
5756         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
5757         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
5758         Add.
5759         (TARGET_INITIALIZER): Update.
5760         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
5761         definition.
5762         (function_attribute_inlinable_p): New function.  Check for the
5763         presence of any machine attributes before using
5764         targetm.function_attribute_inlinable_p.
5765         (function_cannot_inline_p): Update.
5766         * Makefile.in (integrate.o): Update dependencies.
5767         * doc/tm.texi: Update documentation of target attributes and
5768         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
5769         * tree.c (default_valid_attribute_p, valid_machine_attribute):
5770         Remove.
5771         (default_target_attribute_table,
5772         default_function_attribute_inlinable_p): New.
5773         (lookup_attribute): Update comment to clarify handling of multiple
5774         attributes with the same name.
5775         (merge_attributes, attribute_list_contained): Allow multiple
5776         attributes with the same name but different arguments to appear in
5777         the same attribute list.
5778         * tree.h (default_valid_attribute_p): Remove prototype.
5779         (struct attribute_spec): New.
5780         (default_target_attribute_table): Declare.
5781         (enum attribute_flags): Move from c-common.h.  Add
5782         ATTR_FLAG_TYPE_IN_PLACE.
5783         (default_function_attribute_inlinable_p): Declare.
5784         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
5785         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5786         (TARGET_ATTRIBUTE_TABLE): Define.
5787         (vms_attribute_table): New.
5788         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
5789         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5790         (TARGET_ATTRIBUTE_TABLE): Define.
5791         (arc_attribute_table, arc_handle_interrupt_attribute): New.
5792         * config/arm/arm.c (arm_valid_type_attribute_p,
5793         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
5794         Remove.
5795         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
5796         define.
5797         (TARGET_ATTRIBUTE_TABLE): Define.
5798         (arm_attribute_table, arm_handle_fndecl_attribute,
5799         arm_handle_isr_attribute): New.
5800         * config/avr/avr.c (avr_valid_type_attribute,
5801         avr_valid_decl_attribute): Remove.
5802         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
5803         define.
5804         (TARGET_ATTRIBUTE_TABLE): Define.
5805         (avr_attribute_table, avr_handle_progmem_attribute,
5806         avr_handle_fndecl_attribute): New.
5807         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
5808         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5809         (TARGET_ATTRIBUTE_TABLE): Define.
5810         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
5811         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
5812         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5813         (TARGET_ATTRIBUTE_TABLE): Define.
5814         (h8300_attribute_table, h8300_handle_fndecl_attribute,
5815         h8300_handle_eightbit_data_attribute,
5816         h8300_handle_tiny_data_attribute): New.
5817         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
5818         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
5819         Remove prototypes.
5820         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
5821         declarations.
5822         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
5823         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
5824         define.
5825         (TARGET_ATTRIBUTE_TABLE): Define.
5826         (ix86_attribute_table, ix86_handle_cdecl_attribute,
5827         ix86_handle_regparm_attribute): New.
5828         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
5829         i386_pe_valid_type_attribute_p): Remove.
5830         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
5831         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
5832         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5833         (TARGET_ATTRIBUTE_TABLE): Define.
5834         (ia64_attribute_table): New.
5835         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
5836         interrupt_ident2, model_ident1, model_ident2): Remove.
5837         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5838         (TARGET_ATTRIBUTE_TABLE): Define.
5839         (init_idents): Update.
5840         (m32r_attribute_table, m32r_handle_model_attribute): New.
5841         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
5842         Remove.
5843         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5844         (TARGET_ATTRIBUTE_TABLE): Define.
5845         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
5846         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
5847         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5848         (TARGET_ATTRIBUTE_TABLE): Define.
5849         (mcore_attribute_table, mcore_handle_naked_attribute): New.
5850         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
5851         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5852         (TARGET_ATTRIBUTE_TABLE): Define.
5853         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
5854         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
5855         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5856         (TARGET_ATTRIBUTE_TABLE): Define.
5857         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
5858         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
5859         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5860         (TARGET_ATTRIBUTE_TABLE): Define.
5861         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
5862         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5863         New.
5864         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
5865         Remove.
5866         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
5867         (TARGET_ATTRIBUTE_TABLE): Define.
5868         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
5869         New.
5870         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
5871         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5872         (TARGET_ATTRIBUTE_TABLE): Define.
5873         (v850_attribute_table, v850_handle_interrupt_attribute,
5874         v850_handle_data_area_attribute): New.
5875         * config/v850/v850-c.c (mark_current_function_as_interrupt):
5876         Return void.  Call decl_attributes instead of
5877         valid_machine_attribute.
5878
5879 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
5880
5881         * sh-protos.h (sh_pr_n_sets): Declare.
5882         * sh.c (calc_live_regs): If the initial value for PR has been copied,
5883         look at the copy to determine if PR needs to be saved.
5884         sh_pr_n_sets: New function.
5885         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
5886         (ALLOCATE_INITIAL_VALUE): Define.
5887
5888         * sh.c (initial_elimination_offset):
5889         Fix RETURN_ADDRESS_POINTER_REGNUM case.
5890
5891 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
5892
5893         * integrate.c (allocate_initial_values): New function.
5894         * integrate.h (allocate_initial_values): Declare.
5895         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
5896         here...
5897         * reload1.c (reload): And initialization of reg_equiv_memory_loc
5898         from here...
5899         * toplev.c (rest_of_compilation): To here.
5900         Call allocate_initial_values.
5901         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
5902
5903 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5904
5905         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
5906
5907 2001-09-20  DJ Delorie  <dj@redhat.com>
5908
5909         * c-typeck.c (really_start_incremental_init): Discriminate
5910         between zero-length arrays and flexible arrays.
5911         (push_init_level): Detect zero-length arrays and handle them
5912         like fixed-sized arrays.
5913         * expr.c (store_constructor): Handle zero-length arrays and
5914         flexible arrays correctly.
5915         * doc/extend.texi: Update zero-length array notes.
5916
5917 2001-09-20  Jim Wilson  <wilson@redhat.com>
5918
5919         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
5920         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
5921         for issue port conflicts.
5922         (cycle_end_fill_slots): TYPE_L instructions take two slots.
5923
5924 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
5925
5926         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
5927         on ia64.
5928
5929 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5930
5931         * fold-const.c (hashtab.h): Include.
5932         (int_const_binop): Remove FORSIZE arg and compute from type; all
5933         callers changed.
5934         Call size_int_type_wide for all single-word constants.
5935         (size_htab_hash, size_htab_eq): New functions.
5936         (size_int_type_wide): Rework to use hash table.
5937         * ggc-common.c (hashtab.h): Include.
5938         (struct d_htab_root): New struct.
5939         (d_htab_roots): New variable.
5940         (ggc_add_deletable_htab, ggc_htab_delete): New functions
5941         (ggc_mark_roots): Handle deletable htabs.
5942         * ggc-page.c (ggc_marked_p): New function.
5943         * ggc-simple.c (ggc_marked_p): Likewise.
5944         * ggc.h: Reformatting throughout.
5945         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
5946         * tree.c (init_obstacks): Make type_hash_table a deletable root.
5947         (type_hash_add): Allocate struct type_hash from GC memory.
5948         (mark_hash_entry, mark_type_hash): Deleted.
5949         (type_hash_marked_p, type_hash_mark): New functions.
5950         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
5951
5952 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
5953
5954         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
5955         than SImode.
5956
5957 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5958
5959         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
5960         array-too-large test for signed sizetype.
5961
5962 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
5963
5964         * i386.md (indirect_jump): Allow Pmode operand.
5965         (tablejump): LIkewise; perform expansion to 64bit mode.
5966         * i386.c (symbolic_operand): Allow 64bit PIC references.
5967         (pic_symbolic_operand): Likewise.
5968         (ix86_find_base_term): Strip the 64bit PIC references.
5969         (legitimate_pic_address_disp_p): Handle 64bit PIC.
5970         (legitimize_pic_address): Likewise.
5971         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
5972         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
5973
5974 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
5975
5976         * stringpool.c (get_identifier_with_length): New function.
5977         * tree.h (get_identifier_with_length): New prototype.
5978
5979 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
5980             David Edelsohn  <edelsohn@gnu.org>
5981
5982         Revert:
5983         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
5984         already sign-extended.
5985
5986         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
5987         * config/rs6000/rs6000.c (logical_operand): Always compare op as
5988         HOST_WIDE_INT.
5989         (rs6000_emit_set_long_const): Avoid unnecessary shift.
5990         (output_profile_hook): Declare label_name const.
5991         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
5992         to match constraints.
5993
5994 2001-09-19  Stan Shebs  <shebs@apple.com>
5995
5996         * alias.c: Fix typos in comments.
5997         * sched-rgn.c (init_ready_list): Ditto.
5998         * unwind-dw2.c (uw_frame_state_for): Ditto.
5999         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
6000         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
6001         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
6002
6003 2001-09-19  Richard Henderson  <rth@redhat.com>
6004
6005         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
6006         to the exit block.
6007         * Makefile.in (cfg.o): Depend on TM_P_H.
6008
6009 2001-09-19  Richard Henderson  <rth@redhat.com>
6010
6011         * config/alpha/alpha.c (local_symbol_p): Split out from ...
6012         (local_symbolic_operand): ... here.
6013         (small_symbolic_operand): Check mode.
6014         (global_symbolic_operand): New.
6015         (input_operand): Reject symbolics if explicit relocs.
6016         (call_operand): Tidy.
6017         (alpha_legitimize_address): Use movdi_er_high_g.
6018         (alpha_expand_mov): Likewise.
6019         * config/alpha/alpha-protos.h: Update.
6020         * config/alpha/alpha.h (PREDICATE_CODES): Update.
6021         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
6022         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
6023         (UNSPECV_LDGP2): Remove.
6024         (all call patterns): Use 's' not 'i' for symbolic constraint.
6025         (call_osf call_value_osf): Use call_operand.
6026         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
6027         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
6028         (prologue_ldgp_1_er): Remove.
6029         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
6030         (builtin_setjmp_receiver_er patterns): Use them.
6031         (exception_receiver_er): Likewise.
6032
6033 2001-09-19  Richard Henderson  <rth@redhat.com>
6034
6035         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
6036
6037         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
6038         and NON_LOCAL_GOTO notes.
6039         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
6040         copy over CALL_INSN_FUNCTION_USAGE.
6041
6042 2001-09-18  Catherine Moore  <clm@redhat.com>
6043
6044         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
6045         Define as 0.
6046
6047 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
6048
6049         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
6050         new-style tm_file specification.  Specify correct tm_p_file,
6051         md_file, and out_file for s390x.
6052
6053         * config/s390/linux.h, linux64.h:  Don't include other target
6054         macro header files.  Now handled via tm_file.
6055
6056         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
6057         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
6058         are defined before use.
6059
6060 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
6061
6062         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
6063         code generation only for Gnu assembler.
6064
6065 2001-09-18  Catherine Moore  <clm@redhat.com>
6066
6067         * config/stormy16 (LIB_SPEC): Remove -lnosys.
6068
6069 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
6070
6071         * config/mips/mips.c (mips_frame_set): New.
6072         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
6073         a parallel frame-related expression with a set for each register.
6074
6075 2001-09-18  Philip Blundell  <philb@gnu.org>
6076
6077         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
6078         header files.
6079
6080 2001-09-17  Dale Johannesen  <dalej@apple.com>
6081
6082         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
6083         * config/rs6000/aix.h (FIXED_R2): Define.
6084         * config/rs6000/darwin.h (FIXED_R2): Define.
6085         * config/rs6000/sysv4.h (FIXED_R2): Define.
6086
6087 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
6088
6089         * except.c (dw2_build_landing_pads): New local
6090         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
6091         barrier after clobbers.  Fixes c++/4012.
6092
6093 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6094
6095         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
6096
6097 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
6098
6099         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
6100         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
6101
6102 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6103
6104         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
6105         alloca/strcpy.
6106
6107 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
6108
6109         * cpphash.h (_cpp_lex_direct): New.
6110         * cpplex.c (_cpp_lex_token): Update.
6111         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
6112         and increment that pointer.
6113         * cppmacro.c (alloc_expansion_token): New.
6114         (lex_expansion_token): Lex macro expansion directly into
6115         macro storage.
6116
6117 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
6118
6119         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
6120
6121 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
6122
6123         * basic-block.h (free_bb_for_insn): Declare.
6124         * bb-reorder.c (label_for_bb): Use block_label.
6125         (emit_jump_to_block_after): Remove.
6126         (insert_intra_1): Do not update block_for_insn.
6127         (insert_inter_bb_scope_notes): Likewise; update bb->end
6128         * cfg.c (free_bb_for_insn): New.
6129         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
6130         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
6131         (commit_one_edge_insertion): Likewise.
6132         (commit_one_edge_insertion): Do not update BB boundary.
6133         (commit_edge_insertions): Do not call compute_bb_for_insn.
6134         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
6135         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
6136         (merge_blocks_move_successor_nojumps): Likewise.
6137         (try_crossjump_to_edge): Do not update block_for_insn.
6138         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
6139         * df.c (df_pattern_emit_later): Do not update BB boundary.
6140         (df_jump_pattern_emit_after): Likewise.
6141         (df_insn_move_before): Use emit_insn_before.
6142         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
6143          properly.
6144         (add_insn_after, add_insn_before, emit_insns_after): Update BB
6145         boundaries and basic_block_for_insn.
6146         (reorder_insns_nobb): Rename from reorder_insns.
6147         (reorder_insns): New.
6148         (emit_block_insn_before, emit_block_insn_after): Kill.
6149         * flow.c (check_function_return_warnings): Do not call
6150         compute_bb_for_insn; Do not free basic_block_for_insn.
6151         (attempt_auto_inc): Do not update basic_block_for_insn.
6152         * function.c (emit_return_into_block): Likewise;
6153         do not update BB boundaries.
6154         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
6155         (insert_insn_end_bb): Use emit_insn_before; Likewise.
6156         (pre_insert_copy_insn): Likewise.
6157         (update_ld_motion_notes): Likewise.
6158         (insert_insn_start_bb): Likewise.
6159         (replace_store_insn): Likewise.
6160         * ifcvt.c (noce_process_if_block): Likewise.
6161         (if_convert): Do not call compute_bb_for_insn.
6162         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
6163         Use emit_insn_before and emit_insn_after.
6164         * recog.c (split_all_insns): Do not update BB boundaries;
6165         Do not call compute_bb_for_insn.
6166         (peephole2_optimize): Do not update BB boundaries.
6167         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
6168         emit_insn_before.
6169         (emit_swap_insn): Likewise.
6170         (convert_regs_1): Likewise.
6171         * reload1.c (reload): Call compute_bb_for_insn.
6172         * rtl.h (reorder_insns_nobb): Declare.
6173         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
6174         * toplev.c (rest_of_compilation): Call free_bb_for_insn
6175         at places CFG is invalidated; do not call compute_bb_for_insn.
6176
6177         * cfg.c (expunge_block): Invalidate BB structure.
6178
6179         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
6180         array.
6181
6182         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
6183
6184 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6185
6186         * cpphash.h (_cpp_lex_token): Update prototype.
6187         * cpplex.c (_cpp_lex_token): New prototype.
6188         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
6189         lex_macro_node, read_flag, do_pragma_poison): Update.
6190         * cppmacro.c (cpp_get_token, parse_params,
6191         lex_expansion_token): Update.
6192
6193 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6194
6195         * cppmain.c (scan_translation_unit): Don't worry about
6196         putting a space after hashes.
6197         * cpplib.c (directive_diagnostics): New.
6198         (_cpp_handle_directive): Update to use directive_diagnostics.
6199         (run_directive): Don't toggle prevent_expansion.
6200         (do_line): Backup in case of the line extension.
6201         * cpplib.h (cpp_lexer_pos): Remove.
6202         * cppmacro.c (_cpp_create_definition): Precede a leading #
6203         with whitespace.
6204
6205 2001-09-15  Richard Henderson  <rth@redhat.com>
6206
6207         * c-typeck.c (comptypes): Handle zero-length arrays properly.
6208
6209 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6210
6211         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
6212
6213 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6214
6215         PR preprocessor/3571
6216         * tradcpp.c (handle_directive): Skip non-vertical space.
6217
6218 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6219
6220         * cppmain.c (setup_callbacks): Set line callback only
6221         if outputting preprocessed source.
6222
6223 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6224
6225         * collect2.c (main): Const-ification.
6226         * gcc.c (translate_options, process_command): Use xstrdup in
6227         lieu of xmalloc/strcpy.
6228         (main): Use concat in lieu of xmalloc/strcpy/strcat.
6229
6230 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6231
6232         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
6233         example.
6234
6235 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6236
6237         * scan-decls.c (scan_decls): Fix typo.
6238
6239 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6240
6241         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
6242         Split mlstring_pos into mls_line and mls_col.
6243         * cppinit.c (cpp_create_reader): Initialize line to 1.
6244         (cpp_destroy): Free tokenruns.
6245         (push_include): Don't update lexer_pos.
6246         * cpplex.c (unterminated, parse_string): Update.
6247         (lex_token): Don't update lexer_pos, update.
6248         * cpplib.c (if_stack): Save line instead of line + col.
6249         (start_directive, _cpp_do__Pragma, do_else, do_elif,
6250         push_conditional, _cpp_pop_buffer): Update.
6251         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
6252         (_cpp_create_definition): Update.
6253
6254 2001-09-15  Eric Christopher  <echristo@redhat.com>
6255
6256         * config/mips/abi64.h: Add support for MEABI.
6257
6258 2001-09-15  Eric Christopher  <echristo@redhat.com>
6259
6260         * config/mips/mips.md: Add unspec #2.
6261         (reload_indi): Use.
6262         (reload_outdi): Ditto.
6263         (reload_outsi): Ditto.
6264         (HILO_delay): New.
6265
6266 2001-09-15  Eric Christopher  <echristo@redhat.com>
6267             Jason Eckhardt  <jle@redhat.com>
6268
6269         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
6270         * config/mips/isa32-linux.h: New file.
6271         * config/mips/isa3264.h: Ditto.
6272         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
6273         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
6274         (output_block_mode): Support MEABI.
6275         (function_arg): Ditto. Fix floating point arg passing.
6276         (mips_va_start): Ditto.
6277         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
6278         processors.
6279         (mips_asm_file_start): Add new section to pass abi to gdb.
6280         (function_arg_pass_by_reference): Support MEABI.
6281         (mips_parse_cpu): Support mips32 and mips64 processors.
6282         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
6283         TARGET_MIPS5KC.  Support isa32 and isa64.
6284         (processor_type): Add r4kc, r5kc, r20kc.
6285         (GENERATE_MULT3_SI): New.
6286         (GENERATE_MULT3_DI): Ditto.
6287         (GENERATE_MULT3): Remove.
6288         (ISA_HAS_64BIT_REGS): Add isa == 64.
6289         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
6290         (ISA_HAS_MADD_MSUB): New.
6291         (ISA_HAS_CLZ_CLO): Ditto.
6292         (ISA_HAS_DCLZ_DCLO): Ditto.
6293         (ABI_GAS_ASM_SPEC): New.
6294         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
6295         (ASM_SPEC): Ditto.
6296         (LINK_SPEC): Ditto.
6297         (SUBTARGET_CC1_SPEC): Ditto.
6298         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
6299         (PAD_VARARGS_DOWN): Support MEABI.
6300         (HARD_REGNO_NREGS): Move to mips.c.
6301         (ASM_OUTPUT_IDENT): Add #undef.
6302         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
6303         (mulsi3): Use GENERATE_MULT3_SI.
6304         (mulsi3_mult3): Ditto.  Support mips32, mips64.
6305         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
6306         (mul_sub_si): New pattern.
6307         (unnamed splitters): New.
6308         (muldi3): Use GENERATE_MULT3_DI.
6309         (muldi3_internal2): Ditto.
6310         (movdicc): Support mips32.
6311         * config/mips/t-isa3264: New file.
6312
6313 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
6314
6315         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
6316         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
6317         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
6318
6319         * reorg.c (fill_slots_from_thread): After call to
6320         steal_delay_list_from_target, update own_thread as new_thread may
6321         have branched.
6322
6323 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6324
6325         * cpperror.c (print_location): Take line and column, for
6326         default positioning use the previously lexed token.
6327         (_cpp_begin_message): Take line and column.
6328         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
6329         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
6330         * cpphash.h (_cpp_begin_message): Update prototype.
6331         * cppinit.c (push_include): Don't set output line.
6332         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
6333         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
6334         (do_pragma): Kludge for front ends.  Don't expand macros at all.
6335         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
6336         (struct cpp_token): Remove output_line.
6337         (struct cpp_callbacks): New member line_change.
6338         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
6339         cpp_get_token): Preserve BOL flag.
6340         (cpp_get_line): Remove.
6341         (_cpp_backup_tokens): Remove useless abort().
6342         * cppmain.c (cb_line_change): New.
6343         (scan_translation_unit): Don't worry about starting new lines here.
6344         * scan-decls.c (scan_decls): Update.
6345         * c-lex.c (c_lex, init_c_lex): Update.
6346         (cb_line_change, src_lineno): New.
6347
6348 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
6349
6350         * tree.c (append_random_chars): Generate the random
6351         characters in a reproducable fashion.
6352
6353 2001-09-14  Richard Henderson  <rth@redhat.com>
6354
6355         * config/i386/i386.c (internal_label_prefix): New.
6356         (internal_label_prefix_len): New.
6357         (override_options): Set them.
6358         (local_symbolic_operand): New.
6359         (legitimate_pic_address_disp_p): Use it.
6360         (legitimize_pic_address): Likewise.
6361
6362 2001-09-14  Marc Espie <espie@openbsd.org>
6363
6364         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
6365         correctly.
6366
6367 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6368
6369         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
6370         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
6371
6372 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
6373
6374         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
6375         invocation of SUBREG_REGNO_OFFSET.
6376
6377         * haifa-sched.c: Fix typo in FSF copyright statement.
6378         * sched-deps.c: Fix typo in FSF copyright statement.
6379         * sched-ebb.c: Fix typo in FSF copyright statement.
6380         * sched-rgn.c: Fix typo in FSF copyright statement.
6381         * sched-vis.c: Fix typo in FSF copyright statement.
6382
6383         * config.gcc: Move inclusion of arm elf specific header files
6384         from the files themselves into the tm_file variable.  Make
6385         sure that elfos.h is included before target specific elf
6386         headers.
6387         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
6388         already defined.
6389         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
6390         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
6391         ASM_OUTPUT_CASE_LABEL): Protect definition.
6392         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
6393         not already defined.
6394         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
6395         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
6396         Remove duplicate definition.
6397         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
6398         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
6399         (RDATA_SECTION_FUNCTION): Remove redundant definition.
6400         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
6401         Remove inclusion of arm/elf.h.
6402         * config/arm/unknown-elf.h: as for conix-elf.h.
6403         (STARTFILE_SPEC): Include crti.o and crtn.o.
6404         * config/arm/linux-elf.h: as for conix-elf.h.
6405         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
6406         * config/arm/strongarm-elf.h: Remove inclusion of
6407         unknown-elf.h.
6408         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
6409         * config/arm/unknown-elf-oabi.h: Remove inclusion of
6410         unknown-elf.h and elf.h.
6411         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
6412         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
6413         ASM_WEAKEN_LABEL): Remove redundant definition.
6414         * config/arm/elf.h: Test for inclusion of elfos.h
6415         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
6416         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
6417         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
6418         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
6419         redundant definition.
6420         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
6421         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
6422         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
6423         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
6424         Add rules to build crti.o and crtn.o
6425         * crti.asm: New file.
6426         * crtn.asm: New file.
6427
6428 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6429
6430         * c-parse.in (_yylex): Use _cpp_backup_tokens.
6431         * cpphash.h (struct tokenrun): Add prev.
6432         (struct lexer_state): Remove bol.
6433         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
6434         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
6435         : Remove.
6436         * cppinit.c (cpp_create_reader): Don't set bol.
6437         (cpp_destroy): Don't free lookaheads.
6438         * cpplex.c (lex_directive): Remove.
6439         (next_tokenrun): Update.
6440         (_cpp_lex_token): Clean up logic.
6441         (lex_token): Update to return a pointer to lexed token, since it
6442         can move to the start of the buffer.  Simpify newline handling.
6443         * cpplib.c (SEEN_EOL): Update.
6444         (skip_rest_of_line): Remove lookahead stuff.
6445         (end_directive): Line numbers are already incremented.  Revert
6446         to start of lexed token buffer if we can.
6447         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
6448         parse_answer): Use _cpp_backup_tokens.
6449         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
6450         instead.  Don't check for EOL.
6451         (do_include_common, do_line, do_pragma_system_header): Use
6452         skip_rest_of_line.
6453         * cpplib.h (BOL, _cpp_backup_tokens): New.
6454         * cppmacro.c (save_lookahead_token, take_lookahead_token,
6455         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
6456         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
6457         (builtin_macro): Don't use cpp_get_line.
6458         (cpp_get_line): Short term kludge.
6459         (parse_arg): Handle directives in arguments here.  Back up when
6460         appropriate.  Store EOF at end of argument list.
6461         (funlike_invocation_p): Use _cpp_backup_tokens.
6462         (push_arg_context): Account for EOF at end of list.
6463         (cpp_get_token): Remove lookahead stuff.  Update.
6464
6465 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6466
6467         * c-parse.in (yyerror): Const-ification and/or static-ization.
6468         * c-typeck.c (push_member_name): Likewise.
6469         * collect2.c (main): Likewise.
6470         * dbxout.c (dbxout_parms): Likewise.
6471         * diagnostic.c (format_with_decl): Likewise.
6472         * dwarf2out.c (output_ranges): Likewise.
6473         * dwarfout.c (fundamental_type_code): Likewise.
6474         * except.c (dw2_output_call_site_table): Likewise.
6475         * gcc.c (do_spec_1): Likewise.
6476         * genopinit.c (optabs): Likewise.
6477         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
6478         gen_declaration_1, handle_impent): Likewise.
6479         * protoize.c (default_include, in_system_include_dir, abspath):
6480         Likewise.
6481         * sched-vis.c (visualize_stall_cycles): Likewise.
6482         * sdbout.c (plain_type_1, sdbout_end_function,
6483         sdbout_end_epilogue): Likewise.
6484         * varasm.c (decode_reg_name): Likewise.
6485
6486         * 1750a.c (mod_regno_adjust): Likewise.
6487         * alpha.c (alpha_write_one_linkage,
6488         unicosmk_output_default_externs): Likewise.
6489         * arm.c (arm_condition_codes): Likewise.
6490         * arm.h (arm_condition_codes): Likewise.
6491         * avr.c (output_movsisf, encode_section_info): Likewise.
6492         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
6493         Likewise.
6494         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
6495         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
6496         * m88k.c (output_function_profiler): Likewise.
6497         * mips.c (mips_output_conditional_branch): Likewise.
6498         * ns32k.c (ns32k_out_reg_names): Likewise.
6499         * ns32k.h (ns32k_out_reg_names): Likewise.
6500         * pj.c (pj_output_rval): Likewise.
6501         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
6502         * sparc.c (sparc_flat_function_prologue,
6503         sparc_flat_function_epilogue): Likewise.
6504
6505 2001-09-13  Markus Werle <numerical.simulation@web.de>
6506             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6507
6508         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
6509         Aachen University of Technology".
6510
6511 2001-09-13  Andreas Schwab  <schwab@suse.de>
6512
6513         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
6514         C99.
6515
6516 2001-09-13  Richard Henderson  <rth@redhat.com>
6517
6518         * config/alpha/alpha.c (small_symbolic_operand): New.
6519         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
6520         (some_operand, input_operand): Don't handle HIGH.
6521         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
6522         (alpha_expand_mov): Likewise.
6523         (print_operand) [H]: Just print HIGH symbol.
6524         (print_operand_address): Handle small data.
6525         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
6526         (TARGET_SWITCHES): Add -msmall-data/large-data.
6527         (PIC_OFFSET_TABLE_REGNUM): New.
6528         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
6529         (PREDICATE_COES): Update.
6530         * config/alpha/alpha.md (adddi_er_high): New.
6531         (adddi_er_low): Handle small data.
6532         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
6533         prefer .sdata to .rodata.
6534         (SELECT_RTX_SECTION): Likewise.
6535
6536 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
6537
6538         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
6539         defining __size_t and leaving size_t undefined.
6540
6541 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
6542
6543         * basic-block.h (expunge_block): Declare.
6544         * cfg.c (expunge_block): Remove static declaration.
6545
6546 2001-09-12  Richard Henderson  <rth@redhat.com>
6547
6548         * integrate.c (copy_insn_list): Copy label name from
6549         NOTE_INSN_DELETED_LABEL.
6550
6551 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6552
6553         * c-common.c (c_tree_code_name): Const-ification.
6554         * c-decl.c (c_decode_option): Likewise.
6555         * c-typeck.c (warn_for_assignment): Likewise.
6556         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
6557         Likewise.
6558         * cppinit.c (output_deps): Likewise.
6559         * dependence.c (dependence_string, direction_string): Likewise.
6560         * dwarf2out.c (output_ranges): Likewise.
6561         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
6562         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
6563         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
6564         standard_startfile_prefix, standard_startfile_prefix_1,
6565         standard_startfile_prefix_2, tooldir_base_prefix,
6566         standard_bindir_prefix, find_a_file): Likewise.
6567         * genattrtab.c (make_length_attrs): Likewise.
6568         * gencheck.c (tree_codes): Likewise.
6569         * genemit.c (gen_split): Likewise.
6570         * genrecog.c (special_mode_pred_table): Likewise.
6571         * graph.c (graph_ext): Likewise.
6572         * protoize (default_include): Likewise.
6573         * reload.c (reload_when_needed_name): Likewise.
6574         * sched-vis.c (visualize_stall_cycles): Likewise.
6575         * tlink.c (recompile_files): Likewise.
6576         * toplev.c (decode_g_option): Likewise.
6577         * tradcpp.c (output_deps): Likewise.
6578         * varasm.c (decode_reg_name): Likewise.
6579
6580         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
6581         Const-ification.
6582         * arm.md: Likewise.
6583         * avr.c (avr_regnames, encode_section_info): Likewise.
6584         * c4x.c (float_reg_names): Likewise.
6585         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
6586         * elfos.h (const_section): Likewise.
6587         * i386.c (ix86_comp_type_attributes): Likewise.
6588         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
6589         * ia64/aix.h (UNIQUE_SECTION): Likewise.
6590         * ia64.c (type_names): Likewise.
6591         * m68hc11.c (reg_class_names): Likewise.
6592         * m88k.c (m_options): Likewise.
6593         * mips.c (mips_output_conditional_branch, mips_unique_section):
6594         Likewise.
6595         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6596         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
6597         ultra_code_names): Likewise.
6598         * sparc.h (OVERRIDE_OPTIONS): Likewise.
6599
6600 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
6601
6602         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
6603         Use --fatal-warnings option for gas.
6604         * configure: Rebuilt.
6605
6606 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6607
6608         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
6609
6610 2001-09-11  Jim Wilson  <wilson@redhat.com>
6611
6612         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
6613
6614 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6615
6616         * builtins.c (c_strlen): Treat an offset too large for a
6617         HOST_WIDE_INT as out of range.
6618
6619 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
6620
6621         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
6622         (EDGE_CRITICAL_P): New predicate.
6623         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
6624         handling.
6625         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
6626         (dump_edge_info): Remove "crit".
6627         * cfganal.c (mark_critical_edges): Kill.
6628         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
6629         * cfgcleanup.c (cleanup_cfg): Likewise.
6630         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
6631         (find_spanning_tree): Likewise.
6632         * reg-stack.c (convert_regs_1): Likewise.
6633         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
6634
6635         * basic-block.h (create_basic_block_structure): New.
6636         (create_basic_block): Update prototype.
6637         (force_nonfallthru): New.
6638         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
6639         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
6640         handle updating of block_for_insn, creating of empty BBs and BBs at
6641         the end of INSN chain.
6642         (create_basic_block): New function.
6643         (split_block): Use create_basic_block.
6644         (force_nonfallthru_and_redirect): Break out from ...; cleanup
6645         (redirect_edge_and_branch_force): ... here.
6646         (force_nonfallthru): New.
6647         (split_edge): Rewrite to use force_nonfallthru and create_block.
6648         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
6649         (find_basic_blocks): Free basic_block_for_insn.
6650         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
6651
6652         * cfg.c: Fix formating.
6653         * cfgcleanup.c: Fix formating.
6654         (merge_blocks, tail_recursion_label_p): Return bool.
6655         (merge_blocks_move_predecessor_nojumps,
6656          merge_blocks_move_successor_nojumps): Return void.
6657
6658 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
6659
6660         * configure.in: Check whether assembler supports section merging.
6661         * config.in: Rebuilt.
6662         * configure: Rebuilt.
6663         * varasm.c (variable_section, output_constant_pool): Pass alignment
6664         to SELECT_SECTION and SELECT_RTX_SECTION.
6665         (mergeable_string_section): New.
6666         (mergeable_constant_section): New.
6667         (default_elf_asm_named_section): Output SECTION_MERGE and
6668         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
6669         * output.h (mergeable_string_section): New.
6670         (mergeable_constant_section): New.
6671         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
6672         * toplev.c (flag_merge_constants): New.
6673         (f_options): Add -fmerge-constants and -fmerge-all-constants
6674         options.
6675         (toplev_main): Default to -fno-merge-constants if not optimizing.
6676         * flags.h (flag_merge_constants): Add extern.
6677         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
6678         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
6679         argument.
6680         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
6681         Define if assembler has working .subsection -1 support.
6682         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
6683         Put constant into special SHF_MERGE sections if the linker should
6684         attempt to merge duplicates.
6685         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
6686         macro argument.
6687         Put constant into special SHF_MERGE sections if the linker should
6688         attempt to merge duplicates.
6689         * config/alpha/elf.h: Likewise.
6690         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
6691         has working .subsection -1 support.
6692         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
6693         SELECT_SECTION.
6694         * config/svr3.h: Likewise.
6695         * config/darwin.h: Likewise.
6696         * config/arm/aof.h: Likewise.
6697         * config/arm/linux-elf.h: Likewise.
6698         * config/avr/avr.h: Likewise.
6699         * config/c4x/c4x.h: Likewise.
6700         * config/d30v/d30v.h: Likewise.
6701         * config/i386/dgux.h: Likewise.
6702         * config/i386/osfrose.h: Likewise.
6703         * config/i386/sco5.h: Likewise.
6704         * config/i386/svr3gas.h: Likewise.
6705         * config/ia64/aix.h: Likewise.
6706         * config/m32r/m32r.h: Likewise.
6707         * config/m68k/m68k.h: Likewise.
6708         * config/m88k/dgux.h: Likewise.
6709         * config/m88k/m88k.h: Likewise.
6710         * config/mcore/mcore-pe.h: Likewise.
6711         * config/mips/mips.h: Likewise.
6712         * config/pa/pa.h: Likewise.
6713         * config/pa/pa-linux.h: Likewise.
6714         * config/romp/romp.h: Likewise.
6715         * config/rs6000/sysv4.h: Likewise.
6716         * config/rs6000/xcoff.h: Likewise.
6717         * config/s390/linux.h: Likewise.
6718         * config/sparc/sparc.h: Likewise.
6719         * config/sparc/sysv4.h: Likewise.
6720         * config/stormy16/stormy16.h: Likewise.
6721         * config/v850/v850.h: Likewise.
6722         * config/vax/vms.h: Likewise.
6723         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
6724         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
6725         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
6726         default_elf_asm_named_section for SHF_MERGE sections.
6727
6728 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
6729
6730         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
6731         is OK.
6732
6733 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
6734
6735         * c-common.c (split_specs_attrs): Allow for empty attributes with
6736         empty TREE_PURPOSE.  Fixes PR c/4294.
6737
6738 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
6739
6740         * basic-block.h (cached_make_edge, make_single_succ): New.
6741         (make_edge): Remove first parameter.
6742         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
6743         * cfg.c (cached_make_edge): Rename from make_edge; return newly
6744         created edge; use obstack allocation.
6745         (make_edge, make_single_succ_edge): New.
6746         (first_removed_edge): New static variable.
6747         (init_flow): Initialize first_removed_edge and n_edges.
6748         (clear_edges): Use remove_edge.
6749         (flow_delete_block): Likewise.
6750         (remove_edge): Add removed edges to the removed edges list.
6751         (split_block, redirect_edge_and_branch_force, split_edge):
6752         Use make_edge.
6753         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
6754         (add_noreturn_fake_exit_edges): Likewise.
6755         (connect_infinite_loops_to_exit): Liekwise.
6756         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
6757         Use cached_make_edge.
6758         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
6759         * profile.c (branch_prob): Update make_edge call.
6760         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
6761
6762 2001-09-11  Richard Henderson  <rth@redhat.com>
6763
6764         * config/alpha/alpha.c: Tidy formatting.
6765         (local_symbolic_operand): Verify mode.
6766         (alpha_sa_mask): Ignore unicos for eh_return.
6767         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
6768         * config/alpha/alpha.md (umk divsi patterns): Remove.
6769         (extendsfdf2): Remove unicos check.
6770         (tablejump): Merge vms and unicos code; always use direct set
6771         plus label_ref use.
6772
6773 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6774
6775         * config.gcc (alpha*-*-unicosmk*): New target.
6776
6777         * config/alpha/alpha-protos.h (symbolic_operand,
6778         unicosmk_add_call_info_word, unicosmk_add_extern,
6779         unicosmk_defer_case_vector, unicosmk_unique_section,
6780         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
6781         unicosmk_asm_file_start, unicosmk_asm_file_end,
6782         unicosmk_output_common): Declare.
6783
6784         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
6785         direct_return, function_arg, alpha_va_start, alpha_va_arg,
6786         alpha_does_function_need_gp, alpha_end_function): Support Cray
6787         Unicos/Mk.
6788         (alpha_init_machine_status, alpha_mark_machine_status,
6789         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
6790         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
6791         unicosmk_asm_named_section, unicosmk_insert_attributes,
6792         unicosmk_section_type_flags, symbolic_operand,
6793         unicosmk_output_module_name, unicosmk_output_default_externs,
6794         unicosmk_output_dex, unicosmk_output_externs,
6795         unicosmk_output_addr_vec, unicosmk_ssib_name,
6796         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
6797         unicosmk_asm_file_end, unicosmk_output_common,
6798         unicosmk_section_type_flags, unicosmk_unique_section,
6799         unicosmk_add_call_info_word, unicosmk_text_section,
6800         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
6801         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
6802         unicosmk_dex_count, unicosmk_special_name): New.
6803         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
6804         TARGET_ABI_UNICOSMK.
6805         (get_aligned_mem, alpha_expand_unaligned_load,
6806         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
6807         alpha_expand_unaligned_store_words): Support big-endian mode.
6808         (print_operand): Likewise. New format specifier 't'. Use
6809         TARGET_AS_SLASH_BEFORE_SUFFIX.
6810         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
6811         (alpha_pv_save_size): Update with above change.
6812         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
6813         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
6814         Unicos/Mk.
6815
6816         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
6817         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
6818         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
6819         (EXTRA_CONSTRAINT): New constraint 'U'.
6820         (PREDICATE_CODES): Add symbolic_operand.
6821
6822         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
6823         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
6824         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
6825         (integer division and modulus patterns): Split in default and
6826         Unicos/Mk versions.
6827         (*divmodsi_internal, *divmoddi_internal): Disable for
6828         TARGET_ABI_UNICOSMK.
6829         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
6830         little-endian and big-endian versions.
6831         (ext, ins, msk): Likewise.
6832         (extv, extzv, insv): Support big-endian mode.
6833         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
6834         (call_umk, call_value_umk, *call_umk, tablejump_umk,
6835         *tablejump_umk_internal, *call_value_umk): New.
6836         (*movdi_nofix): Add pattern for loading an address into a register on
6837         TARGET_ABI_UNICOSMK.
6838         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
6839         (umk_mismatch_args, arg_home_umk): New.
6840         (various insns): Don't use mov, fmov, nop, fnop and unop.
6841         (realign): Support TARGET_ABI_UNICOSMK.
6842
6843         * config/alpha/unicosmk.h: New file.
6844         * config/alpha/t-unicosmk: New file.
6845
6846         * fixinc/inclhack.def (unicosmk_restrict): New.
6847         * fixinc/fixincl.x: Regenerate.
6848
6849         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
6850         (wchar_t): Check for and define __WCHAR_T__.
6851
6852 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
6853
6854         * combine.c (simplify_shift_const): Treat shifts by the mode
6855         size as undefined.
6856
6857 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6858
6859         * cpphash.h (struct tokenrun): New.
6860         (struct cpp_context): New member bol.
6861         (struct cpp_reader): New members.
6862         (_cpp_init_tokenrun): New.
6863         * cppinit.c (cpp_create_reader): Set up the token runs.
6864         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
6865         (lex_token): New internalised version of _cpp_lex_token.  Don't
6866         handle directives or the multiple include opimisation here any
6867         more.  Simply lex a token.
6868         * cpplib.c (run_directive): Clear bol.
6869         (_cpp_pop_buffer): Set bol.
6870         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
6871         arguments.
6872
6873 2001-09-11  Michael Meissner  <meissner@redhat.com>
6874
6875         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
6876         give an error if the user uses -mfp32.
6877         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
6878         default options.
6879         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
6880         floating point register size.
6881         (EXTRA_SPECS): Add CPP_FPR_SPEC.
6882
6883         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
6884         HOST_WIDE_INT_PRINT_DEC to properly print the result of
6885         int_size_in_bytes.
6886         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
6887         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
6888
6889 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
6890
6891         * dbxout.c (dbxout_parms): Fix typo in comment.
6892         * unroll.c (loop_find_equiv_value): Ditto.
6893         * toplev.c (rest_of_compilation): Ditto.
6894         * loop.c (scan_loop): Ditto.
6895         * dwarf2out.c (struct dw_fde_struct): Ditto.
6896
6897 2001-09-10  Zack Weinberg  <zackw@panix.com>
6898
6899         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
6900         copying identifier when we're just going to throw it away.
6901         (parse_identifier_slow): New routine to handle abnormal cases.
6902         (_cpp_lex_token): Update call site.
6903
6904         * hashtable.c (ht_lookup): Don't assume that the string we've
6905         been given is NUL-terminated.
6906         * system.h: #define __builtin_expect(a, b) to (a) if not
6907         GCC >=3.0.
6908
6909 2001-09-10  Michael Meissner  <meissner@redhat.com>
6910
6911         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
6912         binutils, gdb.
6913
6914 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
6915
6916         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
6917
6918 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6919
6920         * builtins.c (c_getstr): Correct thinko in last change and further
6921         cleanup.
6922
6923 2001-09-10  Tim Freeman <tim@fungibole.com>
6924
6925         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
6926         into varray's and register them as roots with the garbage
6927         collector so they are not collected too soon.
6928
6929 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
6930
6931         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
6932         New.
6933         * basic-block.h (flow_obstack, label_value_list,
6934         tail_recursion_label_list): Declare
6935         (tidy_fallthru_edges): Declare.
6936         (expunge_block, last_loop_beg_note): Delete.
6937         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
6938         * cfg.c: New file
6939         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
6940         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
6941         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
6942         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
6943         expunge_block, flow_delete_block, compute_bb_for_insn,
6944         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
6945         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
6946         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
6947         try_redirect_by_replacing_jump, last_loop_beg_note,
6948         redirect_edge_and_branch, redirect_edge_and_branch_force,
6949         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
6950         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
6951         commit_edge_insertions, dump_flow_info, debug_flow_info,
6952         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
6953         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
6954         Move here from flow.c
6955         * cfganal.c: New file.
6956         (forwarder_block_p, can_fallthru, mark_critical_edges,
6957          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
6958          find_unreachable_blocks, create_edge_list, free_edge_list,
6959          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
6960          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
6961          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
6962          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
6963          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
6964          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
6965         Move here from flow.c
6966         * cfgbuild.c: New file
6967         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
6968          make_edges, find_basic_blocks_1, find_basic_blocks,
6969          find_sub_basic_blocks): Move here from flow.c
6970         * cfgcleanup.c: New file.
6971         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
6972          merge_blocks_move_predecessor_nojumps,
6973          merge_blocks_move_successor_nojumps, merge_blocks,
6974          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
6975          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
6976         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
6977         if succeeded.
6978         * cfgloop.c: New file
6979         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
6980          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
6981          flow_loop_exit_edges_find, flow_loop_nodes_find,
6982          flow_loop_pre_header_scan, flow_loop_pre_header_find,
6983          flow_loop_tree_node_add, flow_loops_tree_build,
6984          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
6985          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
6986         Move here from flow.c
6987         * flow.c: Remove everything moved elsewhere
6988         * output.h (cleanup_cfg): Return bool.
6989
6990         * bb-reorder.c (reorder_block_def): Remove 'index'.
6991         (insert_intra_1): Add argument BB, set block for new note.
6992         (make_reorder_chain): Do not depdent on BB indexes.
6993         (make_reorder_chain_1): Do not use BB indexes.
6994         (label_for_bb): Likewise; set BB for new insn.
6995         (emit_jump_to_block_after): Likewise.
6996         (fixup_reoder_chain): Sanity check that all basic blocks
6997         are chained; verify newly created insn chain; remove
6998         undocnitional jump simplifying; Do not use BB indexes;
6999         properly initialize count and frequency information;
7000         dump reordered sequence.
7001         (insert_intra_bb_scope_notes): update call of insert_intra_1.
7002         (insert_inter_bb_scope_notes): Set block for new insn.
7003         (reorder_basic_blocks): Dump flow info before reoredering.
7004
7005 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7006
7007         * alias.c (clear_reg_alias_info): Use K&R format definition.
7008         Avoid unsigned warning.
7009         * builtins.c: Use "unsigned int", not "unsigned".
7010         (target_char_cast): Use host_integerp and tree_low_cst.
7011         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
7012         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
7013         (c_getstr): Likewise.
7014         (std_expand_builtin_va_arg): Use int_size_in_bytes.
7015         (builtin_memcpy_read_str): Avoid unsigned warning.
7016         (expand_builtin_memcpy): Alignments are unsigned.
7017         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
7018         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
7019         * predict.c (expensive_function_p): LIMIT now unsigned.
7020         * resource.c (mark_target_live_regs): Make some vars unsigned.
7021         * sdbout.c: Use "unsigned int", not "unsigned".
7022         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
7023         (sdbout_source_line): Likewise.
7024         (sdbout_record_type_name): Remove "const" for NAME declaration.
7025         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
7026
7027 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
7028
7029         * calls.c (store_one_arg): Expand comment.
7030
7031 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
7032
7033         * calls.c (store_one_arg): Make sure that the entire argument is
7034         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
7035
7036 2001-09-09  Richard Henderson  <rth@redhat.com>
7037
7038         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
7039
7040 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
7041
7042         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
7043
7044 2001-09-09  Richard Henderson  <rth@redhat.com>
7045
7046         * config/alpha/alpha.c (alpha_next_sequence_number): New.
7047         (alpha_this_literal_sequence_number): New.
7048         (alpha_this_gpdisp_sequence_number): New.
7049         (some_operand, input_operand): Add HIGH.
7050         (local_symbolic_operand): New.
7051         (alpha_encode_section_info): New.
7052         (alpha_legitimate_address_p): Allow LO_SUM.
7053         (alpha_legitimize_address): Generate HIGH+LO_SUM.
7054         (alpha_expand_mov): Likewise.
7055         (secondary_reload_class): Check memory_operand not general_operand
7056         for FP_REGS test.
7057         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
7058         (alpha_expand_unaligned_store): Likewise.
7059         (alpha_expand_unaligned_load_words): Likewise.
7060         (alpha_expand_unaligned_store_words): Likewise.
7061         (alpha_expand_block_clear): Likewise.
7062         (print_operand): Handle %#, %*, %H.
7063         (print_operand_address): Handle LO_SUM.
7064         (find_lo_sum): New.
7065         (alpha_does_function_need_gp): Use it.
7066         (alpha_expand_block_move): Fix signed compare warnings.
7067         (alpha_sa_mask, alpha_align_insns): Likewise.
7068         * config/alpha/alpha-protos.h: Update.
7069         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
7070         (MASK_EXPLICIT_RELOCS): New.
7071         (TARGET_SWITCHES): Add -mexplicit-relocs.
7072         (EXTRA_CONSTRAINT): Add 'T'.
7073         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
7074         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
7075         (ENCODE_SECTION_INFO): Out line.
7076         (REDO_SECTION_INFO_P): New.
7077         (STRIP_NAME_ENCODING): New.
7078         (ASM_OUTPUT_LABELREF): New.
7079         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
7080         (PREDICATE_CODES): Update.
7081         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
7082         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
7083         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
7084         builtin_setjmp_receiver_er, exception_receiver_1_er,
7085         call_value_osf_1_er): New patterns.
7086         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
7087         (movqi, movhi, movsi): Add explicit $31 base register to lda.
7088         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
7089         (FINAL_PRESCAN_INSN): New.
7090
7091 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
7092
7093         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
7094
7095 2001-09-08  Andreas Jaeger  <aj@suse.de>
7096
7097         * i386.h (TARGET_SWITCHES): Fix description.
7098
7099 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
7100
7101         * rs6000.c (num_insns_constant): Compute number of instructions
7102         more accurately.
7103
7104         * doc/install.texi: Explain AIX exception handling work-around.
7105         Update URL for AIX fixes.
7106
7107 2001-09-07  Jim Wilson  <wilson@redhat.com>
7108
7109         * alias.c (clear_reg_alias_info): New.
7110         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
7111         * rtl.h (clear_reg_alias_info): Declare.
7112
7113 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
7114
7115         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
7116         available.
7117         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
7118         (m16m,edivm,emulm): Change declaration to match definition.
7119
7120 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
7121
7122         * reload.c (push_reload): Check for subreg_lowpart_p instead of
7123         SUBREG_BYTE being 0 when determining if the inner part of a subreg
7124         can be reloaded.
7125
7126 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
7127
7128         * c-common.c (signed_or_unsigned_type): Handle machine mode types
7129         which have no corresponding C type.
7130         * fold_const.c (target_isinf,target_isnan,target_negative): Update
7131         the representation of 64-bit doubles to work with 64-bit ints.
7132
7133 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
7134
7135         * config/mips/mips.c (override_options): Do not override ISA when ABI
7136         specified if MIPS_CPU_STRING_DEFAULT was specified.
7137
7138 2001-09-07  Richard Henderson  <rth@redhat.com>
7139
7140         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
7141         (express_from_1): Wrap lines.
7142         * rtlanal.c (commutative_operand_precedence): Rename from
7143         operand_preference; export.
7144         * rtl.h: Declare it.
7145         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
7146         (simplify_binary_operation): Invoke simplify_plus_minus on
7147         (CONST (PLUS ...)) as well.
7148         (struct simplify_plus_minus_op_data): New.
7149         (simplify_plus_minus_op_data_cmp): New.
7150         (simplify_plus_minus): Use them.  Avoid infinite recursion with
7151         simplify_binary_operation wrt CONST.
7152
7153 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
7154
7155         * h8300-protos.h (general_operand_dst_push): Remove.
7156         * h8300.c (general_operand_dst_push): Likewise.
7157         * h8300.h (OK_FOR_T): Likewise.
7158         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
7159         * h8300.md (pushqi_h8300): New.
7160         (pushqi_h8300hs): Likewise.
7161         (pushqi): Likewise.
7162         (pushhi_h8300): Likewise.
7163         (pushhi_h8300hs): Likewise.
7164         (pushhi): Likewise.
7165
7166 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7167
7168         * genattrtab.c (attr_printf): First arg is unsigned.
7169         Clean up formatting of callers.
7170
7171 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
7172
7173         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
7174         registers.
7175
7176 2001-09-07  Andreas Jaeger  <aj@suse.de>
7177
7178         * i386.h (TARGET_SWITCHES): Fix descriptions.
7179
7180 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7181
7182         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
7183
7184 2001-09-06  Ira Ruben  <ira@apple.com>
7185
7186         Remove OP_IDENTIFIER.
7187         * tree.def (OP_IDENTIFIER): Remove.
7188         * tree.c (tree_node_kind enum): Remove op_id_kind.
7189         (tree_node_kind_names): Remove "op_identifiers".
7190         (make_node): Remove OP_IDENTIFIER test.
7191         (build_op_identifier): Removed because it isn't being used.
7192         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
7193         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
7194
7195 2001-09-06  Richard Henderson  <rth@redhat.com>
7196
7197         * simplify-rtx.c (simplify_binary_operation): Revert last change.
7198
7199 2001-09-06  Richard Henderson  <rth@redhat.com>
7200
7201         * simplify-rtx.c (simplify_binary_operation): Simplify contents
7202         of CONST.
7203
7204 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7205
7206         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
7207         number used for CR register.
7208
7209 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
7210                           Joern Rennecke (amylaar@cygnus.com)
7211
7212         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
7213         * h8300.c (initial_offset): Handle offset between RP and FP.
7214         (h8300_return_addr_rtx): New function.
7215         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
7216         return register.
7217         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
7218         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
7219         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
7220         (CAN_ELIMINATE, REGISTER_NAMES):
7221         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
7222
7223 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
7224
7225         Remove TYPE_NONCOPIED_PARTS.
7226         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
7227         (struct tree_type): Remove noncopied_parts.
7228         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
7229         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
7230         (fixed_type_p): Remove.
7231         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
7232         (expand_expr, MODIFY_EXPR): Likewise.
7233         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
7234         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
7235
7236 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
7237
7238         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
7239         compiler warnings.
7240         (mask64_operand): Likewise.
7241         (includes_rldic_lshift_p): Likewise.
7242         (includes_rldicr_lshift_p): Likewise.
7243
7244 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
7245
7246         * objc/objc-act.c (build_message_expr): If a class method cannot
7247         be found, do not issue a warning if a corresponding instance
7248         method exists in the root class.
7249
7250 2001-09-05  Richard Henderson  <rth@redhat.com>
7251
7252         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
7253
7254 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
7255
7256         * function.c (ggc_mark_struct_function): Mark f->outer.
7257         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
7258         * integrate.c (output_inline_function): ... not here.
7259
7260 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
7261
7262         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
7263
7264         * i386.c (size_cost): New static variable.
7265         (override_function): Use size_cost when -Os is specified.
7266
7267         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
7268         properly;  Use current_function_calls_eh_return.
7269         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
7270         use leave to avoid dependency chain.
7271
7272         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
7273         get BB loop_depth instead of computing it from LOOP notes.
7274
7275         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
7276
7277 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7278
7279         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7280         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7281         UNALIGNED_DOUBLE_INT_ASM_OP): Define
7282
7283 2001-09-05  Jeffrey A Law  (law@cygnus.com)
7284             Jason Merrill (jason@redhat.com)
7285
7286         * stor-layout.c (layout_type): Complain if an array's size can
7287         not be represented in a size_t.
7288
7289         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
7290
7291 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
7292
7293         * gcc.c: (process_command) Add parentheses around assignment
7294         used as truth value.
7295
7296 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
7297
7298         * config/mips/mips.c (save_restore_insns): Don't mark any register
7299         save slots as unchanging if current_function_calls_eh_return.
7300
7301 2001-09-05  Richard Henderson  <rth@redhat.com>
7302
7303         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
7304         * config/alpha/alpha-protos.h: Declare it.
7305         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
7306         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
7307         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
7308         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
7309         (REG_OK_FOR_BASE_P): Select one of the above.
7310
7311 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
7312
7313         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
7314         (crti.o): Prefix name of object file with $(T).
7315         (crtn.o): Likewise.
7316
7317 2001-09-05  David S. Miller  <davem@redhat.com>
7318
7319         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
7320         * config/sparc/linux64.h: Likewise.
7321
7322 2001-09-05  Andreas Jaeger  <aj@suse.de>
7323
7324         * doc/invoke.texi (i386 Options): -mwide-multiply is not
7325         available anymore, remove the documentation.
7326         (i386 Options): Fix typo, cleanup index entries.
7327
7328         * prefix.c (concat): Remove, we can use the version from liberty.
7329
7330 2001-09-05  Richard Henderson  <rth@redhat.com>
7331
7332         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
7333         New functions split out of md file expanders.
7334         * config/alpha/alpha-protos.h: Declare them.
7335         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
7336
7337 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7338
7339         * cppmacro.c (funlike_invocation_p): No need to restore context.
7340
7341 2001-09-04  Richard Henderson  <rth@redhat.com>
7342
7343         * reload.c (push_reload): Export.
7344         * reload.h (push_reload): Declare it.
7345
7346         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
7347         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
7348         * config/alpha/alpha.c (alpha_legitimize_address): New.
7349         (alpha_legitimize_reload_address): Likewise.
7350         * config/alpha/alpha-protos.h: Declare them.
7351
7352 2001-09-04  Stan Shebs  <shebs@apple.com>
7353
7354         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
7355         * config/darwin.c (machopic_stub_name): Account for internally
7356         generated lib calls such as memcpy.
7357
7358 2001-09-04  Richard Henderson  <rth@redhat.com>
7359
7360         * unwind.h (_UA_END_OF_STACK): New flag.
7361         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
7362
7363 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
7364
7365         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
7366
7367 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
7368
7369         * config/mips/mips.c (save_restore_insns): Change base_offset to
7370         fp_offset in second call to mips_emit_frame_related_store.
7371
7372 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
7373
7374         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
7375         sometimes be represented as a NOTE of type
7376         NOTE_INSN_DELETED_LABEL.
7377         (Insns): Document NOTE_INSN_DELETED_LABEL.
7378
7379 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
7380
7381         * c-common.h (tree_dump_index): Add more comments.
7382         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
7383         (dump_option_value_info): New struct.
7384         (dump_options): New array.
7385         (dump_switch_p): Parse switch options symbolically.
7386         * doc/invoke.texi (-fdump-ast): Rename to ...
7387         (-fdump-tree): ... here. Document that options are symbolic, and
7388         not all are applicable.
7389
7390 2001-09-04  David S. Miller  <davem@redhat.com>
7391
7392         * config/sparc/sparc.md (define_splits): Kill constraints.
7393
7394         Cleanup redundant and unused insn attributes.
7395         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
7396         binary, and move.  Mark ialu as default.
7397         (commented out define_function_unit "alu"): Kill.
7398         (define_attr "use_clobbered"): Kill.
7399         (whole file): Kill address insn type references.  Replace
7400         all unary/binary/move references with ialu.
7401         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
7402         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
7403         TYPE_IALU.
7404
7405         Simplify length insn attribute and make more judicious use
7406         of insn attribute defaulting.
7407         * config/sparc/sparc.md (all insns with length > one): Mark as
7408         insn type multi if real instructions, else use default if
7409         it is a forced splitter.
7410         (all insns with length == one): Use default insn length.
7411         (all insns of type ialu): Use default insn type.
7412
7413         Fix erroneous insn attribute settings.
7414         (addx): Set insn type to misc.
7415         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
7416         const_umulsidi3_sp64): Set insn type to imul.
7417
7418         Track SFmode vs DFmode insns according to UltraSPARC
7419         scheduling rules.
7420         * config/sparc/sparc.md ("fptype"): New attribute, default
7421         to "single".
7422         (all DFmode single insns): Mark as fptype "double".
7423
7424 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
7425
7426         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
7427
7428 2001-09-03  Richard Henderson  <rth@redhat.com>
7429
7430         * function.h (struct function): Add arg_pointer_save_area_init.
7431         * function.c (expand_function_end): Init arg_pointer_save_area.
7432         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
7433         when called from a nested function.
7434
7435 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
7436
7437         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
7438         is enabled.
7439
7440 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
7441
7442         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
7443
7444 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
7445
7446         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
7447         (emit_push_insn): Use specified padding direction when
7448         STACK_PUSH_CODE is POST_INC.
7449
7450         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
7451
7452 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7453
7454         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
7455
7456 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7457
7458         * cppinit.c (cpp_start_read): Free the imacros list as we
7459         traverse it.  Don't free the chains before returning.
7460         (_cpp_push_next_buffer): Only try pushing buffers if we've
7461         completed -imacros handling.
7462
7463 2001-08-31  Eric Christopher  <echristo@redhat.com>
7464
7465         * gcc.c (handle_braces): Add explaination for abort.
7466
7467 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
7468
7469         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
7470         move adjustment of bitpos instead.
7471
7472 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
7473
7474         * function.c: Remove all_functions.  Make outer_function_chain
7475         static.
7476         (init_function_start): Don't add new function structure to
7477         all_functions.
7478         (find_function_data, push_function_context_to,
7479         pop_function_context_from, put_var_into_stack,
7480         trampoline_address): Update for changed structure element names.
7481         (push_function_context_to): Disentangle.
7482         (free_after_compilation): Also free F.
7483         (expand_dummy_function_end): Don't free cfun here.
7484         (put_var_into_stack): Comment why we can't use find_function_data here.
7485         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
7486         (mark_function_chain): Split into maybe_mark_struct_function and
7487         ggc_mark_struct_function.  Export the latter.
7488         (init_function_once): Mark from cfun and outer_function_chain;
7489         not all_functions.
7490
7491         * function.h (struct function): Kill next_global.  Rename next
7492         to outer.  All users updated to match.
7493         (all_functions, outer_function_chain): Don't declare.
7494
7495         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
7496         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
7497         don't touch f->inlinable, after calling rest_of_compilation.
7498
7499         * tree.h: Forward-declare struct function.  Prototype
7500         ggc_mark_struct_function.
7501
7502 2001-08-31  Kazu Hirata  <kazu@hxi.com>
7503
7504         * config/h8300/h8300.md (*andorhi3): Fix typos.
7505
7506 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7507
7508         * calls.c (emit_library_call_value): Don't use a fixed
7509         argument after VA_CLOSE, i.e. out of scope in traditional C.
7510
7511         * emit-rtl.c (gen_rtvec): Likewise.
7512
7513 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7514
7515         * Makefile.in (c-pragma.o): Depend on output.h.
7516         (reorg.o): Depend on except.h.
7517
7518         * c-pragma.c: Include output.h.
7519
7520         * reorg.c: Include except.h.
7521
7522         * unwind-dw2.c: Call __builtin_alloca, not alloca.
7523
7524 2001-08-31  Richard Henderson  <rth@redhat.com>
7525
7526         * sched-deps.c (add_dependence): Don't elide dependency if the
7527         conditional used by insn is modified in elem.
7528
7529 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
7530
7531         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
7532
7533 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
7534
7535         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
7536         dump_switch_p.
7537
7538 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
7539
7540         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
7541         function.
7542         (stormy16_asm_out_constructor): New function.
7543         (TARGET_ASM_CONSTRUCTOR): Define.
7544         (TARGET_ASM_DESTRUCTOR): Define.
7545
7546 2001-08-31  Andreas Jaeger  <aj@suse.de>
7547
7548         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
7549         * loop.c (add_label_notes): Likewise.
7550         * reload.c (find_reloads): Likewise.
7551         * config/sh/sh.c (machine_dependent_reorg): Likewise.
7552
7553 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
7554
7555         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
7556         code here.  Take _Unwind_{W,Sw}ord*.
7557         (read_encoded_value_with_base): Use them.
7558         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
7559         words.
7560         (extract_cie_info): Simplify read_?leb128 handling.
7561         (execute_stack_op, execute_cfa_program): Likewise.
7562         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
7563
7564 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
7565
7566         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
7567         the frame pointer to pop the stack if convenient.
7568
7569         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
7570         Don't use post-increment before combine.
7571         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
7572         a call-saved register.
7573
7574 2001-08-31  Andreas Jaeger  <aj@suse.de>
7575
7576         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
7577         code was correct.
7578
7579 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
7580
7581         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
7582         not DIV/MOD, of course.
7583
7584 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
7585
7586         * rtl.def: Undo my patch commited 2001-08-27.
7587
7588         * genattrtab.c: Ditto.
7589
7590         * rtl.h: Ditto.
7591
7592         * sched-int.h: Ditto.
7593
7594         * target-def.h: Ditto.
7595
7596         * target.h: Ditto.
7597
7598         * haifa-sched.c: Ditto.
7599
7600         * sched-rgn.c: Ditto.
7601
7602         * sched-vis.c: Ditto.
7603
7604         * Makefile.in: Ditto.
7605
7606         * doc/md.texi: Ditto.
7607
7608         * doc/tm.texi: Ditto.
7609
7610         * doc/contrib.texi: Ditto.
7611
7612         * doc/gcc.texi: Ditto.
7613
7614         * genattrtab.h: Remove it.
7615
7616         * genautomata.c: Remove it.
7617
7618         * genattr.c: Undo my patch and Richard Henderson's patch commited
7619         2001-08-27.
7620
7621 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
7622
7623         * config.gcc (h8300-*-elf*): New case.
7624         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
7625         (SUBTARGET_CPP_SPEC): Define.
7626         (EXTRA_SPECS): Define.
7627         (SUBTARGET_EXTRA_SPECS): Define.
7628         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
7629         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
7630
7631 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
7632
7633         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
7634         (LIB2FUNCS_EXTRA): Define.
7635         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
7636         config/h8300/fixunssfsi.c: New file.
7637
7638 2001-08-30  Kazu Hirata  <kazu@hxi.com>
7639
7640         * config/h8300/h8300.md (zero_extendqihi2): Changes to
7641         define_expand to accommodate target-specific attributes.
7642         (anonymous zero_extendqihi2 patterns): New.
7643
7644 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
7645
7646         * h8300.md (*andorhi3): New pattern.
7647
7648 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
7649
7650         * h8300.c (dosize): Fix test for "sub".
7651
7652 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
7653
7654         * c-typeck.c (pointer_diff): Try to eliminate common term before
7655         doing conversions.
7656
7657 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
7658
7659         * config/arm/arm.c (arm_compute_initial_elimination_offset):
7660         Account for the saves of the FP registers.
7661
7662         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
7663         (TEXT_SECTION_ASM_OP): Define.
7664         (INIT_SECTION_ASM_OP): Define.
7665         (FINI_SECTION_ASM_OP): Define.
7666         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
7667         (RDATA_SECTION_FUNCITON): Provide prototype.
7668
7669 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
7670
7671         * reload1.c (move2add_note_store): Correct typo checking for
7672         argument pushes.
7673
7674 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
7675
7676         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
7677         note should not be considered outside the libcall block.
7678
7679 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7680
7681         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
7682
7683 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7684
7685         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
7686
7687 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7688
7689         * config/h8300/h8300-protos.h: Add a prototype for
7690         emit_logical_op.
7691         * config/h8300/h8300.c (emit_logical_op): New.
7692         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
7693         (andsi3): Likewise.
7694         (iorhi3): Likewise.
7695         (iorsi3): Likewise.
7696         (xorhi3): Likewise.
7697         (xorsi3): Likewise.
7698
7699 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7700
7701         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
7702         comparison with rtx INTVAL.
7703         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
7704         expression.
7705         * pa.h (FUNCTION_ARG_SIZE): Likewise.
7706
7707 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7708
7709         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
7710         comment typos.
7711
7712 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7713
7714         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
7715         (reg n) to (mem (pre_dec (reg n))
7716         (anonymous movsi pattern): Likewise.
7717
7718 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7719
7720         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
7721
7722 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7723
7724         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
7725         several special constants.
7726
7727 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7728
7729         * config/h8300/lib1funcs.asm: Fix comment typos.
7730
7731 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7732
7733         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
7734         Fix format specifier warnings.
7735
7736         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
7737         inet_makeaddr, semctl): Prototype.
7738
7739         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
7740         (save_restore_insns): Use base_offset, not gp_offset.
7741
7742         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
7743         (ASM_OUTPUT_BYTE): Fix format specifier warning.
7744
7745 2001-08-29  Richard Henderson  <rth@redhat.com>
7746
7747         * bb-reorder.c (function_tail_eff_head): New.
7748         (record_effective_endpoints): Set it.
7749         (fixup_reorder_chain): Use it.
7750
7751 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7752
7753         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
7754
7755 2001-08-28  Dale Johannesen  <dalej@apple.com>
7756
7757         * config/darwin.c (machopic_function_base_name): Add const
7758         qualifier to a string.
7759         (darwin_encode_section_info): Ditto.
7760
7761 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7762
7763         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
7764         function definition.
7765
7766 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
7767
7768         * df.h (struct df): Add rts_order variable.
7769
7770         * df.c (df_visit_next_rts): New function.
7771         (df_visit_next): Renamed to df_visit_next_rc
7772         (df_analyse_1): Allocate/compute/free rts_order as well.
7773         (df_rd_global_compute): Use df_visit_next_rc instead of
7774         df_visit_next.
7775         (df_ru_global_compute): Use df_visit_next_rts instead of
7776         df_visit_next.
7777
7778         * flow.c (flow_reverse_top_sort_order_compute): New function.
7779
7780         * basic-block.h: Add prototype.
7781
7782 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
7783
7784         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
7785         blocks, the BB_REACHABLE is now set, rather than aux being
7786         non-NULL. Update the test to reflect this.
7787
7788 2001-08-28  Eric Christopher  <echristo@redhat.com>
7789
7790         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
7791         config/mips/crti.asm: Ditto.
7792
7793 2001-08-28  Eric Christopher <echristo@redhat.com>
7794             Richard Henderson <rth@redhat.com>
7795
7796         * c-pragma.h (add_weak): Move prototype from here...
7797         * output.h (add_weak): ... to here.
7798         * varasm.c (add_weak): Fix typo.
7799         * config/mips/crti.asm: New file.
7800         * config/mips/crtn.asm: Ditto.
7801         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
7802         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
7803         (INVOKE__main): Ditto.
7804         (INIT_SECTION_ASM_OP): New.
7805         (FINI_SECTION_ASM_OP): Ditto.
7806         (STARTFILE_SPEC): Add crti.
7807         (ENDFILE_SPEC): Add crtn.
7808         * config/mips/elf64.h: Same.
7809         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
7810         Remove.
7811         * config/mips/vxworks.h: Ditto.
7812         * config/mips/t-elf: Support crti and crtn.
7813
7814 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
7815
7816         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
7817         INSN_LIST.
7818
7819 2001-08-28  Richard Henderson  <rth@redhat.com>
7820
7821         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
7822         (one_cmplbi2 splitter): Remove redundant test.
7823
7824 2001-08-28  Dale Johannesen  <dalej@apple.com>
7825
7826         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
7827
7828 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
7829
7830         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
7831
7832 2001-08-28  Stan Shebs  <shebs@apple.com>
7833
7834         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
7835         (UNALIGNED_SHORT_ASM_OP): Define.
7836         (UNALIGNED_INT_ASM_OP): Define.
7837
7838 2001-08-28  Will Cohen  <wcohen@redhat.com>
7839
7840         * config/rs6000/rs6000.md (store_multiple): Correct RTL
7841         generation for first set.
7842
7843 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
7844
7845         * flow.c (redirect_edge_succ_nodup): Return new edge.
7846         (try_simplify_condjump): Use new edge.
7847         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
7848
7849         * cse.c (cse_basic_block): Skip note instructions.
7850
7851 2001-08-27  Richard Henderson  <rth@redhat.com>
7852
7853         * combine.c (combine_simplify_rtx): Don't reverse condition
7854         if there is no reverse for the condition.
7855         (simplify_comparison): Don't simplify subregs from INT to FP.
7856
7857         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
7858         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
7859         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
7860         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
7861         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
7862         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
7863
7864 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
7865
7866         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
7867         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
7868         (pushqi1): New.
7869         (adddi_dilshr32, adddi_dishl32): Only data register can be
7870         source for mem destination.
7871
7872         * expmed.c (store_bit_field): Ignore adjustment to bitpos
7873         and use bitnum to decide about register move.
7874
7875 2001-08-27  Richard Henderson  <rth@redhat.com>
7876
7877         * genattr.c (main): Emit state_t even when not doing scheduling.
7878
7879 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
7880             Richard Henderson  <rth@redhat.com>
7881
7882         * gcse.c (reg_first_set, reg_last_set): Replace with ...
7883         (reg_avail_info, current_bb): ... these.
7884         (oprs_unchanged_p, record_last_reg_set_info): Use them.
7885         (compute_hash_table): Likewise.
7886
7887 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
7888
7889         * flow.c (verify_flow_info): Use checksums to verify edges.
7890
7891 2001-08-27  Richard Henderson  <rth@redhat.com>
7892
7893         * genautomata.c (expand_automata): Always create a description.
7894
7895 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
7896
7897         * optabs.c (expand_binop): Correctly handle the carry in multiword
7898         add/subtract operations.
7899
7900 2001-08-27  Fred Fish  <fnf@be.com>
7901
7902         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
7903         __SIZE_TYPE__.
7904
7905 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
7906
7907         * reload.c (find_reloads_toplev): Back out this change:
7908
7909         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
7910
7911         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
7912         mem if the address is a mode_dependent_address_p.
7913
7914 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
7915
7916         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
7917         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
7918         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
7919         RTL constructions.
7920
7921         * genattr.c (main): New variable num_insn_reservations.  Increase
7922         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
7923         pipeline hazard recognizer interface.
7924
7925         * genattrtab.h: New file.
7926
7927         * genattrtab.c: Include genattrtab.h.
7928         (attr_printf, check_attr_test, make_internal_attr,
7929         make_numeric_value): Move protypes into genattrtab.h.  Define them
7930         as external.
7931         (num_dfa_decls): New global variable.
7932         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
7933         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
7934         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
7935         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
7936
7937         * genautomata.c: New file.
7938
7939         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
7940
7941         * sched-int.h: (curr_state): Add the external definition for
7942         automaton pipeline interface.
7943         (haifa_insn_data): Add comments for members blockage and units.
7944
7945         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
7946         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
7947         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
7948         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
7949         TARGET_SCHED_DFA_POST_CYCLE_INSN,
7950         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
7951         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
7952         macros.
7953         (TARGET_SCHED): Use the new macros.
7954
7955         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
7956         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
7957         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
7958         dfa_bubble): New members in gcc_target.sched.
7959
7960         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
7961         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
7962         (insn_queue): Redefine it as pointer to array.
7963         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
7964         INSN_QUEUE_SIZE.
7965         (max_insn_queue_index_macro_value): New variable.
7966         (curr_state, dfa_state_size, ready_try): New varaibles for
7967         automaton interface.
7968         (ready_element, ready_remove, max_issue): New function prototypes
7969         for automaton interface.
7970         (choose_ready): New function prototype.
7971         (insn_unit, blockage_range): Add comments.
7972         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
7973         FUNCTION_UNITS_SIZE == 0.
7974         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
7975         actual_hazard, potential_hazard): Add comments.
7976         (insn_cost): Use cost -1 as undefined value.  Remove
7977         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
7978         pipeline interface.
7979         (ready_element, ready_remove): New functions for automaton
7980         interface.
7981         (schedule_insn): Add new code for automaton pipeline interface.
7982         (queue_to_ready): Add new code for automaton pipeline interface.
7983         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
7984         (debug_ready_list): Print newline when the queue is empty.
7985         (max_issue): New function for automaton pipeline interface.
7986         (choose_ready): New function.
7987         (schedule_block): Add new code for automaton pipeline interface.
7988         Print ready list before scheduling each insn.
7989         (sched_init): Add new code for automaton pipeline interface.
7990         Initiate insn cost by -1.
7991         (sched_finish): Free the current automaton state and finalize
7992         automaton pipeline interface.
7993
7994         * sched-rgn.c: Include target.h.
7995         (init_ready_list, new_ready, debug_dependencies): Add new code for
7996         automaton pipeline interface.
7997
7998         * sched-vis.c: Include target.h.
7999         (get_visual_tbl_length): Add code for automaton interface.
8000         (target_units, print_block_visualization):  Add comments.
8001
8002         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
8003         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
8004         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
8005         (getruntime.o, genautomata.o): New entries.
8006         (genattrtab.o): Add new dependency file genattrtab.h.
8007         (genattrtab): Add new dependencies.  Link it with `libm.a'.
8008         (getruntime.o, hashtab.o): New entries for canadian cross.
8009
8010         * doc/md.texi: Description of automaton based model.
8011
8012         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
8013         Add comments.
8014         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
8015         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
8016         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
8017         TARGET_SCHED_DFA_POST_CYCLE_INSN,
8018         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
8019         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
8020         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
8021         hook descriptions.
8022         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
8023         MAX_DFA_ISSUE_RATE): New macro descriptions.
8024
8025         * doc/contrib.texi: Add dfa based scheduler contribution.
8026
8027         * doc/gcc.texi: Add more information about genattrtab.
8028
8029 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
8030
8031         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
8032         an RTL basic block.
8033
8034 2001-08-27  Richard Henderson  <rth@redhat.com>
8035
8036         * function.c (expand_function_end): Don't init arg_pointer_save_area.
8037         (get_arg_pointer_save_area): New.  Create an init it here.
8038         (fix_lexical_addr): Use it.
8039         * function.h: Declare it.
8040         * builtins.c (expand_builtin_setjmp_receiver): Use it.
8041         * stmt.c (expand_nl_goto_receiver): Use it.
8042
8043 2001-08-27  Richard Henderson  <rth@redhat.com>
8044
8045         * final.c (final_scan_insn): Don't enter APP_ON mode for
8046         empty asm strings.
8047
8048         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
8049         alignment for assemble_integer for DW_EH_PE_aligned.
8050         * except.c (output_function_exception_table): Likewise.
8051
8052 2001-08-26  Andreas Jaeger  <aj@suse.de>
8053
8054         * c-tree.h: Add prototyp for c_sizeof_nowarn.
8055
8056 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
8057
8058         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
8059
8060 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
8061
8062         * config/rs6000/rs6000.c (mask_operand): Rewrite without
8063         bit-shifting loop.
8064         (mask64_operand): Likewise.
8065         (rldic_operand): Delete.
8066         (includes_lshift64_p): Delete.
8067         (includes_rldic_lshift_p): New function.
8068         (includes_rldicr_lshift_p): New function.
8069         (print_operand): Don't call rldic_operand in case 'W'.
8070         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
8071         (includes_lshift64_p): Remove.
8072         (includes_rldic_lshift_p): Declare.
8073         (includes_rldicr_lshift_p): Declare.
8074         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
8075         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
8076         Replace match_operand rldic_operand predicate with
8077         const_int_operand.  Replace includes_lshift64_p condition with
8078         includes_rldic_lshift_p.
8079         <ashldi3_internal 64 bit rldicr patterns>: New.
8080
8081 2001-08-27  Andreas Jaeger  <aj@suse.de>
8082
8083         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
8084         * errors.c: Likewise.
8085         * final.c: Likewise.
8086         * dwarf2asm.c: Likewise.
8087         * doprint.c (checkit): Likewise.
8088         * diagnostic.c: Likewise.
8089         * collect2.c: Likewise.
8090         * calls.c: Likewise.
8091         * c-semantics.c (build_stmt): Likewise.
8092         * c-format.c (status_warning): Likewise.
8093         * c-errors.c (pedwarn_c99): Likewise.
8094         * builtins.c (validate_arglist): Likewise.
8095         * config/pj/pj.c (pj_printf): Likewise.
8096         * fix-header.c: Likewise.
8097         * gcc.c: Likewise.
8098         * gcov.c (fnotice): Likewise.
8099         * gensupport.c (message_with_line): Likewise.
8100         * mips-tfile.c: Likewise.
8101         * protoize.c (notice): Likewise.
8102         * read-rtl.c (fatal_with_file_and_line): Likewise.
8103         * rtl-error.c: Likewise.
8104         * tradcpp.c: Likewise.
8105         * tree.c: Likewise.
8106         * cp/tree.c (build_min_nt): Likewise.
8107         (build_min): Likewise.
8108         * cp/lex.c: Likewise.
8109         * cp/errfn.c: Likewise.
8110         * cp/rtti.c (create_pseudo_type_info): Likewise.
8111
8112 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
8113
8114         * df.c (df_uses_record): Return after recording all uses
8115         in ASM_OPERANDS.
8116
8117 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
8118
8119         * df.c (df_insn_modify): Realloc the INSN table here, if
8120         necessary, here, too.
8121
8122 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
8123
8124         * config/mips/mips.c (mips_function_value): Handle complex return
8125         values.
8126
8127 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
8128
8129         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
8130         unshared.
8131         * reload.c (make_memloc): Copy result if it is still
8132         reg_equiv_memory_loc[regno] on return.
8133         (subst_reloads) [ENABLE_CHECKING]: Check that none of
8134         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
8135         reg_equiv_mem are modified by the substitutions.
8136
8137 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
8138
8139         * predict.c (expensive_function_p): New.
8140         * rtl.h (expensive_function_p): Declare.
8141         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
8142         (use_fast_prologue_epilogue): New static variable.
8143         (expand_prologue): Set it; emit short prologues if unset.
8144         (expand_epilogue): Likewise.
8145
8146 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
8147
8148         * config.gcc: Add stormy16-*-elf case.
8149         * config/stormy16/stormy-abi: New file.
8150         * config/stormy16/stormy16-lib2.c: New file.
8151         * config/stormy16/stormy16-protos.h: New file.
8152         * config/stormy16/stormy16.c: New file.
8153         * config/stormy16/stormy16.h: New file.
8154         * config/stormy16/stormy16.md: New file.
8155         * config/stormy16/t-stormy16: New file.
8156
8157 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
8158
8159         * i386.h (no-accumulate-outgoing-args): Use proper mask.
8160
8161 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
8162
8163         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
8164         descriptor members are pointer size, not constant 4.
8165         * config/rs6000/rs6000.md (define_splits): Remove more unused
8166         constraints.
8167
8168 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8169
8170         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
8171
8172 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
8173
8174         * cp/rtti.c (VPARAMS): Fix parameter.
8175
8176 2001-08-24  Zack Weinberg  <zackw@panix.com>
8177
8178         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
8179         to zero.
8180         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
8181         to switch.
8182         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
8183         in if controlling use of insv.
8184         (extract_bit_field): Likewise, for extv and extzv.
8185
8186 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
8187
8188         * i386.md (movcc peep2): Fix load of 0.
8189
8190 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8191
8192         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
8193         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
8194
8195 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
8196
8197         * c-pragma.h: Move weak_syms and weak_decls...
8198         * varasm.c: ...here.  Now static.
8199         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
8200         depend on HANDLE_PRAGMA_WEAK.
8201
8202         * c-common.c (c_alignof, c_alignof_expr): Move here...
8203         * c-typeck.c: ...from here.
8204         * c-tree.h, c-common.h: Adjust.
8205
8206 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
8207
8208         * config/ia64/ia64.c (rws_update): If !pred, set write_count
8209         instead of incrementing it.
8210
8211         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
8212         asm ready, don't try to move them all into the same array element.
8213
8214 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8215
8216         * function.c (thread_prologue_and_epilogue_insns): Avoid
8217         fallthru flag on edge to exit.
8218
8219         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
8220
8221         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
8222         dead edges.
8223
8224 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
8225
8226         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
8227         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
8228         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
8229         Remove prototype.
8230
8231 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
8232
8233         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
8234         replace "GNU CC" with "GCC".
8235
8236 2001-08-23  Richard Henderson  <rth@redhat.com>
8237
8238         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
8239         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
8240         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
8241         Need GR between FR and not GR_AND_FR.
8242         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
8243         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
8244         AR regs before GR regs.
8245         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
8246         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
8247         (REGISTER_MOVE_COST): Update.
8248         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
8249
8250 2001-08-23  Richard Henderson  <rth@redhat.com>
8251
8252         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
8253         a register class.
8254
8255 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
8256
8257         * reload1.c (emit_reload_insns): Don't look for notes
8258         on a NULL store_insn.
8259
8260 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8261
8262         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
8263         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
8264         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
8265         format specifier warnings.
8266         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
8267
8268 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
8269
8270         * config/i386/i386-protos.h: Correct declaration of
8271         i386_pe_asm_named_section.
8272
8273 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8274
8275         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
8276         variable i.
8277         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
8278
8279 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8280
8281         * cpperror.c (print_location): Don't show _Pragma.
8282         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
8283         and file change callback generation here.
8284         (stack_include_file): Update use of cpp_push_buffer.
8285         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
8286         (struct cpp_buffer): Remove type, pfile members.
8287         * cppinit.c (cpp_handle_option): Use free_chain.
8288         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
8289         (skip_escaped_newlines, get_effective_char, lex_percent): Take
8290         a cpp_reader rather than a cpp_buffer.
8291         (skip_escaped_newlines, get_effective_char, skip_block_comment,
8292         skip_line_comment, parse_string, lex_percent, lex_dot,
8293         _cpp_lex_token): Update accordingly.
8294         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
8295         generation here.
8296         (cpp_push_buffer): Update prototype.
8297         (run_directive): Update use of cpp_push_buffer.
8298         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
8299         handle_assertion): Update use of run_directive.
8300         * cpplib.h (enum cpp_buffer_type): Remove.
8301         (cpp_push_buffer): Update prototype.
8302         * fix-header.c (read_scan_file): Update.
8303
8304 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
8305
8306         * gcc.c (struct prefix_list): Change prefix to const char *.
8307
8308 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
8309
8310         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
8311
8312 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
8313
8314         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
8315         from a new MEM.
8316
8317         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
8318         a squeezable note.
8319         * rtl.h: Adjust.
8320         * ifcvt.c (dead_or_predicable): Adjust.
8321         * loop.c (find_and_verify_loops): Adjust.
8322         * stmt.c (expand_end_case): Adjust.
8323         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
8324         head and end insn pointers in the basic block, not just local copies.
8325         (merge_blocks_move_predecessor_nojumps): Likewise.
8326
8327 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
8328
8329         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
8330         bitmap.h, builtin-types.def, builtins.c, builtins.def,
8331         c-aux-info.c, c-common.c, c-common.def, c-common.h,
8332         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
8333         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
8334         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
8335         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
8336         conditions.h, config.gcc, configure.frag, configure.in,
8337         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
8338         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
8339         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
8340         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
8341         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
8342         emit-rtl.c, errors.c, errors.h, except.c, except.h,
8343         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
8344         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
8345         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
8346         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
8347         gencheck.c, gencodes.c, genconfig.c, genemit.c,
8348         genextract.c, genflags.c, gengenrtl.c, genmultilib,
8349         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
8350         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
8351         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
8352         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
8353         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
8354         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
8355         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
8356         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
8357         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
8358         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
8359         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
8360         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
8361         params.h, predict.c, predict.def, predict.h, prefix.c,
8362         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
8363         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
8364         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
8365         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
8366         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
8367         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
8368         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
8369         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
8370         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
8371         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
8372         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
8373         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
8374         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
8375         xcoffout.h: replace "GNU CC" with "GCC".
8376
8377 2001-08-21  Richard Henderson  <rth@redhat.com>
8378
8379         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
8380         (final_scan_insn): Consider jump tables data even if we have no
8381         independent text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
8382         ADDR_VEC_ALIGN.
8383         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
8384         (ASM_OUTPUT_CASE_END): Remove.
8385         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
8386         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
8387         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
8388
8389 2001-08-21  Richard Henderson  <rth@redhat.com>
8390
8391         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
8392         at barrier insns.  Emit stop bits before barriers.
8393
8394         * flow.c (flow_find_cross_jump): Don't consider unconditional
8395         return insns for commoning.
8396
8397         * final.c (compute_alignments): Fix typo.
8398
8399         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
8400         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
8401         (store_bit_field): Use mode_for_extraction more places.
8402         (extract_bit_field): Likewise.
8403
8404 2001-08-21  Zack Weinberg  <zackw@panix.com>
8405
8406         * caller-save.c: Don't include insn-codes.h.
8407         (reg_save_code, reg_restore_code): Make arrays of int.
8408         All uses updated to match.
8409         (insert_save, insert_restore): No need to initialize "code"
8410         variable upon declaration.
8411         * Makefile.in: update dependencies; fix typo in clean rule.
8412
8413 2001-08-21  Richard Henderson  <rth@redhat.com>
8414
8415         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
8416         (merge_if_block): Handle fallout from same.
8417
8418 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8419
8420         * builtins.c (type_to_class): Fix typo in last change.
8421
8422 2001-08-21  Richard Henderson  <rth@redhat.com>
8423
8424         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
8425         ia64_asm_output_label.
8426
8427         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
8428         copy of gp while the real gp register contains garbage.
8429
8430 2001-08-21  Zack Weinberg  <zackw@panix.com>
8431
8432         * expmed.c (mode_for_extraction): New function.
8433         (store_bit_field, extract_bit_field): Use it.
8434         * expr.h: Prototype it and provide an enum for its first argument.
8435
8436         * combine.c, function.c, recog.c: Don't include insn-codes.h.
8437         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
8438         and digging through the insn_data tables.
8439         * Makefile.in: Update dependencies.
8440
8441 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8442
8443         * cppfiles.c (stack_include_file): line-map.c now handles include
8444         depth.
8445         (handle_missing_handler): Similarly.
8446         (_cpp_execute_include): Similarly.
8447         (_cpp_pop_file_buffer): Similarly.
8448         * cpphash.h (struct cpp_reader): Remove system_include_depth,
8449         buffer_stack_depth and include_depth.
8450         * cpplib.c (do_include_common): line-map.c now handles include depth.
8451         (cpp_push_buffer): Similarly.
8452         (_cpp_pop_buffer): Similarly.
8453         * cppmacro.c (builtin_macro): Update.
8454         * line-map.c (init_line_maps): Set depth.
8455         (add_line_map): Increment "used" earlier.  Update and use the
8456         include depth.
8457         (trace_include): Use the include depth.
8458         * line-map.h (struct line_maps): New member depth.
8459
8460 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8461
8462         * cppfiles.c (stack_include_file): Don't handle -H here.
8463         * cppinit.c (cpp_start_read): Set include tracing after
8464         cpp_post_options and after stacking the main file.
8465         * line-map.c (trace_include): New.
8466         (init_line_maps, add_line_map): Update.
8467         * line-map.h (struct line_maps): New member trace_includes.
8468
8469 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8470
8471         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
8472         * cppfiles.c (stack_include_file): Only stack a file if there
8473         is something to do.  Return a boolean indicating whether a
8474         buffer was stacked or not.
8475         (_cpp_execute_include): Similarly.
8476         (_cpp_read_file): Similarly.
8477         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
8478
8479 2001-08-21  Sam Steingold  <sds@gnu.org>
8480
8481         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
8482         (RECACHE): keep obufp_before_macroname up to date
8483
8484 2001-08-21  Zack Weinberg  <zackw@panix.com>
8485
8486         * stmt.c: Don't include insn-codes.h.
8487         (expand_end_case): Machine specific logic moved to expr.c.
8488         No need to worry about __builtin_classify_type.
8489         (check_for_full_enumeration_handling, emit_case_nodes):
8490         Kill #if 0 blocks.
8491
8492         * builtins.o (expand_builtin_classify_type): Split up so code
8493         can be shared with fold_builtin_classify_type.
8494         (type_to_class, fold_builtin_classify_type): New functions.
8495         (fold_builtins): Handle __builtin_classify_type.
8496
8497         * expr.c (do_tablejump): Now static.
8498         (case_values_threshold, try_casesi, try_tablejump): New;
8499         code mostly from stmt.c (expand_end_case).
8500         (expr.h): Update prototypes.
8501
8502         * Makefile.in (stmt.o): Update dependencies.
8503
8504 2001-08-21  Will Cohen  <wcohen@redhat.com>
8505
8506         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
8507         declaration of variable i.
8508         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
8509         declaration of variable i.
8510
8511 2001-08-21  Richard Henderson  <rth@redhat.com>
8512
8513         * crtstuff.c: Fix thinko last change.  Move list tails to start
8514         of CRT_END section.  Tidy ifdefs.
8515         (__EH_FRAME_BEGIN__): Always static for ELF.
8516         (__do_global_ctors_1): Rename from __frame_dummy.
8517         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
8518         name change; don't hide __EH_FRAME_BEGIN__.
8519
8520 2001-08-21  Richard Henderson  <rth@redhat.com>
8521
8522         * gdbinit.in: Move break on exit after break on fancy_abort.
8523
8524         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
8525         sized types.
8526
8527 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8528
8529         * cpphash.h (_cpp_push_next_buffer): New.
8530         * cppinit.c (do_includes): Remove.
8531         (push_include, free_chain, _cpp_push_next_buffer): New.
8532         (cpp_start_read): Use them to rework command line option handling.
8533         (cpp_handle_option): Combine handling of -include and -imacros.
8534         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
8535         appropriate.  Always insert missing \n at EOF.
8536         * cpplib.c (start_directive): Get the directive position right.
8537         * cppmain.c (cb_file_change): Always print the first line, unless
8538         preprocessed.
8539
8540 2001-08-20  Andreas Jaeger  <aj@suse.de>
8541
8542         * profile.c (compute_branch_probabilities): Remove extra new-line
8543         in error message.
8544         * flow.c (verify_flow_info): Likewise.
8545
8546 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
8547
8548         * basic-block.h (basic_block): Add new field 'flags'.
8549         (BB_REACHABLE): Define.
8550         (expunge_block): Declare.
8551         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
8552         (EXIT_BLOCK_PTR): Ditto.
8553         (expunge_block): Remove static declaration.
8554         (cleanup_cfg): Clear bb->aux on every basic block.
8555         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
8556         computing reachability.
8557         (delete_unreachable_blocks): Delete block b if b->flags has
8558         BB_REACHABLE unset.
8559
8560 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
8561
8562         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
8563
8564 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8565
8566         * sparc.c (sparc_variable_issue): Fix typo in last change.
8567
8568 2001-08-20  Richard Henderson  <rth@redhat.com>
8569
8570         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
8571
8572 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8573
8574         * pa.h (RETURN_IN_MEMORY): Improve comment.
8575
8576 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
8577
8578         * doc/invoke.texi (Profiling options): Clarify the interactions
8579         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
8580
8581 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
8582
8583         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
8584         command.
8585
8586 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
8587
8588         * gcc.c (make_relative_prefix): Allocate a sufficiently large
8589         buffer.
8590
8591 2001-08-20  Richard Henderson  <rth@redhat.com>
8592
8593         * final.c (end_final): Fix typo last change.
8594
8595 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8596
8597         * cppinit.c (init_standard_includes): The returned buffer
8598         is already malloc-ed.
8599         * gcc.c (add_prefix): Similarly.
8600         * prefix.c (translate_name): Update to support clear buffer
8601         ownership rules.
8602         (update_path): Similarly.  Be sure to free any newly allocated
8603         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
8604         (tr): New function.
8605         * prefix.h (update_path): Update prototype and document.
8606         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
8607         up and update to new buffer ownership rules.
8608         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
8609
8610 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
8611
8612         * final.c (compute_alignments): New function.
8613         (init_insn_lengths): Do not care label_align.
8614         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
8615         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
8616         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
8617         (shorted_branches): Realloc label_align array; do
8618         not call init_insn_lengths; Do not care about loop alignments.
8619         * output.h (compute_alignments): Declare.
8620         * toplev.c (rest_of_compilation): Call compute_alignments.
8621         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
8622
8623         * predict.c (block_info_def): Add npredecesors, remove nvisited;
8624         change visited to tovisit.
8625         (propagate_freq): Use faster traversing algorithm.
8626         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
8627         to tovisit; reverse meaning.
8628
8629         * predict.c (struct block_info_def): Remove nvisited.
8630         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
8631         (estimate_bb_frequencies): Call mark_dfs_back_edges.
8632
8633 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
8634
8635         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
8636         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
8637         (TARGET_FUSED_MADD): New.
8638         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
8639         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
8640         the multiply-add instructions.
8641
8642 2001-08-19  Richard Henderson  <rth@redhat.com>
8643
8644         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
8645         is aligned to pointer size.
8646
8647 2001-08-19  Richard Henderson  <rth@redhat.com>
8648
8649         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
8650         display markers during final schedule.
8651
8652 2001-08-19  Richard Henderson  <rth@redhat.com>
8653
8654         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
8655
8656 2001-08-19  Richard Henderson  <rth@redhat.com>
8657
8658         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
8659         in the same string.
8660         (ASM_NAME_TO_STRING): Remove.
8661         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
8662         in the same string.  Remove support for expressions.
8663
8664 2001-08-19  Richard Henderson  <rth@redhat.com>
8665
8666         * config/i386/i386.md (tablejump): Make an expander; handle
8667         pic relative addressing here.
8668         (tablejump_1): Rename from tablejump_pic.
8669         (casesi): Remove.
8670
8671 2001-08-19  Richard Henderson  <rth@redhat.com>
8672
8673         * regclass.c (fix_register): Fix typo.
8674
8675 2001-08-18  Richard Henderson  <rth@redhat.com>
8676
8677         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
8678         (struct _Unwind_Context): Expand br_loc to hold it.
8679         (uw_frame_state_for): Handle leaf functions better.
8680         (uw_update_reg_address): Update for br_loc change.
8681
8682 2001-08-18  Richard Henderson  <rth@redhat.com>
8683
8684         * crtstuff.c: Move list heads before code that uses them.
8685         (__JCR_LIST__): Remove initial null.
8686         (frame_dummy, __frame_dummy): Do java registration here ...
8687         (__do_global_ctors_aux): ... not here.
8688
8689         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
8690         (__do_global_dtors_aux): Update to match.
8691         (__JCR_LIST__, __do_jv_register_classes): New.
8692         (.init): Call it.
8693         * config/ia64/crtend.asm (__JCR_END__): New.
8694         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
8695         instead of an indirect LTOFF22 reloc.
8696
8697 2001-08-18  Richard Henderson  <rth@redhat.com>
8698
8699         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
8700         * regclass.c (init_reg_sets_1): Fix typo.
8701         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
8702         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
8703         (ia64_compute_frame_size): Make ar.unat live when in use.
8704         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
8705         for ar.pfs; remove ar.unat handling.
8706         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
8707         call-saved.
8708         (PREDICATE_CODES): Add ar_pfs_reg_operand.
8709         * config/ia64/ia64-protos.h: Update decls.
8710         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
8711         (sibcall_pic): Likewise.
8712
8713 2001-08-18  Richard Henderson  <rth@redhat.com>
8714
8715         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
8716         pred_rel_mutex when searching for insn_group_barrier.
8717         * config/ia64/ia64.md (cycle_display): Combine the expander
8718         and insn patterns.
8719
8720         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
8721         bit before asm as needed.
8722
8723 2001-08-18  Richard Henderson  <rth@redhat.com>
8724
8725         * timevar.def (TV_MACH_DEP): New.
8726         * toplev.c (rest_of_compilation): Use it.
8727         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
8728
8729 2001-08-18  Zack Weinberg  <zackw@panix.com>
8730
8731         * unwind-dw2.c (execute_stack_op): Add default aborts to
8732         the inner switches to prevent warnings.
8733
8734 2001-08-18  Richard Henderson  <rth@redhat.com>
8735
8736         * timevar.h (struct timevar_time_def): Change element type to float.
8737         (ticks_to_msec, clocks_to_msec): Likewise.
8738         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
8739         (get_time): Likewise.
8740         (timevar_print): Adjust zero check and printing to match.
8741
8742 2001-08-18  Zack Weinberg  <zackw@panix.com>
8743
8744         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
8745         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
8746         Eliminate overfull or underfull hboxes.
8747
8748 2001-08-18  Zack Weinberg  <zackw@panix.com>
8749
8750         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
8751
8752 2001-08-18  Zack Weinberg  <zackw@panix.com>
8753
8754         * haifa-sched.c: Convert to target hooks.  Macros replaced
8755         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
8756         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
8757         MD_SCHED_FINISH, and HAVE_cycle_display.
8758         * target-def.h (TARGET_SCHED_ADJUST_COST,
8759         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
8760         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
8761         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
8762         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
8763         New hook #defines to be overridden.
8764         (TARGET_SCHED): Bring them all together.
8765         (TARGET_INITIALIZER): Update.
8766         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
8767         instead of 'struct rtx_def *' throughout.
8768         (struct sched): New set of hooks for the scheduler.
8769         * Makefile.in (haifa-sched.o): Depend on target.h.
8770         * doc/tm.texi: Document the new scheduler hooks, together in
8771         their own section, instead of scattered around.
8772         Fix a bunch of underfull/overfull hboxes.
8773
8774         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
8775         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
8776         sparc.h: Don't define any of the old scheduler macros.
8777
8778         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
8779         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
8780         sparc.c: Create hook functions from code extracted from
8781         corresponding target header, or make existing hooks static, as
8782         appropriate.  Set the appropriate entries in targetm.
8783
8784         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
8785         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
8786         rs6000-protos.h, s390-protos.h, sparc-protos.h:
8787         Remove prototypes for functions which are now static.
8788
8789         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
8790         related gunk; the Haifa scheduler is now the only choice.
8791
8792 2001-08-18  Zack Weinberg  <zackw@panix.com>
8793
8794         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
8795         * genopinit.c: Put floating point divide insns in sdiv_optab.
8796         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
8797         * config/gofast.h, config/c4x/c4x.h,
8798         config/ia64/hpux_longdouble.h, config/mips/mips.h,
8799         config/pa/long_double.h, config/rs6000/sysv4.h,
8800         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
8801         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
8802         (init_optabs): Use init_optabv for overflow-trapping optabs.
8803         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
8804         cmp_optab RTX codes so have_insn_for can find them.
8805
8806         * optabs.c (expand_simple_binop, expand_simple_unop,
8807         have_insn_for, gen_sub3_insn): New interfaces.
8808         * expr.h: Prototype new functions.
8809         (enum optab_methods): Move here from optabs.h.
8810
8811         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
8812         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
8813         Use new functions instead of working directly with optabs.
8814         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
8815         unroll.c: Don't include optabs.h.
8816         * caller-save.c, combine.c, function.c, stmt.c: Just include
8817         insn-codes.h, not optabs.h.
8818         * Makefile.in: Update dependencies.
8819
8820         * combine.c (make_compound_operation, simplify_comparison):
8821         Fix typos testing for this or that instruction.
8822
8823 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
8824
8825         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
8826         generating libgcc.a.
8827
8828 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8829
8830         * except.c (TYPE_HASH): Delete.
8831
8832         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
8833         HOST_WIDE_INT.
8834
8835         * tree.c (TYPE_HASH): Delete.
8836
8837         * tree.h (TYPE_HASH): Define.
8838
8839 2001-08-18  Graham Stott  <grahams@redhat.com>
8840
8841         * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from
8842         define_split.
8843         (adddi3_internal_2+2): Likewise.
8844         (eh_set_lr_di+1): Likewise.
8845
8846 2001-08-17  Richard Henderson  <rth@redhat.com>
8847
8848         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
8849         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
8850         * dwarf2asm.c: ... here.
8851         * dwarfout.c: Remove them.
8852
8853         * varasm.c (assemble_integer): Add align parameter.
8854         (assemble_real, output_constant, output_constructor): Likewise.
8855         * output.h: Update decls.
8856         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
8857         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
8858         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
8859         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
8860         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
8861         Update all callers.
8862
8863         * final.c (end_final): Abort profile block generation if we
8864         havn't layed it out properly.
8865         * output.h (assemble_eh_integer): Remove stale decl.
8866         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
8867         (min_align): New.
8868         (assemble_integer): Handle unaligned data.
8869         (assemble_real): Abort on unaligned data.
8870         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
8871         anything useful.
8872         (default_dtor_section_asm_out_destructor): Use assemble_align.
8873         (default_named_section_asm_out_constructor): Likewise.
8874         (default_ctor_section_asm_out_constructor): Likewise.
8875         * config/darwin.c (machopic_asm_out_constructor): Likewise.
8876         (machopic_asm_out_destructor): Likewise.
8877         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
8878         (nextstep_asm_out_destructor): Likewise.
8879         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
8880         (vms_asm_out_destructor): Likewise.
8881
8882 2001-08-17  Richard Henderson  <rth@redhat.com>
8883
8884         * config/mips/iris6.h (TARGET_IRIX6): New.
8885         (current_section_name, current_section_flags): New.
8886         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
8887         (MAX_OFILE_ALIGNMENT): New.
8888         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
8889         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
8890         (copy_file_data): Split out from
8891         (mips_asm_file_end): ... here.
8892         (mips_asm_file_start): Remove extra .section directive.  Use
8893         tmpfile instead of mips_make_temp_file.
8894         (mips_unique_section): Use const char * as needed for warnings.
8895         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
8896         re-add align parameter.
8897         (iris6_asm_named_section): New.
8898         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
8899         (iris6_asm_output_align, iris6_section_align_1): New.
8900         (iris6_asm_file_start, iris6_asm_file_end): New.
8901         * config/mips/mips-protos.h: Update decls.
8902
8903 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
8904
8905         * doc/install.texi (Install GCC): Add links to build status pages.
8906         (Specific): Ditto.
8907         (Final install): Ditto; request updates for specific info
8908
8909 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8910
8911         * cpperror.c (print_location):  Don't take a file name; use the
8912         line map instead.
8913         (_cpp_begin_message): Similarly.
8914         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
8915         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
8916         (cpp_pedwarn_with_file_and_line): Remove.
8917         * cppfiles.c (stack_include_file): Update; set filename to stdin
8918         here when appropriate.
8919         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
8920         (_cpp_begin_message): Don't take a file name.
8921         * cppinit.c: Add comment.
8922         * cpplex.c: Fix end-of-directive indicator.
8923         * cpplib.c: Don't include intl.h.
8924         (run_directive, do_diagnostic): Update.
8925         (do_line): Update to not use nominal_fname.
8926         (cpp_push_buffer): Don't take a filename.
8927         * cpplib.h (struct ht): Remove.
8928         (cpp_push_buffer): Don't take a filename.
8929         (cpp_pedwarn_with_file_and_line): Remove.
8930         * cppmacro.c (struct cpp_macro): Remove file.
8931         (builtin_macro): Update.
8932         (_cpp_create_definition): Update.
8933         * cppmain.c: Correct comment.
8934         * fix-header.c (read_scan_file): Update.
8935
8936 2001-08-17  Kazu Hirata  <kazu@hxi.com>
8937
8938         * sbitmap.c: Fix comment formatting.
8939         * sched-deps.c: Likewise.
8940         * sibcall.c: Likewise.
8941         * simplify-rtx.c: Likewise.
8942         * ssa.c: Likewise.
8943         * ssa-ccp.c: Likewise.
8944         * stor-layout.c: Likewise.
8945         * timevar.c: Likewise.
8946         * toplev.c: Likewise.
8947         * unwind-dw2.c: Likewise.
8948         * unwind-dw2-fde.c: Likewise.
8949         * varasm.c: Likewise.
8950
8951 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8952
8953         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
8954         or larger than an integer in memory.
8955
8956 2001-08-17  Zack Weinberg  <zackw@panix.com>
8957
8958         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
8959         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
8960         * rtl.h: Don't forward-declare union tree_node here.  Don't
8961         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
8962         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
8963         and tree respectively.
8964         * tree.h: Don't forward-declare struct rtx_def here.  Don't
8965         typedef tree here.  Change all uses of struct rtx_def *,
8966         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
8967         and tree respectively.
8968
8969 2001-08-17  Richard Henderson  <rth@redhat.com>
8970
8971         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
8972         config/mips/openbsd.h: Fix typos last change.
8973
8974 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8975
8976         * doc/invoke.texi (Optimize Options): The default for
8977         -finline-limit is 600.
8978
8979 2001-08-17  Richard Henderson  <rth@redhat.com>
8980
8981         * varasm.c (text_section): Allow TEXT_SECTION to override the
8982         printing of TEXT_SECTION_ASM_OP.
8983         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
8984         (DATA_SECTION, BSS_SECTION): Remove.
8985         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
8986         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
8987         Rename from s/_NAME//.
8988         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
8989         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
8990         (TEXT_SECTION): ... here.  New.
8991         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
8992         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
8993         * config/mips/openbsd.h: Likewise.
8994         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
8995         (mips_asm_file_end): Likewise test.
8996         (mips_output_function_epilogue): Likewise.  Switch back to data
8997         section after emitting the function.
8998
8999         * doc/tm.texi (Sections): Document TEXT_SECTION.
9000
9001 2001-08-17  Richard Henderson  <rth@redhat.com>
9002
9003         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
9004         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
9005
9006 2001-08-17  Richard Henderson  <rth@redhat.com>
9007
9008         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
9009         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
9010         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
9011         Add aligned attribute.
9012
9013 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
9014
9015         * config/sh/sh.md: Add modes to unspecs in first insn to match
9016         those in the second.
9017
9018         * Makefile.in: Fix collect2 copy for Cygwin.
9019
9020 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
9021
9022         Install the proper patch.
9023         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
9024         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
9025         (expand_function_start): Likewise.
9026         * stmt.c (expand_decl): Likewise.
9027         * varasm.c (make_decl_rtx): Likewise.
9028
9029 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
9030
9031         * final.c: Undo my previous accidental checkin.
9032         * output.h: Likewise.
9033         * tm.texi: Likewise.
9034
9035 2001-08-16  Richard Henderson  <rth@redhat.com>
9036
9037         * varasm.c (named_section_flags): Remove align parameter.
9038         * varasm.c, dwarf2out.c: Update all callers.
9039         * output.h: Update prototypes.
9040
9041         * target.h (target.asm_out.named_section): Remove align parameter.
9042         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
9043         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
9044         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
9045         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
9046         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
9047
9048         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
9049         (get_named_section_flags, set_named_section_flags): New.
9050         (named_section_flags): Use them.
9051         (named_section): Do decl vs section flags check here...
9052         (default_section_type_flags): ... not here.
9053         (init_varasm_once): Create in_named_htab.
9054         (resolve_unique_section): Mark reloc unused.
9055
9056 2001-08-16  Richard Henderson  <rth@redhat.com>
9057
9058         * varasm.c (force_const_mem): Keep pool alignment in bits.
9059         (output_constant_pool): Use assemble_align.
9060
9061 2001-08-16  Zack Weinberg  <zackw@panix.com>
9062
9063         * doc/tm.texi: Remove extra @table command.
9064
9065 2001-08-16  Zack Weinberg  <zackw@panix.com>
9066
9067         * final.c (shorten_branches): Clear the end of the label_align
9068         array only if we made it larger.  Break up messy expressions
9069         for clarity.
9070
9071         * diagnostic.c (internal_error): Check for error recursion
9072         before doing ICE suppression.
9073
9074         * timevar.c: Timing variables now count in milliseconds.
9075         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
9076         (get_time): Not here.
9077         (timevar_print): Don't print any timer whose user, cpu, and
9078         wall times are all zero as displayed.
9079         * timevar.h: Update comment aboout units.  Make timevar
9080         counters unsigned.
9081
9082 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
9083
9084         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
9085         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
9086         (expand_function_start): Likewise.
9087         * stmt.c (expand_decl): Likewise.
9088         * varasm.c (make_decl_rtx): Likewise.
9089
9090 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
9091
9092         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
9093         (finalize_record_size): Don't set TYPE_USER_ALIGN.
9094
9095 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
9096
9097         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
9098         variables.
9099
9100 2001-08-16  Andreas Jaeger  <aj@suse.de>
9101
9102         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
9103         prototype.
9104
9105 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
9106
9107         * rtl.h (only_sets_cc0_p): New prototype.
9108         * jump.c (sets_cc0_p): Handle INSN.
9109         (only_sets_cc0_p): New function.
9110         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
9111         (tidy_fallthru_edge): Likewise.
9112         * integrate.c (copy_insn_list): Likewise.
9113         * unroll.c (unroll_loop): Likewise.
9114         (copy_loop_body): Likewise.
9115
9116 2001-08-15  Jason Eckhardt  <jle@redhat.com>
9117
9118         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
9119
9120 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
9121
9122         * predict.c (struct block_info_def): Remove nvisited.
9123         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
9124         (estimate_bb_frequencies): Call mark_dfs_back_edges.
9125
9126         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
9127         (ix86_adjust_cost): Teach scheduler that latency to load operand can
9128         be masked.
9129
9130 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
9131
9132         * predict.def: Update hitrates.
9133
9134 2001-08-15  Richard Henderson  <rth@redhat.com>
9135
9136         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
9137
9138 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
9139
9140         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
9141         note from its associated jump.
9142
9143 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
9144
9145         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
9146         also on 64-bit s390x targets.
9147
9148 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
9149
9150         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
9151         function.
9152         (arm_expand_prologue): Handled nested functions which take a
9153         variable argument list.
9154         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
9155         macro with an invocation of
9156         arm_compute_initial_elimination_offset.
9157         * config/arm/arm-protos.h: Prototype
9158         arm_compute_initial_elimination_offset.
9159
9160 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9161
9162         * doc/install.texi (Specific, avr): Fix markup.
9163         (Specific, c4x): Ditto.
9164
9165 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
9166
9167         * predict.c (dump_prediction): Change `bool' parameter to `int'.
9168
9169 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
9170
9171         * Makefile.in (OBJS): Add rtl-error.o
9172         (rtl-error.o): New rule.
9173         (diagnostic.o): Adjust dependency.
9174         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
9175         error_for_asm, _fatal_insn, _fatal_insn_not_found,
9176         warning_for_asm): Move to...
9177         rtl-error.c: ...here.  New file.
9178
9179 2001-08-14  Richard Henderson  <rth@redhat.com>
9180
9181         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
9182         if USING_SJLJ_EXCEPTIONS.
9183
9184 2001-08-14  Steve Ellcey <sje@cup.hp.com>
9185
9186         * tlink.c (scan_linker_output): Check string for unsatisfied in
9187         addition to undefined and unresolved.
9188
9189 2001-08-14  Graham Stott  <grahams@redhat.com>
9190
9191         * libgcc2.c (*): Replace EH_FRAME_SECTION with
9192         EH_FRAME_SECTION_NAME.
9193
9194 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
9195
9196         * genattrtab.c (simplify_test_exp_in_temp): New function.
9197         (simplify_test_exp): Avoid explicit use of temporary obstack.
9198         (simplify_cond, insert_right_side, evaluate_eq_attr,
9199         simplify_and_tree, simplify_or_tree, eliminate_known_true):
9200         Use simplify_test_exp_in_temp.
9201         (optimize_attrs): Iterate until expression stabilizes.
9202
9203 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
9204
9205         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
9206         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
9207
9208 2001-08-13  Richard Henderson  <rth@redhat.com>
9209
9210         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
9211         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
9212         * config/arm/conix-elf.h: Likewise.
9213
9214 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
9215
9216         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
9217         in gcc.c.
9218         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
9219
9220         * gcse.c (hash_scan_set): Expressions that are set as part of
9221         jump instructions are not available.
9222
9223 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
9224
9225         * config/s390/s390.c (print_operand, s390_function_prologue,
9226         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
9227
9228 2001-08-13  Richard Henderson  <rth@redhat.com>
9229
9230         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
9231         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
9232         * doc/tm.texi (Exception Region Output): Document it.
9233
9234 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
9235
9236         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
9237         DWARF2 instead of stabs by default.
9238
9239 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
9240
9241         * config/rs6000/rs6000.c: Include optabs.h.
9242
9243 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
9244
9245         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
9246         save/restore routines.
9247         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
9248
9249 2001-08-13  Andreas Jaeger  <aj@suse.de>
9250
9251         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
9252         the english is correct.
9253
9254 2001-08-13  Zack Weinberg  <zackw@panix.com>
9255
9256         * expr.h: Split out optab- and libfunc-related code to...
9257         * optabs.h, libfuncs.h: ... these new headers.
9258
9259         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
9260         (OPTABS_H): New.
9261         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
9262         dependencies.
9263         * mkconfig.sh: Don't include insn-codes.h from config.h.
9264
9265         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
9266         enum insn_code is available.  Move reload_in_optab and
9267         reload_out_optab array declarations to optabs.h.
9268         * regmove.c (gen_add3_insn): Move to optabs.c, export from
9269         there, prototype in expr.h.
9270         * gencodes.c: Cleanup: zap global variables, don't use
9271         printf where puts will do, don't bother defining MAX_INSN_CODE
9272         which nothing uses, let CODE_FOR_nothing get its value implicitly.
9273
9274         * genemit.c, genopinit.c: Include optabs.h in generated file.
9275         * genoutput.c: Include insn-codes.h in generated file.
9276         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
9277         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
9278         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
9279         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
9280         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
9281         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
9282         Include optabs.h.
9283         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
9284         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
9285         config/m88k/m88k.c, config/sparc/sparc.c:
9286         Include libfuncs.h.
9287         * reload.c: Include expr.h and optabs.h before reload.h.
9288         * config/alpha/alpha.c: Include tree.h before reload.h.
9289         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
9290         and reload.h in that order.
9291         * config/sparc/sparc.c: Include debug.h.
9292         * recog.c: Include insn-codes.h.
9293
9294 2001-08-13  Andreas Jaeger  <aj@suse.de>
9295
9296         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
9297         s390*linux.
9298
9299 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
9300
9301         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
9302         * gcc.c (init_spec): Fix typo in comment.
9303         * varasm.c (data_section): Fix typo in comment.
9304
9305 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
9306
9307         * predict.c (dump_prediction): New argument "USED".
9308         (combine_predictions_for_insn): Determine the used heuristics,
9309         output the case no heuristic applied.
9310         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
9311
9312 2001-08-13  Andreas Jaeger  <aj@suse.de>
9313
9314         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
9315         register %rip.
9316
9317 2001-08-13  Kazu Hirata  <kazu@hxi.com>
9318
9319         * jump.c: Fix formatting.
9320
9321 2001-08-13  Kazu Hirata  <kazu@hxi.com>
9322
9323         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
9324         length.
9325
9326 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
9327
9328         * loop.c (check_dbra_loop): Use condjump_label to compute
9329         jump_label.
9330
9331         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
9332         to better document the files they're in.
9333
9334 2001-08-12  Zack Weinberg  <zackw@panix.com>
9335
9336         * recog.h (struct insn_operand_data): Shrink 'mode' field
9337         to 16 bits.
9338
9339 2001-08-12  Kazu Hirata  <kazu@hxi.com>
9340
9341         * gcc.c: Fix comment formatting.
9342         * gccspec.c: Likewise.
9343         * gcov.c: Likewise.
9344         * gcse.c: Likewise.
9345         * genemit.c: Likewise.
9346         * gengenrtl.c: Likewise.
9347         * genrecog.c: Likewise.
9348         * gensupport.c: Likewise.
9349         * ggc-page.c: Likewise.
9350         * global.c: Likewise.
9351         * graph.c: Likewise.
9352         * ifcvt.c: Likewise.
9353         * integrate.c: Likewise.
9354         * lcm.c: Likewise.
9355         * libgcc2.c: Likewise.
9356         * loop.c: Likewise.
9357         * mbchar.c: Likewise.
9358         * optabs.c: Likewise.
9359         * predict.c: Likewise.
9360         * prefix.c: Likewise.
9361         * profile.c: Likewise.
9362         * protoize.c: Likewise.
9363         * real.c: Likewise.
9364         * recog.c: Likewise.
9365         * regclass.c: Likewise.
9366         * regmove.c: Likewise.
9367         * reg-stack.c: Likewise.
9368         * reload1.c: Likewise.
9369         * resource.c: Likewise.
9370         * rtlanal.c: Likewise.
9371         * rtl.c: Likewise.
9372
9373 2001-08-12  Kazu Hirata  <kazu@hxi.com>
9374
9375         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
9376         a tree representing a constant is passed to the macro.
9377
9378 2001-08-12  Richard Henderson  <rth@redhat.com>
9379
9380         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
9381         (rs6000_elf_asm_out_destructor): New.
9382         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
9383         (DTORS_SECTION_ASM_OP): Remove.
9384         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9385         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
9386
9387 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
9388
9389         Revert:
9390         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9391         * gcc.c (set_collect_gcc_options): New function, split out from
9392         main.
9393         Ignore elided switches.
9394         (do_spec_1): Invoke before executing command.
9395         (set_input): Export.
9396         Move declaration ...
9397         * gcc.h (set_input): ... here.
9398         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
9399         file.
9400
9401 2001-08-12  Richard Henderson  <rth@redhat.com>
9402
9403         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
9404         thinko wrt TARGET_RELOCATABLE.
9405
9406 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
9407
9408         * fix-header.c (cb_file_change): Update prototype.
9409
9410 2001-08-11  Zack Weinberg  <zackw@panix.com>
9411
9412         * toplev.c (set_float_handler): Make static.
9413         * toplev.h: Don't prototype set_float_handler.
9414
9415         * simplify-rtx.c: Don't include setjmp.h.
9416         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
9417         New functions.
9418         (simplify_unary_operation, simplify_binary_operation): Use them,
9419         via do_float_handler.
9420
9421         * fold-const.c: Don't include setjmp.h.
9422         (exact_real_inverse_1): New function.
9423         (exact_real_inverse): Use it, via do_float_handler.
9424
9425         * varasm.c: Don't include setjmp.h.
9426         (assemble_real_1): New function.
9427         (assemble_real): Use it, via do_float_handler.
9428         Call internal_error if we get a trap here.
9429
9430         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
9431         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
9432
9433 2001-08-11  Zack Weinberg  <zackw@panix.com>
9434
9435         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
9436         STACK_BOUNDARY if not already defined.
9437
9438         * calls.c, function.c, reload1.c, explow.c: Don't default
9439         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
9440         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
9441
9442         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
9443         to run-time test.
9444
9445         * doc/tm.texi: Document that STACK_BOUNDARY is required;
9446         clarify difference between it and PREFERRED_STACK_BOUNDARY.
9447
9448 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9449
9450         * cppmacro.c (enter_macro_context): Push macro expansions even
9451         if empty.
9452
9453 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9454
9455         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
9456         (rs6000_elf_section_type_flags): Actually return a value.
9457
9458 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
9459
9460         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
9461         Clean up code: add missing comments and prototypes, fix warnings,
9462         remove obsolete code, fix spacing to conform to coding style.
9463
9464 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
9465
9466         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
9467         and TARGET_ASM_CLOSE_PAREN.
9468         (regclass_map): CC register belongs to class NO_REGS.
9469         (legitimize_pic_address): Don't generate unnecessary moves
9470         (to avoid confusing loop optimization).
9471         (check_and_change_labels): Replace jump_long by indirect_jump.
9472         (s390_final_chunkify): Don't start a new literal pool on section
9473         switch in 64-bit code.
9474         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
9475
9476         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
9477         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
9478         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
9479         modes correctly.
9480         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
9481         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
9482         (CONST_COSTS): Fixed incorrect costs.
9483
9484         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
9485         Use emit_jump instead of emit_jump_insn (gen_jump).
9486         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
9487         (to avoid confusing flow analysis).
9488         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
9489         (casesi, casesi_jump): New.
9490         (jump_long): Removed.  Functionality merged into indirect_jump.
9491         (indirect_jump): Accept address_operand, not just register_operand.
9492         (cjump_long, icjump_long): Use same logic as indirect_jump.
9493         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
9494         Fixed broken setjmp/longjmp handling.
9495         (do_builtin_setjmp_setup): Removed.
9496
9497         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
9498         broken GNU as versions that don't accept .quad with large
9499         negative values.  Use hexadecimal output instead.
9500         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
9501         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
9502         FUNCTION_EPILOGUE): Removed.  Now in targetm.
9503
9504         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
9505
9506         * config/s390/fixdfdi.h: Add missing copyright statement.
9507         Fix type conflicts on 64-bit.  Add missing SFmode routines.
9508
9509         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
9510         email address.
9511
9512 2001-08-11  Richard Henderson  <rth@redhat.com>
9513
9514         * rtl.h (REG_EH_RETHROW): Remove.
9515         * rtl.c (reg_note_name): Update.
9516         * combine.c (distribute_notes): Don't check for it.
9517
9518 2001-08-11  Richard Henderson  <rth@redhat.com>
9519
9520         * combine.c (distribute_notes): Place REG_SETJMP.
9521
9522 2001-08-11  Richard Henderson  <rth@redhat.com>
9523
9524         * doc/extend.texi (Arrays and pointers implementation): Discourage
9525         relying on sign-extension of pointers.
9526
9527 2001-08-11  H.J. Lu <hjl@gnu.org>
9528
9529         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
9530         in_dtors.
9531         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
9532         RDATA_SECTION_ASM_OP.
9533
9534 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9535
9536         * doc/install.texi (Specific, c4x): Fix cross-reference to the
9537         main manual to work both for info and HTML versions.
9538
9539 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9540             Matt Kraai <kraai@alumni.carnegiemellon.edu>
9541
9542         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
9543         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
9544         (struct cpp_pool): New member first.
9545         * cppinit.c (append_include_chain): Plug memory leaks.
9546         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
9547         Allocate pragma structures from the (aligned) macro pool to
9548         avoid leaking memory.
9549         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
9550         so we don't leak memory.
9551         * hashtable.c (ht_destroy): New.
9552         * hashtable.h (ht_destroy): New.
9553
9554 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9555             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9556
9557         * c-lex.c (map): Make const.
9558         (cb_file_change): Update for callback passing a line map.
9559         Don't assume we have a previous map.  Remove sanity check
9560         about popping too many files.
9561         * cpperror.c (print_location): Make map const.
9562         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
9563         (cpp_make_system_header): Similarly.
9564         (search_from): Similarly.
9565         (_cpp_execute_include): Don't remember where we came from.
9566         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
9567         (struct cpp_reader): Make map const.
9568         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
9569         * cpplib.c (do_line): Update; line maps now hold sysp.
9570         (cpp_push_buffer): Similarly.
9571         (_cpp_do_file_change): Similarly; callback with map instead.
9572         (cpp_get_line_maps): Constify return value.
9573         (_cpp_pop_buffer): Update.
9574         * cpplib.h (struct cpp_file_change): Remove.
9575         (struct cpp_callbacks): Update.
9576         (cpp_get_line_maps): Constify return value.
9577         * cppmacro.c (_cpp_create_definition): Update.
9578         * cppmain.c (struct printer): Constify map.
9579         (maybe_print_line): Similarly.
9580         (print_line): Similarly.  Deduce flags 1 and 2 here.
9581         (cb_file_change): Update.
9582         * line-map.c (free_line_maps): Warn regardless.
9583         (add_line_map): Return pointer to const.  When passed NULL to_file
9584         with LC_LEAVE, use the obvious values for the return point so the
9585         caller doesn't have to figure them out.
9586         (lookup_line): Return pointer to const.
9587         (print_containing_files): Take pointer to const.
9588         * line-map.h (struct line_map): New members reason, sysp.
9589         (add_line_map): Return pointer to const.
9590         (lookup_line): Similarly.
9591         (print_containing_files): Take pointer to const.
9592
9593 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
9594             Richard Henderson  <rth@redhat.com>
9595
9596         * regmove.c (regmove_optimize): Avoid setting a register twice in
9597         a parallel set.
9598
9599 2001-08-10  Richard Henderson  <rth@redhat.com>
9600
9601         * doc/extend.texi (Arrays and pointers implementation): Document
9602         behavior of pointer/integer conversion.
9603
9604 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
9605
9606         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
9607
9608 2001-08-10  Richard Henderson  <rth@redhat.com>
9609
9610         * doc/extend.texi (C Implementation): New chapter.
9611         * doc/gcc.texi (Top): Link it in.
9612
9613 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
9614
9615         * doc/install.texi (Specific): Fix CVS merge botch.
9616
9617 2001-08-10  Richard Henderson  <rth@redhat.com>
9618
9619         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
9620         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
9621
9622 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
9623
9624         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
9625         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
9626         this macro is now required.
9627
9628         * cselib.c (cselib_process_insn), flow.c (propagate_block),
9629         loop.c (find_and_verify_loops), reload.c (reload): Check
9630         for rtx code of CALL_INSN, not CALL, when deciding if we
9631         need to check for REG_SETJMP note.
9632
9633         * gcse.c (compute_hash_table, compute_store_table): Update
9634         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
9635         logic.
9636
9637         * config/avr/avr.c: Fix typo.
9638         * config/convex/convex.c (expand_movstr): Use adjust_address.
9639         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
9640         variable.
9641         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
9642         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
9643         Fix typo.
9644         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
9645         Do define STACK_BOUNDARY.
9646         * config/i370/i370.c: Include expr.h.
9647         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
9648         config/pa/som.h, config/v850/v850.h: Take in_ctors and
9649         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
9650         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
9651         * config/m88k/m88k.c: Include c-tree.h after expr.h.
9652         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
9653         * config/romp/romp.c: Include expr.h after tree.h.
9654         Include toplev.h.
9655         (output_fpop): Use xmalloc, not oballoc.
9656         * config/we32k/we32k.c: Include expr.h.
9657
9658 2001-08-10  Kazu Hirata  <kazu@hxi.com>
9659
9660         * config/h8300/h8300.h: Fix formatting.
9661
9662 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
9663
9664         * c-common.h (RETURN_NULLIFIED_P): Lose.
9665         * c-semantics.c (genrtl_return_stmt): Don't check it.
9666
9667 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
9668
9669         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
9670         (mips_annotate_frame_insn): New function.
9671         (mips_emit_frame_related_store): New function.
9672         (save_restore_insns): Don't mark instructions that set up the base
9673         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
9674         the store instructions instead.
9675         (mips_expand_prologue): If the stack size is moved into a temporary
9676         register, do not mark that move as frame-related.  Add a
9677         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
9678
9679 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
9680
9681         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
9682         stack slot as unchanging if current_function_calls_eh_return.
9683
9684 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
9685
9686         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
9687         access the second half of the TFmode scratch operand.
9688
9689 2001-08-10  Anthony Green  <green@redhat.com>
9690
9691         * java/class.c (emit_register_classes): Conditionalize code on
9692         JCR_SECTION_NAME.
9693
9694 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9695
9696         * doc/install.texi (Specific, avr): Fix cross-reference to the
9697         main manual to work both for info and HTML versions.
9698
9699 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9700
9701         * stmt.c (expand_null_return_1): Remove code to generate simple returns
9702         and "use_goto" argument.
9703         (expand_null_return, expand_value_return): Update all callers.
9704         * function.c (expand_function_end): Remove code to generate simple
9705         return.
9706         * config/vax/vax.md (epilogue): New expander for function return.
9707         * doc/md.texi (epilogue): Remove "if defined".
9708
9709 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
9710
9711         * Makefile.in: Partially revert my previous change:
9712         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
9713         of the hashtab.o and safe-ctype.o rules.
9714
9715 2001-08-09  Richard Henderson  <rth@redhat.com>
9716
9717         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
9718         (USE_COLLECT2): Remove duplicate definition.
9719         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
9720         (use_collect2): Remove dead code.
9721         * configure.in (use_collect2): Remove will_use_collect2 and
9722         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
9723         * configure: Rebuild.
9724
9725         * target.h (targetm.asm_out.constructor): New.
9726         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
9727         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
9728         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
9729         * varasm.c (in_ctors, in_dtors): New.
9730         (assemble_constructor, assemble_destructor): Remove.
9731         (default_stabs_asm_out_destructor): New.
9732         (default_named_section_asm_out_destructor): New.
9733         (dtors_section, default_dtor_section_asm_out_destructor): New.
9734         (default_stabs_asm_out_constructor): New.
9735         (default_named_section_asm_out_constructor): New.
9736         (ctors_section, default_ctor_section_asm_out_constructor): New.
9737         * output.h: Update declarations.
9738         * c-decl.c (c_expand_body): Use target hooks instead of
9739         assemble_constructor and assemble_destructor.
9740         * profile.c (output_func_start_profiler): Likewise.
9741         * objc/objc-act.c (finish_objc): Likewise.
9742         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
9743         for the constructor.
9744         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
9745
9746         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
9747         (DTORS_SECTION_ASM_OP): Likewise.
9748         (__CTOR_LIST__): Use attribute section when possible.
9749         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
9750
9751         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
9752         ASM_OUTPUT_CONSTRUCTOR.
9753
9754         * config/darwin.c (machopic_asm_out_constructor): New.
9755         (machopic_asm_out_destructor): New.
9756         * config/darwin-protos.h: Update declarations.
9757         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9758         (ASM_OUTPUT_DESTRUCTOR): Remove.
9759         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9760         * config/nextstep.c (nextstep_asm_out_constructor): New.
9761         (nextstep_asm_out_destructor): New.
9762         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9763         (ASM_OUTPUT_DESTRUCTOR): Remove.
9764         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9765         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
9766         ASM_OUTPUT_*STRUCTOR.
9767         * config/i386/aix386ng.h: Likewise.
9768
9769         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
9770         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
9771         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
9772         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
9773         * config/lynx.h: Likewise.
9774         * config/netware.h: Likewise.
9775         * config/psos.h: Likewise.
9776         * config/alpha/alpha-interix.h: Likewise.
9777         * config/alpha/elf.h: Likewise.
9778         * config/arc/arc.h: Likewise.
9779         * config/arm/aof.h: Likewise.
9780         * config/arm/coff.h: Likewise.
9781         * config/arm/elf.h: Likewise.
9782         * config/c4x/c4x.h: Likewise.
9783         * config/h8300/h8300.h: Likewise.
9784         * config/i386/cygwin.h: Likewise.
9785         * config/i386/djgpp.h: Likewise.
9786         * config/i386/i386-coff.h: Likewise.
9787         * config/i386/i386-interix.h: Likewise.
9788         * config/i386/sco5.h: Likewise.
9789         * config/i386/vsta.h: Likewise.
9790         * config/i386/win32.h: Likewise.
9791         * config/i960/i960-coff.h: Likewise.
9792         * config/ia64/sysv4.h: Likewise.
9793         * config/m68hc11/m68hc11.h: Likewise.
9794         * config/m68k/coff.h: Likewise.
9795         * config/m68k/mot3300.h: Likewise.
9796         * config/m88k/m88k.h: Likewise.
9797         * config/mcore/mcore-pe.h: Likewise.
9798         * config/mcore/mcore.h: Likewise.
9799         * config/mips/elf.h: Likewise.
9800         * config/mips/elf64.h: Likewise.
9801         * config/mips/iris6.h: Likewise.
9802         * config/pa/pa64-hpux.h: Likewise.
9803         * config/rs6000/sysv4.h: Likewise.
9804         * config/sh/sh.h: Likewise.
9805         * config/sparc/litecoff.h: Likewise.
9806
9807         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
9808         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
9809         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
9810         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9811         (ASM_OUTPUT_DESTRUCTOR): Remove.
9812         * config/a29k/a29k.c: Move include of tree.h.
9813         * config/a29k/udi.h: Delete file.
9814         * config/alpha/alpha.c (vms_asm_out_constructor): New.
9815         (vms_asm_out_destructor): New.
9816         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
9817         (EXTRA_SECTION_FUNCTIONS): Likewise.
9818         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
9819         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9820         * config/c4x/c4x.c: Move include of tree.h.
9821         * config/clipper/clipper.c (clix_asm_out_constructor): New.
9822         (clix_asm_out_destructor): New.
9823         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9824         (ASM_OUTPUT_DESTRUCTOR): Remove.
9825         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9826         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9827         (TARGET_ASM_CONSTRUCTOR): New.
9828         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
9829         (sco_asm_out_constructor): New.
9830         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
9831         * config/i386/svr3gas.h: Remove stack grows up code.
9832         Remove code duplicated from i386/sysv3.h.
9833         (TARGET_ASM_CONSTRUCTOR): New.
9834         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
9835         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
9836         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9837         (TARGET_ASM_CONSTRUCTOR): New.
9838         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
9839         (m68hc11_asm_out_destructor): New.
9840         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
9841         (TARGET_ASM_DESTRUCTOR): New.
9842         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
9843         * config/m68k/dpx2.h: Properly undef all the bits inherited from
9844         config/svr3.h pertaining to section manipulation.
9845         * config/m68k/dpx2g.h: Remove #if 0 code.
9846         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
9847         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
9848         (ASM_OUTPUT_CONSTRUCTOR): Remove.
9849         (TARGET_ASM_CONSTRUCTOR): New.
9850         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
9851         (m88k_svr3_asm_out_constructor): New.
9852         (m88k_svr3_asm_out_destructor): New.
9853         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9854         (ASM_OUTPUT_DESTRUCTOR): Remove.
9855         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9856         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
9857         * config/rs6000/aix.h: Likewise.
9858         * config/mips/rtems64.h: Don't undef removed constructor related bits.
9859         * config/mips/vxworks.h: Likewise.
9860         * config/rs6000/lynx.h: Likewise.
9861         * config/sh/elf.h: Likewise.
9862         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
9863         (DTORS_SECTION_ASM_OP): New.
9864         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9865         (ASM_OUTPUT_DESTRUCTOR): Remove.
9866         * config/sparc/sol2-sld-64.h: Likewise.
9867         * config/vax/vax.c (vms_asm_out_constructor): New.
9868         (vms_asm_out_destructor): New.
9869         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9870         (ASM_OUTPUT_DESTRUCTOR): Remove.
9871         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9872
9873         * doc/tm.texi (@node Initialization): Update.
9874
9875 2001-08-09  Richard Henderson  <rth@redhat.com>
9876
9877         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
9878         (__do_global_dtors_aux): Use gp-relative static data to avoid
9879         one dynamic relocation.
9880         (__do_frame_setup): Register Java classes.
9881         * config/alpha/crtend.asm (__JCR_END__): New.
9882
9883 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
9884
9885         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
9886         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
9887         (GEN, STAGESTUFF): Add new files.
9888         (insn-constants.h, s-constants, tm-preds.h, s-preds,
9889         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
9890         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
9891         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
9892         as well as insn-codes.h and insn-flags.h in config.h; and no
9893         extra headers in tconfig.h and hconfig.h.
9894
9895         * gencodes.c: Eliminate code to generate predicate declarations
9896         or #defines for md-file constants.
9897         * genconstants.c, genpreds.c: New files.
9898
9899         * i386.md: Re-order guard expressions such that TARGET_64BIT
9900         comes first, when this permits better optimization.  Add
9901         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
9902         why this is desirable.
9903
9904 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
9905
9906         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
9907         (find_fde_for_dso): Remove.
9908         (_Unwind_IteratePhdrCallback): New.
9909         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
9910         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
9911
9912 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9913
9914         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
9915         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
9916
9917 2001-08-09  Graham Stott  <grahams@redhat.com>
9918
9919         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
9920         (vis_no_unit): Use it.
9921         (visualize_no_unit): Add the insn only if room exists.
9922
9923 2001-08-09  Graham Stott  <grahams@redhat.com>
9924
9925         * predict.c (estimate_probability): Replace magic numbers with
9926         appropriate enumeration.
9927
9928 2001-08-09  Graham Stott  <grahams@redhat.com>
9929
9930         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
9931         parameter.
9932         (EXTRACT_FLAGS): Likewise.
9933
9934 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
9935
9936         * config/mips/mips.c    (mips_legitimate_address_p): Check for
9937         CONST_INT in last patch.
9938
9939 2001-08-08  Anthony Green  <green@redhat.com>
9940
9941         * java/class.c (emit_register_classes): Use assemble_jcr if
9942         possible.  Keep the original mechanism as a fallback.
9943         * defaults.h (JCR_SECTION_NAME): Define if we have named section
9944         and weak symbol support.
9945         * crtstuff.c (__JCR_LIST__): Define.
9946         (__JCR_END__): Define.
9947         (_Jv_RegiserClasses): Define weak symbol if possible.
9948         (__do_global_ctors_aux): Register classes for ELF targets with
9949         weak symbol support.
9950
9951 2001-08-08  Kazu Hirata  <kazu@hxi.com>
9952
9953         * dbxout.c: Fix comment formatting.
9954         * dependence.c: Likewise.
9955         * df.c: Likewise.
9956         * diagnostic.c: Likewise.
9957         * dominance.c: Likewise.
9958         * doprint.c: Likewise.
9959         * dwarf2out.c: Likewise.
9960         * dwarfout.c: Likewise.
9961         * emit-rtl.c: Likewise.
9962         * except.c: Likewise.
9963         * explow.c: Likewise.
9964         * expmed.c: Likewise.
9965         * expr.c: Likewise.
9966         * flow.c: Likewise.
9967         * fold-const.c: Likewise.
9968         * function.c: Likewise.
9969
9970 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9971
9972         * global.c (retry_global_alloc): Avoid shadowing allocno.
9973
9974 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
9975
9976         * except.c (remove_fixup_regions): Fix typo.
9977
9978 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
9979
9980         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
9981         unsigned HOST_WIDE_INT to avoid warning.
9982         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
9983         * flow.c (set_block_for_new_insns): Likewise.
9984
9985 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
9986
9987         * sibcall.c (return_value_pseudo): New static variable.
9988         (skip_copy_to_return_value): Handle return_value_pseudo.
9989         (call_ends_block_p): Ensure that return_value_pseudo is set.
9990         (optimize_sibling_and_tail_recursive_call): Discover the
9991         load of pseudo return value in alternate exit block.
9992
9993 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
9994
9995         * calls.c (ECF_ALWAYS_RETURN): New constant.
9996         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
9997         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
9998         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
9999         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
10000         * rtl.c (reg_note_name): New name.
10001         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
10002
10003 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
10004
10005         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
10006
10007 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
10008
10009         * alias.c (get_alias_set): Return a previously calculated
10010         alias set for a VAR_DECL.
10011         * function.c (gen_mem_addressof): Calculate the alias set before
10012         touching the RTL.
10013
10014 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
10015
10016         * predict.def: Set hitrates according our experimental run.
10017
10018 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
10019
10020         * i386.h (HARD_REGNO_RENAME_OK): New macro.
10021
10022 2001-08-08  H.J. Lu <hjl@gnu.org>
10023
10024         * config/mips/mips.c (mips_unique_section): New. Copied from
10025         config/mips/elf.h.
10026
10027         * config/mips/mips-protos.h (mips_unique_section): New
10028         prototype.
10029
10030         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
10031
10032         * config/mips/little.h: New. Generic little endian mips
10033         targets. Only mips*-*-linux* is converted to use it so far.
10034
10035         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
10036         (WCHAR_TYPE): Defined
10037         (WCHAR_TYPE_SIZE): Likewise.
10038         (INIT_SUBTARGET_OPTABS): Likewise.
10039         (BSS_SECTION_ASM_OP): Likewise.
10040         (SBSS_SECTION_ASM_OP): Likewise.
10041         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10042         (ASM_DECLARE_OBJECT_NAME): Likewise.
10043         (UNIQUE_SECTION): Likewise.
10044         (EXTRA_SECTIONS): Likewise.
10045         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
10046         (ASM_OUTPUT_DESTRUCTOR): Likewise.
10047         (ASM_OUTPUT_DEF): Likewise.
10048         (HANDLE_SYSV_PRAGMA): Removed.
10049         (NO_IMPLICIT_EXTERN_C): Likewise.
10050         (TARGET_MEM_FUNCTIONS): Likewise.
10051         (STARTFILE_SPEC): Likewise.
10052         (ENDFILE_SPEC): Likewise.
10053         (LIB_SPEC): Likewise.
10054         (INVOKE__main): Likewise.
10055         (CTOR_LIST_BEGIN): Likewise.
10056         (CTOR_LIST_END): Likewise.
10057         (DTOR_LIST_BEGIN): Likewise.
10058         (DTOR_LIST_END): Likewise.
10059         (SET_ASM_OP): Likewise.
10060         (ASM_OUTPUT_SOURCE_LINE): Likewise.
10061         (ASM_OUTPUT_DEF): Likewise.
10062         (ASM_OUTPUT_IDENT): Likewise.
10063
10064         * config/mips/mips.h (ASM_SPEC): Undefine before define.
10065         (CPLUSPLUS_CPP_SPEC): Likewise.
10066         (ASM_APP_ON) Redefine only if not defined.
10067         (ASM_APP_OFF): Likewise.
10068         (ASM_OUTPUT_SOURCE_LINE): Likewise.
10069         (ASM_OUTPUT_IDENT): Likewise.
10070
10071         * config.gcc: Update tm_file for Linux/mips.
10072
10073 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
10074
10075         * cselib.c (cselib_record_sets): If insn is predicated, turn
10076         sources into IF_THEN_ELSEs.
10077
10078         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
10079         Turn into define_insn_and_split.
10080
10081         * sched-deps.c: Include "cselib.h".
10082         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
10083         Use cselib to turn memory addresses into VALUEs.
10084         (sched_analyze): Call cselib_init/cselib_finish if necessary.
10085         * sched-int.h (struct sched_info): New member USE_CSELIB.
10086         * sched-ebb.c (ebb_sched_info): Initialize it.
10087         * sched-rgn.c (rgn_sched_info): Likewise.
10088         * Makefile.in (sched-deps.o): Update dependencies.
10089
10090         * cselib.h (cselib_subst_to_values): Declare.
10091         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
10092         that have no value and autoincs to be handled by generating a new
10093         dummy value.
10094
10095 2001-08-08  Graham Stott  <grahams@redhat.com>
10096
10097         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
10098         within fixed length SEQUENCE.
10099
10100 2001-08-08  Graham Stott  <grahams@redhat.com>
10101
10102         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
10103         (diagnostic_prefixing_rule): Likewise.
10104         (diagnostic_line_cutoff): Likewise.
10105         (diagnostic_kind_count): Likewise.
10106
10107 2001-08-08  Graham Stott  <grahams@redhat.com>
10108
10109         * alias.c (find_base_decl): Delete redundent assignment.
10110
10111 2001-08-08  Graham Stott  <grahams@redhat.com>
10112
10113         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
10114         (abs): Uppercase and paranthesize macro parameter.
10115         (MEM_DEPENDENCY): Add whitespace.
10116
10117 2001-08-08  Graham Stott  <grahams@redhat.com>
10118
10119         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
10120         failure check for CONST_INT
10121
10122 2001-08-08  Graham Stott  <grahams@redhat.com>
10123
10124         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
10125         (libcall_dead_p): Likewise.
10126
10127         (mark_used_regs): Constify fmt.
10128         (find_use_as_address): Likewise.
10129
10130 2001-08-08  Graham Stott  <grahams@redhat.com>
10131
10132         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
10133          parameter.
10134
10135 2001-08-08  Graham Stott  <grahams@redhat.com>
10136
10137         * combine.c (combine_simplify_rtx): Update comment and
10138         remove erroneous test.
10139
10140 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10141
10142         * cppinit.c (cpp_finish): Pop the final buffer without comment.
10143         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
10144         take care to avoid multiple no-newline at EOF warnings in that
10145         case.
10146
10147 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
10148
10149         * calls.c (expand_call): Do not emit INSN_SETJMP note.
10150         (emit_library_call_value_1): Likewise.
10151         (emit_call_1): Emit REG_SETJMP note.
10152         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
10153         of INSN_SETJMP
10154         * cselib.c (cselib_process_insn): Likewise.
10155         * flow.c (propagate_block): Likewise.
10156         * loop.c (find_and_verify_loops): Likewise.
10157         * reload.c (find_equiv_regs): Likewise.
10158         * reload1.c (reload): Likewise.
10159         * resource.c (mark_referenced_resources,
10160         mark_set_resources): Likewise.
10161         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
10162         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
10163         * haifa-sched.c (unlink_other_notes): Likewise.
10164         (reemit_notes): Likewise.
10165         * sched-ebb.c (sched_ebb): Likewise.
10166         * sched-rgc.c (sched_region): Likewise.
10167         * rtl.c (note_insn_name): Likewise.
10168         (reg_note_name): Add REG_SETJMP
10169         * rtl.h (reg_note): Add REG_SETJMP.
10170         (insn_note): Remove NOTE_INSN_SETJMP.
10171
10172         * profile.c (branch_prob): Add fake edges for setjmp.
10173
10174 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
10175
10176         * config.gcc: Quote target_cpu_default2 correctly for
10177         powerpc*-*-* targets.
10178
10179 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10180
10181         * cpplib.h, line-map.h: Update comments.
10182         * cppmain.c (printer_init): Move inline.
10183         (maybe_print_line, print_line): Take a map pointer.
10184         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
10185         (cb_file_change): Don't use prior value of print.map.
10186
10187 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
10188
10189         * doc/install.texi: Document fine-grained multilib configuration.
10190
10191 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
10192
10193         * rtlanal.c (find_first_parameter_load): Call note_stores
10194         only on the instructions.
10195
10196 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10197
10198         * alias.c (nonlocal_mentioned_p):
10199         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
10200         * calls.c (emit_call_1): Likewise.
10201         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
10202         * cselib.c (cselib_process_insn): Likewise.
10203         * df.c (df_insns_modify): Likewise.
10204         * flow.c (need_fake_edge_p): Likewise.
10205         (propagate_one_insn): Likewise.
10206         * haifa-sched.c (reemit_notes): Likewise.
10207         * integrate.c (copy_insn_list): Likewise.
10208         * jump.c (delete_prior_computation): Likewise.
10209         * local-alloc.c (validate_equiv_mem): Likewise.
10210         * loop.c (scan_loop): Likewise.
10211         * predict.c (estimate_probability): Likewise.
10212         * reload.c (reload): Likewise.
10213         * sched-deps (sched_analyze): Likewise.
10214         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
10215         * gcse.c (compute_hash_table): Likewise.
10216         (mark_call): Likewise.
10217         (store_killed_in_insn): Likewise.
10218
10219 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
10220
10221         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
10222
10223 2001-08-06  Richard Henderson  <rth@redhat.com>
10224
10225         * varasm.c (assemble_gc_entry): Remove.
10226         * output.h: Likewise.
10227
10228 2001-08-06  Richard Henderson  <rth@redhat.com>
10229
10230         * varasm.c (assemble_constructor): Take a symbol_ref and a
10231         priority instead of a bare string.  Move priority handling
10232         here from cp/decl2.c.
10233         * output.h: Update decls.
10234
10235         * c-decl.c (c_expand_body): Update calls to assemble_constructor
10236         and assemble_destructor.
10237         * profile.c (output_func_start_profiler): Likewise.
10238         * objc/objc-act.c (finish_objc): Likewise.
10239         (build_module_descriptor): Return the symbol not the symbol name.
10240
10241 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
10242
10243         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
10244         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
10245         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
10246         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
10247         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
10248         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
10249
10250 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
10251
10252         * cpperror.c (print_containing_files): Moved to line-map.c.
10253         (print_location): line-map.c handles re-listing or otherwise.
10254         * cpphash.h (struct lexer_state): Remove next_bol.
10255         (struct cpp_buffer): Remove include_stack_listed.
10256         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
10257         Remove faked buffer handling.
10258         (_cpp_do_file_change): Tweak.
10259         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
10260         * cppmain.c (struct printer): Remove filename.
10261         (print_line, cb_file_change): Update accordingly.
10262         * line-map.c: Include intl.h.
10263         (init_line_maps): Initialize last_listed.
10264         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
10265         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
10266         (print_containing_files): New.
10267         * line-map.h (struct line_maps): New member last_listed.
10268         (print_containing_files, INCLUDED_FROM): New.
10269         * Makefile.in: Update.
10270         * po/POTFILES.in: Add line-map.c.
10271
10272 2001-08-06  Richard Henderson  <rth@redhat.com>
10273
10274         * except.c (convert_from_eh_region_ranges_1): Never mark
10275         USE or CLOBBER insns as throwing.
10276
10277         * expr.c (store_constructor): Don't clobber memory targets.
10278
10279 2001-08-06  Andreas Jaeger  <aj@suse.de>
10280
10281         * profile.c (branch_prob): Remove unused variable insn.
10282
10283         * Makefile.in (local-alloc.o): Add dependency on except.h.
10284
10285         * local-alloc.c: Include except.h for can_throw_internal prototype.
10286
10287 2001-08-06  Richard Henderson  <rth@redhat.com>
10288
10289         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
10290         * function.c (expand_main_function): Implement it.
10291         * doc/tm.texi: Document it.
10292
10293 2001-08-06  Stan Shebs  <shebs@apple.com>
10294
10295         * doc/install.texi: Document powerpc-*-darwin* details.
10296
10297 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
10298
10299         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
10300         (ASM_CPU_SPEC): Move back to rs6000.h
10301         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
10302
10303         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
10304
10305         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
10306         readded.
10307
10308         * config/rs6000/linux64.h: Ditto.
10309
10310         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
10311         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
10312         nothing.
10313
10314         Remove accidently readded definitions of FUNCTION_PROLOGUE,
10315         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
10316
10317         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
10318         to rs6000.h
10319
10320 2001-08-05  Richard Henderson  <rth@redhat.com>
10321
10322         * local-alloc.c (update_equiv_regs): Do not move insns that
10323         can throw.
10324
10325 2001-08-05  Jan Hubicka  <jh@suse.cz>
10326
10327         * Makefile.in (reload1.o): Add dedendancy on except.h
10328         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
10329         prototypes.
10330         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
10331         indicating wehther edges has been cleaned up.
10332         * reload1.c: Inlucde except.h
10333         (fixup_abnormal_edges): Accept deleted insns.
10334         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
10335         after combine.
10336
10337 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
10338
10339         * cpplib.c (do_line): Correct line number after pop_buffer.
10340
10341 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10342
10343         PR preprocessor/3824
10344         * line-map.c: Update comments.
10345         * line-map.h: Update comments.
10346         * tradcif.y: Don't consider large numbers unsigned.
10347
10348 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10349
10350         PR preprocessor/3081
10351         * c-lex.c (map): New.
10352         (cb_file_change): Update map and use it.
10353         (cb_def_pragma, cb_define, cb_undef): Use map and line.
10354         (c_lex): Update to use map.
10355         * cpperror.c (print_location): Move to using logical line numbers.
10356         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
10357         (cpp_make_system_header): Similarly.
10358         (_cpp_execute_include): Stop line numbering hacks.  Store the
10359         line we will return to.
10360         * cpphash.h (CPP_BUF_LINE): Remove.
10361         (struct cpp_buffer): Remove lineno and pseudo_newlines.
10362         Add map and return_to_line.
10363         (_cpp_do_file_change): Update.
10364         * cppinit.c (cpp_start_read): Update line kludge.
10365         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
10366         (trigraph_ok): Use logical line numbers for diagnostics.
10367         (skip_block_comment): Likewise.
10368         (skip_whitespace): Likewise.
10369         (skip_line_comment): Use pfile->line instead.
10370         (_cpp_lex_token): Update to use logical line numbering exclusively.
10371         Handle BOL locally.  Accept new lines in directives, but keep
10372         pfile->line decremented.  Diagnostics use logical lines.  Update
10373         directive handling.
10374         * cpplib.c (SEEN_EOL): New.
10375         (skip_rest_of_line, check_eol): Use it.
10376         (end_directive): Increase line number when accepting the newline
10377         at the end of a directive.
10378         (run_directive): Simplify.
10379         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
10380         (_cpp_do_file_change): Update to take buffer line number as an
10381         argument, and store the current map in the cpp_reader.  Remove
10382         line number kludges.
10383         (_cpp_do__Pragma): Restore output position after a _Pragma.
10384         (cpp_push_buffer): Don't set output line or lineno.
10385         (_cpp_pop_buffer): Transfer more info from a faked buffer.
10386         Remove line kludge.  Set output_line.
10387         * cppmacro.c (builtin_macro): Update handling of __LINE__.
10388         (parse_arg): Use logical lines.
10389         (save_lookahead_token): Save EOFs too now.
10390         * cppmain.c (struct printer): Fix comments.
10391         (printer_init): Simplify, let caller do errors.
10392         (scan_translation_unit, check_multiline_token, dump_macro): Update.
10393         (maybe_print_line): Simplify.
10394         (print_line): Don't print a linemarker if -P.
10395         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
10396         (cb_file_change): Simplify.
10397         * line-map.h (LAST_SOURCE_LINE): Fix.
10398         (CURRENT_LINE_MAP): New.
10399
10400 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
10401
10402         * doloop.c (doloop_modify_runtime): Properly compute number of
10403         iterations if loop was unrolled.
10404
10405         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
10406         if their CSELIB_VAL_PTRs are.
10407
10408         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
10409         (setup_spill_pointers): Initialize it.
10410         (spill_restore_mem): Set it.
10411         (do_spill, do_restore): Use it to add REG_INC note.
10412         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
10413
10414         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
10415         asms if other insns are available.
10416
10417         * config/ia64/ia64.c (condop_operator): New predicate.
10418         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
10419         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
10420         patterns.
10421
10422         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
10423         temporary register than directly using a MEM.
10424
10425 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
10426
10427         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
10428         parameter in last change.
10429
10430 2001-08-04  Zack Weinberg  <zackw@panix.com>
10431
10432         * sparc.md: Don't use #if inside C test expression.
10433
10434 2001-08-04  Richard Henderson  <rth@redhat.com>
10435
10436         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
10437
10438 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10439
10440         * cpphash.h (struct cpp_reader): New member directive_line.
10441         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
10442         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
10443         do_pragma): Pass line to callbacks.
10444         (start_directive): Record line of directive.
10445         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
10446         cb_include): Similarly.
10447         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
10448         Similarly.
10449
10450 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
10451
10452         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
10453         comment.
10454
10455 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
10456
10457         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
10458
10459         * reload1.c (fixup_abnormal_edges): New static function.
10460         (reload): Use it.
10461
10462         * flow.c (need_fake_edge_p): New function.
10463         (flow_call_edges_add): Fix handling of noreturn and sibling calls;
10464         avoid call insn to be very last insn in the insn stream.
10465
10466         * profile.c (branch_prob): Call flow_call_edges_add instead of
10467         doing that by hand; cleanup cfg to re-merge basic blocks once
10468         we are done.
10469
10470 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10471
10472         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
10473         are also on line-map.h.
10474         * cppfiles.c (stack_include_file): Update.
10475         * cpphash.h (struct cpp_buffer): New member return_at_eof.
10476         (_cpp_pop_buffer): New.
10477         * cppinit.c (cpp_destroy, cpp_finish): Update.
10478         (do_includes): Mark each buffer to return at EOF.
10479         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
10480         return as requested.
10481         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
10482         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
10483         * cpplib.h (cpp_pop_buffer): Remove.
10484         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
10485         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
10486         buffers.
10487         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
10488         to pop buffers.
10489         (do_preprocessing): Update.
10490         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
10491         * c-parse.in (_yylex): Similarly.
10492         * scan-decls.c (scan_decls): Similarly.
10493         * line-map.h: Update comments.
10494
10495         * objc/Make-lang.in (objc-act.o): Update dependencies.
10496
10497 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10498
10499         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
10500         and soft register for operand 0.
10501         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
10502
10503 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10504
10505         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
10506         register for operand 0.
10507         ("bitcmpqi_z_used"): Allow memory for operand 0.
10508         (split "bitcmpqi"): New split to handle address reg as operand 1.
10509
10510 2001-08-04  Andreas Jaeger  <aj@suse.de>
10511
10512         * gcse.c: Revert Daniel's last patch.
10513
10514 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
10515
10516         * sparc-protos.h: Add prototypes for fp_zero_operand and
10517         reg_or_0_operand.
10518         * sh-protos.h: Add prototype for fpul_operand.
10519
10520 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
10521
10522         * doc/extend.texi (Other Builtins): Fix typo in last change.
10523
10524 2001-08-03  Richard Henderson  <rth@redhat.com>
10525
10526         * target.h (gcc_target): Add asm_out.named_section,
10527         section_type_flags, have_named_sections.
10528         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
10529         (TARGET_HAVE_NAMED_SECTIONS): New.
10530         (TARGET_SECTION_TYPE_FLAGS): New.
10531
10532         * Makefile.in (toplev.o): Depend on TARGET_H.
10533         (varasm.o, dbxout.o): Likewise.
10534         * c-common.c (decl_attributes): Check targetm.have_named_sections
10535         instead of ifdef ASM_OUTPUT_SECTION_NAME.
10536         * dbxout.c (dbxout_function_decl): Likewise.
10537         (dbxout_function_end): Likewise.
10538         * toplev.c (compile_file): Likewise.
10539         * varasm.c (exception_section): Likewise.
10540         * cp/decl2.c (finish_objects): Likewise.
10541
10542         * defaults.h (EH_FRAME_SECTION): Remove.
10543         (EH_FRAME_SECTION_ASM_OP): Remove.
10544         (EH_FRAME_SECTION_NAME): New.
10545         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
10546         (UNIQUE_SECTION_P): Remove.
10547         * dwarf2out.c (SECTION_FORMAT): Remove.
10548         (ASM_OUTPUT_SECTION): Remove.
10549         (output_call_frame_info): Use named_section_flags.
10550         (output_comp_unit, dwarf2out_start_source_file): Likewise.
10551         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
10552         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
10553         * varasm.c (in_eh_frame, eh_frame_section): Remove.
10554         (named_section_flags): New.
10555         (named_section): Use it and targetm.section_type_flags.
10556         (resolve_unique_section): New.
10557         (assemble_start_function): Use it.
10558         (asm_emit_uninitialised, assemble_variable): Likewise.
10559         (default_section_type_flags): New.
10560         (default_no_named_section, default_elf_asm_named_section): New.
10561         (default_coff_asm_named_section, default_pe_asm_named_section): New.
10562         * output.h: Update varasm.c decls.
10563         (SECTION_*): New flags.
10564
10565         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
10566         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
10567
10568         * config/elfos.h (UNIQUE_SECTION_P): Remove.
10569         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
10570         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
10571         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
10572         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
10573         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
10574         * config/mips/elf.h, config/mips/elf64.h: Likewise.
10575         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
10576         * config/pa/pa64-hpux.h,
10577
10578         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
10579         (TARGET_ASM_NAMED_SECTION): New.
10580         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
10581         * config/alpha/vms.h, config/arm/coff.h: Likewise.
10582         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
10583         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
10584         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
10585         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
10586         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
10587         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
10588         * config/i386/sco5.h, config/i386/win32.h: Likewise.
10589         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
10590         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
10591         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
10592         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
10593         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
10594         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
10595         * config/sparc/sysv4.h: Likewise.
10596
10597         * config/nextstep.h: Error until named sections implemented.
10598
10599         * config/a29k/a29k.c (a29k_asm_named_section): New.
10600         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
10601         (vms_section_type_flags, vms_asm_named_section): New.
10602         * config/arm/arm.c (arm_elf_asm_named_section): New.
10603         * config/avr/avr.c (asm_output_section_name): Remove.
10604         * config/avr/avr-protos.h: Update.
10605         * config/c4x/c4x.c (c4x_asm_named_section): New.
10606         * config/h8300/h8300.c (h8300_asm_named_section): New.
10607         * config/i386/i386.c (sco_asm_named_section): New.
10608         * config/i386/winnt.c (SECTION_PE_SHARED): New.
10609         (i386_pe_section_type_flags): New.
10610         (i386_pe_asm_named_section): New.
10611         * config/i386/i386-protos.h: Update.
10612         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
10613         * config/mcore/mcore.c (mcore_asm_named_section): New.
10614         * config/mips/mips.c (iris6_asm_named_section): New.
10615         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
10616         instead of UNIQUE_SECTION_P.
10617         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
10618         (xcoff_asm_named_section): New.
10619         * config/sh/sh.c (sh_asm_named_section): New.
10620         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
10621
10622         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
10623         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
10624         (EH_FRAME_SECTION_NAME): New.
10625         (EXCEPTION_SECTION): New.
10626         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
10627         (DEBUG_*_SECTION): Remove.
10628         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
10629         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
10630         (EH_FRAME_SECTION_ASM_OP): Remove.
10631
10632         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
10633         (ASM_OUTPUT_SECTION_NAME): Remove.
10634         (TARGET_ASM_NAMED_SECTION): New.
10635         (TARGET_HAVE_NAMED_SECTIONS): New.
10636         (TARGET_SECTION_TYPE_FLAGS): New.
10637         (EH_FRAME_SECTION_ASM_OP): Remove.
10638         (EH_FRAME_SECTION_NAME): New.
10639
10640 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
10641
10642         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
10643         for complex expressions when cfun == 0.
10644         * doc/extend.texi: Document that __builtin_constant_p can be
10645         used in data initializers as well as functions.
10646
10647 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
10648
10649         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
10650         variable I locally, instead of expecting a declaration in the
10651         calling context.
10652
10653 2001-08-03  Richard Henderson  <rth@redhat.com>
10654
10655         * except.c (collect_one_action_chain): Add an explicit cleanup
10656         action if regions surrounding a catch were encoded entirely
10657         within the call-site entry.
10658
10659 2001-08-03  Richard Henderson  <rth@redhat.com>
10660
10661         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
10662         don't take REGNO of a non-register.
10663
10664 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10665
10666         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
10667         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
10668         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
10669         (__gthread_mutex_init_function): New function for mutex initialization.
10670
10671 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
10672
10673         * Makefile.in: Revert screwed up commit.
10674
10675 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10676
10677         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
10678         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
10679         merged by linker script to get a final _exit().
10680         (__do_global_dtors): New for destructor handling in specific exit
10681         section.
10682         (__do_global_ctors): New for constructors in specific install section.
10683         (__map_data_section): Map data sections before running constructors.
10684         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
10685         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
10686         (DTORS_SECTION_ASM_OP): Likewise.
10687         (CTORS_SECTION_FUNCTION): Define to force a reference to
10688         __do_global_ctors.
10689         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
10690
10691 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
10692
10693         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
10694
10695         * Makefile.in: Add df.h to gcse.c dependencies.
10696
10697 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10698
10699         * varasm.c (output_constant_def_contents): Use for the length of a
10700         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
10701         depending on which is larger.
10702
10703 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
10704
10705         * gcse.c: Include df.h for use as a dataflow analyzer.
10706         Remove regvec.
10707         Declaration of reg_set_info: gone.
10708         New df_analyzer variable used by store motion.
10709         (reg_set_info): Deleted.
10710         (mark_mem_regs): New function, analyze regs used by a mem.
10711         (store_ops_ok): Use dataflow analyzer results to determine if
10712         necessary regs are changed in the block.
10713         (find_moveable_store): Remove check for symbol ref, we can handle
10714         much more complex expressions now.
10715         (compute_store_table): Remove most of the code, it's unnecessary
10716         now that the dataflow analyzer records the info for us.
10717         (store_killed_after): Add parameter to say whether to do the
10718         store_ops_okay test, used to speed up testing when we already know
10719         the answer, and just want to know if the store itself was killed.
10720         (build_store_vector): Largely rewritten to calculate the various
10721         vectors properly, and somewhat optimized.
10722         (store_motion): Init the df_analyzer, get REG_DEF chains.
10723         Also handle trapping expressions (since mems almost always trap)
10724         (simple_mem): Redefine what a simple mem is.
10725
10726 2001-08-03  DJ Delorie  <dj@redhat.com>
10727
10728         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
10729         set from a constant part of the condition.
10730
10731 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
10732
10733         * mkdeps.c (deps_add_default_target): Make local variable
10734         ``start'' a const char pointer.
10735         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
10736
10737 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10738
10739         * doc/install.texi (Configuration): Fix markup.
10740         (Specific, i?86-*-udk): Likewise.
10741         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
10742         --with-gnu-ld.
10743         Document --enable-threads and --enable-libgcj status.
10744         (Specific, mips-sgi-irix*): Canonicalize triples.
10745         (Specific, mips-sgi-irix5): Warn about problems with this config.
10746         Mention required GNU as patch.
10747         Native assembler problems are fixed.
10748         (Specific, mips-sgi-irix6): Update O32 ABI support status.
10749         Document --enable-threads and --enable-libgcj status.
10750
10751 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
10752
10753         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
10754         of mkinstalldirs.
10755
10756 2001-08-03  Richard Henderson  <rth@redhat.com>
10757
10758         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
10759         constant data.
10760
10761 2001-08-03  Richard Henderson  <rth@redhat.com>
10762
10763         * rtlanal.c (find_first_parameter_load): Stop if we
10764         reach a CODE_LABEL at BOUNDARY.
10765
10766 2001-08-03  Richard Henderson  <rth@redhat.com>
10767
10768         * config/alpha/alpha.md (force_movdi): New insn.
10769         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
10770         Tweek FRP marking of VMS prologue insns.
10771         * config/alpha/vms.h (EPILOGUE_USES): New.
10772
10773 2001-08-02  Richard Henderson  <rth@redhat.com>
10774
10775         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
10776
10777 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
10778
10779         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
10780         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
10781         config/convex/convex.h, config/d30v/d30v.c,
10782         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10783         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
10784         config/mips/mips.h, config/mn10200/mn10200.h,
10785         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
10786         config/v850/v850.h, config/vax/openbsd.h,
10787         config/vax/openbsd1.h, config/vax/ultrix.h,
10788         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
10789         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
10790         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
10791         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
10792         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
10793         in comments and documentation.
10794
10795 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10796
10797         * line-map.c: New.
10798         * line-map.h: New.
10799         * Makefile.in (line-map.o): New.
10800         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
10801         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
10802         * cpperror.c (print_containing_files): Similarly.
10803         (print_location): Update.  Don't output a space before _Pragma.
10804         * cppfiles.c (stack_include_file): Set to line 1 immediately.
10805         (stack_include_filee, cpp_make_system_header): Update.
10806         (_cpp_execute_include): Get logical line number right for calling
10807         as-yet-unterminated #include.
10808         * cpphash.h (struct cpp_reader): Add line_maps.
10809         (_cpp_do_file_change): Update.
10810         * cppinit.c (cpp_create_reader): Initialize line maps.
10811         (cpp_destroy): Destroy line maps.
10812         (cpp_start_read): Get logical line number right.
10813         * cpplex.c (parse_string): Only warn once for multi-line strings.
10814         Use boolean variable for null warning.
10815         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
10816         already.
10817         (do_include_common): End the directive early.
10818         (do_line): Don't warn about out-of-range lines in preprocessed
10819         source.  Update.  Remove unused variables.
10820         (_cpp_do_file_change): Update for new line mapping.
10821         (pragma_cb): New typedef.
10822         (cpp_register_pragma): Stop looking ahead before calling the
10823         handler.  Clean up.
10824         (do_pragma_system_header): End directive early.
10825         (cpp_get_line_maps): New.
10826         (cpp_pop_buffer): Fudge logical line.  Update.
10827         * cpplib.h: Include line-map.h
10828         (enum cpp_fc_reason): Remove.
10829         (struct cpp_file_change): Update.
10830         (cpp_get_line_maps): New.
10831         * cppmain.c (struct_printer): New member map.
10832         (cb_file_change): Update for new mappings.
10833         * fix-header.c (cb_file_change): Similarly.
10834
10835 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
10836
10837         * Makefile.in (libgcc.mk): Define mkinstalldirs.
10838         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
10839
10840 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
10841
10842         * config/vax/vax.c: include expr.h.
10843
10844 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
10845
10846         * Makefile.in ($(srcdir)/configure): Only rebuild in
10847         maintainer mode.
10848         ($(srcdir)/config.in): Only define in maintainer mode.
10849         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
10850
10851 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
10852
10853         * doc/install.texi (Install GCC: Binaries): Update Bull info.
10854
10855 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10856
10857         * gcc.c (set_collect_gcc_options): New function, split out from
10858         main.
10859         Ignore elided switches.
10860         (do_spec_1): Invoke before executing command.
10861         (set_input): Export.
10862         Move declaration ...
10863         * gcc.h (set_input): ... here.
10864         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
10865         file.
10866
10867 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
10868
10869         Kill -fhonor-std.
10870         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
10871         interaction.
10872         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
10873
10874 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
10875
10876         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
10877         for the unnamed instructions it expands to.
10878
10879 2001-08-02  Richard Henderson  <rth@redhat.com>
10880
10881         * regclass.c (call_really_used_regs): Conditionally define.
10882         (init_reg_sets_1): Don't use it if not defined.
10883         (fix_register): Similarly, don't set it.
10884
10885 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10886
10887         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
10888         Correct comment that had been missed in the previous change.
10889
10890 2001-08-01  Stan Shebs  <shebs@apple.com>
10891
10892         * config/darwin.c (machopic_stub_name): Try matching by name.
10893         (update_stubs): New function.
10894         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
10895         unconditionally.
10896
10897 2001-08-01  Richard Henderson  <rth@redhat.com>
10898
10899         * except.c (output_function_exception_table): Use assemble_align.
10900         * varasm.c (assemble_eh_label): Remove.
10901         (assemble_eh_align, assemble_eh_integer): Remove.
10902
10903 2001-08-01  Robert Lipe  <robertl@caldera.com>
10904
10905         * dwarfout.c: Remove reference to README.DWARF.
10906
10907 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
10908
10909         * regclass.c (call_really_used_regs): New array for registers which
10910         are actually used by a call.
10911         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
10912         new array.
10913         (fix_register): Set call_really_used too.
10914         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
10915         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
10916
10917 2001-08-01  Richard Henderson  <rth@redhat.com>
10918
10919         * read-rtl.c (read_name): Consider \r whitespace.
10920
10921 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
10922
10923         * config.gcc: Recognize powerpc-*-netbsd*.
10924
10925         * doc/install.texi (Host/target specific installation notes for
10926         GCC): Mention powerpc-*-netbsd*.
10927
10928         * config/rs6000/netbsd.h: New file.
10929         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
10930         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
10931         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
10932         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
10933         (TARGET_VERSION): Redefine.
10934
10935         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
10936         mcall-netbsd as a match for mcall-sysv.
10937         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
10938         (ncrti.S, ncrtn.S): New targets.
10939         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
10940
10941         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
10942         "netbsd' as a V4 ABI.
10943         (ASM_SPEC): Check for -mcall-netbsd.
10944         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
10945         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
10946         (LIB_SPEC, ENDFILE_SPEC): Ditto.
10947         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
10948         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
10949         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
10950         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
10951
10952         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
10953         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
10954
10955 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
10956
10957         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
10958         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
10959         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
10960         including "unwind-pe.h".
10961
10962 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
10963
10964         * rs6000.md (define_splits): Kill unused constraints.
10965
10966 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
10967                               Jan Hubicka  <jh@suse.cz>
10968
10969         * function.c (thread_prologue_and_epilogue_insns): Kill code
10970         dealing with non-existent CFG.
10971
10972 2001-08-01  Kazu Hirata  <kazu@hxi.com>
10973
10974         * alias.c: Fix comment formatting.
10975         * bitmap.c: Likewise.
10976         * builtins.c: Likewise.
10977         * calls.c: Likewise.
10978         * c-common.c: Likewise.
10979         * c-decl.c: Likewise.
10980         * c-dump.c: Likewise.
10981         * c-lex.c: Likewise.
10982         * collect2.c: Likewise.
10983         * combine.c: Likewise.
10984         * conflict.c: Likewise.
10985         * cppfiles.c: Likewise.
10986         * cppinit.c: Likewise.
10987         * cpplex.c: Likewise.
10988         * cpplib.c: Likewise.
10989         * cppmacro.c: Likewise.
10990         * cppspec.c: Likewise.
10991         * c-pragma.c: Likewise.
10992         * crtstuff.c: Likewise.
10993         * cse.c: Likewise.
10994         * cselib.c: Likewise.
10995         * c-semantics.c: Likewise.
10996         * c-typeck.c: Likewise.
10997
10998 2001-08-01  H.J. Lu <hjl@gnu.org>
10999
11000         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
11001
11002 2001-08-01  H.J. Lu <hjl@gnu.org>
11003
11004         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
11005
11006 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
11007
11008         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
11009         contextualizing Objective-C class name lookup by the lexer.
11010         (typespec_reserved_nonattr): Disable ObjC class name lookup after
11011         seeing a TYPESPEC.
11012         (protocoldef): Add support for forward @protocol declarations.
11013         (yylexname): Suppress ObjC class name lookup in certain contexts;
11014         re-enable after lookup is complete.
11015         (_yylex): Re-enable ObjC class name lookup when certain
11016         punctuation marks are seen.
11017
11018         * objc/objc-act.c (check_protocol_recursively): New function used
11019         for finding circular dependencies in protocols.
11020         (objc_declare_protocols): New function for handling forward
11021         @protocol declarations.
11022         (receiver_is_class_object): Detect the case when 'self' is used
11023         inside of a class method.
11024         (build_message_expr): Issue a warning if class method is desired
11025         but instance method is found instead.
11026         (conforms_to_protocol): Streamline.
11027         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
11028         protocol Foo, even if 'Bar foo' does not.
11029         (check_protocols): Streamline.
11030         (start_protocol): Add checks for circular and duplicate protocol
11031         definitions.
11032         (encode_aggregate_within): For typedefs of structs, encode the
11033         underlying struct.
11034         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
11035         (objc_declare_protocols): New prototype.
11036
11037 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11038
11039         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
11040         * cpplex.c (handle_newline): Update prototype.  Maintain logical
11041         line number.
11042         (skip_escaped_newlines, skip_block_comment, parse_string):
11043         Update accordingly.
11044         (_cpp_lex_token): Update, and store token position within the token.
11045         * cpplib.h (struct cpp_token): Add line and column entries.
11046         * cppmacro.c (replace_args): Position stringified tokens correctly.
11047
11048 2001-08-01  Andreas Jaeger  <aj@suse.de>
11049
11050         * basic-block.h: Add prototype for last_loop_beg_note.
11051
11052 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
11053
11054         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
11055         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
11056         comment.
11057         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
11058         while handling WITH_CLEANUP_EXPR node. Use second operand calling
11059         expand_decl_cleanup.
11060         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
11061         the first RTX.
11062         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
11063         operand while calling simple_cst_equal.
11064         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
11065         operand is the cleanup expression, the third is the RTL_EXPR.
11066         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
11067
11068 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
11069
11070         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
11071
11072 2001-07-31  matthew green  <mrg@eterna.com.au>
11073
11074         * config.gcc (i386-*-netbsdelf): New description.
11075         * config/i386/netbsd-elf.h: New file.
11076
11077 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
11078
11079         * loop.c (check_dbra_loop): Use single_set to compute
11080         jump_label.
11081
11082 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
11083
11084         PowerPC reorg and support for powerpc64-*-linux*.
11085
11086         Also fixes emitting of constants on 32 bit and 64 bit
11087         platforms.
11088
11089         * config.gcc: powerpc64-*-linux* is a new target.
11090         Things that needed aix.h now also include xcoff.h
11091
11092         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
11093         xcoff.h.
11094         Move AIX specific stuff into aix.h.
11095         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
11096         with more than just XCOFF now.
11097         (SET_ASM_OP): Remove, now defined where needed.
11098         (FUNCTION_PROLOGUE): New macro definition.
11099         (FUNCTION_EPILOGUE): New macro definition.
11100         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
11101
11102         * config/rs6000/xcoff.h: New file.
11103
11104         * config/rs6000/linux64.h: New file.
11105
11106         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
11107
11108 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
11109
11110         * rs6000.c (print_operand_address): Handle ELF syntax.
11111         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
11112         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
11113         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
11114
11115 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
11116
11117         * rs6000.c (rs6000_override_options): Only disable
11118         flag_function_sections for XCOFF.
11119         (exact_log2_cint_operand): New predicate.
11120         (reg_or_{add,sub}_cint64_operand): New predicates.
11121         (add_operand): Compare CONST_INT with fewer function calls.
11122         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
11123         (print_operand, case 'p'): Ensure positive operand.
11124         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
11125         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
11126         (PREDICATE_CODES): Add new predicates.
11127         * rs6000.md (addsi3): Split 32-bit constants more correctly.
11128         (divsi3, modsi3): Ensure positive power-of-2.
11129         (adddi3): Use new predicate.  Split 32-bit constants more
11130         correctly.  Re-arrange splitter to handle any constant.
11131         (subdi3): Use new predicate.
11132         (divdi3, moddi3): Ensure positive power-of-2.
11133         (movdi): Use rs6000_emit_set_const.
11134         (load_toc_v4_pic_di): Delete.
11135
11136 2001-07-31  Graham Stott <grahams@redhat.com>
11137
11138         * function.c (pad_below): Revert 2001-07-26 patch.
11139
11140 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
11141
11142         * reg-stack (convert_regs_1): Fix best edge condition.
11143
11144 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
11145
11146         * jump.c (duplicate_loop_exit_test): Better test for jumps
11147         entering the loop; create loop pre_header.
11148
11149 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
11150
11151         * doc/install.texi: Add s390 and s390x as new targets.
11152         * doc/invoke.texi: Add documentation of S/390 and zSeries
11153         target options.
11154         * doc/md.texi: Add documentation of S/390 and zSeries constraints.
11155
11156 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
11157
11158         * config/m68k/m68k.md: Replace all general_operand with
11159         nonimmediate_operand for all destinations.
11160         * config/m68k/m68k.c (not_sp_operand): Likewise.
11161
11162 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
11163
11164         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
11165
11166 2001-07-30  Richard Henderson  <rth@redhat.com>
11167
11168         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
11169         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
11170
11171 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
11172
11173         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
11174         Add missing doc strings
11175         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
11176         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
11177
11178 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
11179
11180         * i386.c (ix86_output_main_function_alignment_hack): New function.
11181         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
11182
11183         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
11184         edges by EDGE_DFS_BACK flag.
11185         (dump_edge_info): Add dfs_back flag.
11186         * basic-block.h (EDGE_DFS_BACK): New constant.
11187         (mark_dfs_back_edges): Declare.
11188         * alias.c (loop_p): Remove.
11189         (mark_constant_function): Use mark_dfs_back_edges.
11190
11191         * reg-stack.c (block_info_def): Add predecessors counter and stack_out.
11192         (reg_to_stack): Call mark_dfs_back_edges; count the predecessors.
11193         (compensate_edge): Break out from ...
11194         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
11195         (convert_regs_2): Set block_done once block is really done;
11196         Do updating of the predecessors counts.
11197
11198         * toplev.c (rest_of_compilation): Recompute block_for_insn
11199         before post-reload cfg_cleanup.
11200         * function.c (thread_prologue_epilogue_insns):
11201         Call set_block_for_new_insns when emitting prologue directly.
11202
11203 2001-07-30  Andreas Jaeger  <aj@suse.de>
11204
11205         * jump.c: Add prototype for mark_modified_reg.
11206
11207         * cse.c (set_live_p): Add unused attribute.
11208
11209         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
11210         overflow.
11211         (scan_for_source_files): Use long for count to avoid overflow.
11212         (output_data): Likewise.
11213         (output_data): Don't use string concatatenation to silence gcc
11214         -traditional.
11215
11216         * predict.c: Fix typos and grammar.
11217
11218         * gcse.c (insert_insn_end_bb): Remove unused variables.
11219
11220 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
11221
11222         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
11223         (attempt_auto_inc): LIkewise.
11224         (mark_used_reg): Likewise.
11225         (try_pre_increment_1): Likewise.
11226         * regclass.c (regclass): Likewise.
11227         * global.c (allocno_compare): Update comment; change scaling factor.
11228         * local-alloc.c (QTY_CMP_PRI): Likewise.
11229         * regs.h (REG_FREQ_FROM_BB): New.
11230         (REG_FREQ_MAX): Likewise.
11231
11232 2001-07-30  H.J. Lu <hjl@gnu.org>
11233
11234         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
11235         -D_GNU_SOURCE.
11236
11237 2001-07-30  H.J. Lu  (hjl@gnu.org)
11238
11239         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
11240         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
11241         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
11242
11243 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
11244
11245         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
11246         as -mthumb-interwork when -mcpu=arm7 is specified.
11247
11248 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
11249
11250         * predict.def (noreturn, loop branch, loop exit): Mark as first
11251         match heuristics.
11252
11253 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
11254
11255         * combine.c (try_combine): Avoid barrier after noop jumps.
11256
11257 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11258
11259         * cpphash.h (struct cpp_reader): Remove import_warning.
11260         * cpplib.c (skip_rest_of_line): Don't bother turning off
11261         macro expansion.
11262         (parse_include): Move include handling to...
11263         (do_include_common): ... here.  Move import warning from...
11264         (do_import): ... here.
11265         (do_pragma_poison): Don't do a callback for poison identifiers.
11266         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
11267         * cppmain.c (setup_callbacks): Similarly.
11268
11269 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
11270
11271         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
11272         handle multiple sets.
11273         * except.c (sjlj_mark_call_sites): .... here.
11274         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
11275
11276 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
11277
11278         Suggested by Richard Henderson and Richard Kenner:
11279         * combine.c (recog_for_combine): Use the fake recog
11280         only if instruction does not match.
11281         * rtl.h (NOOP_MOVE_INSN_CODE): New.
11282         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
11283
11284         * combine.c (try_combine): Discover noop jump as direct jump.
11285
11286 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
11287
11288         * df.c (df_rd_global_compute): Add successors to worklist, not
11289         current item.
11290         (df_ru_global_compute): Ditto.
11291
11292 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
11293
11294         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
11295         increment REG_N_SETS.
11296
11297 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
11298
11299         * sbitmap.h: New prototype for sbitmap_a_xor_b.
11300
11301         * sbitmap.c (sbitmap_a_xor_b): New function.
11302         ifdef the basic block stuff on IN_GCC.
11303
11304 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11305
11306         * cppexp.c (parse_defined): Always record the macro name.
11307         (lex): Don't worry about identifiers, or special-case
11308         CPP_NOT here.
11309         (_cpp_parse_expr): Figure out at the end of the routine
11310         whether we saw a valid !defined() expression.
11311         * cppfiles.c (stack_include_file): Update for mi_valid.
11312         (_cpp_pop_file_buffer): Similarly.
11313         * cpplex.c (_cpp_lex_token): Similarly.
11314         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
11315         mi_if_not_defined, mi_lexed): Remove.
11316         (mi_valid): New.
11317         * cpplib.c (do_if): Simplify.
11318         (do_endif, push_conditional, _cpp_handle_directive): Update
11319         for renaming of mi_state to mi_valid.
11320 doc:
11321         * cpp.texi: Add index entries for digraphs, and add comment
11322         that C++ refers to them as alternative tokens.
11323
11324 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
11325
11326         * basic-block.h (CLEANUP_PRE_LOOP): New.
11327         * except.c (finish_eh_generation): Update call of cleanup_cfg.
11328         * sibcall.c (optimize_sibling_calls): Likewise.
11329         * toplev.c (rest_of_compilation): Likewise.
11330         * flow.c (try_forward_edges): Take argument MODE;
11331         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
11332         (try_optimize_cfg): Update call of try_forward_edges.
11333
11334 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
11335                                 Jan Hubicka  <jh@suse.cz>
11336
11337         * (validate_replace_rtx_1): Fix simplification of MINUS.
11338
11339 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11340
11341         PR preprocessor/3669
11342         * cppinit.c (init_dependency_output): Turn off dump requests
11343         if sending dependencies to stdout.
11344
11345 2001-07-28  Richard Henderson  <rth@redhat.com>
11346
11347         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
11348         not optimizing.
11349
11350 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
11351
11352         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
11353
11354 2001-07-28  Kazu Hirata  <kazu@hxi.com>
11355
11356         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
11357         is VAR_DECL first to prevent an ICE.
11358
11359 2001-07-28  Richard Henderson  <rth@redhat.com>
11360
11361         * varasm.c (immed_real_const_1): Don't elide special cases for
11362         nested functions.
11363         (clear_const_double_mem): Clear const_tiny_rtx too.
11364
11365 2001-07-28  Richard Henderson  <rth@redhat.com>
11366
11367         * dwarf2out.c (dw_val_class_offset): New.
11368         (struct dw_ranges_struct, dw_ranges_ref): New.
11369         (ranges_table, ranges_table_allocated): New.
11370         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
11371         (add_AT_offset, add_ranges, output_ranges): New.
11372         (print_die, output_die): Handle dw_val_class_offset.
11373         (attr_checksum, size_of_die, value_format): Likewise.
11374         (gen_lexical_block_die): Handle non-contiguous blocks.
11375         (gen_block_die): Likewise.
11376         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
11377         if needed.  Dump the ranges table.
11378         * final.c (final_start_function): Remove unnecessary notes and
11379         rebuild the block tree before numbering the blocks.
11380         * function.c (reorder_blocks_0): Walk the existing block tree
11381         to unmark all blocks.
11382         (reorder_blocks_1): Create block fragments when duplicate block
11383         notes are seen.
11384         (reorder_fix_fragments): New.
11385         (reorder_blocks): Call it.
11386         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
11387
11388 2001-07-28  Richard Henderson  <rth@redhat.com>
11389
11390         * emit-rtl.c (adjust_address): Make a copy of the memory address.
11391
11392 2001-07-28  Richard Henderson  <rth@redhat.com>
11393
11394         * flow.c (add_to_mem_set_list): New function.
11395         (init_propagate_block_info): Use it.
11396         (mark_set_1): Likewise.
11397         (insn_dead_p): Canonicalize memory address for dead store
11398         comparison.  Allow wider mode stores to kill narrower mode stores.
11399         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
11400         (invalidate_mems_from_set): Don't handle MEMs.
11401
11402 2001-07-28  Kazu Hirata  <kazu@hxi.com>
11403
11404         * config/h8300/h8300.h: Fix formatting.
11405
11406 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
11407
11408         * basic-block.h (EDGE_FREQUENCY): New macro.
11409         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
11410         for new BB/edges.
11411         * flow.c (find_sub_basic_blocks): Likewise.
11412         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
11413         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
11414
11415         * predict.c (DEF_PREDICTOR): New argument FLAGS.
11416         (HITRATE): New macro.
11417         (PRED_FLAG_FIRST_MATCH): New constant.
11418         (predictor_info): New field flgags.
11419         (combine_predictions_for_insn): Use DS theory to combine
11420         probabilities; set the edge probabilities when finished.
11421         (estimate_probability): Avoid duplicated matches
11422         of LOOP_BRANCH heuristics for nested loops; update comment.
11423         * predict.def: Add flags for each prediction, set probabilities
11424         according to B&L paper.
11425         * predict.h (DEF_PREDICTOR): New argument FLAGS.
11426
11427         * profile.c (compute_branch_probabilities):  Cleanup way the edge
11428         probabilities are computed and REG_BR_PROB notes are dropped; if
11429         values does not match, emit error.
11430         (init_branch_prob): Do error instead of warning when profile driven
11431         feedback is missing or corrupt.
11432
11433 2001-07-27  DJ Delorie  <dj@redhat.com>
11434
11435         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
11436         against a constant, try to adjust the compare to have the desired
11437         constant in it so that min/max optimizations happen more often.
11438
11439 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11440
11441         * flow.c (last_loop_beg_note): New function.
11442         (redirect_edge_and_branch): Use it.
11443         (split_edge): Likewise.
11444
11445         * alias.c (loop_p): Avoid uninitialized memory access.
11446
11447         * flow.c (try_forward_edges): Avoid accessing freed memory.
11448
11449         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
11450         variable access.
11451
11452 2001-07-26  Andrew Haley  <aph@redhat.com>
11453         Joern Rennecke <amylaar@redhat.com>
11454
11455         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
11456         (SUBTARGET_CPP_ENDIAN_SPEC): New.
11457         (SUBTARGET_CPP_SPEC): New.
11458         (CPP_SPEC): Remove.
11459         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
11460         (SUBTARGET_CPP_PTR_SPEC): New.
11461         (CPP_DEFAULT_CPU_SPEC): New.
11462         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
11463         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
11464         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
11465         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
11466         (SUBTARGET_CPP_SPEC): Define as an empty string.
11467
11468 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11469
11470         * doc/install.texi (Configuration): Properly link the host
11471         specific instructions also when generating HTML.
11472
11473 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
11474
11475         * flow.c (redirect_edge_and_branch_force): Test
11476         target->global_live_at_start.
11477
11478 2001-07-26  Richard Henderson  <rth@redhat.com>
11479
11480         * simplify-rtx.c (avoid_constant_pool_reference): Export.
11481         * rtl.h (avoid_constant_pool_reference): Declare it.
11482         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
11483         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
11484
11485 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
11486
11487         * rtl.h (cleanup_barriers): Declare.
11488         * jump.c (cleanup_barriers): New function.
11489         * toplev.c (rest_of_compilation): Call cleanup_barriers
11490         before loop optimizer and after bb_reorder.
11491
11492         * flow.c (back_edge_of_syntactic_loop_p): New.
11493         (split_edge): Use it.
11494
11495 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11496
11497         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
11498
11499 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
11500
11501         * cse.c (cse_process_notes): Replace any registers if the address
11502         remains valid.
11503
11504 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
11505
11506         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
11507         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
11508         (propagate_block): Update prototype.
11509         * flow.c (update_life_info): Simplify the CFG and
11510         recalculate the global regs which are alive when
11511         removing dead code during a global update.
11512         (propagate_block): Return non-zero if an INSN is
11513         deleted.
11514
11515 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11516
11517         * Makefile.in (LIBICONV): Define.
11518
11519 2001-07-26  Catherine Moore  <clm@redhat.com>
11520
11521         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
11522         of conditional to avoid tree checking errors.
11523
11524 2001-07-26  Kazu Hirata  <kazu@hxi.com>
11525
11526         * regmove.c (regmove_optimize): Don't replace a reg with
11527         another reg of a different mode.
11528
11529 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
11530
11531         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
11532         limit length of dependency flush list.
11533         * params.h (MAX_PENDING_LIST_LENGTH): Define.
11534         * sched-int.h  (struct deps): Add pending_flush_length field.
11535         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
11536         has 1 element in it.
11537         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
11538         (sched_analyze): After a jump, if the pending memory flush list is too
11539         large, flush the pending lists.
11540         (init_deps): Initialize pending_flush_length to 0.
11541         * doc/invoke.texi (max_pending_list_length): Document parameter.
11542
11543 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
11544
11545         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
11546         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
11547         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
11548
11549 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11550
11551         * cpphash.h (struct_lexer_state): Delete was_skipping.
11552         Move skipping here from struct cpp_reader.
11553         * cpplex.c (parse_identifier): Update.
11554         (_cpp_lex_token): Don't skip tokens in a directive.
11555         * cpplib.c (struct if_stack): Update.
11556         (start_directive, end_directive): Don't change skipping state.
11557         (_cpp_handle_directive): Update.
11558         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
11559         (do_else, do_endif): Update; only check for excess tokens if not
11560         in a skipped conditional block.
11561         (push_conditional): Update for new struct if_stack.
11562
11563 2001-07-26  Graham Stott  <grahams@redhat.com>
11564
11565         * function.c (locate_and_pad_parm): Also pad initial offset
11566         so that the total argument size also includes the padding.
11567
11568 2001-07-26  Graham Stott <grahams@redhat.com>
11569
11570         * gensupport.c (alter_output_for_insn): Correct enable checking failure
11571         change XSTR to XTMPL.
11572
11573         (process_one_cond_exec): Likewise
11574
11575 2001-07-25  Richard Henderson  <rth@redhat.com>
11576
11577         * varasm.c (assemble_variable): Create DECL_RTL before setting
11578         TREE_ASM_WRITTEN.
11579
11580 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
11581
11582         * predict.c (estimate_probability): Avoid duplicated predictions.
11583
11584         * loop.c (find_and_verify_loops): Grok multiple barriers.
11585
11586 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11587
11588         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
11589
11590         * dbxout.c: Consistently use putc instead of fputc.
11591         (print_wide_int): New function; call instead of direct fprintf.
11592         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
11593         (dbxout_type_fields, dbxout_type_method_1): Likewise.
11594         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
11595         (print_int_cst_octal): Likewise.
11596         (print_octal): Show we wrote characters.
11597         (dbxout_type): Set have_used_extensions in more places.
11598
11599 2001-07-25  Catherine Moore  <clm@redhat.com>
11600
11601         * config/v850/v850.c (v850_va_arg):  Use addr
11602         instead of valist to build incr.
11603
11604 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
11605
11606         * flow.c (delete_dead_jumptables): New function.
11607         (life_analyzis): Call it.
11608         * bb-reorder.c (skip_insns_after_block): Handle contradictory
11609         sequences.
11610
11611 2001-07-25  Richard Henderson  <rth@redhat.com>
11612
11613         * except.c (reachable_handlers): Handle a region being removed
11614         out from under a RESX.
11615
11616 2001-07-25  Richard Henderson  <rth@redhat.com>
11617
11618         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
11619         swap GE/GT if it is an fp comparison.
11620
11621 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
11622
11623         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
11624         operands.
11625
11626 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
11627
11628         * ssa.c (rename_insn_1): Do not wrap an assignment to a
11629         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
11630         glitch.
11631
11632         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
11633         throw an exception.
11634         (visit_expression): When attempting to simplify an expression,
11635         retrieve any modes for arguments before they are simplified
11636         to constants.
11637
11638 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
11639             Janis Johnson  <janis@us.ibm.com>
11640
11641         * stmt.c (expand_goto): A nonlocal goto can be a call too.
11642         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
11643         pointer parameters to match documented usage of nonlocal_goto.
11644         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
11645         parameters to their correct order.
11646         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
11647         parameters to their correct order.
11648
11649 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
11650
11651         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
11652
11653 2001-07-25  Jan Hubicka  <jh@suse.cz>
11654             Richard Henderson  <rth@redhat.com>
11655
11656         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
11657         the sequence.
11658         (make_edges): New argument update_p; populate the edge cache if set.
11659         (find_basic_blocks): Update make_edges invocation.
11660
11661 2001-07-24  Joel Sherrill <joel@OARcorp.com>
11662
11663         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
11664
11665 2001-07-24  Joel Sherrill <joel@OARcorp.com>
11666
11667         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
11668         -Acpu and -Amachine.h.
11669         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
11670         Corrected header to say ELF not a.out.
11671         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
11672         when given -msoft-float.
11673
11674 2001-07-24  Joel Sherrill <joel@OARcorp.com>
11675
11676         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
11677         extra multilib parts like arm-elf.
11678         (i960-*-coff*, i960-*-rtems): Should not use collect2.
11679         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
11680         crtfini.o as extra multilib parts.
11681
11682 2001-07-24  Joel Sherrill <joel@OARcorp.com>
11683
11684         * configure.in: Add rtems as a supported thread model.
11685         * gthr-rtems.h: Add missing entry point __gthread_active_p.
11686         * configure: Rebuilt.
11687
11688 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
11689
11690         * stor-layout.c (get_mode_alignment): make it work when
11691         BITS_PER_UNIT is not a power of two.
11692         * builtins.c (get_pointer_alignment): Likewise.
11693
11694 2001-07-24  Richard Henderson  <rth@redhat.com>
11695
11696         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
11697         the retrieved constant into the expected mode.
11698
11699 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
11700
11701         * flow.c (try_simplify_condjump): Avoid duplicated edges.
11702         (verify_flow_info): Check for duplicated edges; clarify
11703         error reporting.
11704
11705         * flow.c (block_label): Update basic_block_for_insn.
11706         (commit_edge_insertions): Call compute_bb_for_insn.
11707
11708         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
11709         returns too.
11710
11711         * flow.c (redirect_edge_and_branch,
11712         try_optimize_cfg): Use redirect_edge_succ_nodup
11713         (redirect_edge_succ_nodup): New.
11714         * basic_block.h (redirect_edge_succ_nodup): Declare.
11715
11716         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
11717         after gcse.
11718
11719 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
11720
11721         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
11722         (try_crossjump_to_edge): Update commetns.
11723         (try_crossjump_bb): Likewise.
11724
11725 2001-07-24  Richard Henderson  <rth@redhat.com>
11726
11727         * combine.c (distribute_notes): Move set of need_refresh
11728         for noop_move_p down to catch all cases.
11729
11730 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
11731
11732         * recog.c (split_all_insns_noflow): New.
11733         * rtl.h (split_all_insns_noflow): Declare.
11734         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
11735         * m68hc11.c (m68hc11_reorg): Likewise.
11736         * sh.c (machine_dependent_reorg): Likewise.
11737         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
11738         call.
11739
11740 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
11741
11742         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
11743         (ashlsi3_n splitter): Likewise.
11744         (lshrsi3_n splitter): Likewise.
11745
11746         (GOTaddr2picreg): Make const SImode.
11747         (sym_label2reg): Likewise.
11748         (symGOT2reg): Likewise.
11749         (symGOTOFF2reg) Likewise.
11750
11751         (casesi_worker_0): Make unspec SImode.
11752
11753 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
11754
11755         * config/sh/sh.c (barrier_align): Check that an operand really is
11756         an insn before extracting its INSN_CODE.
11757
11758 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
11759
11760         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
11761         dangling else.
11762
11763         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
11764         for SImode to prevent overflow.
11765
11766 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11767
11768         * config/mips/irix6-libc-compat.c: New file.
11769         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
11770         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
11771         passing workaround.
11772
11773 2001-07-24  lars brinkhoff  <lars@nocrew.org>
11774
11775         * rtl.texi (REG_POINTER): Document.
11776         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
11777         QFmode, HFmode, TQFmode, QCmode, and HCmode.
11778
11779 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
11780
11781         * flow.c (delete_noop_moves): Do not confuse libcall regions.
11782
11783 2001-07-23  Richard Henderson  <rth@redhat.com>
11784
11785         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
11786
11787 2001-07-23  Kazu Hirata  <kazu@hxi.com>
11788
11789         * config/h8300/h8300-protos.h: Add a prototype for
11790         general_operand_dst_push.
11791         * config/h8300/h8300.c (general_operand_dst_push): New.
11792         * config/h8300/h8300.h (OK_FOR_T): New.
11793         (EXTRA_CONSTRAINT): Use it.
11794         * config/h8300/h8300.md (movqi_push): Remove and integrate into
11795         the existing movqi pattern.
11796         (movhi_push): Likewise.
11797
11798         * reload.c: Fix comment typos.
11799
11800 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
11801
11802         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
11803
11804 2001-07-23  H.J. Lu  (hjl@gnu.org)
11805
11806         * doc/extend.texi: Update __builtin_return_address and
11807         __builtin_frame_address.
11808
11809 2001-07-23  Richard Henderson  <rth@redhat.com>
11810
11811         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
11812         before CSE.
11813         * config/i386/i386.md: New setcc+movzbl peephole2.
11814
11815 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11816
11817         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
11818         * objc/objc-act.c: Include debug.h.
11819         (synth_module_prologue): Save and restore debug hooks too.
11820
11821 2001-07-23  lars brinkhoff  <lars@nocrew.org>
11822
11823         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
11824         and C4X_FLOAT_FORMAT.
11825         (BOOL_TYPE_SIZE): Document.
11826
11827 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
11828
11829         * unroll.c (loop_iterations): Fix miscalculation of initial
11830         giv offset.
11831
11832 2001-07-13  Andrew Haley  <aph@redhat.com>
11833
11834         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
11835         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
11836         * config/sh/sh.c (sh_can_redirect_branch): New function.
11837         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
11838         * reorg.c (steal_delay_list_from_target): Use
11839         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
11840
11841 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
11842
11843         * flow.c (try_simplify_condjump): Unlink insn chain on
11844         fallthru edge; use can_fallthru.
11845
11846 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
11847
11848         * basic-block.h (find_sub_basic_block): Declare.
11849         * flow.c (make_edges): New arguments MIN and MAX;
11850         (find_sub_basic_blocks): Revamp to use make_edges
11851         and purge_dead_edges.
11852         (find_basic_blocks): Update call of find_sub_basic_block.
11853
11854         * recog.c (split_all_insns): Always expect CFG to be consistent;
11855         call find_sub_basic_blocks in case something has changed.
11856         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
11857         has been built.
11858
11859         * basic-block.h (delete_noop_moves): Declare.
11860         * combine.c (combine_instructions): Call it.
11861         (recog_for_combine): Tolerate noop moves
11862         (distribute_notes): Force refresh when register dies at noop move.
11863         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
11864         too.
11865         (life_analysis): Update delete_noop_moves call.
11866         (set_noop_p): Move too ...
11867         * rtlanal.c (noop_move_p): ... here.
11868         * rtl.h (noop_move_p): Declare.
11869
11870         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
11871         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
11872         after combine.
11873         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
11874         (cprop_jump): Likewise; call purge_dead_edges if substitution succeeded.
11875
11876 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
11877
11878         * reload.c (push_reload): Fix typo in comment.
11879         (find_reloads_address): Ditto.
11880         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
11881
11882 2001-07-22  Richard Henderson  <rth@redhat.com>
11883
11884         * flow.c: Grammar check and clarify a lot of comments.
11885         (try_simplify_condjump): Rename variables to be clearer.
11886         (try_forward_edges): Skip complex and fallthru edges.
11887         Rearrange tests to avoid duplicate checks.
11888         (flow_find_cross_jump): Likewise.
11889         (outgoing_edges_match): Allow match if neither branch has
11890         probability data.  Loosen probability match to 5%.
11891         (try_crossjump_to_edge): Hoist repeated indirection into
11892         local variables.
11893         (try_crossjump_bb): Don't check complex edges.  Eliminate
11894         redundant crossjump tests.
11895         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
11896         checks before more expensive checks.
11897
11898 2001-07-22  Richard Henderson  <rth@redhat.com>
11899
11900         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
11901         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
11902         arguments.
11903
11904 2001-07-22  Richard Henderson  <rth@redhat.com>
11905
11906         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
11907         (const_sint32_operand): Likewise.
11908         * m68k.md (anon mulsi pattern): Use const_int_operand not
11909         const_sint32_operand.
11910         (umulsi3_highpart): Zero extend a constant input.
11911         (smulsi3_highpart): Don't bother checking SImode constant.
11912         (const_umulsi3_highpart): Give op3 DImode.
11913         (const_smulsi3_highpart): Likewise.
11914
11915 2001-07-22  Richard Henderson  <rth@redhat.com>
11916
11917         * flow.c (split_block): Make sure bb_note is included in the
11918         new block when splitting before a label.
11919
11920 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
11921
11922         * basic-block.h (redirect_edge_and_branch_force,
11923         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
11924         * flow.c (redirect_edge_and_branch_force,
11925         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
11926         (redirect_edge_and_branch_force): Fix copying of lifeness information.
11927         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
11928         * ifcvt.c (dead_or_predictable): Take BB as an new destination
11929         instead of label; update CFG after transformation.
11930         (find_if_case_1): Update call, use redirect_edge_and_branch_force
11931         for finishing the transformation; handle even case where ELSE
11932         does not follow THEN.
11933         (find_if_case_2): Update call of dead_or_predictable; simplify
11934         CFG update.
11935
11936         * emit-rtl.c (split_branch_probability): New global variable.
11937         (try_split): Take care to set split_branch_probability and
11938         create REG_BR_PROB note for new jump insns.
11939         * md.texi (define_split): Document new feature.
11940
11941         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
11942
11943 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11944
11945         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
11946         (asm_out_file): Remove redundant declaration.
11947         (assemble_asm): Remove old #if 0 block.
11948         (assemble_variable): Remove end of function; debug output is
11949         now handled with global_decl.  Remove old #if 0 block.  Update.
11950         Remove saved_in_section and associated no-op code.
11951         * Makefile.in (varasm.o): Correct dependencies.
11952
11953 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
11954
11955         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
11956         the definition in defaults.h.
11957
11958 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
11959
11960         * jump.c: Update comments.
11961         (delete_barrier_successors, delete_unreferenced_labels,
11962         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
11963         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
11964         jump_optimize, jump_optimize_minimal): Kill.
11965         (rebuild_jump_labels): Move code from jump_optimize_1.
11966         (purge_line_number_notes): Likewise.
11967         (copy_loop_headers): Likewise.
11968         * reg-stack.c: Update comment.
11969         * stmt.c: Likewise.
11970         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
11971         JUMP_AFTER_REGSCAN): Kill.
11972         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
11973         purge_line_number_notes and copy_loop_headers.
11974
11975 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
11976            Richard Henderson  <rth@redhat.com>
11977
11978         * dbxout.c (dbxout_global_decl): New.
11979         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
11980         * sdbout.c (sdbout_finish): New.
11981         (sdbout_debug_hooks): Use it, add comments.
11982         (sdbout_global_decl): Defer initialised public vars to
11983         sdbout_finish.
11984         * varasm.c (assemble_variable): Don't output debug information
11985         for file-scope variables.
11986
11987 2001-07-22  Richard Henderson  <rth@redhat.com>
11988
11989         * config/alpha/alpha.c (get_trap_mode_suffix): New.
11990         (get_round_mode_suffix): New.
11991         (print_operand): Use them for [/].  Remove support for [&'`()+].
11992         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
11993         * config/alpha/alpha.md (attr round_suffix): New.
11994         (attr trap_suffix): New.
11995         (all insns): Set them appropriately.  Use %/ instead of the
11996         myriad punctuators.
11997
11998 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11999
12000         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
12001
12002 2001-07-22  Richard Henderson  <rth@redhat.com>
12003
12004         * regrename.c (regrename_optimize): Compute nregs for each
12005         potential target register.
12006
12007 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
12008            Richard Henderson  <rth@redhat.com>
12009
12010         * dbxout.c (dbxout_global_decl): New.
12011         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
12012         * sdbout.c (sdbout_finish): New.
12013         (sdbout_debug_hooks): Use it, add comments.
12014         (sdbout_global_decl): Defer initialised public vars to
12015         sdbout_finish.
12016         * varasm.c (assemble_variable): Don't output debug information
12017         for file-scope variables.
12018
12019 2001-07-21  H.J. Lu  (hjl@gnu.org)
12020
12021         * config/mips/mips.c (mips_cpu): Moved into ...
12022         (override_options): Here.
12023
12024         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
12025         mips_tune.
12026         (mips_cpu): Removed.
12027
12028 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12029
12030         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
12031         ("iorqi3"): Likewise.
12032         ("xorqi3"): Likewise.
12033         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
12034         ("*subhi3_sp): Likewise.
12035         ("*subhi3"): Likewise.
12036         ("extendhisi2"): Accept D, X and Y as source operand to avoid
12037         reload problems.
12038
12039 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
12040
12041         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
12042         * config/freebsd.h: Likewise.
12043         * config/linux.h: Likewise.
12044         * config/openbsd.h: Likewise.
12045         * config/alpha/linux-elf.h: Likewise.
12046         * config/arm/linux-elf.h: Likewise.
12047         * config/d30v/d30v.h: Likewise.
12048         * config/fr30/fr30.h: Likewise.
12049         * config/ia64/aix.h: Likewise.
12050         * config/ia64/ia64.h: Likewise.
12051         * config/mips/linux.h: Likewise.
12052         * config/pj/pj.h: Likewise.
12053         * config/rs6000/linux.h: Likewise.
12054         * config/sparc/linux.h: Likewise.
12055         * config/sparc/linux64.h: Likewise.
12056
12057 2001-07-20  Bruce Korb  <bkorb@gnu.org>
12058
12059         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
12060         because getc() and char* may disagree on signedness.
12061
12062 2001-07-20  Richard Henderson  <rth@redhat.com>
12063
12064         * doc/rtl.texi (REG_DEAD): Update for current semantics.
12065
12066         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
12067         insns to delete in the presence of cc0 in a jump insn.
12068
12069 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
12070                                 Jan Hubicka  <jh@suse.cz>
12071
12072         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
12073         of doing the change by hand.
12074
12075 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
12076
12077         * rtlanal.c (set_noop_p): Return true for noop jumps.
12078
12079         * expr.c (emit_single_push_insn): Add call to push expander.
12080         * expr.h (optab_index): Add OTI_push
12081         (push_optab): New constant.
12082         * genopinit.c (optabs): Add push_optab.
12083         * optabs.c (init_optab): Init push optab.
12084         * md.texi (push??1): Document
12085
12086 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12087
12088         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
12089         expand to emit the pattern; put a REG_INC note for push/pop
12090         instructions.
12091         ("movdf", "movdf_internal"): Likewise.
12092         ("movsi", "movsi_internal"): Likewise.
12093         ("movsf", "movsf_internal"): Likewise.
12094         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
12095
12096 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12097
12098         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
12099         gen_highpart.
12100
12101 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
12102
12103         * params.def: Change default max inline insns to 100.
12104
12105 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
12106
12107         * combine.c (combine_simplify_rtx): Generate a new shift operation
12108         when simplifying the first operand of a (neg (ashift)) expression.
12109
12110 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
12111
12112         * regclass.c (N_REG_INTS): Use only 32 bits per element.
12113
12114 2001-07-20  Kelley Cook  <kelley.cook@home.com>
12115
12116         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
12117         information.   Move rest into ...
12118         (*-*-solaris): ... here.  Eliminate redundant information and
12119         reword necessary packages section.  Delete 4.x assembler bug info.
12120         (sparc-sun-*): Merge into ...
12121         (sparc-sun-sunos*): here.
12122
12123 2001-07-20  Catherine Moore  <clm@redhat.com>
12124
12125         * config/v850/v850.md (casesi): Generate LABEL_REF
12126         with Pmode.
12127
12128 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
12129
12130         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
12131         * i386.c (ix86_zero_extend_to_Pmode): Make global.
12132         * i386.md (strclrsi expander): Use it.
12133
12134 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
12135
12136         * integrate.c (copy_insn_list): handle
12137         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
12138         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
12139         identically as to CODE_LABEL.
12140
12141         * fold-const (fold): Convert A/B/C to A/(B*C) and
12142         A/(B/C) to (A/B)*C
12143
12144         * except.c (connect_post_landing_pads): Delete the RESX insns.
12145
12146 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
12147
12148         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
12149
12150         * config/mips/mips.md (nmadd/nmsub): Use macro.
12151
12152 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
12153
12154         * cppinit.c (remove_dup_dir): Make static.
12155         (remove_dup_dirs): Make static. Only warn about preempting a
12156         system directory with a non-system directory.
12157
12158 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
12159
12160         * ifcvt.c (noce_try_store_flag_constants): Correct order
12161         of parameters to trunc_int_for_mode.
12162
12163 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
12164
12165         * reorg.c (fill_simple_delay_slots): If an instruction might throw
12166         an exception that will be caught within this function, do not fill
12167         its delay slot with any subsequent instruction.
12168
12169 2001-07-19  Steve Ellcey <sje@cup.hp.com>
12170
12171         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
12172         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
12173         pointer extension instruction.
12174         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
12175         * simplify-rtx.c (simplify_unary_operation) Likewise.
12176         * explow.c (convert_memory_address) Check value of
12177         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
12178         less than zero.
12179         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
12180         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
12181         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
12182         Add Multilib Support.
12183         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
12184         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
12185         Add Multilib Support.
12186         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
12187         support.
12188         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
12189         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
12190         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
12191
12192 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
12193
12194         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
12195         old and new operands in `<', `3' and `b'.
12196
12197 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
12198
12199         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
12200         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
12201         (toplev.o): Don't depend on xcoffout.h.
12202         * c-decl.c: Include debug.h
12203         (duplicate_decls): Use debug hook.
12204         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
12205         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12206         (dbxout_types): Remove.
12207         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
12208         * debug.c (do_nothing_debug_hooks): Update.
12209         (debug_true_tree, debug_nothing_rtx): New.
12210         * debug.h (struct rtx_def): New.
12211         (struct gcc_debug_hooks): New hooks ignore_block,
12212         outlining_inline_function and label.
12213         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
12214         dwarf2out_frame_finish): New.
12215         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
12216         Make static, update prototype.
12217         (dwarf2_debug_hooks): Update.
12218         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
12219         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
12220         * dwarfout.c (dwarf_debug_hooks): Update.
12221         * emit-rtl.c: Include debug.h.
12222         (remove_unnecessary_notes): Use debug hook.
12223         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
12224         (final_scan_insn): Use debug hook.
12225         * integrate.c (output_inline_function): Use debug hook.
12226         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
12227         (sdb_debug_hooks): Update.
12228         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
12229         * toplev.c: Don't include xcoffout.h.
12230         (note_outlining_of_inline_function, debug_ignore_block): Remove.
12231         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
12232         Remove.
12233         * tree.h (dwarf2out_do_frame): Remove.
12234
12235 2001-07-19  Catherine Moore  <clm@cygnus.com>
12236
12237         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
12238
12239 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
12240
12241         * reload1.c (eliminate_regs_in_insn): When updating a set
12242         to the frame pointer to the hardware frame pointer, perform
12243         the update always not just when REPLACE is set.
12244
12245         * reload1.c (choose_reload_regs): Don't inherit a reload
12246         that crosses multiple registers if registers past the first
12247         don't fit in the desired class.
12248
12249         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
12250         when negating constants.
12251
12252 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
12253
12254         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
12255         * doc/tree.texi: Ditto.
12256
12257 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
12258             Jakub Jelinek  <jakub@redhat.com>
12259
12260         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
12261         (extract_cie_info): Handle "eh" augmentation properly,
12262         remember eh_ptr.
12263         (struct frame_state, __frame_state_for): New.
12264
12265 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12266
12267         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
12268         HANDLE_SYSV_PRAGMA): Define.
12269         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
12270         previous args.
12271         (copy_object): Caller changed.
12272
12273 2001-07-19  Andreas Schwab  <schwab@suse.de>
12274
12275         * configure.in (assembler dwarf2 debug_line support): Define nop
12276         insn for m68k.
12277         * configure: Regenerated.
12278
12279 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
12280
12281         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
12282         dwarfout.h.
12283         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
12284         to conditionally compiled block.
12285         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12286         * dbxout.h (dbxout_function): Remove.
12287         * debug.c (do_nothing_debug_hooks): Update.
12288         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
12289         global_decl, deferred_inline_function.
12290         * dwarf2out.c (dwarf2_debug_hooks): Update.
12291         (dwarf2out_global_decl): New.
12292         * dwarfout.c: Don't include dwarfout.h.
12293         (dwarfout_global_decl, dwarfout_function_decl,
12294         dwarfout_deferred_inline_function): New.
12295         (dwarf_debug_hooks): Update.
12296         * dwarfout.h: Remove.
12297         * final.c: Don't include dwarfout.h.
12298         * sdbout.c (sdbout_global_decl): New.
12299         (sdbout_debug_hooks): Update.
12300         * toplev.c: Don't include dwarfout.h.
12301         (check_global_declarations, rest_of_compilation): Use new debug hooks.
12302         (note_deferral_of_defined_inline_function): Remove.
12303         * toplev.h (note_deferral_of_defined_inline_function): Remove.
12304         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
12305         * ch/lex.c: Don't include dwarfout.h.
12306         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
12307         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
12308         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
12309         * cp/optimize.c: Include debug.h.
12310         (maybe_clone_body): Use debug hook.
12311         * cp/semantics.c: Include debug.h.
12312         (expand_body): Use debug hook.
12313         * po/POTFILES.in: Remove dwarfout.h.
12314
12315 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
12316
12317         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
12318         * c-parse.in (yyerror, _yylex): Similarly.
12319         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
12320         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
12321         Update comments.
12322         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
12323         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
12324
12325 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
12326
12327         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
12328         in-class declaration at -g1.  Fixes c++/2814.
12329
12330 2001-07-18  Richard Henderson  <rth@redhat.com>
12331
12332         * doc/md.texi (reload_in/out): Document restrictions in predicates
12333         and constraints for these patterns.  Document empty string matching
12334         ALL_REGS.
12335
12336 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12337
12338         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
12339
12340 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
12341
12342         * cse.c: Undo my previous patch.
12343
12344 2001-07-18  Tom Tromey  <tromey@redhat.com>
12345
12346         For PR java/2812:
12347         * configure: Rebuilt.
12348         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
12349         instead.
12350         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
12351
12352 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
12353                                 Jan Hubicka  <jh@suse.cz>
12354
12355         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
12356         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
12357         * jump.c (mark_jump_label): Do not forward branches.
12358
12359 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
12360
12361         * cse.c (delete_trivially_dead_insns): Delete the libcall block
12362         when return value is unused.
12363
12364 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
12365
12366         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
12367
12368 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
12369
12370         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
12371         on error.  We can't blindly return the result of
12372         pthread_mutex_trylock because it returns a positive number on
12373         error, while we must return -1 on error.
12374         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
12375         fixes.
12376         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
12377
12378 2001-07-18  Andreas Jaeger  <aj@suse.de>
12379
12380         * integrate.c (output_inline_function): Correct type of debug_hooks.
12381
12382 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
12383
12384         * combine.c (combine_simplify_rtx): DIV can be treated
12385         associatively for floats if unsafe math optimisations are enabled.
12386
12387 2001-07-17  Richard Henderson  <rth@redhat.com>
12388
12389         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
12390
12391 2001-07-17  Richard Henderson  <rth@redhat.com>
12392
12393         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
12394         don't force the function address into a register.
12395         (expand_call, emit_library_call_value_1): Update callers.
12396         * builtins.c (expand_builtin_apply): Likewise.
12397         * expr.h (prepare_call_address): Update decl.
12398
12399 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
12400
12401         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
12402         config directory.
12403         * config/i386/chorus.h: Move up.
12404         * config/sparc/chorus.h: Likewise.
12405         * config/rs6000/chorus.h: Likewise.
12406         * config/chorus.h: Moved here.
12407
12408 2001-07-17  Andreas Schwab  <schwab@suse.de>
12409
12410         * configure.in  (assembler eh_frame optimization): Handle big
12411         endian.
12412         * configure: Regenerated.
12413
12414 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
12415
12416         * expr.c (epxand_expr): Convert divisions into multiplications by
12417         reciprocals if -ffast-math.
12418
12419 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
12420
12421         * dbxout.c (dbxout_really_begin_function): Rename to
12422         dbxout_begin_function.
12423         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12424         (dbxout_begin_function): Remove.
12425         (dbxout_function): Update.
12426         (dbxout_source_line): Update prototype.
12427         * dbxout.h (dbxout_begin_function): Remove.
12428         * debug.c (do_nothing_debug_hooks): Update.
12429         (debug_nothing_tree): Update.
12430         (debug_nothing_charstar_rtx): Remove.
12431         * debug.h (union tree_node): Declare.
12432         (struct rtx_def): Remove.
12433         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
12434         begin_function.  Change source_line prototype.
12435         (debug_nothing_tree): New.
12436         (debug_nothing_charstar_rtx): Delete.
12437         (dwarf2out_begin_prologue): Moved from ...
12438         * tree.h: ... here.
12439         * dwarf2out.c (dwarf2_debug_hooks): Update.
12440         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
12441         debug info, call dwarf2out_source_line.
12442         (dwarf2out_souce_line): Update prototype.
12443         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
12444         Change prototype, make static.
12445         (dwarfout_source_line): Update prototype.
12446         (dwarf_debug_hooks): Update.
12447         * dwarfout.h (dwarfout_begin_function): Remove.
12448         * final.c (final_start_function, final_scan_insn): Use appropriate
12449         debug hooks, update to use notice_source_line.
12450         (output_source_line): Rename notice_source_line.  Don't call the
12451         source_line debug hook.
12452         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
12453         make static, update prototype.
12454         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
12455         prototype.
12456         (sdbout_end_prologue): New.
12457         (sdbout_source_line): Update prototype.
12458         (sdbout_debug_hooks): Update.
12459         (sdbout_symbol): Remove unused var.
12460         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
12461         Delete.
12462         * varasm.c: Include debug.h.
12463         (assemble_start_function): Use begin_function debug_hook.
12464         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
12465         update with prototype.
12466         (xcoffout_source_line): Update prototype.
12467         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
12468         update prototype.
12469         (xcoffout_source_line): Update prototype.
12470
12471 2001-07-17  Richard Henderson  <rth@redhat.com>
12472
12473         * c-typeck.c (build_binary_op): Do not shorten unsigned
12474         right shift after sign extension.
12475
12476 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
12477
12478         * combine.c (combine_simplify_rtx): Attempt to simplify
12479         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
12480
12481         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
12482         (simplify_binary_operation, simplify_unary_operation,
12483          simplify_relational_operation): Use it.
12484
12485         * combine.c (combine_simplify_rtx): Don't do associative law
12486         on divisions; allow associative law on floats.
12487
12488 2001-07-17  H.J. Lu <hjl@gnu.org>
12489             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12490
12491         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
12492         ASM_OUTPUT_WEAK_ALIAS are defined.
12493         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
12494         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
12495         Moved ...
12496         * config/mips/iris5.h: ... here.
12497         (HANDLE_SYSV_PRAGMA): Defined as 1.
12498         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
12499         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
12500         symbol.
12501
12502 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
12503
12504         * c-parse.in (all_prefix_attributes): New variable.
12505         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
12506         (maybe_resetattrs): New production.
12507         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
12508         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
12509         notype_initdcl, nested_function, notype_nested_function,
12510         component_decl, components, components_notype,
12511         component_declarator, component_notype_declarator,
12512         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
12513         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
12514         after a comma being applied to more than one declarator.
12515         * doc/extend.texi (Attribute Syntax): Update.  Remove
12516         documentation of bugs that are no longer present.
12517
12518 2001-07-13  Eric Christopher  <echristo@redhat.com>
12519
12520         * config/mips/mips.h: Change TUNE_MIPS* options to use
12521         mips_tune.
12522         (EXTRA_SPECS): Add cc1_cpu_spec.
12523         * config/mips/mips.md (muldf3): Fix typo.
12524
12525 2001-07-16  Richard Henderson  <rth@redhat.com>
12526
12527         * config/m68k/m68k.c: Include expr.h and reload.h.
12528         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
12529         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
12530
12531 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
12532             Richard Henderson  <rth@redhat.com>
12533
12534         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
12535         (insn_live_p): Fix fall off end of function.
12536         (dead_libcall_p): Remove COUNTS argument; update callers.
12537         (delete_trivially_dead_insns): Remove unused variables.
12538
12539 2001-07-17  Andreas Jaeger  <aj@suse.de>
12540
12541         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
12542         x86-64 pic support.
12543
12544         * lcm.c (optimize_mode_switching): Avoid warning for unused
12545         variable if !NORMAL_MODE.
12546
12547         * flow.c (try_crossjump_to_edge): Remove unused variable.
12548
12549 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12550
12551         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
12552         atexit declaration in stdlib.h.
12553
12554 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
12555
12556         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
12557
12558 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12559
12560         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
12561         * except.c (finish_eh_generation): Update call of cleanup_cfg;
12562         do rebuild_jump_labels instead of jump_optimize
12563         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
12564         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
12565         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
12566
12567         * flow.c: Include timevar.h
12568         (find_basic_block): Push/pop timevar;
12569         (cleanup_cfg): Likewise.
12570         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
12571         * Makefile: Add dependencies on timevar.h
12572
12573         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
12574         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
12575
12576         * rtl.h (delete_trivially_dead_insns): Add new parameter.
12577         * toplev.c (rest_of_compilation): Update calls.
12578         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
12579         (delete_trivially_dead_insns): ... here; accept new argument
12580         preserve_basic_blocks; preserve basic blocks if set.
12581
12582         * reg-stack.c (stack_regs_mentioned): Return 0 if
12583         stack_regs_mentioned_data is not initialized.
12584         (reg_to_stack): Make stack_regs_mentioned survive after the
12585         reg-stack is completted; do not call cleanup_cfg.
12586         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
12587         make cleanup_cfg after bb-reorder to output to debug file.
12588
12589 2001-07-16  Richard Henderson  <rth@redhat.com>
12590
12591         * regclass.c (init_reg_sets): Use only 32 bits per initializer
12592         from int_reg_class_contents.
12593
12594 2001-07-16  Richard Henderson  <rth@redhat.com>
12595
12596         * hard-reg-set.h (regs_invalidated_by_call): Declare.
12597         * regclass.c (regs_invalidated_by_call): Move from cse.c.
12598         (init_reg_sets_1): Move initialization from cse_main.
12599         * cse.c (regs_invalidated_by_call): Move to regclass.c.
12600         (cse_main): Move its initialization also.
12601         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
12602         * flow.c (propagate_one_insn): Likewise.
12603         * gcse.c (compute_hash_table): Likewise.
12604         (compute_kill_rd, compute_store_table): Likewise.
12605         * sched-deps.c (sched_analyze_1): Likewise.
12606
12607 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
12608
12609         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
12610         gen_rtx_SET.
12611
12612 2001-07-16  Steve Ellcey <sje@cup.hp.com>
12613
12614         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
12615         in if statement so we don't access undefined memory.
12616
12617 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
12618
12619         * gcse.c: Update comment at top.
12620         Update comment on mem handling.
12621         mem_last_set, mem_first_set, mem_set_in_block: gone.
12622         Declaration of reg_set_info: gone.
12623         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
12624         pointless with load_killed_in_block_p (they are *more*
12625         conservative then it, not less, and less accurate).
12626         (oprs_not_set_p): Ditto.
12627         (alloc_gcse_mem): Don't allocate mem_set_in_block
12628         (free_gcse_mem): Don't free it, either.
12629         (record_last_mem_set_info): Update comment in front, remove
12630         mem_*set_* stuff. Note the reason we don't handle stores directly
12631         here.
12632         (compute_hash_table): Update comments to reflect reality. Remove
12633         mem_*set_* references.
12634         (reset_opr_set_tables): Remove mem_*set_* references.
12635         (mark_call): Ditto.
12636         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
12637         (mark_clobber): Ditto (on both parts, we double set here too).
12638         (expr_killed_p): Remove mem_set_in_block test.
12639         (compute_transp): Remove mem_set_in_block test.
12640
12641         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
12642         of edge, and removal of phi alternative to dump file.
12643         (ssa_ccp_substitute_constants): Add note about register now being
12644         constant, and which uses were replaced in what insns to dump file.
12645
12646 2001-07-16  Andreas Jaeger  <aj@suse.de>
12647
12648         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
12649         variables of type HOST_WIDEST_INT.
12650
12651         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
12652         (__bb_exit_func): Correct type of count_max to avoid overflow.
12653         (num_digits): Handle long long argument.
12654
12655         * combine.c (gen_lowpart_for_combine): Remove unused variable.
12656
12657 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
12658
12659         * output.h (sdb_begin_function_line): Restore as an extern
12660         variable.
12661         * sdbout.c (sdb_begin_function_line): Make extern.
12662
12663 2001-07-15  Richard Henderson  <rth@redhat.com>
12664
12665         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
12666         * genrecog.c (maybe_both_true_mode): New.
12667         (maybe_both_true_2): Use it.
12668         (write_switch): Don't put Pmode in a switch.
12669         * rtl.c (mode arrays): Don't explicitly size them.
12670
12671 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
12672
12673         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
12674         handling; move unconditional splitting before mode switching.
12675
12676         * i386.md (type): Add fistp type.
12677         (i387, length_attr, scheduling definitions): Handle this type.
12678         (fix_trunc?f?i2): Revamp to use mode switching.
12679         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
12680         * i386.h (fp_cw_mode): New enum
12681         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
12682         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
12683
12684 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12685
12686         * Makefile.in (integrate.o): Add debug.h.
12687         * integrate.c (debug.h): Add.
12688         (output_inline_function): Save, reset, and restore debug_hooks.
12689
12690 2001-07-15  Richard Henderson  <rth@redhat.com>
12691
12692         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
12693         instead of COMPARE for the EQUIV expression.
12694
12695 2001-07-15  Richard Henderson  <rth@redhat.com>
12696
12697         * flow.c (redirect_edge_and_branch_force): Initialize
12698         global_live_at_start and global_live_at_end.
12699         (allocate_bb_life_data): Export.
12700         * basic-block.h (allocate_bb_life_data): Declare.
12701         * toplev.c (rest_of_compilation): Call it.
12702
12703 2001-07-15  Richard Henderson  <rth@redhat.com>
12704
12705         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
12706         (alpha_tablejump_best_label): New.
12707         * config/alpha/alpha-protos.h: Declare them.
12708         * config/alpha/alpha.md: Use braced strings for code blocks.
12709         (tablejump_osf): Break out add with r29.
12710         (tablejump_osf_internal): Remove.
12711         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
12712         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
12713
12714 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
12715
12716         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
12717         of the movable.
12718
12719         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
12720
12721         * i386-protos.h (ix86_split_fp_branch): Update prototype.
12722         (ix86_fp_jump_nontrivial_p): New.
12723         * i386.md (fp_jcc_?): Update call of split_fp_branch;
12724         use ix86_fp_jump_nontrivial_p.
12725         * i386.c (ix86_fp_jump_nontrivial_p): New.
12726         (ix86_split_fp_branch): Accept code instead of rtx.
12727         (ix86_expand_compare): Expand comparison early in case
12728         doing so is resonably cheap.
12729
12730 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
12731
12732         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
12733         not 'machine'.
12734         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
12735         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
12736
12737 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
12738
12739         * dbxout.c (dbxout_source_line): Make static, update prototype.
12740         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
12741         (dbxout_init, dbxout_finish, dbxout_source_line,
12742         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
12743         * dbxout.h (dbxout_source_line): Delete.
12744         * debug.c (debug_nothing_file, debug_nothing_file_int,
12745         debug_nothing_file_charstar_rtx): New.
12746         (do_nothing_debug_hooks): Update.
12747         (debug_nothing_void, debug_nothing_charstar_rtx,
12748         dwarf2out_end_epilogue): New.
12749         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
12750         * debug.h (struct rtx_def): Declare.
12751         (gcc_debug_hooks): New hooks source_line, end_epilogue
12752         and end_function.
12753         (debug_nothing_void, debug_nothing_charstar_rtx,
12754         dwarf2out_end_epilogue): New.
12755         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
12756         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
12757         (dwarf2_debug_hooks): Update.
12758         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
12759         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
12760         * dwarf2out.h (dwarf2out_source_line): Remove.
12761         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
12762         Make static, update prototype.
12763         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
12764         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
12765         (dwarf_debug_hooks): Update.
12766         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
12767         dwarfout_end_function): Remove.
12768         * final.c (profile_function): Use debug hooks for ending functions
12769         and epilogues.
12770         (output_source_line, final_end_function): Update prototype,
12771         use debug hooks.
12772         (final_start_function, final_scan_insn): Update.
12773         * output.h (sdb_begin_function_line): Remove.
12774         (final_end_function): Update prototype.
12775         * sdbout.c (sdb_begin_function_line): Make static.
12776         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
12777         (sdbout_source_line): New.
12778         (sdbout_end_epilogue, sdbout_end_function): Make static, update
12779         prototypes.
12780         (sdb_debug_hooks): Update.
12781         (sdbout_init, sdbout_source_line,
12782         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
12783         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
12784         * toplev.c (compile_file, rest_of_compilation): Update.
12785         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
12786         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
12787         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
12788         Update for prototype changes.
12789         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
12790         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
12791
12792 2001-07-15  Richard Henderson  <rth@redhat.com>
12793
12794         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
12795         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
12796         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
12797         * config/alpha/alpha.c: Likewise.
12798         * config/alpha/alpha.md: Likewise.
12799         * config/alpha/alpha32.h: Likewise.
12800         * config/alpha/vms.h: Likewise.
12801         (OPEN_VMS): Remove.
12802
12803 2001-07-14  Richard Henderson  <rth@redhat.com>
12804
12805         * config/alpha/alpha.md: Use define_constants for unspec values.
12806         Substitute throughout.
12807
12808 2001-07-14  Tim Josling  <tej@melbpc.org.au>
12809
12810         * tree.def (EXPON_EXPR) remove. Never supported anyway.
12811
12812 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12813
12814         * pa.md: Remove unused constraints from define_split's.
12815
12816 2001-04-14  Richard Henderson  <rth@redhat.com>
12817
12818         * ifcvt.c (find_cond_trap): Test for exit block.
12819
12820 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
12821
12822         Re-install recently reverted patch.
12823         * emit-rtl.c (try_split): Update mark_jump_label call.
12824         * flow.c (find_sub_basic_blocks): Likewise.
12825         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
12826         jump_back_p): Kill.
12827         (mark_all_labels): Kill second parameter.
12828         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
12829         (rebuild_jump_labels, jump_optimize_minimal): Update call
12830         of jump_optimize_1.
12831         (jump_optimize_1): Kill crossjumping code.
12832         (mark_jump_label): Kill cross_jump parameter.
12833         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
12834         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
12835         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
12836          splitting.
12837         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
12838         DFI_bpro.
12839         (dump_file_info): Likewise.
12840         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
12841         reorganize passes to do reg-stack first, bb-reorder second.
12842         * invoke.texi (-d letters doc): Remove the jump2 pass.
12843
12844 2001-07-14  Richard Henderson  <rth@redhat.com>
12845
12846         * ifcvt.c (find_cond_trap): New.
12847         (find_if_header): Call it.
12848         (merge_if_block): Relax existing jump sanity check.
12849         * jump.c (jump_optimize_1): Remove conditional trap handling.
12850
12851 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
12852
12853         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
12854         millicode.
12855         (insn_refs_are_delayed): Correct comment.
12856         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
12857         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
12858         instead of r31.  Make associated insn !TARGET_64BIT, and
12859         provide an additional 64-bit insn that clobbers r2.
12860         (divsi3): Likewise.
12861         (udivsi3): Likewise.
12862         (modsi3): Likewise.
12863         (umodsi3): Likewise.
12864
12865 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
12866
12867         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
12868
12869         * flow.c (redirect_edge_and_branch_force, split_edge,
12870         try_crossjump_to_edge): Use set_block_for_new_insns.
12871         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
12872
12873 2001-07-13  H.J. Lu  (hjl@gnu.org)
12874
12875         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
12876         the correct patch.
12877
12878 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
12879
12880         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
12881
12882 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
12883
12884         * c-common.c (decl_attributes): Take a pointer to the node to
12885         which attributes are to be attached, and a flags argument.
12886         * c-common.h (enum attribute_flags): New.
12887         (decl_attributes): Update prototype.
12888         * c-decl.c (start_decl, push_parm_decl, finish_struct,
12889         finish_enum, start_function): Update calls to decl_attributes.
12890         * c-parse.in (component_declarator, component_notype_declarator,
12891         label): Update calls to decl_attributes.
12892
12893 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
12894
12895         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
12896         * config/avr/avr.c (legitimate_address_p): Return value changed
12897         from letter to register classes. For better debugging.
12898
12899 2001-07-13  Kazu Hirata  <kazu@hxi.com>
12900
12901         * jump.c (reversed_comparison_code_parts): Fix comment typos.
12902
12903 2001-07-13  H.J. Lu  (hjl@gnu.org)
12904
12905         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
12906
12907 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
12908
12909         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
12910         correctly for shared configurations.
12911         * config/t-libgcc-pic:  New.
12912         * config/{i386,m68k,sparc}/t-openbsd:  New.
12913         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
12914         Support -shared.  Support debugging libraries with -g.
12915         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
12916         frame information does not emit pointer diffs.
12917         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
12918         emit pointer diffs.
12919
12920 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
12921
12922         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
12923
12924 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
12925
12926         * combine.c (try_combine): Ensure const_int pow2 is positive.
12927
12928 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
12929
12930         * config.gcc: Add configuration for s/390.
12931         * config/s390/s390.c: New. Subroutines for code generation.
12932         * config/s390/s390.h: New. Definitions for s/390.
12933         * config/s390/s390-protos.h: New. Prototypes.
12934         * config/s390/linux.h: New. Definitions for linux for s/390.
12935         * config/s390/linux64.h: New. Definitions for linux for zSeries.
12936         * config/s390/t-linux: New. Makefile fragment.
12937         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
12938         * config/s390/fixdfdi.h: New. Fix L_fix*di.
12939
12940 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
12941
12942         * emit-rtl.c (try_split): Update mark_jump_label call.
12943         * flow.c (find_sub_basic_blocks): Likewise.
12944         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
12945         jump_back_p): Kill.
12946         (mark_all_labels): Kill second parameter.
12947         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
12948         (rebuild_jump_labels, jump_optimize_minimal): Update call
12949         of jump_optimize_1.
12950         (jump_optimize_1): Kill crossjumping code.
12951         (mark_jump_label): Kill cross_jump parameter.
12952         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
12953         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
12954         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
12955          splitting.
12956         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
12957         DFI_bpro.
12958         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
12959         reorganize passes to do reg-stack first, bb-reorder second.
12960         * invoke.texi (-d letters doc): Remove the jump2 pass.
12961
12962 2001-07-12  Steve Ellcey <sje@cup.hp.com>
12963
12964         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
12965
12966 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
12967
12968         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
12969         basic blocks.
12970         (verify_flow_info): Make diagnostics prettier.
12971
12972 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
12973
12974         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
12975
12976         * flow.c (outgoing_edges_match): Return early if condition reversal
12977         failed.
12978
12979 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
12980
12981         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
12982         (mips_move_2words): When splitting a move into two instructions,
12983         prefix the second address operand with '%D'.
12984
12985 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
12986
12987         * Makefile.in (final.o): Depend on debug.h.
12988         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
12989         (dbx_debug_hooks): Add new hooks.
12990         (xcoff_debug_hooks): New.
12991         * debug.c (debug_nothing_file_int_int): New.
12992         (do_nothing_debug_hooks): Update.
12993         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
12994         (debug_nothing_file_int_int): New.
12995         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
12996         static, update prototype.
12997         (dwarf2_debug_hooks): Update.
12998         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
12999         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
13000         static, update prototype.
13001         (dwarf_debug_hooks): Update.
13002         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
13003         * final.c: Include debug.h.
13004         (final_scan_insn): Use debug hooks when beginning and ending blocks.
13005         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
13006         static, update prototype.
13007         (sdb_debug_hooks): Update.
13008         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
13009         * toplev.c: Distinguish between xcoff and dbx.
13010
13011         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
13012         Call all debug hooks, not just dwarf ones.
13013
13014 2001-07-11  Timothy Wall  <twall@redhat.com>
13015
13016         * config.gcc: Add configuration for AIX5/IA64.
13017         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
13018         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
13019         support prefix/suffix code.
13020         * config/ia64/t-aix: New.  Makefile fragment.
13021         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
13022
13023 2001-07-11  Kazu Hirata  <kazu@hxi.com>
13024
13025         * recog.c (validate_change): Fix a comment typo.
13026
13027 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
13028
13029         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
13030         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
13031         hooks directly.
13032         * dbxout.c (dbx_debug_hooks): Add new hooks.
13033         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
13034         make static.
13035         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
13036         make static.
13037         * dbxout.h (dbxout_start_new_source_file,
13038         dbxout_resume_previous_source_file): Delete.
13039         * debug.c (do_nothing_debug_hooks): Add new hooks.
13040         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
13041         (debug_nothing_int_charstar, debug_nothing_int): New.
13042         * debug.h (gcc_debug_hooks): New hooks define, undef,
13043         start_source_file and end_source_file.
13044         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
13045         (debug_nothing_int_charstar, debug_nothing_int): New.
13046         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
13047         the conditionally compiled section.
13048         (dwarf2out_start_source_file, dwarf2out_end_source_file,
13049         dwarf2out_define, dwarf2out_undef): Make static.
13050         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
13051         dwarf2out_define, dwarf2out_undef): Remove.
13052         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
13053         (dwarfout_start_source_file, dwarfout_end_source_file,
13054         dwarfout_define, dwarfout_undef): Make static.
13055         (dwarfout_start_source_file_check,
13056         dwarfout_end_source_file_check): New.
13057         (dwarfout_define, dwarfout_finish): Update.
13058         * dwarfout.h (dwarfout_start_new_source_file,
13059         dwarfout_resume_previous_source_file, dwarfout_define,
13060         dwarfout_undef): Remove.
13061         * sdbout.c (sdb_debug_hooks): Add new hooks.
13062         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
13063         make static.
13064         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
13065         make static, take an arg.
13066         * sdbout.h (sdbout_start_new_source_file,
13067         sdbout_resume_previous_source_file): Delete.
13068         * toplev.c (debug_start_source_file, debug_end_source_file,
13069         debug_define, debug_undef): Delete.
13070         * toplev.h (debug_start_source_file, debug_end_source_file,
13071         debug_define, debug_undef): Delete.
13072
13073         * java/jcf-parse.c: Include debug.h.
13074         (parse_class_file): Update to use debug hooks directly.
13075         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
13076
13077 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13078
13079         * alias.c (set_mem_alias_set): New function.
13080         * rtl.h (set_mem_alias_set): Declare it.
13081         * builtins.c (expand_builtin_return_addr): Call it instead of
13082         using MEM_ALIAS_SET accessor.
13083         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
13084         (get_memory_rtx, expand_builtin_va_arg): Likewise.
13085         (expand_builtin_va_copy):Likewise.
13086         * caller-save.c (setup_save_areas): Likewise.
13087         * calls.c (compute_argument_addresses): Likewise.
13088         * explow.c (set_mem_attributes): Likewise.
13089         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
13090         (expand_assignment, store_constructor_field, store_field): Likewise.
13091         (expand_expr_unaligned): Likewise.
13092         * function.c (assign_stack_temp_for_type): Likewise.
13093         (put_reg_into_stack, gen_mem_addressof): Likewise.
13094         * ifcvt.c (noce_try_cmove_arith): Likewise.
13095         * reload1.c (reload, alter_reg): Likewise.
13096         * config/alpha/alpha.c (get_aligned_mem): Likewise.
13097         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
13098         (alpha_expand_unaligned_store): Likewise
13099         (alpha_expand_unaligned_load_words): Likewise.
13100         (alpha_expand_unaligned_store_words): Likewise.
13101         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
13102         (alpha_expand_epilogue): Likewise.
13103         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
13104         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
13105         * config/i386/i386.c (legitimize_pic_address): Likewise.
13106         * config/i960/i960.c (setup_incoming_varargs): Likewise.
13107         * config/ia64/ia64.c (spill_restore_mem): Likewise.
13108         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
13109         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
13110         * config/mips/mips.c (mips_va_arg): Likewise.
13111         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
13112         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
13113         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
13114         (setup_incoming_varargs, rs6000_va_arg): Likewise.
13115         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
13116         (rs6000_emit_epilogue): Likewise.
13117         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
13118         * config/sparc/sparc.c (sparc_va_arg): Likewise.
13119         * config/v850/v850.c (v850_va_arg): Likewise.
13120
13121 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
13122
13123         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
13124         when fallthru edge is present.
13125         (mege_blocks): Handle case where creation of jump insn
13126         is required.
13127
13128         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
13129         CLEANUP_POST_REGSTACK): New constants.
13130         * except.c (finish_eh_generation): Update call of cleanup_cfg,
13131         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
13132         * output.h (cleanup_cfg): Update prototype.
13133         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
13134         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
13135         cleanup_cfg call; kill missleading comment.
13136         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
13137         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
13138         parameter; control optimizations performed using it.
13139         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
13140         try_crossjump_bb): New functions.
13141
13142 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13143
13144         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
13145         extern.
13146         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
13147         pa_output_function_prologue.
13148         * pa-protos.h (pa_output_function_prologue): New prototype.
13149
13150 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13151
13152         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
13153         and low to get correct sign extension in low+high test.
13154
13155 2001-07-11  Janis Johnson <janis@us.ibm.com>
13156
13157         * gcov.c (arcdata): Use gcov_type to fix branch percentage
13158         for large hit count.
13159
13160         * profile.c (branch_prob): Fix .bbg info for computed gotos
13161         and C++ EH code.
13162
13163 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
13164
13165         * stmt.c (parse_output_constraint): New function, split out
13166         from ...
13167         (expand_asm_operands): ... here.  Use parse_output_constraint.
13168         * tree.h (parse_output_constraint): Declare it.
13169
13170 2001-07-11  Richard Henderson  <rth@redhat.com>
13171
13172         * bitmap.c: Comment some functions; fiddle whitespace.
13173         (bitmap_free): Don't export.
13174         (bitmap_element_allocate): Use memset.
13175         * bitmap.h (bitmap_free): Don't declare.
13176
13177 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
13178
13179         * gcse.c, lcm.c, sched-deps.c:
13180         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
13181
13182         * flow.c (flow_loops_find): Free dom if we found no loops, since
13183         we aren't going to save it.
13184
13185         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
13186         done.
13187
13188 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
13189
13190         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
13191
13192 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13193
13194         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
13195         #ifndef DWARF2_DEBUGGING_INFO.
13196
13197 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
13198
13199         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
13200
13201 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
13202
13203         * config/mips/mips.c (gen_int_relational): Tell the caller not to
13204         reverse a branch if a NE comparison is implemented with GTU.
13205
13206 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
13207             H.J. Lu  <hjl@gnu.org>
13208
13209         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
13210         constant addresses.
13211         (call_internal2): Likewise.
13212         (call_value_internal1): Likewise.
13213         (call_value_internal2): Likewise.
13214         (call_value_multiple_internal1): Likewise.
13215         (call_value_multiple_internal2): Likewise.
13216
13217 2001-07-10  Kazu Hirata  <kazu@hxi.com>
13218
13219         * calls.c (emit_library_call_value_1): Fix a comment typo.
13220         * dwarf2out.c (mem_loc_descriptor): Likewise.
13221         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
13222
13223 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
13224
13225         * simplify-rtx.c (simplify_subreg): Fix typo in comment
13226
13227 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13228
13229         * recog.c (offsettable_address_p): Handle LO_SUM case.
13230         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
13231         instead of plus_constant.
13232
13233 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13234
13235         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
13236         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
13237
13238 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13239
13240         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
13241         adjust_address_nv instead of plus_constant.
13242
13243 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
13244
13245         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
13246         dwarf2out.o): Depend on debug.h, wrap long lines.
13247         * dbxout.c: Include debug.h.
13248         (dbx_debug_hooks): New.
13249         (dbxout_init): Make static, take just 2 args.
13250         (dbxout_finish): Make static.
13251         * dbxout.h (dbxout_init, dbxout_finish): Delete.
13252         * debug.c: New file.
13253         * debug.h: New file.
13254         * dwarf2out.c: Include debug.h.
13255         (dwarf2_debug_hooks): New.
13256         (dwarf2out_init): Make static.
13257         (dwarf2out_finish): Make static, take 2 args.
13258         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
13259         * dwarfout.c: Include debug.h.
13260         (dwarf_debug_hooks): New.
13261         (dwarfout_init): Make static.
13262         (dwarfout_finish): Make static, take 2 args.
13263         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
13264         * sdbout.c: Include debug.h.
13265         (sdb_debug_hooks): New.
13266         (sdbout_init): Make static, take 2 args.
13267         * sdbout.h (sdbout_init): Delete.
13268         * toplev.c: Include debug.h.
13269         (debug_hooks): New.
13270         (compile_file): Set deubg_hooks based on command line options.
13271         Use the hooks unconditionally rather than conditional compilation.
13272
13273 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
13274
13275         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
13276         first_insn_after_basic_block_note instead.
13277
13278         * df.c (df_bb_refs_unlink): #if 0 out for now.
13279
13280 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
13281
13282         * ssa.h: Add prototype for ssa_const_prop
13283         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
13284         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
13285         (ssa_fast_dce): Remove unused variable
13286
13287 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
13288
13289         * diagnostic.c (finish_diagnostic): Rename to
13290         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
13291         calls thourghout.
13292
13293 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
13294
13295         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
13296         .loc support.
13297
13298         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
13299         (dump_file): Only pad the demangled name with spaces if the
13300         mangled name was padded with spaces.
13301
13302 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
13303
13304         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
13305         edge detection.
13306
13307 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13308
13309         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
13310         extraction if no direct load if either EXPAND_CONST_ADDRESS or
13311         EXPAND_INITIALIZER.
13312
13313         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
13314         whether can put offset inside LO_SUM to check mode alignment, not size.
13315
13316 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
13317
13318         * doc/tm.texi (Misc): Fix thinko.
13319
13320 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
13321
13322         * regmove.c (replace_in_call_usage): Fix warnings.
13323         * sched-deps.c (add_dependence): Fix warnings.
13324         * simplify-rtx.c (simplify_subreg): Likewise.
13325         Return NULL_RTX instead of NULL.
13326
13327         * reg-stack.c (emit_swap_insn): Eliminate warnings.
13328         (subst_asm_stack_regs): Likewise.
13329
13330         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
13331         warnings.
13332
13333         * dwarf2out.c (output_call_frame_info): Declare i as int.
13334         (build_abbrev_table): Declare n_alloc as int.
13335         (dwarf2out_finish): Initialize die.
13336         * except.c: Declare sjlj_funcdef_number as unsigned.
13337         (connect_post_landing_pads): Declare j as unsigned.
13338         (convert_to_eh_region_ranges): Initialize call_site.
13339         (output_function_exception_table): Initialize tt_format_size.
13340         * expr.c (move_by_pieces_1): Initialize to1.
13341         (store_constructor): Initialize minelt and maxelt.
13342         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
13343         * function.c (instantiate_decls): Avoid signed/unsigned warning.
13344
13345         * c-decl.c (combine_parm_decls): Unused, remove.
13346         * c-tree.h: Remove prototype for combine_parm_decls.
13347
13348         * reload.c (push_reload): Fix warning.
13349         (regno_clobbered_p): Likewise.
13350         * reload1.c (replace_pseudos_in_call_usage): Likewise.
13351         (reload_combine): Likewise.
13352
13353         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
13354         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
13355         warnings.
13356         * bitmap.c (bitmap_operation): Change user.
13357         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
13358
13359 2001-07-10  Eric Christopher  <echristo@redhat.com>
13360
13361         * config/mips/mips.c (override_options): Fix typo.
13362
13363 2001-07-09  Stan Shebs  <shebs@apple.com>
13364
13365         * target.h (struct gcc_target): New fields init_builtins and
13366         expand_builtin.
13367         * target-def.h (TARGET_INIT_BUILTINS): New macro.
13368         (TARGET_EXPAND_BUILTIN): New macro.
13369         (TARGET_INITIALIZER): Add them.
13370         * builtins.c: Include target.h.
13371         (expand_builtin): Use targetm.expand_builtin.
13372         (default_init_builtins): New function.
13373         (default_expand_builtin): New function.
13374         * expr.h (default_init_builtins): Declare.
13375         (default_expand_builtin): Declare.
13376         * c-common.c (c_common_nodes_and_builtins): Use
13377         targetm.init_builtins.
13378         * defaults.h (MD_INIT_BUILTINS): Remove.
13379         * Makefile.in (builtins.o): Depend on target.h.
13380
13381         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
13382         (TARGET_EXPAND_BUILTIN): Define.
13383         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
13384         (MD_EXPAND_BUILTIN): Remove.
13385
13386         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
13387         (TARGET_EXPAND_BUILTIN): Define.
13388         (c4x_init_builtins): Make endlink arg a local.
13389         (c4x_print_operand): Fix typos in adjust_address usages.
13390         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
13391         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
13392         (MD_EXPAND_BUILTIN): Remove.
13393
13394         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
13395         (TARGET_EXPAND_BUILTIN): Define.
13396         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
13397         (ix86_init_builtins): Call new function only if TARGET_MMX.
13398         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
13399         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
13400         (MD_EXPAND_BUILTIN): Remove.
13401
13402         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
13403         (TARGET_EXPAND_BUILTIN): Define.
13404         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
13405         (MD_EXPAND_BUILTIN): Remove.
13406
13407         * doc/tm.texi: Document these changes.
13408
13409 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
13410
13411         * basic-block.h (tree_node): Forward declare if needed.
13412         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
13413         (BLOCK_HEAD_TREE): Define.
13414         (BLOCK_END_TREE): Define.
13415         (struct loops): Rename field 'tree' to 'tree_root'.
13416         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
13417         'end_tree'.
13418         (flow_loops_tree_build): Rename reference to field 'tree' to
13419         'tree_root'.
13420         (flow_loops_level_compute): Ditto.
13421         * predict.c (estimate_bb_frequencies): Ditto.
13422         * tree.h (struct tree_common): Add field 'aux'.
13423
13424 2001-07-09  Stan Shebs  <shebs@apple.com>
13425
13426         * config/darwin.c (darwin_encode_section_info): Don't mark any
13427         DECL_EXTERNAL node as defined.
13428
13429 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13430
13431         * pa.c (pa_init_machine_status, pa_mark_machine_status,
13432         pa_free_machine_status, hppa_init_pic_save): Delete.
13433         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
13434         (hppa_profile_hook): Use hppa_pic_save_rtx.
13435         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
13436         hppa_init_pic_save): Delete.
13437         (hppa_pic_save_rtx): Declare.
13438         * pa.md (call, call_value, sibcall, sibcall_value,
13439         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
13440
13441 2001-07-09  Kazu Hirata  <kazu@hxi.com>
13442
13443         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
13444         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
13445
13446 2001-07-09  Andreas Jaeger  <aj@suse.de>
13447
13448         * output.h: Add declaration of final_forward_branch_p.
13449
13450         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
13451
13452         * varray.c: Include errors.h for internal_error and trim_filename
13453         declarations.
13454
13455         * Makefile.in (varray.o): Add errors.h.
13456
13457 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
13458
13459         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
13460         * optabs.c (have_add2_insn): Check whether the add insn chosen
13461         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
13462         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
13463
13464 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
13465
13466         * Makefile.in (OBJS): Add ssa-ccp.o
13467         (ssa-ccp.o): Add dependencies.
13468         * toplev.c (DFI_ssa_ccp): New dump file enum.
13469         (dump_file): Add entry for dumping after SSA CCP.
13470         (flag_ssa_ccp): New flag variable.
13471         (f_options): Add -fssa-ccp.
13472         (rest_of_compilation): Run SSA CCP if requested.
13473         * timevar.def (TV_SSA_CCP): New timevar.
13474         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
13475         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
13476         Fix minor typo in SSA DCE documentation.
13477         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
13478         Add documentation for new dump option.  Renumber dump files
13479         appropriately.
13480
13481 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
13482
13483         * emit-rtl.c (gen_highpart_mode): New.
13484         * rtl.h (gen_highpart_mode): Declare.
13485         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
13486         operand can be VOIDmode constant.
13487
13488 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
13489
13490         * flow.c (redirect_edge_and_branch_force): New.
13491         (can_fallthru): Ensure that basic blocks are succeeding.
13492         (try_optimize_cfg): Do not delete basic block if it is the last one.
13493
13494         * flow.c (try_redirect_by_replacing_jump): Do not remove
13495         jumps with side effects, unlink chain on fallthru edge;
13496         set block for new jump instruction; avoid basic block to
13497         over by line number note.
13498
13499         * flow.c (try_simplify_condjump): Verify that the condjump
13500         is not always falling through.
13501
13502         Re-install patch:
13503         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
13504
13505         * flow.c (forwarder_block_p): Fix for fallthru blocks.
13506         (try_redirect_by_replacing_jump): Update properly the count
13507         and frequency information.
13508
13509 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13510
13511         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
13512         address that is a LO_SUM specially.
13513         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
13514
13515         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
13516
13517         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
13518         (operand_subword): Use them.
13519         (change_address_1): Renamed from change_address; new arg VALIDATE.
13520         * expr.h: Reflect above changes; change_address now macro.
13521         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
13522         making MEM.
13523         * cselib.c (add_mem_for_addr): Likewise.
13524         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
13525         * regmove.c (try_apply_stack_adjustment): Likewise.
13526         * reload.c (push_reload, make_memloc): Likewise.
13527         * reload1.c (eliminate_regs): Likewise.
13528         * simplify-rtx.c (simplify_replace_rtx): Likewise.
13529         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
13530         adjust_addess.
13531         * combine.c (make_extraction, simplify_shift_const): Likewise.
13532         (gen_lowpart_for_combine): Likewise.
13533         * cse.c (gen_lowpart_if_possible): Likewise.
13534         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
13535         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
13536         * optabs.c (gen_move_insn): Likewise.
13537         * reload1.c (alter_reg): Likewise.
13538         * simplify-rtx.c (simplify_subreg): Likewise.
13539         * stmt.c (expand_anon_union_decl): Likewise.
13540         * recog.c (validate_replace_rtx_1): Likewise.
13541         (expr.h): Include.
13542         * Makefile.in (recog.o): Add $(EXPR_H).
13543         * explow.c (stabilize): Call replace_equiv_address.
13544         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
13545         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
13546
13547 2001-07-03  Andrew Haley  <aph@redhat.com>
13548
13549         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
13550         the mode of the memory location.
13551
13552 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
13553
13554         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
13555
13556 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
13557
13558         * final.c (output_addr_const): Use target opening and
13559         closing parentheses.
13560         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
13561         defaults, add to TARGET_ASM_OUT.
13562         * target.h (struct gcc_target): Add open_paren and close_paren.
13563         * doc/md.texi: Update.
13564         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
13565         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
13566         TARGET_ASM_CLOSE_PAREN.
13567         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
13568         Override.
13569         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
13570         Override.
13571         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
13572         * config/a29k/a29k.h: Similarly.
13573         * config/alpha/alpha.h: Similarly.
13574         * config/arc/arc.h: Similarly.
13575         * config/arm/aof.h: Similarly.
13576         * config/arm/aout.h: Similarly.
13577         * config/avr/avr.h: Similarly.
13578         * config/c4x/c4x.h: Similarly.
13579         * config/clipper/clipper.h: Similarly.
13580         * config/convex/convex.h: Similarly.
13581         * config/d30v/d30v.h: Similarly.
13582         * config/dsp16xx/dsp16xx.h: Similarly.
13583         * config/elxsi/elxsi.h: Similarly.
13584         * config/fr30/fr30.h: Similarly.
13585         * config/h8300/h8300.h: Similarly.
13586         * config/i370/i370.h: Similarly.
13587         * config/i386/i386.h: Similarly.
13588         * config/i860/i860.h: Similarly.
13589         * config/i960/i960.h: Similarly.
13590         * config/ia64/ia64.h: Similarly.
13591         * config/m32r/m32r.h: Similarly.
13592         * config/m68hc11/m68hc11.h: Similarly.
13593         * config/m68k/m68k.h: Similarly.
13594         * config/m88k/m88k.h: Similarly.
13595         * config/mcore/mcore.h: Similarly.
13596         * config/mips/mips.h: Similarly.
13597         * config/mn10200/mn10200.h: Similarly.
13598         * config/mn10300/mn10300.h: Similarly.
13599         * config/ns32k/ns32k.h: Similarly.
13600         * config/pa/pa.h: Similarly.
13601         * config/pdp11/pdp11.h: Similarly.
13602         * config/pj/pj.h: Similarly.
13603         * config/romp/romp.h: Similarly.
13604         * config/rs6000/rs6000.h: Similarly.
13605         * config/sh/sh.h: Similarly.
13606         * config/sparc/sparc.h: Similarly.
13607         * config/v850/v850.h: Similarly.
13608         * config/vax/vax.h: Similarly.
13609         * config/we32k/we32k.h: Similarly.
13610
13611 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
13612
13613         * doc/c-tree.texi: Document representation of attributes.
13614
13615 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13616
13617         * doc/tm.texi: Update some places for the rename of target to
13618         targetm.  Fix typo.
13619
13620 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13621
13622         * target.h (struct gcc_target): Add insert_attributes.
13623         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
13624         (TARGET_INITIALIZER): Update.
13625         * tree.c, tree.h (default_insert_attributes): New function.
13626         Update comments on other default functions to refer to targetm,
13627         not target.
13628         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
13629         TARGET_INSERT_ATTRIBUTES.
13630         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
13631         * c-common.c (decl_attributes): Use targetm.insert_attributes.
13632         Don't use PRAGMA_INSERT_ATTRIBUTES.
13633         * Makefile.in (c-common.o): Depend on $(TARGET_H).
13634         * c-decl.c (start_decl, start_function): Don't call
13635         SET_DEFAULT_DECL_ATTRIBUTES.
13636         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
13637         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
13638         declare.
13639         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
13640         (c4x_check_attribute): Avoid modifying attribute list itself.
13641         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
13642         Make static.
13643         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
13644         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
13645         declare.
13646         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
13647         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
13648         Make static.
13649         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
13650         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
13651         declare.
13652         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
13653         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
13654         Adjust parameters.  Make static.
13655
13656 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13657
13658         * c-common.c (decl_attributes): Only take a single attributes
13659         parameter.
13660         * c-common.h (decl_attributes): Update prototype.
13661         * c-decl.c (start_decl, start_function): Only take a single
13662         attributes parameter.  Update calls to decl_attributes.
13663         (finish_struct, finish_enum): Update calls to decl_attributes.
13664         (push_parm_decl): Expect unified list of attributes.  Update call
13665         to decl_attributes.
13666         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
13667         notype_nested_function, component_declarator,
13668         component_notype_declarator, label): Update calls to
13669         decl_attributes.
13670         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
13671         lists that are passed to push_parm_decl.
13672         * c-tree.h (start_function, start_decl): Update prototypes.
13673         * config/sh/sh-protos.h, config/sh/sh.c
13674         (sh_pragma_insert_attributes): Only take a single attributes
13675         parameter.
13676         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
13677         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
13678         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
13679         build_module_descriptor, generate_static_references,
13680         generate_strings, build_selector_translation_table,
13681         generate_descriptor_table, generate_protocols,
13682         generate_ivars_list, generate_dispatch_table,
13683         generate_protocol_list, generate_category,
13684         generate_shared_structures, really_start_method, add_objc_decls,
13685         generate_classref_translation_entry): Update calls to start_decl
13686         and start_function.
13687         (build_tmp_function_decl, start_method_def): Unify attribute lists
13688         that are passed to push_parm_decl.
13689
13690 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
13691
13692         * final.c (no_asm_to_stream): New.
13693         (final_scan_insn): Use target structures for prologue ends
13694         and epilogue starts.
13695         * output.h (no_asm_to_stream): New.
13696         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
13697         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
13698         (TARGET_ASM_OUT): Update.
13699         * target.h (struct gcc_target): New members function_end_prologue
13700         and function_begin_epilogue.
13701         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
13702         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
13703         * config/alpha/alpha.c (output_end_prologue): Rename to
13704         alpha_output_function_end_prologue.  Use in target struct
13705         and make static.
13706         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
13707         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
13708         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
13709         ia64_output_function_end_prologue.  Use in target struct
13710         and make static.
13711         (ia64_function_prologue, ia64_funciton_epilogue): Rename
13712         mistyped prototypes.
13713         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
13714         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
13715         Delete.
13716         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
13717         an use in target struct, make static.
13718         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
13719         Delete.
13720
13721 2001-07-08  Richard Henderson  <rth@redhat.com>
13722
13723         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
13724
13725 2001-07-08  Richard Henderson  <rth@redhat.com>
13726
13727         * config/i386/i386.md: Remove constraints strings from define_split
13728         and define_peephole2 patterns.
13729         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
13730         (eh_return): Use them.
13731
13732 2001-07-08  Richard Henderson  <rth@redhat.com>
13733
13734         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
13735         Document MD_FALLBACK_FRAME_STATE_FOR.
13736
13737 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13738
13739         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
13740         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
13741         elimination.
13742         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
13743
13744 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
13745
13746         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
13747         of the label inside NAME as opposed to just the end of NAME.
13748
13749 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
13750
13751         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
13752         * config/alpha/alpha.c (alpha_init_machine_status,
13753         alpha_mark_machine_status, alpha_free_machine_status): Delete.
13754         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
13755         (vms_valid_decl_attribute_p): Make static, conditionally compile.
13756         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
13757
13758 2001-07-06  Stan Shebs  <shebs@apple.com>
13759
13760         * target.h (targetm): Rename global from "target", so as not to
13761         conflict with local variables.
13762         * c-decl.c: Ditto.
13763         * c-typeck.c: Ditto.
13764         * final.c: Ditto.
13765         * tree.c: Ditto.
13766         * cp/decl.c: Ditto.
13767         * cp/decl2.c: Ditto.
13768         * cp/typeck.c: Ditto.
13769         * 1750a/1750a.c: Ditto.
13770         * a29k/a29k.c: Ditto.
13771         * arc/arc.c: Ditto.
13772         * arm/arm.c: Ditto.
13773         * avr/avr.c: Ditto.
13774         * clipper/clipper.c: Ditto.
13775         * convex/convex.c: Ditto.
13776         * d30v/d30v.c: Ditto.
13777         * dsp16xx/dsp16xx.c: Ditto.
13778         * elxsi/elxsi.c: Ditto.
13779         * fr30/fr30.c: Ditto.
13780         * h8300/h8300.c: Ditto.
13781         * i370/i370.c: Ditto.
13782         * i386/i386.c: Ditto.
13783         * i860/i860.c: Ditto.
13784         * i960/i960.c: Ditto.
13785         * ia64/ia64.c: Ditto.
13786         * m32r/m32r.c: Ditto.
13787         * m68hc11/m68hc11.c: Ditto.
13788         * m68k/m68k.c: Ditto.
13789         * m88k/m88k.c: Ditto.
13790         * mips/mips.c: Ditto.
13791         * ns32k/ns32k.c: Ditto.
13792         * pa/pa.c: Ditto.
13793         * pdp11/pdp11.c: Ditto.
13794         * romp/romp.c: Ditto.
13795         * rs6000/rs6000.c: Ditto.
13796         * sh/sh.c: Ditto.
13797         * sparc/sparc.c: Ditto.
13798         * vax/vax.c: Ditto.
13799         * we32k/we32k.c: Ditto.
13800         * doc/tm.texi: Update the manual to match.
13801
13802 2001-07-06  Richard Henderson  <rth@redhat.com>
13803
13804         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
13805         DWARF2_UNWIND_INFO not just whether it is defined.
13806
13807 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
13808
13809         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
13810         call to simplify_binary_operation returns a new pattern.
13811
13812 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
13813
13814         * glimits.h (__SHRT_MAX__): New.
13815         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
13816         (SHRT_MAX): Define in terms of __SHRT_MAX__.
13817
13818 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
13819
13820         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
13821         avoid warnings.
13822
13823 2001-07-06  Richard Henderson  <rth@redhat.com>
13824
13825         * bitmap.c (bitmap_release_memory): Move adjacent to the
13826         allocation functions.
13827         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
13828         the implementation.  Binary search for the set bit.
13829         (bitmap_union_of_diff): Allocate the temporary on the stack
13830         instead of using xmalloc.
13831
13832 2001-07-06  Richard Henderson  <rth@redhat.com>
13833
13834         * genrecog.c (validate_pattern): Warn for constraints in
13835         define_{expand,split,peephole2}.  Remove strict_low_part
13836         before looking up match_dup.
13837
13838 2001-07-06  DJ Delorie  <dj@redhat.com>
13839
13840         * doc/gcc.texi (Makefile): Rename to be a more general purpose
13841         chapter about various build hints and history.  Add section
13842         talking about the various types of native and cross builds.
13843
13844 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
13845
13846         * Makefile.in (final.o): Depend on target.h.
13847         * final.c: Include target.h.
13848         (default_function_pro_epilogue): New.
13849         (final_start_function): Use target structure for function prologues.
13850         (final_end_function): Use target structure for function epilogues.
13851         * fold-const.c (real_hex_to_f): Constify s and p.
13852         * output.h (default_function_pro_epilogue): New.
13853         * real.h (real_hex_to_f): Update prototype.
13854         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
13855         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
13856         (TARGET_INITIALIZER): Update.
13857         * target.h (gcc_target): Add struct asm_out.
13858         * doc/tm.texi: Update.
13859
13860 config:
13861         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
13862         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
13863         in cpu/cpu.c, or rename old functions consistently.  Take
13864         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
13865         redundant macros and prototypes.  Make new functions static.
13866
13867         * 1750a/1750a.c: Similarly.
13868         * 1750a/1750a.h: Similarly.
13869         * a29k/a29k-protos.h: Similarly.
13870         * a29k/a29k.c: Similarly.
13871         * a29k/a29k.h: Similarly.
13872         * arc/arc-protos.h: Similarly.
13873         * arc/arc.c: Similarly.
13874         * arc/arc.h: Similarly.
13875         * arm/arm-protos.h: Similarly.
13876         * arm/arm.c: Similarly.
13877         * arm/arm.h: Similarly.
13878         * avr/avr-protos.h: Similarly.
13879         * avr/avr.c: Similarly.
13880         * avr/avr.h: Similarly.
13881         * clipper/clipper-protos.h: Similarly.
13882         * clipper/clipper.c: Similarly.
13883         * clipper/clipper.h: Similarly.
13884         * convex/convex.c: Similarly.
13885         * convex/convex.h: Similarly.
13886         * d30v/d30v-protos.h: Similarly.
13887         * d30v/d30v.c: Similarly.
13888         * d30v/d30v.h: Similarly.
13889         * d30v/d30v.md: Similarly.
13890         * dsp16xx/dsp16xx-protos.h: Similarly.
13891         * dsp16xx/dsp16xx.c: Similarly.
13892         * dsp16xx/dsp16xx.h: Similarly.
13893         * elxsi/elxsi.c: Similarly.
13894         * elxsi/elxsi.h: Similarly.
13895         * fr30/fr30.c: Similarly.
13896         * fr30/fr30.md: Similarly.
13897         * h8300/h8300-protos.h: Similarly.
13898         * h8300/h8300.c: Similarly.
13899         * h8300/h8300.h: Similarly.
13900         * i370/i370-protos.h: Similarly.
13901         * i370/i370.c: Similarly.
13902         * i370/i370.h: Similarly.
13903         * i386/i386.c: Similarly.
13904         * i386/osf1elf.h: Similarly.
13905         * i386/osfrose.h: Similarly.
13906         * i860/i860-protos.h: Similarly.
13907         * i860/i860.c: Similarly.
13908         * i860/i860.h: Similarly.
13909         * i960/i960-protos.h: Similarly.
13910         * i960/i960.c: Similarly.
13911         * i960/i960.h: Similarly.
13912         * ia64/ia64-protos.h: Similarly.
13913         * ia64/ia64.c: Similarly.
13914         * ia64/ia64.h: Similarly.
13915         * m32r/m32r-protos.h: Similarly.
13916         * m32r/m32r.c: Similarly.
13917         * m32r/m32r.h: Similarly.
13918         * m68hc11/m68hc11-protos.h: Similarly.
13919         * m68hc11/m68hc11.c: Similarly.
13920         * m68hc11/m68hc11.h: Similarly.
13921         * m68k/crds.h: Similarly.
13922         * m68k/dpx2.h: Similarly.
13923         * m68k/m68k-protos.h: Similarly.
13924         * m68k/m68k.c: Similarly.
13925         * m68k/m68k.h: Similarly.
13926         * m68k/news.h: Similarly.
13927         * m88k/m88k-protos.h: Similarly.
13928         * m88k/m88k.c: Similarly.
13929         * m88k/m88k.h: Similarly.
13930         * mips/mips-protos.h: Similarly.
13931         * mips/mips.c: Similarly.
13932         * mips/mips.h: Similarly.
13933         * ns32k/merlin.h: Similarly.
13934         * ns32k/ns32k.c: Similarly.
13935         * ns32k/ns32k.h: Similarly.
13936         * ns32k/tek6000.h: Similarly.
13937         * pa/pa-protos.h: Similarly.
13938         * pa/pa.c: Similarly.
13939         * pa/pa.h: Similarly.
13940         * pdp11/2bsd.h: Similarly.
13941         * pdp11/pdp11-protos.h: Similarly.
13942         * pdp11/pdp11.c: Similarly.
13943         * pdp11/pdp11.h: Similarly.
13944         * romp/romp-protos.h: Similarly.
13945         * romp/romp.c: Similarly.
13946         * romp/romp.h: Similarly.
13947         * rs6000/rs6000-protos.h: Similarly.
13948         * rs6000/rs6000.c: Similarly.
13949         * rs6000/rs6000.h: Similarly.
13950         * rs6000/sysv4.h: Similarly.
13951         * sh/sh-protos.h: Similarly.
13952         * sh/sh.c: Similarly.
13953         * sh/sh.h: Similarly.
13954         * sparc/sparc-protos.h: Similarly.
13955         * sparc/sparc.c: Similarly.
13956         * sparc/sparc.h: Similarly.
13957         * vax/vax.c: Similarly.
13958         * vax/vax.h: Similarly.
13959         * vax/vms.h: Similarly.
13960         * we32k/we32k.c: Similarly.
13961         * we32k/we32k.h: Similarly.
13962
13963 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
13964
13965         * basic-block.h (first_insn_after_basic_block_note): Declare.
13966         * flow.c (first_insn_after_basic_block_note): Define.  Moved
13967         from...
13968         * ssa.c (first_insn_after_basic_block_note): Remove.
13969         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
13970         necessary.
13971         (ssa_eliminate_dead_code): Properly update the CFG and PHI
13972         nodes when we find a dead conditional branch.  Insert BARRIERs
13973         after any blocks with no successors, but which do not have
13974         any BARRIERs.
13975
13976 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
13977
13978         * varray.c (varray_check_failed): Use internal_error.
13979
13980 2001-07-05  Andrew Haley  <aph@redhat.com>
13981
13982         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
13983         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
13984         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
13985
13986 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
13987
13988         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
13989         reference if the target constant is also a SYMBOL_REF.
13990
13991 2001-07-05  Eric Christopher  <echristo@redhat.com>
13992
13993         * config/mips/mips.h (MASK_MIPS3900): Remove.
13994         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
13995         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
13996         (TARGET_MIPS3900): Change to use mips_arch.
13997         (TARGET_MIPS4000): New.
13998         (TARGET_MIPS4100): New.
13999         (TARGET_MIPS4300): New.
14000         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
14001         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
14002         for -mipsX.
14003         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
14004         (ISA_HAS_BRANCHLIKELY): To here.
14005         (CC1_CPU_SPEC):  New.
14006         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
14007         (mips_arch_string): Declare.
14008         (mips_arch): Declare.
14009         (TARGET_OPTIONS): Add -march and -mtune.
14010
14011         * config/mips/mips.c (mips_arch_string): New.
14012         (mips_arch): New.
14013         (override_options): Handle -march for codegen and -mtune
14014         for scheduling. Use mips_arch. Move tx39 target default here.
14015         (mips_parse_cpu): Move error message to override_options.
14016
14017         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
14018
14019         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
14020
14021         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
14022         (MIPS Options): Ditto.  Change mcpu entry to historical text.
14023
14024 2001-07-05  H.J. Lu  (hjl@gnu.org)
14025
14026         * config/mips/mips.c (mips_parse_cpu): New function to parse
14027         -march=*/-mcpu=*.
14028
14029 2001-07-05  Jim Wilson  <wilson@redhat.com>
14030
14031         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
14032         * config/ia64/t-ia64: Likewise.
14033         (LIB1ASMFUNCS): Update comment.
14034
14035 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
14036
14037         * doc/install.texi (Install GCC: Binaries): Fix typo.
14038
14039 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14040
14041         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
14042         reference using the stack pointer, adjust it since we push Y
14043         temporarily.
14044         ("*ashrsi3"): Likewise.
14045         ("*lshrsi3"): Likewise.
14046
14047 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14048
14049         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
14050         when -fomit-frame-pointer is used.
14051
14052 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
14053
14054         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
14055         (try_redirect_by_replacing_jump): Reverse updating properly the
14056         count and frequency information.  Reverse removing cc0 setter.
14057         (forwarder_block_p): Reverse fixing for fallthru blocks.
14058
14059 2001-07-05  DJ Delorie  <dj@redhat.com>
14060
14061         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
14062         (translate_options): If the above is defined, use it to map
14063         given options to new options.
14064         * doc/tm.texi: Document it.
14065
14066 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
14067             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14068
14069         * doc/invoke.texi (Optimize Options): Document that -fgcse may
14070         cause programs using computed gotos to run more slowly.
14071
14072 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14073
14074         * doc/install.texi (Specific): Markup, spelling and typo fixes.
14075         Fixed sorting.
14076         Consistently require binutils 2.11.2, not prereleases.
14077         (Specific, decstation-*): Canonicalize as mips-dec-*.
14078         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
14079         always necessary.
14080         (Specific, m68k-altos): Removed reference to README.altos, deleted.
14081         (Specific, mips-*): Reword MIPS C compiler requirements.
14082         (Specific, powerpc*-*-*): New, mention --with-cpu once.
14083         (Specific, sunv5): Removed, obsolete.
14084
14085 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
14086
14087         * dwarf2out.c (output_loc_list): Use an all ones mask for
14088         .text asm output and don't rely on long long
14089         literals. Reformat some long lines.
14090
14091 2001-07-05  Andreas Jaeger  <aj@suse.de>
14092
14093         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
14094         section.
14095
14096 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
14097
14098         * dwarf2out.c (dwarf2out_define): Update comment.
14099         (dwarf2out_undef): Ditto.
14100         (dwarf2out_start_source_file): Ditto.
14101         (dwarf2out_end_source_file): Ditto.
14102         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
14103         since we never call the start/end debug hook for the primary file.
14104
14105 2001-07-04  Kazu Hirata  <kazu@hxi.com>
14106
14107         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
14108         from shll.
14109
14110 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
14111
14112         * cppinit.c (remove_dup_dirs): Inform if a system include
14113         directory is being reordered.
14114         * doc/invoke.texi (Directory Options): GCC warns if you hide a
14115         system include.
14116         * doc/cpp.texi (Search Paths): Likewise.
14117         * doc/gcc.texi (Interoperation): Remove information about
14118         -I/usr/include.
14119
14120 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
14121
14122         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
14123         (VARRAY_TOP_CHAR_PTR): Likewise.
14124
14125 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14126
14127         * gcc.c (process_command): Don't assign elements of a const char*.
14128
14129 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14130
14131         * emit-rtl.c (change_address): Don't abort if invalid address while
14132         reload is in progress.
14133
14134 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
14135
14136         * c-lex.c (cb_file_change): Pass line number to
14137         debug_start_source_file.
14138         (cb_undefine): Pass correct line number to debug_undef.
14139
14140         * toplev.c (debug_start_source_file): Add line number to
14141         parameters. Pass it along to dwarf2out_start_source_file.
14142         (decode_g_option): Stop resetting debug level back to normal when
14143         we change debug formats, unless the current level is
14144         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
14145         3).
14146
14147         * toplev.h (debug_start_source_file): Add line number to
14148         parameters.
14149
14150         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
14151         parameters.
14152
14153         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
14154         parameters.
14155         Output debug_macinfo data for starting file if requested.
14156         (dwarf2out_end_source_file): Output debug_macinfo data for ending
14157         file if requested.
14158         (dwarf2out_define): Output debug_macinfo data for defining a macro
14159         if requested.
14160         (dwarf2out_undef): Output debug_macinfo data for undefining a
14161         macro if requested.
14162         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
14163         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
14164         (macinfo_section_label): New. DWARF2 macro info section label.
14165         (dwarf2out_init): If we want macro info, output the start label
14166         for the section.
14167         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
14168         attribute to the compilation unit die pointing to the macro info.
14169
14170 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
14171
14172         * dwarf2out.c (new_loc_list): Move to inside #ifdef
14173         DWARF2_DEBUGGING_INFO.
14174         (add_loc_descr_to_loc_list): Ditto.
14175         (output_loc_list): Ditto.
14176         Also, fix thinko in curr not being initialized.
14177         (gen_internal_sym): Ditto.
14178
14179 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14180
14181         * emit-rtl.c (replace_equiv_address): New function.
14182         * expr.h (replace_equiv_address): New declaration.
14183         * explow.c (validize_mem): Call it instead of change_address and
14184         also call if -fforce-addr and address is constant.
14185         * expr.c: Replace more calls to change_address with adjust_address
14186         and/or replace_equiv_address or to validize_mem.
14187         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
14188         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
14189         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
14190         * config/i370/i370.md, config/i860/i860.md: Likewise.
14191         * config/i960/i960.md, config/mips/mips.c: Likewise.
14192         * config/mips/mips.md, config/pa/pa.md: Likewise.
14193         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
14194         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
14195
14196 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14197
14198         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
14199
14200         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
14201         function.
14202
14203 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
14204
14205         * doc/include: New directory.
14206         * doc/fdl.texi: Move to doc/include/fdl.texi.
14207         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
14208         * doc/include/funding.texi, doc/include/gpl.texi: New files.
14209         * doc/gcc.texi: Use funding.texi and gpl.texi.
14210         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
14211         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
14212         Update dependencies and use -I $(docdir)/include.
14213
14214 2001-07-04  Anthony Green  <green@redhat.com>
14215
14216         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
14217
14218 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14219
14220         * doc/install.texi (sparc64-*-*): Remove garbage.
14221
14222 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
14223
14224         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
14225         Fix typo in last change to use adjust_address.
14226
14227 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14228
14229         * doc/install.texi (Specific): Update information for *-*-solaris*.
14230
14231 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14232
14233         * explow.c (plus_constant_wide): Reinitialize Y for restart.
14234
14235 2001-07-03  Stan Shebs  <shebs@apple.com>
14236
14237         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
14238         case for flag_no_mach_text_sections.
14239         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
14240         * config/darwin.c (flag_no_mach_text_sections): Remove.
14241         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
14242
14243 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14244
14245         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
14246         and avoid checking for constant as first operand.
14247         * recog.c (find_constant_term_loc): No longer static.
14248         (adj_offettable_operand): Delete.
14249         * rtl.h (adj_offsettable_operand): Delete declaration.
14250         (find_constant_term): Add declaration.
14251         * caller-save.c: Replace calls to adj_offsettable_operand with calls
14252         to adjust_address.
14253         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
14254         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
14255         * config/i386/i386.c, config/i386/i386.md: Likewise.
14256         * config/i860/i860.c, config/i960/i960.c: Likewise.
14257         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
14258         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
14259         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
14260         * config/mips/mips.c, config/mips/mips.md: Likewise.
14261         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
14262         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
14263         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
14264         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
14265         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
14266         * config/ns32k/ns32k.md: Likewise.
14267
14268 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
14269
14270         * rtl.c (copy_rtx): Handle 'T' format letter.
14271         * gensupport.c (collect_insn_data): Likewise.
14272         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
14273
14274 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
14275
14276         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
14277         -B option.  Use 'dir' not 'foo' as example directory name.
14278
14279 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14280
14281         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
14282         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
14283
14284 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
14285
14286         * doc/cppinternals.texi: Improve formatting and logical markup.
14287
14288 2001-07-03  Andreas Jaeger  <aj@suse.de>
14289
14290         * Makefile.in (insn-recog.o): Add dependency on reload.h.
14291
14292         * genrecog.c (write_header): Include reload.h for prototypes in
14293         insn-recog.c.
14294
14295 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
14296
14297 config:
14298         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
14299         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
14300         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
14301         i386_pe_valid_type_attribute_p): Add.
14302         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
14303         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
14304
14305 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14306
14307         * explow.c (plus_constant_wide, case LO_SUM): New case.
14308         (plus_constant_for_output_wide): Delete.
14309         * rtl.h (plus_constant_for_output): Delete.
14310         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
14311         instead of plus_constant_for_output.
14312         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
14313         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
14314         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
14315         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
14316         * config/sparc/sparc.md: Likewise.
14317         Convert some change_address calls to adjust_address.
14318
14319 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
14320
14321         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
14322         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
14323         documentation of -std and -Wwrite-strings.
14324
14325 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
14326
14327         * cse.c (canon_hash): Don't register registers in very small
14328         register classes, as extending their lifetime might cause
14329         reload to fail.
14330
14331 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
14332
14333         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
14334
14335         * flow.c (forwarder_block_p): Fix for fallthru blocks.
14336         (try_redirect_by_replacing_jump): Update properly the count
14337         and frequency information.
14338
14339 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
14340
14341         * toplev.c (dump_file_index): Move SSA dumps just after first
14342         jump dump.
14343         (dump_file): Corresponding changes.
14344         (rest_of_compilation): Move SSA path to just after the first
14345         jump pass.
14346         * doc/gcc.texi (Passes): Update due to movement of SSA path.
14347         * doc/invoke.texi: Update dump file #s as they were completely
14348         out of date with reality.
14349
14350 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
14351
14352         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
14353
14354         * expr.c (emit_move_insn_1): Deal with non-default
14355         STACK_PUSH_CODE.
14356
14357         * expr.c (emit_single_push_insn): Fix warning.
14358
14359 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
14360
14361         * expr.c (emit_move_insn_1): Avoid modifying
14362         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
14363
14364 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14365
14366         * emit-rtl.c (adjust_address): New function.
14367         * expr.h (adjust_address): Add declaration.
14368         * builtins.c: Replace some calls to change_address with calls to it
14369         or to validize_mem.
14370         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
14371         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
14372         * config/arm/arm.c, config/convex/convex.c: Likewise.
14373         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
14374         * config/i386/i386.c, config/i386/i386.md: Likewise.
14375         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
14376         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
14377         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
14378         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
14379         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
14380
14381 2001-07-02  Jim Wilson  <wilson@redhat.com>
14382
14383         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
14384
14385 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
14386
14387         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
14388         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
14389
14390 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
14391
14392         * cppinit.c (lang_defaults): New table.
14393         (set_lang): Just read from lang_defaults into the live options
14394         structure.
14395
14396 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
14397
14398         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
14399         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
14400         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
14401
14402 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14403
14404         * doc/install.texi: Various spelling and markup fixes.
14405         (Installing GCC): Component specific installation instructions are
14406         gone.
14407         Fix reference.
14408         Warn about removing old install dir in the presence of shared libs.
14409         (Configuration): Invoke with options target to match configure
14410         --help.
14411         Consistently refer to gas, gld pathnames.
14412         Invert --enable-multilib documentation.
14413         Remove references to old compiler versions.
14414
14415 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14416
14417         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
14418
14419 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14420
14421         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
14422         section.
14423         (Specific, mips*-sgi-irix5): Note IDO download.
14424         Reworded MIPS C hints.
14425         Use GNU as instead of GAS.
14426         Markup fixes.
14427         Removed SGI Freeware reference, IRIX 6 only.
14428         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
14429         Note N64 library requirement/workaround.
14430         Update O32 hints.
14431         Complete list of structure passing bug victims.
14432
14433 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14434
14435         * doc/install.texi: Remove CVS Id.
14436
14437 2001-07-02  Andreas Jaeger  <aj@suse.de>
14438
14439         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
14440         (find_inherently_necessary): Remove unused variable.
14441
14442 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
14443
14444         * c-common.h (TDI_inlined): New ast dump phase.
14445         (dump_flag_name): New function.
14446         * c-dump.c (dump_files): Add inlined phase.
14447         (dump_flag_name): Define.
14448         * doc/invoke.texi (-fdump-ast-inlined): Document.
14449
14450 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14451
14452         * stor-layout.c (layout_decl): Revert change to handling of alignment
14453         in packed types.
14454
14455 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14456
14457         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
14458         for FIELD_DECL.
14459
14460 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
14461
14462         * doc/tm.texi (FUNCTION_ARG): Document that the last call
14463         is special.
14464
14465 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
14466
14467         * tlink.c (recompile_files): Remove COMPILER_PATH and
14468         LIBRARY_PATH from the environment.
14469
14470 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
14471
14472         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
14473         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
14474         enumerators.
14475         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
14476
14477         * c-parse.in (OBJC_STRING): Kill.
14478         (objc_string): Decompose to [objc_string] '@' STRING.
14479         (reswords): Take the leading '@' off all the Objective C keywords.
14480         (objc_rid_sans_at): Kill.
14481         (init_reswords): Don't initialize it.
14482         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
14483         (_yylex): Kill reconsider label.  Look ahead one token after
14484         an '@'; if we get an identifier, check whether it's an
14485         Objective C @-keyword.  If so, return the keyword.  Otherwise,
14486         put back the token and return the '@' as a terminal.
14487
14488         * cpplib.c (lex_macro_node): Remove unnecessary check for
14489         leading '@' on identifier.  Clarify control flow and commentary.
14490
14491 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14492
14493         * cse.c (new_label_ref): Variable deleted.
14494         (insert): Remove set of new_label_ref.
14495         (check_for_label_ref): New function.
14496         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
14497
14498 See ChangeLog.5 for earlier changes.